有人可以帮我提高我的代码效率吗?由于数据集非常大,每次运行提取(栅格,多边形)部分都非常慢。我认为它们可以合并,所以它只做了一次,但我正在努力解决这个问题。
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))))
答案 0 :(得分:2)
使用extract
和SpatialPolygons
时,您可以使用raster
包的内置并行化。我们从?raster::clusterR
了解到:
“在使用多边形时,在这些功能中使用群集是自动的:
projectRaster
,resample
和extract
。”
因此,您可以通过调用
极大地加快您的流程library(raster)
beginCluster()
一开始。
注意:完成后不要忘记关闭群集。
endCluster()