當柵格堆棧中的每個像素的值(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)
不過,我得到的錯誤:
Error in .calcTest(x[1:5], fun, na.rm, forcefun, forceapply) :
cannot use this function
重複的樣品:
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)
有人可以請幫忙。
請給出一個可重現的例子(你需要'輸入()'一些示例數據)。將指針懸停在「r」標籤上以獲取更多信息。 –
@ Hack-R我已經編輯了相應的問題。 – rar