【发布时间】:2012-04-30 01:48:03
【问题描述】:
我有一个SpatialPolygonsDataFrame,它是通过在rgdal 包中使用readOGR 读取shapefile 创建的。我正在尝试使用它在sp 包中使用spsample 生成采样网格,用于从该地区收集的调查数据中进行插值。但是,SpatialPointsDataFrame 包含的区域比调查大得多,因此,插值预测的值远离进行任何调查的地方。调查数据和 shapefile 都使用相同的 proj4string 进行投影。
我想使用测量站设置的坐标对 SpatialPolygonsDataFrame 进行子集化,但我不确定相关值在对象中的存储位置。
恐怕我无法提供相关数据,因为 shapefile 不是在线托管的。不过,我将从 Paul Hiemstra 对荷兰的 post 的回复中借用一些代码:
library(ggplot2)
library(sp)
library(automap)
library(rgdal)
#get the spatial data for the Netherlands
con <- url("http://gadm.org/data/rda/NLD_adm0.RData")
print(load(con))
close(con)
class(gadm)
bbox(gadm)
> min max
>r1 3.360782 7.29271
>r2 50.755165 53.55458
假设调查是在这个领域进行的:
bbox(surveys)
> min max
>r1 4.000 7.000
>r2 51.000 53.000
如何裁剪 SpatialPolygonsDataFrame 的那个区域?
编辑:这个question 似乎回答了我的问题。为没有足够努力地搜索而道歉(尽管 cmets 确实让我对使用 rgeos 转向何处有所了解)。但是,gIntersection 会导致 R 崩溃...
【问题讨论】:
-
简短的回答可能是“package:rgeos”。抱歉,我现在没有时间回答长篇大论。因此它只是一个评论......
-
查看rgeos包中的gIntersection()函数
-
我对此的模糊记忆是其中一个空间包具有一个覆盖函数,该函数返回匹配的多边形的布尔值。然后,您可以使用 taRifx::subsetSPDF 仅抓取这些多边形。
-
从问题中不清楚您是否要将多边形裁剪到点的边界框(您的示例 gadm 中只有一个对象),或者您是否要删除任何不相交的对象点。第一个很容易在 sp 中使用 over() 和 "[",第二个需要拓扑工具和 rgeos 就可以了,但是你真的要切掉点的边界框吗?
-
对不起,应该说“第二个很容易使用 over()”,“第一个需要拓扑”。 . .