将看起来像栅格的大型空间多边形与栅格层 R 合并
Merging a large spatial polygon that looks like a grid with a raster layer R
我有一个大型空间多边形数据框,还有一个包含许多信息点的栅格图层。两者都是地理参考的,我想将网格覆盖在我的栅格层之上,并将内部的每个点分配给它落入的网格单元。我遇到的问题 运行 是我拥有的网格没有像网格一样对待,而只是绘制了 polygon.This 是我在转换两者后在 ggplot 中将一个绘制在另一个之上时得到的结果给分。
一看数据变成点数:
网格:
long lat order hole piece id group
1 -101.940 31.710 1 FALSE 1 1012 1012.1
2 -101.940 31.715 4 FALSE 1 1012 1012.1
3 -101.940 31.710 5 FALSE 1 1012 1012.1
4 -101.930 31.670 3 FALSE 1 1016 1016.1
5 -101.925 31.670 4 FALSE 1 1016 1016.1
6 -101.890 31.715 1 FALSE 1 1028 1028.1
栅格图层:
longS latS intensity
1 -101.9395 31.73822 85
2 -101.9394 31.73822 85
3 -101.9393 31.73822 86
4 -101.9392 31.73822 87
5 -101.9391 31.73822 62
6 -101.9390 31.73822 65
使用以下方法完成的转换:
S <- rasterToPoints(S)
SHP <- fortify(SHP)
我尝试过的事情:
多边形和栅格的不同合并技术,但对于示例,我发现人们在那里制作了自己的网格,在这种情况下,我必须使用这个网格或具有精确尺寸的网格。
我还尝试将它们更改为点并根据多边形的 ID 进行合并,但我发现该 ID 与单元格单元无关,只是线条本身。
任何有关合并两者和在显示的网格单元格内分配点的帮助将不胜感激。
这是一些简单的示例数据:
library(raster)
r <- raster(nrow=2, ncol=4, vals=1:8)
p <- as(r, 'SpatialPolygonsDataFrame')
r <- disaggregate(r, 2)
values(r) <- 1:ncell(r)
plot(r)
plot(p, add=TRUE)
有了 SpatialPolygonsDataFrame
p
和 RasterLayer
r
,你现在可以做
p$ID <- 1:length(p)
x <- rasterize(p, r, 'ID')
s <- stack(x, r)
head(values(s))
# layer.1 layer.2
#[1,] 1 1
#[2,] 1 2
#[3,] 2 3
#[4,] 2 4
#[5,] 3 5
#[6,] 3 6
或
e <- extract(r, p)
e[1:3]
#[[1]]
#[1] 1 2 9 10
#[[2]]
#[1] 3 4 11 12
#[[3]]
#[1] 5 6 13 14
我有一个大型空间多边形数据框,还有一个包含许多信息点的栅格图层。两者都是地理参考的,我想将网格覆盖在我的栅格层之上,并将内部的每个点分配给它落入的网格单元。我遇到的问题 运行 是我拥有的网格没有像网格一样对待,而只是绘制了 polygon.This 是我在转换两者后在 ggplot 中将一个绘制在另一个之上时得到的结果给分。
一看数据变成点数:
网格:
long lat order hole piece id group
1 -101.940 31.710 1 FALSE 1 1012 1012.1
2 -101.940 31.715 4 FALSE 1 1012 1012.1
3 -101.940 31.710 5 FALSE 1 1012 1012.1
4 -101.930 31.670 3 FALSE 1 1016 1016.1
5 -101.925 31.670 4 FALSE 1 1016 1016.1
6 -101.890 31.715 1 FALSE 1 1028 1028.1
栅格图层:
longS latS intensity
1 -101.9395 31.73822 85
2 -101.9394 31.73822 85
3 -101.9393 31.73822 86
4 -101.9392 31.73822 87
5 -101.9391 31.73822 62
6 -101.9390 31.73822 65
使用以下方法完成的转换:
S <- rasterToPoints(S)
SHP <- fortify(SHP)
我尝试过的事情: 多边形和栅格的不同合并技术,但对于示例,我发现人们在那里制作了自己的网格,在这种情况下,我必须使用这个网格或具有精确尺寸的网格。
我还尝试将它们更改为点并根据多边形的 ID 进行合并,但我发现该 ID 与单元格单元无关,只是线条本身。
任何有关合并两者和在显示的网格单元格内分配点的帮助将不胜感激。
这是一些简单的示例数据:
library(raster)
r <- raster(nrow=2, ncol=4, vals=1:8)
p <- as(r, 'SpatialPolygonsDataFrame')
r <- disaggregate(r, 2)
values(r) <- 1:ncell(r)
plot(r)
plot(p, add=TRUE)
有了 SpatialPolygonsDataFrame
p
和 RasterLayer
r
,你现在可以做
p$ID <- 1:length(p)
x <- rasterize(p, r, 'ID')
s <- stack(x, r)
head(values(s))
# layer.1 layer.2
#[1,] 1 1
#[2,] 1 2
#[3,] 2 3
#[4,] 2 4
#[5,] 3 5
#[6,] 3 6
或
e <- extract(r, p)
e[1:3]
#[[1]]
#[1] 1 2 9 10
#[[2]]
#[1] 3 4 11 12
#[[3]]
#[1] 5 6 13 14