给定栅格堆栈,计算超过阈值的连续值的最大长度

时间:2019-10-07 11:04:50

标签: r raster

这个问题最初是由here提出的。在给定栅格堆栈t的情况下,我想计算超过阈值s的连续天的最大长度,如下所示:

library(raster)

set.seed(112)

x1 <- raster(nrows=10, ncols=10)
x2=x3=x4=x5=x6=x1
x1[]= runif(ncell(x1))
x2[]= runif(ncell(x1))
x3[]= runif(ncell(x1))
x4[]= runif(ncell(x1))
x5[]= runif(ncell(x1))
x6[]= runif(ncell(x1))
s=stack(x1,x2,x3,x4,x5,x6)*56

这是我当前的职能。

fun <- function(x,t){
  y <- rle((x > t)*1)
  z <- y$lengths[y$values==1]
  return(max(z,0))
}

以及我如何使用该功能。我还根据q函数的建议设置了用于导出的参数cluster {raster}

beginCluster()

out_ras <- clusterR(s, calc, args=list(fun=fun), export='q')

endCluster()

我希望将栅格图层作为输出,但是会弹出cluster error

[1] "cannot use this function"
attr(,"class")
[1] "snow-try-error" "try-error"     
Error in clusterR(s, calc, args = list(fun = fun), export = "q") : 
  cluster error

可能是什么问题?

0 个答案:

没有答案