如何使用此 R 函数对相同的 HDF 文件进行拼接?
How to mosaic the same HDF files using this R function?
一个文件夹中有 1,000 多张 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
我将使用此功能对它们进行镶嵌 (source of function ):
mosaicHDF(hdfNames, filename, MRTpath, bands_subset, delete=FALSE)
我应该如何将我的 HDF 文件引入 hdfNames?
我应该在文件名中写什么?
我试图找到这个功能的手册,但没有任何东西。
感谢您的帮助。
幸运的是,我确实找到了答案。感谢您的帮助。
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 很陌生。
这个问题很老了,但我想我会 post 增加 Canada2015 要求的 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)
}
一个文件夹中有 1,000 多张 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
我将使用此功能对它们进行镶嵌 (source of function ):
mosaicHDF(hdfNames, filename, MRTpath, bands_subset, delete=FALSE)
我应该如何将我的 HDF 文件引入 hdfNames?
我应该在文件名中写什么?
我试图找到这个功能的手册,但没有任何东西。
感谢您的帮助。
幸运的是,我确实找到了答案。感谢您的帮助。
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 很陌生。
这个问题很老了,但我想我会 post 增加 Canada2015 要求的 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)
}