Мне нужно вычислить количество трех дней подряд, когда значение каждого пикселя в растровом стеке (x
) превышает заданный порог (определяемый другим растром y
). Я попытался использовать rle
для этой цели с calc
следующим образом после объединения x
и y
в новый растр a
:
library(raster)
fn<-function(a) with(rle(a), sum(lengths>=3 & values>a[[nlayers(a)]]))
calc(b,fn)
Однако я получаю сообщение об ошибке:
Ошибка в .calcTest(x[1:5], fun, na.rm, forcefun, forceapply):
не может использовать эту функцию
Воспроизводимый образец:
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))
x=stack(x1,x2,x3,x4,x5,x6)
y=x1
y[]= runif(ncell(x1))
a<-stack(x,y)
Может кто-нибудь, пожалуйста, помогите.
dput()
некоторые примеры данных). Наведите указатель мыши на тегr
, чтобы получить дополнительную информацию. - person Hack-R   schedule 07.11.2016