首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中使用相同名称的马赛克图像

在R中使用相同名称的马赛克图像
EN

Stack Overflow用户
提问于 2020-09-03 00:52:39
回答 1查看 33关注 0票数 0

你好,我有4个包含modis图像的文件夹,每个文件夹都有相同命名的时间序列图像,例如:

代码语言:javascript
复制
Folder 1 :
MCD19A2_Optical_Depth_047_2019_032.tif
MCD19A2_Optical_Depth_047_2019_033.tif
MCD19A2_Optical_Depth_047_2019_034.tif
MCD19A2_Optical_Depth_047_2019_035.tif
MCD19A2_Optical_Depth_047_2019_036.tif
MCD19A2_Optical_Depth_047_2019_037.tif
...

Folder 2 :
MCD19A2_Optical_Depth_047_2019_032.tif
MCD19A2_Optical_Depth_047_2019_033.tif
MCD19A2_Optical_Depth_047_2019_034.tif
MCD19A2_Optical_Depth_047_2019_035.tif
MCD19A2_Optical_Depth_047_2019_036.tif
MCD19A2_Optical_Depth_047_2019_037.tif
...

Folder 3 :
MCD19A2_Optical_Depth_047_2019_032.tif
MCD19A2_Optical_Depth_047_2019_033.tif
MCD19A2_Optical_Depth_047_2019_034.tif
MCD19A2_Optical_Depth_047_2019_035.tif
MCD19A2_Optical_Depth_047_2019_036.tif
MCD19A2_Optical_Depth_047_2019_037.tif
...

Folder 4 :
MCD19A2_Optical_Depth_047_2019_032.tif
MCD19A2_Optical_Depth_047_2019_033.tif
MCD19A2_Optical_Depth_047_2019_034.tif
MCD19A2_Optical_Depth_047_2019_035.tif
MCD19A2_Optical_Depth_047_2019_036.tif
MCD19A2_Optical_Depth_047_2019_037.tif
...

我想知道如何马赛克4 MCD19A2_Optical_Depth_047_2019_033.tif图像MCD19A2_Optical_Depth_047_2019_032.tif在一起和4 modis在R。

名称中包含普通的公历日期,而不是上面提到的儒略日

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-14 23:46:43

如果你发布一些你已经尝试过的代码,这样可以提出更好的建议,这是更好的。我认为你可以尝试一下这样的方法:

代码语言:javascript
复制
dirNames <- c(paste('Folder', 1:4))
filesNames <- c("MCD19A2_Optical_Depth_047_2019_032.tif",
                "MCD19A2_Optical_Depth_047_2019_033.tif",
                "MCD19A2_Optical_Depth_047_2019_034.tif",
                "MCD19A2_Optical_Depth_047_2019_035.tif",
                "MCD19A2_Optical_Depth_047_2019_036.tif",
                "MCD19A2_Optical_Depth_047_2019_037.tif", 
                "MCD19A2_Optical_Depth_047_2019_038.tif")

filesRast <- stringr::str_c(rep(dirNames, length(filesNames)), 
                            '/', filesNames)

filesFolders <-lapply(dirNames, 
                      function(x) {
                        y <- filesRast[stringr::str_detect(pattern = x, string = filesRast)]
                        y <- sort(y)
                        })

for(i in 1:length(dirNames)){
  name <- lapply(filesFolders, function(x) x[i])
  dateOrig <- gsub('_', '',gsub(paste0('.*MCD19A2_Optical_Depth_047_|.tif'), '', name[1]))
  dateGreg <- as.Date(dateOrig, "%y%j")
  r <- raster::raster(name[1])
  for(j in 2:length(name)){
    r <- raster::mosaic(r, raster::raster(name[i]))
  }
  raster::writeRaster(r, paste0('out/folder/', 'MCD19A2_mosaic_', dateGreg, '.tif'))
}

请注意,filesNames是我从您的示例中复制的字符向量。你应该使用像list.files('/folder/where/tif/are', pattern='.tif$')这样的东西来解压文件夹中的所有名字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63710130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档