【问题标题】:r - faster mean calculation in raster stackr - 光栅堆栈中更快的平均计算
【发布时间】:2016-12-25 01:51:22
【问题描述】:

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

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

【问题讨论】:

  • mean(logo)my testing 相比似乎得到了优化。也许 data.table 解决方案会更胜一筹。

标签: r mean raster


【解决方案1】:

只要您的计算是逐个单元格的,您就可以使用并行化。对并行光栅处理的最简单访问是通过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)

【讨论】:

    猜你喜欢
    • 2017-07-22
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2021-12-30
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    相关资源
    最近更新 更多