5

我有一个通过在包SpatialPolygonsDataFrame中使用的 shapefile 读取创建的。我正在尝试使用它来生成一个采样网格,该网格在包中使用,用于从该地区收集的调查数据中进行插值。但是,SpatialPointsDataFrame 包含的区域比调查大得多,因此,插值预测的值远离进行任何调查的地方。调查数据和 shapefile 都使用相同的 proj4string 进行投影。readOGRrgdalspsamplesp

我想使用测量站设置的坐标对 SpatialPolygonsDataFrame 进行子集化,但我不确定相关值在对象中的存储位置。

恐怕我无法提供相关数据,因为 shapefile 不是在线托管的。但是,我将从 Paul Hiemstra对荷兰的这篇文章的回复中借用一些代码:

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 的那个区域?


编辑:这个问题似乎回答了我的问题。为没有足够努力地搜索而道歉(尽管评论确实让我对使用 rgeos 转向何处有所了解)。但是,gIntersection 导致R崩溃......

4

1 回答 1

-1

根据多边形的大小,您可以执行以下操作

range = cbind(c(4,7), c(51,53))
centroids <- coordinates(spdf)

spdf.subset <- spdf[centroids[,1] > range[1,1] &
                    centroids[,1] < range[2,1] &
                    centroids[,2] > range[1,2] &
                    centroids[,2] < range[2,2],]
于 2012-06-19T22:09:01.037 回答