首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过RasterBrick循环计算顺序层之间的差异

通过RasterBrick循环计算顺序层之间的差异
EN

Stack Overflow用户
提问于 2014-04-15 09:09:25
回答 1查看 1.9K关注 0票数 2

我有一个大型的RasterBrick对象,它包含一个表示每个时间间隔内生物量的光栅层的时间序列(不规则)。我需要的是连续两个时间段(difference in biomass = current biomass layer - last weeks biomass layer)之间生物量差异的时间序列。我的想法是使用一个循环或一个应用函数来遍历RasterBrick,并对每个RasterLayer使用时间序列中前面的一个减法函数。RasterBrick是有序的,所以实际的时间戳不一定重要。我试图找出例子,但没有取得进展。任何指点都将不胜感激。

我在以下几个方面提供了我的情况的一个快速例子:

代码语言:javascript
复制
library(raster)

随机设置10个光栅层,进入RasterStack

代码语言:javascript
复制
r <- raster(ncol=10, nrow=10)
;b <- brick( sapply(1:10, function(i) setValues(r, rnorm(ncell(r), i, 3))))

现在,我需要一个包含9个层的RasterBrick,其结果为

生物量差异=当前生物量层-上周生物量层。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-15 09:49:15

这样就行了。

代码语言:javascript
复制
subset(r, 2:nlayers(r)) - subset(r, 1:(nlayers(r)-1))

方便的是,通常的操作程序只适用于栅格对象,所以我们可以简单地用高级工具构建对对象。

根据数据值和卷的不同,其他方法可能是必要的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23079221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档