Этот вопрос изначально задавался здесь . Я хотел бы рассчитать максимальную длину последовательных дней выше порога 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
В чем может быть проблема?