A. 先进行拼接处理
1. 先新建一个DATA文件夹,并将HDF数据拷贝到该文件夹下 2. 在DATA文件夹下再新建一个Result文件夹(用于存放拼接后的数据)
3. 将以下代码内容粘贴到一个txt文件中,更改txt文件扩展名为bat即可,假设你命名该bat文件名为MODISmosaic.bat;程序导读:rem 表示开始的为注释 ;MOSAICINPUT.TXT这是程序运行时自动生成的,不用管;MRTDATADIR为你的MRT安装文件中data的路径,“c:/MRT/bin/mrtmosaic.exe”改成你的mrtmosaic.exe的安装路径。\则是因为输入数据是16天间隔的,根据你的数据进行相应修改。
rem Set the MRTDATADIR environmental var to the MRT data directory.
set MRTDATADIR=C:\\MRT\\data
set /a DAY=2011097 rem **batch data start time**
set /a DEADLINE=2011273 rem **batch data end time** :start
if úY% leq TADLINE% (goto ORDER) else exit :ORDER
rem **save the file name into a notepad** dir *úY%.*.hdf/a/b/s > MOSAICINPUT.TXT rem **execute mosaic **
rem Set the mrtmosaic.exe directory.
c:/MRT/bin/mrtmosaic.exe -i MOSAICINPUT.TXT -s \-o MOSAIC_TMP_úY%.hdf
rem **copy the result to a file and delete the input data**
copy MOSAIC_TMP_úY%.hdf Result & del MOSAIC_TMP_úY%.hdf del *úY%.*.hdf
set /a DAY= úY% + 16 goto start
4. 点击MODISmosiac.bat,即可进行拼接操作
注意:该操作数据及BAT文件须放在一个文件夹(文件夹起名请
用英文,MRT对中文路径数据会打不开)下。代码未考虑中间天数间断的情况,比如对MODIS时间分辨率为16天的数据,在一个应连续的等差数列中间有数据缺失,存在相差32天的情况,可能会报错,请注意。同时,需要备份好你的输入数据,因为程序运行中会自动删除拼接好的数据。
进行到此处则得到了初步的拼接数据,下面进行第二步
B. 再进行重投影,改格式,缩小范围
1. 新建记事本,在记事本中输入下面代码,改txt后缀为bat,定义modis.bat文件。
rem Set the MRTDATADIR environmental var to the MRT data directory.
set MRTDATADIR=C:\\MRT\\data
for %%i in (*.hdf) do C:\\MRT\\bin\\resample -p my.prm -i %%i -o %%iout.tif
其中,MRTDATADIR为你的MRT安装文件中data的路径 2. 利用MRT的图形界面工具定义投影文件
选择一期刚刚拼接好的影像,在UL Corner和LR Corner可以输入经纬度来缩小你需要的区域,设置你的保存路径以及命名(最好以日期命名,到时候程序会自动按照你的规则全部按日期命名),选择tif格式,选择你要的投影类型,点击Save Parameter File将
投影文件保存。记住:这两个文件必须和刚刚拼接后的数据放在一个文件夹中
3. 双击modis.bat执行批处理即可!
操作如图:
总的来说,就是先进行拼接得到一个hdf的临时文
件,然后在进行重投影,转格式,缩范围的操作。整个过程你只需要安装MRT即可进行,不需要再安装Cygwin模拟lunix环境,安装Cygwin很麻烦。
另外网上有小熊工具箱挺好,但是他编写的只能对
同一个tile进行长时序列的批量处理,所以遇到需要多景影像的时候可以采用此法。
PS:番茄甜土豆就是我,我为他俩代言!
相关推荐: