R保持点在一个多边形内
我有两个目标:R保持点在一个多边形内,r,overlay,spatial,R,Overlay,Spatial,我有两个目标: pts=readOGR(dsn="overpass-turbo/shp/",layer="amenity") poly=readOGR(dsn="overpass-turbo/shp/",layer="polygons") 像 因此,我将拥有一个空间数据框架,其中包含polgygon中的所有点。。。 我已经找到了一些东西,但它不能像我想要的那样工作 a<-over(pts, poly) a不完全确定您到底想要什么,但我假设poly是您选择的空间数据帧。 如果要计算多边
pts=readOGR(dsn="overpass-turbo/shp/",layer="amenity")
poly=readOGR(dsn="overpass-turbo/shp/",layer="polygons")
像
因此,我将拥有一个空间数据框架,其中包含polgygon中的所有点。。。
我已经找到了一些东西,但它不能像我想要的那样工作
a<-over(pts, poly)
a不完全确定您到底想要什么,但我假设poly
是您选择的空间数据帧。
如果要计算多边形中的点数,我认为必须执行以下操作:
pts_in=over(SpatialPolygons(poly@polygons,SpatialPoints(pts),
returnlist=TRUE)
poly$npoints<-unlist(lapply(pts_in,length)
您还可以查看一些有用的提示。我还找到了更多的提示:-)
pts_inHi,我添加了一个图像。。。我想删除多边形外的所有点。因此,如果使用计算多边形内点的方法,则不会计算多边形外的点。如果使用创建对应列表的方法(pts$nrow
),只需从数据帧中删除pts$nrow
的NA
,即可排除多边形外的点。不确定这是否有效。我犯了一个错误。最好使用这个:
pts$nrow=over(SpatialPoints(pts),SpatialPolygons(poly@polygons),
returnlist=TRUE)
pts_in<-pts[!is.na(over(pts,poly)),]