让我的光栅提取R代码更有效率?

时间:2018-05-25 11:24:34

标签: r spatial raster data-extraction

有人可以帮我提高我的代码效率吗?由于数据集非常大,每次运行提取(栅格,多边形)部分都非常慢。我认为它们可以合并,所以它只做了一次,但我正在努力解决这个问题。

result$mean   <- extract(raster, polygons, weights=T, na.rm=F, fun=mean)
result$cells  <- unlist(lapply(extract(raster, polygons, weights=T, na.rm=F), 
                        FUN = function(x)(length(x[,1]))))
results$zeros <- unlist(lapply(extract(raster, polygons, weights=T, na.rm=F), 
                        FUN = function(x)(sum(x[,1]==0))))

1 个答案:

答案 0 :(得分:2)

使用extractSpatialPolygons时,您可以使用raster包的内置并行化。我们从?raster::clusterR了解到:

  

“在使用多边形时,在这些功能中使用群集是自动的:projectRasterresampleextract。”

因此,您可以通过调用

极大地加快您的流程
library(raster)
beginCluster()

一开始。

注意:完成后不要忘记关闭群集。

endCluster()