【发布时间】:2017-12-12 08:26:02
【问题描述】:
我正在使用时间序列光栅砖。砖有 365 层,代表一年中每一天的值。
我想创建一个新层,其中每个单元格保存满足特定条件的一年中的天数。
我目前的方法如下(APHRO 是光栅砖),但返回以下错误消息:
enter code here
r <- raster(ncol=40, nrow=20)
r[] <- rnorm(n=ncell(r))
APHRO <- brick(x=c(r, r*2, r))
NewLayer <- calc(APHRO, fun=FindOnsetDate(APHRO))
返回此错误:
Error in .local(x, ...) : not a valid subset
以及被解析的函数:
FindOnsetDate <- function (s) {
x=0
repeat {
x+1
if(s[[x]] >= 20 | s[[x]] + s[[x+1]] >= 20 & ChkFalseOnset() == FALSE)
{break}
}
return(x);
}
第三个条件的函数是:
ChkFalseOnset <- function (x) {
for (i in 0:13){
if (sum(APHRO[[x+i:x+i+7]]) >= 5)
{return(FALSE); break}
return(TRUE)
}
}
提前谢谢你!!!!
如果我应该提供更多信息,请告诉我 - 尽量保持简洁。
【问题讨论】:
-
@Emmanuel-Lin 我现在创建了一个示例砖供您检查。提前谢谢!