【发布时间】:2017-03-20 23:04:00
【问题描述】:
当栅格堆栈 (x) 中每个像素的值高于给定阈值(由另一个栅格 y 定义)时,我需要计算连续三天的数量。在将x 和y 堆叠到新的光栅a 中之后,我尝试使用rle 来达到calc 的目的,如下所示:
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标签上以了解更多信息。 -
@Hack-R 我已经相应地编辑了问题。
标签: r stack raster r-raster run-length-encoding