【发布时间】:2020-12-28 11:17:06
【问题描述】:
我有一个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 的行都是我需要分配最近的多边形的行。
【问题讨论】: