r - 栅格堆栈中的平均计算速度更快

时间:2016-12-25 01:51:22

标签: r mean raster

我有一堆大约400个栅格,为此我想计算每个细胞的平均值。我正在使用函数" mean"在包光栅中,但它花了太长时间。是否有替代函数/包来计算大堆的平均值?

 # brief example
logo <- stack(system.file("external/rlogo.grd", package="raster")) 
logoMean=mean(logo)

1 个答案:

答案 0 :(得分:3)

只要您的计算是逐个单元格,您就可以使用并行化。最简单的并行光栅处理访问是通过clusterR中的raster-package函数。这当然只对光栅文件足够大才有意义,因此所涉及的开销实际上并不会使处理速度变慢。

library(raster)
logo <- stack(system.file("external/rlogo.grd", package="raster")) 
ncores <- 4 # define the number of cores you want to use
beginCluster(ncores)
logoMean <- clusterR(logo, mean, args=list(na.rm=TRUE))
endCluster()

logoMean_old <- mean(logo)
identical(logoMean, logoMean_old)