Рассчитать максимальную длину последовательных значений выше порога с учетом стека растра - PullRequest
0 голосов
/ 07 октября 2019

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

В чем может быть проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...