我有一个大型的RasterBrick对象,它包含一个表示每个时间间隔内生物量的光栅层的时间序列(不规则)。我需要的是连续两个时间段(difference in biomass = current biomass layer - last weeks biomass layer)之间生物量差异的时间序列。我的想法是使用一个循环或一个应用函数来遍历RasterBrick,并对每个RasterLayer使用时间序列中前面的一个减法函数。RasterBrick是有序的,所以实际的时间戳不一定重要。我试图找出例子,但没有取得进展。任何指点都将不胜感激。
我在以下几个方面提供了我的情况的一个快速例子:
library(raster)随机设置10个光栅层,进入RasterStack
r <- raster(ncol=10, nrow=10)
;b <- brick( sapply(1:10, function(i) setValues(r, rnorm(ncell(r), i, 3))))现在,我需要一个包含9个层的RasterBrick,其结果为
生物量差异=当前生物量层-上周生物量层。
发布于 2014-04-15 09:49:15
这样就行了。
subset(r, 2:nlayers(r)) - subset(r, 1:(nlayers(r)-1))方便的是,通常的操作程序只适用于栅格对象,所以我们可以简单地用高级工具构建对对象。
根据数据值和卷的不同,其他方法可能是必要的。
https://stackoverflow.com/questions/23079221
复制相似问题