【问题标题】:test if shapefile falls inside rectangle in R测试shapefile是否落在R中的矩形内
【发布时间】:2014-01-15 15:08:45
【问题描述】:

这似乎很容易,但我找不到。如何测试 shapefile 的至少一部分是否在 R 中的矩形内?我知道我可以使用 rgeos 包中的 gIntersects,但为此我需要一个 sp 对象而不是一个简单的矩形。因为我做了很多次,所以会更耗时。提前致谢!

【问题讨论】:

  • 将矩形强制/转换为sp 形状并不难。肯定比在进行重叠测试的包中重新发明代码更容易!
  • 如果您的矩形完全位于特征内部的孔内怎么办?这算不算交叉路口?
  • 在我的情况下不是@Spacedman。多边形是物种分布,我想看看物种是否出现在网格的某些正方形中。
  • 你的意思是你的多边形没有洞,所以不会出现这种情况?
  • 不,我的意思是它们可能有洞,如果一个正方形落在洞内,gIntersects 将返回 false(对吗?),这就是我所期望的。

标签: r intersection rectangles shapefile


【解决方案1】:

这是你的矩形点,注意第一个点和最后一个点匹配:

rect.1 <- data.frame(long=c(-117,-117,-114,-114,-117),lat=c(35,40,40,35,35))

现在创建空间多边形对象。您只需要五级嵌套括号:

rectS = SpatialPolygons(list(
                         Polygons(list(
                           Polygon(coords=rect.1)
                         ),ID=1)),
                         proj4string=proj4string(cali))

cali 是我加利福尼亚的 SpatialPolygonsDataFrame,它有一个经纬度投影,您必须将矩形设置为相同。

现在你可以:

gIntersects(rectS,cali)
## [1] TRUE

在矩形上重复。

哦,当然,在经纬坐标中的四个点并不能构成我们在学校所学意义上的“矩形”,因为地球并不平坦......

【讨论】:

  • 其他问题:在第一行使用
  • @Rodrigo 不,他应该使用&lt;- 来保持一致性,但是像这样的简单分配无论如何都可以。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
  • 2016-03-26
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
  • 1970-01-01
  • 2013-09-21
相关资源
最近更新 更多