【发布时间】:2018-09-21 11:16:38
【问题描述】:
我想从 r 中的多边形定义的区域范围中提取栅格值的精确平均值。这适用于使用raster::extract 和选项weights=TRUE。但是,对于大型栅格,此操作变得异常缓慢,并且该功能似乎没有并行化,因此beginCluster() ... endCluster() 不会加快该过程。
我需要提取一系列栅格的值,例如 r、r10 和 r100。有没有办法在 r 中加快速度,或者在 GDAL 中有另一种方法吗?
r <- raster(nrow=1000, ncol=1000, vals=sample(seq(0,0.8,0.01),1000000,replace=TRUE))
r10 <- aggregate(r, fact=10)
r100 <- aggregate(r, fact=100)
v = Polygons(list(Polygon(cbind(c(-100,100,80,-120), c(-70,0,70,0)))), ID = "a")
v = SpatialPolygons(list(v))
plot(r)
plot(r10)
plot(r100)
plot(v, add=T)
system.time({
precise.mean <- raster::extract(r100, v, method="simple",weights=T, normalizeWeights=T, fun=mean)
})
user system elapsed
0.251 0.000 0.253
> precise.mean
[,1]
[1,] 0.3994278
system.time({
precise.mean <- raster::extract(r10, v, method="simple",weights=T, normalizeWeights=T, fun=mean)
})
user system elapsed
7.447 0.000 7.446
precise.mean
[,1]
[1,] 0.3995429
【问题讨论】:
标签: r vector parallel-processing extract raster