如何计算 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)
我是 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)