本文首发于https://www.cnblogs.com/orchidLan/p/7210448.html。
一、安装MRT(MODIS Reprojection Tool)
安装准备:检查是否安装java.exe。Java版本至少为Java 2 Runtime Environment version 1.5或者是Java 2 SDK version 1.5或者更高的版本。在Windows平台中可以通过开始/搜索并输入java.exe来检查自己的电脑是否安装有java,也可以不检查直接重新安装一份。
解压安装包MRT_download_<platform>.zip。包含四个文件:mrt_install.bat,MRT_<platform>.zip,reg_set.exe, 以及unzip.exe。
双击mrt_install.bat,并按提示完成安装。
注:下载地址为https://lpdaac.usgs.gov/tools/modis_reprojection_tool,要先注册账号才能下载,注册的时候最好用国外邮箱,如雅虎什么的,反正QQ,163邮箱收不到验证链接。
二、使用MRT(MODIS Reprojection Tool)
(一)GUI界面操作
安装完成后,打开MRT的安装路径文件夹,打开bin文件夹,双击ModisTool.bat或者ModisTool.jar即可进 入MRT的GUI界面。
输入MODIS数据,选择输出NDVI和EVI,指定输出路径输出文件格式为GEOTIFF,采样方式为最近邻,投影类型为Albers Equal Erea,输出像元大小为250m,然后直接点击run就可以了。其中,投影参数设置见下图(STDPR1第一条标准纬线25,STDPR2第二条标准纬线为47,CentMer中央经线为105,datum基准面WGS84):
(二)批处理拼接之一年以内的数据
备注:该操作数据及BAT文件须放在一个文件夹下(文件夹起名请用英文,MRT对中文路径数据会打不开)。
操作步骤:
1.新建一个DATA文件夹,将HDF数据拷到DATA文件夹下;
2.在DATA文件夹下再新建个Result文件夹(存放拼接后数据);
3.将以下代码内容粘到一个TXT文件中,更改TXT文件扩展名为BAT即可,假设你命名该BAT文件名为MOSAIC.BAT;
4:点击MOSAIC.BAT,即可进行拼接操作。
注意:第一行代码里,把MRTDATADIR替换为你自己的MRTDATADIR名称,MRTDATADIR名称可以在安装目录里,找到ModisTool.bat,然后右键选择编辑中查看;
此外以下代码未考虑中间天数间断的情况,比如对MODIS时间分辨率为16天的数据,在一个应连续的等差数列中间有数据缺失,存在相差32天的情况,可能会报错,请注意。
set MRTDATADIR=f:\MOD_HDE_SOURCE
set /a DAY=2000049 rem ***开始日期***
set /a DEADLINE=2000353 rem ***结束日期***
:start
if %DAY% leq %DEADLINE% (goto ORDER) else exit
:ORDER
rem **将当天的图幅数据文件名放在一个TXT文件中**
dir *%DAY%.*.hdf/a/b/s > MOSAICINPUT.TXT
rem **拼接HDF12种数据中的第一种**
d:/software_install/MRT/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
(三)批处理拼接之多年的数据
以上代码只能处理一年之内或者每隔一年的数据,如果要一次性处理多年的数据,则参见以下的代码
set MRT_DATA_DIR=f:\MOD_HDF_SOURCE
set /a DAY=2015337
set /a DAY1=337
set /a DEADLINE=2016353
:start
if %DAY% leq %DEADLINE% (goto ORDER1) else exit
:ORDER1
if %DAY1% leq 353 (goto ORDER)
:ORDER
dir *%DAY%.*.hdf/a/b/s > MOSAICINPUT.TXT
d:/software_install/MRT/bin/mrtmosaic.exe -i MOSAICINPUT.TXT -s "1 0 0 0 0 0 0 0 0 0 0 0" -o MOSAIC_TMP_%DAY%.hdf
copy MOSAIC_TMP_%DAY%.hdf Result & del MOSAIC_TMP_%DAY%.hdf
del *%DAY%.*.hdf
set /a DAY1= %DAY1% + 16
set /a DAY= %DAY% + 16
if %DAY1% GTR 357 (goto ORDER2)
rem pause
goto start
:ORDER2
set /a DAY=%DAY% + 1000 - 368
set /a DAY1=1
rem pause
goto start
(四)批处理重投影及格式转换
新建一个文件夹,假设起名为DATA,把所有要处理的MODIS HDF文件放到该文件夹下;
在GUI界面中,设定一个HDF文件投影参数后,点击“Save Parameter File…”保存自己设定的参数文件到DATA文件夹下,假设为test.prm;
在DATA文件夹里,新建一个记事本文件,将下面的内容粘贴进去,需更改几处。更改完毕之后,将记事本文件另存为“.bat”文件,假设为“modis.bat”;
set MRT_DATA_DIR=f:\MOD13Q1_REPROJECTION
for %%i in (*.hdf) do resample.exe -p albers_equal_area_orchid.prm -i %%i -o %%iout.tif
pause
其中,
第一行代码里,把MRT_DATA_DIR替换为你自己的MRT_DATA_DIR名称,MRT_DATA_DIR名称可以在安装目录里,找到ModisTool.bat,然后右键选择编辑中找到;
第二行代码里,把test.prm替换为自己的投影参数文件,如果运行出错的话,可以把resample替换为其完整的路径,如D:\software_install\MRT\bin\resample.exe;
第三行代码为运行完成后保留bat运行窗口,如果出现错误,可参见bat窗口的提示,将安装目录下的datum.txt和spheroid.txt文件复制到DATA文件夹里;
双击modis.bat,便可看到命令窗口的批出理过程,如发生异常,检查prm的参数是否设置正确(可在GUI中运行看是否报错)或见上一段的注意事项。