gpt4 book ai didi

r - R中多边形内点(shapefile)的选择和提取

转载 作者:行者123 更新时间:2023-12-05 09:09:43 25 4
gpt4 key购买 nike

我有两个形状文件;一个是点文件(世界的一些信息),另一个是 21 个国家的形状文件。

我需要提取属于某个国家/地区的点。我必须在 QGIS 或 ArcGIS 中重复此步骤 21 次。

在 R 中有什么方法可以做到这一点,如果是在批处理中,那就太好了,因为我还必须对其他 4 个数据集重复这个过程。提前致谢

最佳答案

举个例子,如何使用over()考虑以下模拟数据。

library(raster)
library(sp)

#generate point distribution | with (x,y) coordinates
set.seed(42);pts <- SpatialPoints(data.frame(x = runif(30, 1, 5), y = runif(30, 1, 5)))

#create polygons
df<-data.frame(X = c(rep(1,5),rep(2,5),rep(3,5),rep(4,5),rep(5,5)),
Y = c(rep(seq(1,5,1),5)))
df$cell<-1:nrow(df) #polygon identifier (for later)

#make into spatial object (probably better way to do this)
coordinates(df) <- ~X+Y
rast <- raster(extent(df), ncol = 5, nrow = 5)
grid<-rasterize(df, rast, df$cell, FUN = max)
grid<-rasterToPolygons(grid) #create polygons

#plot to check
plot(grid); points(pts)

#and extract
pointsinpolygon = over(SpatialPolygons(grid@polygons), SpatialPoints(pts))

最后一点你也可以这样做

df$pointsinpolygon <- over(SpatialPolygons(grid@polygons), SpatialPoints(pts))

将结果直接写入数据框。

关于r - R中多边形内点(shapefile)的选择和提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62147291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com