【发布时间】:2021-11-06 02:17:51
【问题描述】:
我有一个栅格砖 b 全球 fAPAR 数据,它是 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 非常相似。考虑到大小问题,我还想知道是否需要将我的数据划分为单独的年份并在多个文件上运行一些东西。
【问题讨论】: