R语言 栅格堆栈中的快速平均值计算

2vuwiymt  于 2023-11-14  发布在  其他
关注(0)|答案(1)|浏览(133)

我有一个大约400个栅格的堆栈,我想计算每个像元的平均值。我在包栅格中使用了“mean”函数,但它花费的时间太长。是否有替代函数/包来计算大堆栈的平均值?

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

字符串

k0pti3hp

k0pti3hp1#

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

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)

字符串

相关问题