我有一个很大的空间多边形数据框,也有一个包含许多信息点的栅格图层。两者都是地理参考,我想将栅格覆盖在栅格图层的顶部,并将内部的每个点分配给它所属的栅格像元。我遇到的问题是我所拥有的网格没有像网格那样被视为网格,而只是一个绘制的多边形。这就是我在将ggplot转换为点后在ggplot中将一个绘制在另一个之上时得到的结果。{{3 }}
看一下变成点的数据:
网格:
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)
我尝试过的事情: 用于多边形和栅格的不同合并技术,但是对于示例,我发现人们在其中创建了自己的网格,在这种情况下,我必须使用此网格或具有精确尺寸的网格。
Iv还尝试将其更改为点并根据多边形的ID进行合并,但我发现ID与仅绘制直线的单元格无关。
在合并两者和在所示网格单元内分配点的任何帮助将不胜感激。
答案 0 :(得分:1)
您的问题令人困惑,因为您显示的数据似乎与您陈述的内容不匹配,并且通过转换数据使其适合ggplot。相反,请尽可能提供一些简单的示例数据,如下所示:
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