注:本文是作者上學期間科研工作需要所總結,原文發表在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