1. 程式人生 > >MRT(MODIS Reprojection Tool)安裝、影像批量拼接、重投影和格式轉換

MRT(MODIS Reprojection Tool)安裝、影像批量拼接、重投影和格式轉換

一、安裝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第一條標準緯線27,STDPR2第二條標準緯線為45,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)

pause

goto start


:ORDER2


set /a DAY=%DAY% + 1000 - 368

set /a DAY1=1

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中執行看是否報錯)或見上一段的注意事項。