【发布时间】:2018-04-17 05:17:50
【问题描述】:
## input raster
s <- stack(list.files("~/dailyraster", full.names=TRUE)) # daily raster stack
r_start <- raster("~/stackSumSTART.asc") # this raster contain starting Julian day
r_end <- raster("~/stackSumEND.asc") # this raster contain ending Julian day
noNAcells <- which(!is.na(r[])) # cell numbers which contain values
## dummy raster
x <- r
x[] <- NA
## loop
for (i in noNAcells) {
x[i] <- sum(s[[r_start[i]:r_end[i]]][i])
}
我想创建一个类似stackApply() 的函数,但我希望它在单元格的基础上工作。
以上是for()循环版本,效果不错,但耗时太长。
关键是每个单元格从上面脚本中的两个栅格层r_start、r_end 中获取sum() 的范围。
现在我正在努力使用apply() family 转换此代码。
有没有可能通过for() 循环提高速度?或者请给我一些提示以在apply()中编写此代码
任何cmets都会帮助我,谢谢。
【问题讨论】: