如何获取包含坐标的SpatialPolygonsDataframe

时间:2016-06-26 14:49:50

标签: r gis

我有西班牙人口普查区域的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)

我尝试了其他的东西,还看了一下光栅库,但直到现在,没有运气......

1 个答案:

答案 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)), ]