【问题标题】:R keep points within one polygonR将点保持在一个多边形内
【发布时间】:2014-06-01 14:52:19
【问题描述】:

我有两个对象:

pts=readOGR(dsn="overpass-turbo/shp/",layer="amenity")
poly=readOGR(dsn="overpass-turbo/shp/",layer="polygons")

喜欢

因此,我将拥有一个空间数据框,其中包含多边形中的所有点... 我找到了 in this post 的东西,但它没有按我的意愿工作!

a<-over(pts, poly)

但不是一个 Sp 数据框!!

我知道!!我总是有过度功能的麻烦......

【问题讨论】:

    标签: r overlay spatial


    【解决方案1】:

    我找到了更多的东西:-)

    pts_in<-pts[!is.na(over(pts,poly)),]
    

    它只保留多边形中的点(来源:http://cran.r-project.org

    【讨论】:

    【解决方案2】:

    不完全确定您到底想要什么,但我认为poly 是您选择的空间数据框。 如果要计算多边形中的点数,我认为您必须执行以下操作:

    pts_in=over(SpatialPolygons(poly@polygons,SpatialPoints(pts),
                    returnlist=TRUE)
    poly$npoints<-unlist(lapply(pts_in,length)
    

    另一方面,如果您想为每个点分配相应的多边形,请执行以下操作:

    pts$nrow=over(SpatialPoints(pts),SpatialPolygons(poly@polygons),
              returnlist=TRUE)
    

    您也可以查看this reference 以获得一些有用的提示。

    【讨论】:

    • 嗨,我添加了一张图片...我想删除多边形外的所有点。
    • 因此,如果您使用计算多边形中的点的方法,则不会计算多边形外的点。如果您使用创建对应列表 (pts$nrow) 的方法,您可以通过从数据框中删除 NA's for pts$nrow 来简单地排除多边形外的点。
    猜你喜欢
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    • 2022-06-22
    • 2017-02-01
    • 2012-05-19
    相关资源
    最近更新 更多