【问题标题】:Generating new output filenames in for-loop在 for 循环中生成新的输出文件名
【发布时间】: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。

标签: r for-loop filenames


【解决方案1】:

只是为了演示在循环中创建文件夹的一种方法:如果您在一个对象中有目录,则只是循环该对象的元素。

folders1 <- c("FolderE1", 
            "FolderE2", 
            "FolderE3")




for(i in folders1)
{
  dir.create(i)              #creates a dir named after the ith element of folders1
  setwd(i)                   #goes into that directory
  tiff('raster.tif')         #plots your picture
  plot(rnorm(10,rnorm(10)))
  dev.off()
  setwd('../')               #goes out to the original folder 
}

只是一个警告:这有点危险,因为错误会造成很大的混乱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    相关资源
    最近更新 更多