首页 > 解决方案 > 计算给定栅格堆栈的阈值以上连续值的最大长度

问题描述

这个问题最初是在这里提出的。我想计算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弹出 a 。

[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

可能是什么问题呢?

标签: rraster

解决方案


推荐阅读