Answers:
这是一个例子。
library(raster)
# example data
x <- raster(system.file("external/test.grd", package="raster"))
获取矩形范围
e <- extent(x)
# coerce to a SpatialPolygons object
p <- as(e, 'SpatialPolygons')
获取包围非NA单元的多边形
# make all values the same. Either do
r <- x > -Inf
# or alternatively
# r <- reclassify(x, cbind(-Inf, Inf, 1))
# convert to polygons (you need to have package 'rgeos' installed for this to work)
pp <- rasterToPolygons(r, dissolve=TRUE)
# look at the results
plot(x)
plot(p, lwd=5, border='red', add=TRUE)
plot(pp, lwd=3, border='blue', add=TRUE)
r > -Inf
是基本的R
。做c(1,NA,3,NA) > -Inf
看看它是如何工作的。我添加了一个替代(reclassify
)。您的替代方法可行,但对于大型对象而言不是一个好方法。
rasterToPolygons()
零件,然后我将评估您的答案。感谢您的帮助,-Inf
它将非常有用!
aggregate
因为无论如何您都不会看到差异。
aggregate()
在r上运行后,即使只有100个单元,也没有处理(配备16 GB RAM的计算机)。问题是我需要尽可能地保持边界,因为需要从生成的多边形中提取DEM。如果我进一步对栅格进行下采样,我将失去该边界。有没有解决的办法?
r <- r > -Inf
部分的文档。它到底在做什么?以及与values(r)[!is.na(values(r))] <- 1
(将r中非NA的所有位置都设为1)有什么不同。