r - 用多边形子集空间点

标签 r spatial sp

我有一个 SpatialPolygonsDataFrame (spolydf) 和一个 SpatialPointsDataFrame (spointdf)。这些层有不同的范围,但重叠。

我可以使用选择落在多边形内的点

fall.within.poly <- spointdf[spolydf,]

如何选择落在多边形之外的点?试过
fall.outside.poly <- spointdf[-spolydf,]

但不起作用。我想念一些简单的东西 - 请帮忙。

最佳答案

有点晚了,但我今天遇到了同样的问题,所以我想我会使用 gDifference() 发布我的解决方案来自 rgeos包裹:

require(rgeos)
require(sp)

##create spdf
coords=expand.grid(seq(150,151,0.1),seq(-31,-30,0.1))
spdf=data.frame("lng"=coords[,1],"lat"=coords[,2])
coordinates(spdf) = ~lng+lat
proj4string(spdf)<- CRS("+init=epsg:4326")
plot(spdf)

##create poly
poly1 = SpatialPolygons(list(Polygons(list(Polygon(cbind(c(150.45,150.45,150.75,150.75,150.45),c(-30.75,-30.45,-30.45,-30.75,-30.75)))),ID=1)))
proj4string(poly1)<- CRS("+init=epsg:4326")
lines(poly1)

##get difference
out = gDifference(spdf,poly1)
points(out,col="red",pch=16)

enter image description here

关于r - 用多边形子集空间点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49929603/

相关文章:

r - 跳过 R 中的特定行和列

postgresql - Postgres + postgis 中 x,y 坐标集合的凸包生成

math - ℝ³ -> ℕ 有限数量值的映射

r - 用 geom_polygon 绘制带有孔的 ggplot 多边形

r - 如何 reshape 数据,使 R 中的行成为列?

r - 类似于 h2o 包中排列精度重要性的东西

sql - 在 oracle 数据库中保存多边形

r - 通过子集获取空的 SpatialPolygonsDataFrame?

r - 比较简单特征 {sf} 和空间对象 {sp} : speed and memory

返回 R 中过去最近或等效的日期