我有 20 个具有相同分辨率和范围的栅格。这是一个时间序列,每个栅格都是一年。
我想计算所有栅格的像素标准偏差。到目前为止,我正在使用 raster 包。
qq2<-list(maxras1,maxras2,maxras3,maxras4,maxras5,maxras6,maxras7,maxras8,maxras9,maxras10)
qq2stack<-stack(qq2)
qq2mean<-mean(qq2stack)
qq2sd<-sd(qq2stack)
平均有效。但标准差给了我这个错误:
Error in as.double(x) :
cannot coerce type 'S4' to vector of type 'double'
不幸的是,正如您在我上面的评论后注意到的,每像素分析可能很慢。我认为您接下来要尝试的事情是并行化该过程。假设您有一个多核处理器,您可以利用calc()
及其内置的多进程优化:
cores <- 4
beginCluster(cores, type='SOCK')
calc(qq2stack, fun=sd)
endCluster()
如果您的操作/硬件环境支持的话,这将导致显着的加速。显然,您也可以根据您的架构增加进程数量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)