R-组合矢量和光栅堆栈层索引的函数

R-组合矢量和光栅堆栈层索引的函数,r,function,stack,raster,R,Function,Stack,Raster,我正在尝试编写一个高效的脚本来校准数百幅陆地卫星8号图像。在校准步骤的某一点,我需要在光栅堆栈的每一层中应用一些系数 这是一个示例堆栈: fn <- system.file("external/test.grd", package="raster") s <- stack(fn, fn) fn光栅是一个结构良好的软件包,您只需执行以下操作: s2 <- s * mult + add 这个问题是否与光栅有关,或者您是否可以将其抽象出来,并给出一个更简单的可复制示例,其中包含

我正在尝试编写一个高效的脚本来校准数百幅陆地卫星8号图像。在校准步骤的某一点,我需要在光栅堆栈的每一层中应用一些系数

这是一个示例堆栈:

fn <- system.file("external/test.grd", package="raster")
s  <- stack(fn, fn)

fn光栅是一个结构良好的软件包,您只需执行以下操作:

s2 <- s * mult + add

这个问题是否与光栅有关,或者您是否可以将其抽象出来,并给出一个更简单的可复制示例,其中包含示例输入和预期输出?@a.Webb它肯定与光栅对象有关,或者通过执行
(s2 add)/s
进一步让自己放心!我用几个大文件做了一些测试,你的建议比我想象的要快得多!我想知道:乘法真的很简单,但是有没有办法在这个操作中添加进度条?@ThiagoV.dosSantos我不知道。
s[[1]] <- (s[[1]] * mult[1]) + add[1]
s[[2]] <- (s[[2]] * mult[2]) + add[2]
cal.fun <- function(x) { 
x <- (x * mult) + add 
}

s.cal <- calc(s, cal.fun, progress='text')
s2 <- s * mult + add
library(gridExtra)
library(rasterVis)
grid.arrange(levelplot(s), levelplot(s2), nrow=2)