重复相同的栅格图层以创建一个栅格堆栈。

5
我将尝试从一个栅格图层创建一个栅格堆栈,其中栅格堆栈只是重复某个数量的相同栅格图层。
我可以像这样做:
library(raster)
rasterstack <- addLayer(rasterlayer, rasterLayer, rasterLayer) 

这个可以实现。然而,我希望堆栈有大约1000层。我猜我可以循环处理,但我想知道是否有更复杂的方法。

我尝试这样做的原因是为了计算加权平均值,其中每个图层代表不同的时间段,并且权重在不同的光栅图层对象中。我希望如果我从权重光栅图层创建一个与数据具有相同数量的图层的光栅堆栈,我将能够执行以下操作:

  weightedmean <- weighted.mean( data.RasterStack, weights.RasterStack )

权重是否具有空间变异性?如果没有,您可以简单地提供一个权重向量(每个数据.RasterStack中的一层对应一个数字),而不是一个栅格堆栈给weighted.mean函数。 - Lucas Fortini
是的,权重在空间上是可变的(对于每个网格单元格不同),但对于每个层都是相同的。 - user2872602
1
看看我最近的这篇文章:这里。@SimonO'Hanlon 给出了一个很好的答案! - fdetsch
1个回答

7

示例数据

library(raster)
r <- raster(ncol=10, nrow=10, vals=1:100)

解决方案

n <- 10  # number of copies
s <- stack(lapply(1:n, function(i) r)) 

或者
s <- stack(replicate(n, r))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接