如何使用另一个SpatialPolygonsDataFrame限定SpatialPolygonsDataFrame?

时间:2016-02-17 04:15:14

标签: r gis sp census

我有来自美国census.gov的人口普查数据的Shapefiles。

我已经使用rdgal库中的readOGR将文件读入R中。

sp1 :投票区 - SpatialPolygonsDataFrame

enter image description here

sp2 :比sp1更大的区域和更高分辨率的块级别 - SpatialPolygonsDataFrame

enter image description here

我尝试过使用rgeos库中的gIntersection,但它并没有返回我需要的东西。或者我无法弄清楚如何正确使用它

如何使用sp1作为空间限制从sp2中提取较低分辨率的多边形和相关数据?换句话说,我想知道sp1和sp2相交的sp1内的所有块。

当前工作解决方案

下面的代码返回sp2的索引值向量,其中多边形在sp1中至少有一个点,但我想知道是否有更简单的方法。

library(rgeos)
result <- vector()
for (i in 1:nrow(sp2)) {
    if(gContains(sp1, sp2[i,])) {
        result <- c(result, i)
    }
}

1 个答案:

答案 0 :(得分:0)

gContains(sp1, sp2, byid = TRUE)

用于成对包含要素对的关系。

sp2[sp1,]

选择与sp2相交的sp1个功能,但请阅读vignette('over')以了解限制(包括仅触及的功能)。