重复相同的栅格层以创建栅格堆栈

use*_*602 5 r raster

我正在尝试从光栅层创建一个光栅堆栈,其中光栅堆栈只是重复一定次数的同一个光栅层。

我可以做这样的事情:

library(raster)
rasterstack <- addLayer(rasterlayer, rasterLayer, rasterLayer) 
Run Code Online (Sandbox Code Playgroud)

这有效。但是,我希望堆栈大约为 1000 层。我想我可以循环遍历,但我想知道是否有更复杂的方法来做到这一点。

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

  weightedmean <- weighted.mean( data.RasterStack, weights.RasterStack )
Run Code Online (Sandbox Code Playgroud)

Rob*_*ans 5

示例数据

library(raster)
r <- raster(ncol=10, nrow=10, vals=1:100)
Run Code Online (Sandbox Code Playgroud)

解决方案

n <- 10  # number of copies
s <- stack(lapply(1:n, function(i) r)) 
Run Code Online (Sandbox Code Playgroud)

或者

s <- stack(replicate(n, r))
Run Code Online (Sandbox Code Playgroud)