如何计算 R 中特定文件夹的所有栅格数据的操作?

How can I compute operations with all raster data of a specific folder in R?

我是 R 的新手。 我有一个文件夹 (foder1),其中包含一系列栅格数据 (Raster01.tif、Raster02.tif、.....、Raster69.tif)。 我会将每个栅格乘以一个数字 (0.0001) 并使用相同的名称保存结果数据,但保存在一个新文件夹 (folder2) 中。 我怎样才能完成这个过程?

你应该总是展示你已经尝试过的东西---你可以参考这个网站上的类似问题。工作流程可能是这样的:

获取输入文件

library(raster)
f <- list.files("folder1", pattern="tif$", full.names=TRUE)

如果它们具有相同的范围和分辨率

s <- stack(f)
s <- calc(s, function(x) x * 0.0001, filename="folder2/output.tif")

或者

s <- stack(f)
s <- s * 0.0001 
writeRaster(s, filename="folder2/out.tif")
# or use bylayer=T 
writeRaster(s, filename="folder2/out.tif", bylayer=TRUE)

一个一个处理文件

 fun <- function(f) {
     r <- raster(f)
     outf <- gsub("folder1", "folder2", f)         
     writeRaster(r * 0.0001, outf)
 }

 f <- list.files("folder1", pattern="tif$", full.names=TRUE)
 x <- lapply(f, fun)