我有一堆大约 400 个栅格,我想计算每个像元的平均值。我在包栅格中使用函数“mean”,但它花费的时间太长。是否有替代函数/包来计算大堆栈的平均值?
 # brief example
logo <- stack(system.file("external/rlogo.grd", package="raster")) 
logoMean=mean(logo)
小智 5
只要您的计算是逐个单元的,您就可以使用并行化。并行光栅处理最简单的访问是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)
| 归档时间: | 
 | 
| 查看次数: | 3407 次 | 
| 最近记录: |