问题描述
我有一个SpatialPointsDataFrame
和一个SpatialPolygons
。我想检查SpatialPointsDataFrame
中的每个点,SpatialPolygons
中的哪个多边形位于其中。
我可以使用sp::over
来做到这一点:
但是对于SpatialPointsDataFrame
中的某些点位于边缘的情况
或在多边形之外,在这种情况下,我想从
SpatialPolygons
。这是示例数据集:
set.seed(1)
library(raster)
library(rgdal)
library(rgeos)
p <- shapefile(system.file("external/lux.shp",package="raster"))
p2 <- as(1.5*extent(p),"SpatialPolygons")
proj4string(p2) <- proj4string(p)
pts <- spsample(p2,n=10,type="random")
## Plot to visualize
plot(p,col=colorRampPalette(blues9)(12))
plot(pts,pch=16,cex=.5,col="red",add = TRUE)
over(pts,p)
ID_1 NAME_1 ID_2 NAME_2 AREA
1 1 Diekirch 3 Redange 259
2 NA <NA> NA <NA> NA
3 NA <NA> NA <NA> NA
4 NA <NA> NA <NA> NA
5 NA <NA> NA <NA> NA
6 NA <NA> NA <NA> NA
7 3 Luxembourg 10 Luxembourg 237
8 3 Luxembourg 8 Capellen 185
9 2 Grevenmacher 6 Echternach 188
10 NA <NA> NA <NA> NA
所有带有NA的行都是我要分配最接近的多边形的行。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)