将看起来像栅格的大型空间多边形与栅格图层R

时间:2018-10-18 15:33:23

标签: r geospatial polygon spatial r-raster

我有一个很大的空间多边形数据框,也有一个包含许多信息点的栅格图层。两者都是地理参考,我想将栅格覆盖在栅格图层的顶部,并将内部的每个点分配给它所属的栅格像元。我遇到的问题是我所拥有的网格没有像网格那样被视为网格,而只是一个绘制的多边形。这就是我在将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与仅绘制直线的单元格无关。

在合并两者和在所示网格单元内分配点的任何帮助将不胜感激。

1 个答案:

答案 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 pRasterLayer 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