1

一个文件夹中有 1000 多张 MODIS HDF 图像:

M:\join

他们的名字告诉我们哪些文件必须镶嵌在一起。

例如,在以下文件中,2009090表示这三个图像必须拼接在一起:

MOD05_L2.A2009090.0420.051.2010336084010
MOD05_L2.A2009090.0555.051.2010336100338
MOD05_L2.A2009090.0600.051.2010336100514

或者这两个,是同一日期,2009091

MOD05_L2.A2009091.0555.051.2010336162871
MOD05_L2.A2009091.0600.051.2010336842395

我将使用这个函数(函数)来拼接它们:

mosaicHDF(hdfNames, filename, MRTpath, bands_subset, delete=FALSE)

我应该如何将我的 HDF 文件介绍给hdfNames

我应该在文件名中写什么?

我试图找到该功能的手册,但什么也没有。

谢谢你的帮助。

4

2 回答 2

0

幸运的是,我确实找到了答案。谢谢你的帮助。

hdfs <- c('MOD05_L2.A2009090.0420.051.2010336084010.hdf',
          'MOD05_L2.A2009090.0555.051.2010336100338.hdf',
          'MOD05_L2.A2009090.0600.051.2010336100514.hdf')

mosaicHDF(hdfNames=hdfs, filename='newhdf.hdf', MRTpath='C:/MRT/bin',bands_subset="1 0 0 0", delete=FALSE) 

但我有一个新问题:-)

由于文件夹中有数千个 HDF 文件,

我如何编写一个循环来将所有 HDF 文件引入该函数?

仅供参考:我对 R 很陌生。

于 2015-06-04T21:25:05.227 回答
0

这个问题很老了,但我想我会发布加拿大2015要求的R代码。因此,对于 2000 年到 2016 年的循环,假设文件名仍然具有 A < YEAR > < MONTH >< DAY >。格式。此代码将所有图块拼接在一起,为每一年生成一个新文件。如果您必须从一年中镶嵌许多瓷砖,您可以将 pattern= 参数更改为像“.hdf”这样的通用参数

for(i in 2000:2016){
  HDFs <- list.files(path = "F:/PATHTOFILES/HDFs/", pattern = paste("A",i,sep = ""))
  mosaicHDF(hdfNames = HDFs, filename = paste('newhdf',i,'.hdf',sep = ""), MRTpath = 'C:/MRT/bin',bands_subset="1 0 0 0", delete=FALSE)
}
于 2018-04-25T21:45:57.647 回答