我有西班牙人口普查区域的SpatialPolygonsDataFrame和一组坐标。
我想做的是获取包含一对坐标的人口普查区子集(作为新的SpatialPolygonsDataFrame)。
我最近使用' over'以下示例:https://www.nceas.ucsb.edu/scicomp/usecases/point-in-polygon但是' over'不返回SpatialPolygonsDataFrame。 seccion
包含列" Long"和" Lat"用坐标。 map
是SpatialPolygonsDataFrame
# turn seccion into a SpatialPoints
coordinates(seccion) <- c("Long", "Lat")
# the coordinates are in the same lat/lon reference system (as is "map")
proj4string(seccion) <- proj4string(map)
# use 'over' with map as a SpatialPolygonsDataFrame
# object, to determine which section (if any) contains the coordinates
sec <- over(seccion, map)
我尝试了其他的东西,还看了一下光栅库,但直到现在,没有运气......
答案 0 :(得分:1)
您可以使用intersect
包
raster
功能
示例数据:
library(raster)
pols <- shapefile(system.file("external/lux.shp", package="raster"))
pnts <- SpatialPoints(matrix(c(6, 5.91, 6.13, 6.23, 6.18,
50.08, 49.95, 49.63, 49.64, 49.59),
ncol=2), proj4string=crs(pols))
x <- intersect(pols, pnts)
查看结果:
plot(pols, col='light gray')
plot(x, col='blue', add=TRUE)
points(pnts, pch=20, col='red')
可以通过over
到达那里(注意参数的顺序)
v <- over(pols, pnts)
xx <- pols[which(!is.na(v)), ]