我正在尝试从光栅层创建一个光栅堆栈,其中光栅堆栈只是重复一定次数的同一个光栅层。
我可以做这样的事情:
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)
示例数据
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)