【发布时间】:2014-03-06 16:27:20
【问题描述】:
我想使用 for 循环编写许多光栅文件。
path <- "D:/FolderA/FolderB/FolderC/FolderD/"
files1 <- c("FolderE1/raster.tif",
"FolderE2/raster.tif",
"FolderE3/raster.tif")
files2 <- c("FolderF1/raster.tif",
"FolderF2/raster.tif",
"FolderF3/raster.tif")
for (i in 1:length(files1)) {
raster1 <- raster(paste(path, files1[i], sep = ""), band = 1)
is.na(raster1[[0]])
raster2 <- raster(paste(path, files2[i], sep = ""), band = 1)
is.na(raster2[[0]])
mosaicraster <- mosaic(raster1, raster2, fun = mean)
NAvalue(mosaicraster) <- 0
outputfile <- paste(path, "mosaics/", files1[i], sep = "")
writeRaster(mosaikraster, outputfile , type = "GeoTIFF", datatype = "INT1U", overwrite = TRUE)
print(c(i, "of", length(files1)))
}
如何在"D:/FolderA/FolderB/FolderC/FolderD/mosaics/" 中为每个文件创建一个新文件夹,其中包括FolderE1/, E2/... etc. 加上文件名,例如mosaic.tif?
outputfile <- paste(path, "mosaics/", files1[i], sep = "")
没有给出令人满意的结果。
【问题讨论】:
-
我使用的语言是R
-
我没有关注你想要的所有细节,但我很确定如果你想创建一个目录
dir.create()是你的朋友。 -
但是如何在代码中包含它来自动生成目录呢?你有什么想法吗?
-
只是为了澄清:您想在“mosaics/”中创建一个名为“raster.tif”的文件夹(例如 files1[1])。 或您是否要创建文件夹“mosaic/”,其中包含您在 files1 中设置的电影的文件?
-
后者。我想为每个
mosaics/FolderE1/mosaics/FolderE2/(等)创建一个文件夹,然后包含在 for 循环中计算的raster.tif-mosaics。