MODIS MRT安装、影像批处理投影及拼接
注:本文是作者上学期间科研工作需要所总结,原文发表在QQ个人空间,因工作若干年后还有同学需要做类似工作,公开至此处,便于更多人检索到。
作者:Sinsonglew 出处:http://www.cnblogs.com/sinsonglew 欢迎转载,也请保留这段声明。thanks :)
1 MRT工具的安装
检查自己的电脑上是否已安装java.exe(搜索java.exe即可,当然也可不检查,重新安装一份),在WINDOWS平台下,JAVA.虚拟机的安装路径及MRT的安装路径不宜包含空格。
在WINDOWS平台下的安装过程中,输入路径名注意斜杠“\”应改为“/”,比如 c:\Modis must be entered as c:/Modis.
安装MRT之前需要先安装JAVA虚拟机,因为安装MRT的过程中会提示输入java.exe的路径。
2 MRT工具的使用及批处理操作
2.1 界面操作
安装完毕之后,打开MRT的安装路径文件夹,打开bin文件夹,找到ModisTool.bat,创建该文件的快捷方式到桌面,双击快捷方式便进入MRT的GUI界面(见Fig.1)。
Fig.1中,对MODIS MYD13Q1数据,选择输出EVI 、NDVI两个数据,指定输出路径输出文件格式为GEOTIFF,采样方式为最近邻,投影类型为UTM,输出像元大小为250m,然后直接点击run就可以了。
Fig.1 MRT GUI界面
2.2 批处理投影
见Fig.1中红色椭圆圈定部分,设定一个HDF文件投影变换的参数后,点击“Save Parameter File…”保存自己设定的参数文件,假设为head.prm。
新建一个记事本文件,将下面的内容粘贴进去,需更改几处。更改完毕之后,将记事本文件另存为“.bat”文件,假设为“modis.bat”。
rem Set the MRTDATADIR environmental var to the MRT data directory. rem ********************************************************** rem rem replace "c:\Modis\data" to your own MRTDATADIR setuped" rem please refer to "ModisTool.bat",right key and choose "Edit" and you'll get "MRTDATADIR" rem *********************************************************** set MRTDATADIR=c:\Modis\data rem ********************************************************** rem rem change head.prm to your own .prm file, then it's ok! rem if somethings wrong, change resample to full path. i.e. rem " for %%i in (*.hdf) do resample -p head.prm -i %%i -o %%iout.tif " rem to "for %%i in (*.hdf) do C:\Modis\bin\resample.exe -p head.prm -i %%i -o %%iout.tif" rem rem *********************************************************** for %%i in (*.hdf) do resample -p head.prm -i %%i -o %%iout.tif
以上内容可粘贴到自己的记事本文件中,注意红色字体部分为需要改动部分。蓝色字体部分为注意内容。REM为注释的意思,其后所注内容可删去。
新建一个文件夹,假设起名为DATA,,将head.prm,modis.bat, 所有MODIS HDF数据放在该文件夹下,双击modis.bat,便可看到命令窗口的批出理过程,如发生异常,参见该节中蓝色内容。
2.3 批处理拼接
备注:该操作数据及BAT文件须放在一个文件夹(文件夹起名请用英文,MRT对中文路径数据会打不开)下。
操作步骤:
1:新建一个DATA文件夹,将HDF数据拷到DATA文件夹下;
2:在DATA文件夹下再新建个Result文件夹(存放拼接后数据);
3:将以下代码内容粘到一个TXT文件中(下文代码绿色字体内容为代码注释内容,请删去),更改TXT文件扩展名为BAT即可,假设你命名该BAT文件名为MOSAIC.BAT;
4:点击MOSAIC.BAT,即可进行拼接操作,如有问题,请参见"2.2 批处理投影"中提示的注意内容。
PS: 以下代码未考虑中间天数间断的情况,比如对MODIS时间分辨率为16天的数据,在一个应连续的等差数列中间有数据缺失,存在相差32天的情况,可能会报错,请注意。
set MRTDATADIR=c:\Modis\data set /a DAY=2009257 rem ***开始日期*** set /a DEADLINE=2009273 rem ***结束日期*** :start if %DAY% leq %DEADLINE% (goto ORDER) else exit :ORDER rem **将当天的图幅数据文件名放在一个TXT文件中** dir *%DAY%.*.hdf/a/b/s > MOSAICINPUT.TXT rem **拼接HDF12种数据中的第一种** c:/Modis/bin/mrtmosaic.exe -i MOSAICINPUT.TXT -s "1 0 0 0 0 0 0 0 0 0 0 0" -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% + 16 rem ***拼接下一个时相的数据*** goto start