从Rasterbrick的较低层提取数据

时间:2019-03-13 12:23:16

标签: r raster r-raster

因此,我要从使用此问题的方法制作的栅格砖中提取数据:How to extract data from a RasterBrick?

除了从日期给定的图层中获取数据外,我还想从前几个月提取数据。尽我所能,我是通过执行以下操作来做到这一点的:

sapply(1:nrow(pts), function(i){extract(b, cbind(pts$x[i],pts$y[i]), layer=pts$layerindex[i-1], nl=1)})

因此,提取时应查看layerindex i-1,然后应提供一个月前的数据。因此,具有layerindex = 5的点应查看5-1 = 4层。
但是,它没有这样做,并且似乎提供了一些随机数或几个月前的重复数。正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

您的代码正在从上一点而不是上一层获取值。

要想像一下,我们正在查看第2行(i = 2)中的点。您指示该图层的代码为pts$layerindex[i-1],即pts$layerindex[1]。换句话说,就是第1行中的点所在的层。

修复很容易。为了清楚起见,我将分别编写函数:

foo = function(i) extract(b, cbind(pts$x[i],pts$y[i]), layer=pts$layerindex[i]-1, nl=1)
sapply(1:nrow(pts), foo)

我还没有测试过,但这应该是全部。

相关问题