【新手入门,学习存档,禁搬,侵删】
感谢互联网!
代码参考:
①https://blog.csdn.net/qq_41718357/article/details/88776377
②https://blog.csdn.net/good_learner_1/article/details/103414514 (非常重要)
③https://blog.csdn.net/gisboygogogo/article/details/75784080
步骤:
(1)下载安装MRT:在第②个链接里有MRT的安装包链接,安装方法见链接③
(2)批量拼接(下面是拼接一年的代码,多年批量拼接的代码在最后):
① 将同一年的hdf数据放到一个文件夹里(此处是yr2001),新建一个result文件夹用来存放拼接后的文件。注意拼接完成后原文件就删除了,所以要做好备份。
② 文件夹内新建txt文档,将如下代码复制进去(参考链接①&②),修改相应的内容,后缀名改为bat。务必将bat文件和hdf文件、result文件夹放在一起,双击bat文件运行即可。
亲测可用代码:
set MRTDATADIR=D:\MOD10A2\yr2001
set /a DAY=2001001 rem ***开始日期***
set /a DEADLINE=2001361 rem ***结束日期***
:start
if %DAY% leq %DEADLINE% (goto ORDER) else exit
:ORDER
rem **将当天的图幅数据文件名放在一个TXT文件中**
dir *%DAY%.*.hdf/a/b/s > MOSAICINPUT.TXT
rem **拼接HDF2种数据中的第二种**
d:/MRT/bin/mrtmosaic.exe -i MOSAICINPUT.TXT -s "0 1" -o MOSAIC_TMP_%DAY%.hdf
rem **将拼接后数据复制到已建Result 文件夹中并删除当天的数据**
copy MOSAIC_TMP_%DAY%.hdf Result & del MOSAIC_TMP_%DAY%.hdf
del *%DAY%.*.hdf
set /a DAY= %DAY% + 8 rem ***拼接下一个时相的数据***
goto start
说明:
(3)拼接后的数据进行投影、重采样
① 双击打开D:\MRT\bin(MRT的安装目录)中的 ModisTool.bat,按照下图生成prm文件(设置投影、重采样、转格式都在这步进行)。
② 把拼接之后的hdf文件、prm文件都放在一个文件夹,在这个文件夹内新建txt文件,将下面代码粘贴进去(参考链接①&②),保存为bat,双击即可使用代码运行prm文件。
亲测可用代码:
set unknow_wgs.bat=D:\MOD10A2\yr2000\result
for %%i in (*.hdf) do D:\MRT\bin\resample.exe -p unknow_wgs.prm -i %%i -o %%iout.tif
pause
说明:
成功得到tif文件!
补充 :可以直接进行多年拼接的代码(仍然是参考链接②,主要是做了一些备注,方便理解)
亲测可用代码:
set MRT_DATA_DIR=D:\MOD10A2MAX
set /a DAY=2001009
set /a DAY1=9
set /a DEADLINE=2019361
:start
if %DAY% leq %DEADLINE% (goto ORDER1) else exit
:ORDER1
if %DAY1% leq 361 (goto ORDER)
:ORDER
dir *%DAY%.*.hdf/a/b/s > MOSAICINPUT.TXT
d:/MRT/bin/mrtmosaic.exe -i MOSAICINPUT.TXT -s "1 0" -o MOSAIC_TMP_%DAY%.hdf
copy MOSAIC_TMP_%DAY%.hdf Result & del MOSAIC_TMP_%DAY%.hdf
del *%DAY%.*.hdf
set /a DAY1= %DAY1% + 8
set /a DAY= %DAY% + 8
if %DAY1% leq 361 (goto ORDER1) else (goto ORDER2)
pause
goto start
:ORDER2
set /a DAY=%DAY% - 8 + 640
set /a DAY1=1
goto start
说明: