为目录中的每个波段栅格创建栅格堆栈

问题描述

我正在从单波段 geo-tiff 创建多波段栅格。这个想法是通过将单个图像堆叠三次来创建从单波段到多 (3) 波段的堆叠。我可以通过 - image1<-raster("image1.tif") 轻松地对单个图像执行此操作 stack_image1<- stack(image1,image1,image1)

如何运行此代码片段以在目录中的所有光栅图像上运行。

解决方法

你可以做这样的事情。 示例文件

f  <- system.file("external/test.grd",package="raster")
ff <- c(f,f,f)

library(raster)
x <- lapply(ff,function(i) stack(rep(i,3)))

或者用terra

library(terra)
x <- lapply(ff,function(i) rast(rep(i,3)))

或者像这样

y <- lapply(ff,function(i) rep(rast(i),3))