提取R中空间多边形数据帧特征的范围(到类范围)

时间:2018-01-09 00:11:54

标签: r

我有一个空间多边形数据框,我想确定每个特征(单个多边形)的范围,以便在crop()函数中使用。我试过了

extent(spdf@polygons[1])

试图获取多边形的范围,并给出错误"错误:c(" x"," y")%in%names(x)并非都是真的"

任何帮助?

由于

2 个答案:

答案 0 :(得分:2)

您可以对SpatialPolygons进行子集化,然后使用raster::extent方法。

示例数据:

library(raster)
library(rgdal)
p <- shapefile(system.file("external/lux.shp", package="raster"))

现在使用循环:

e <- list()
for (i in 1:length(p)) {
    e[[i]] <- extent(p[i,])
}

或lapply:

e <- lapply(1:length(p), function(i) extent(p[i,]))

或者也许创建一个矩阵:

e <- t(sapply(1:length(p), function(i) as.vector(extent(p[i,]))))

答案 1 :(得分:0)

我以前用来做我认为你要求的方法涉及两个包,rgdalraster

代码看起来像这样:

require(rgdal)
require(raster)

newExtent <- extent(bbox(yourSpatialObject))

这定义了边界(bbox),然后生成了一个范围()。它应该做你需要的。您可能需要一次一个地处理图层和对象,或者构建一个处理许多对象的函数......但这应该可以帮助您实现目标