我有一个全球 fAPAR 数据的栅格块b ,它是 35 年的日常数据(即大数据)。
目的
有没有办法可以循环遍历这块砖并一次在 365 层(天)上运行一个函数?最终目标是运行一个函数来识别每个网格单元的值超过该网格单元每年最大值的 20% 的阈值的层(日期)。
所以代码需要:
- 计算出一年内每个网格单元的最大值
- 返回每个网格单元超过该最大值的 20% 的图层(日期)
代码
以下代码查找每年的最大值,但由于其大小(每日、全球、0.5 度数据)而不适用于我的数据。关键可能是一次使用 365 层,而不是整个砖块(如果可能的话)。
# Example 10-year brick:
b <- brick(nrow=108,ncol=132,nl=3650)
values(b) <- runif(ncell(b)*nlayers(b))
i <- rep(1:nlayers(b), each=365)
# if incomplete last set of days:
i <- i[1:nlayers(b)]
x <- stackApply(b, i, max)
我的目标与this和this非常相似。考虑到大小问题,我还想知道是否需要将我的数据划分为单独的年份并在多个文件上运行某些东西。