寫在前面:
官方渠道已經下載不到MRT了,爲什麼呢?因爲根本不需要使用MRT,可以直接下載處理好的MODIS:
詳見:
https://mp.weixin.qq.com/s/HkKdap1rcpGidftXsuUbRQ
MRT下載:
https://pan.baidu.com/s/1_pDwv2lghAzTpaLGv7IcOw
提取碼:reyg
MRT安裝:
1、解壓(其中mrt文件是我自己建的,後面將會安裝到此文件下)
2、點擊mrt.install.bat.並按任意鍵繼續。
出現如下界面
選擇一個路徑進行安裝
- 本文選擇E:\ModisTools\MRT
- 選擇Windows版本:1
- 本文默認你已經安裝了java.此時找到你的java.exe的所在路徑。
- 本文爲:
- 重啓電腦,開始使用。
可將mrt\bin文件夾下的ModisTool.bat文件發送到桌面快捷方式。雙擊即可使用。
利用MRT對MODISs數據進行批量自動重投影。
批處理代碼:
三行代碼寫在文本文裏件並另存爲成 .bat 文件
set modistool.bat =放modis數據的路徑
for %%i in (*hdf)do resample -p my.prm -i %%i -o %%iout.tif
pause
注:my.prm爲在MRT端加載一景MODIS影像設置 的參數保存爲 .prm
最後把prm、modis數據、三行代碼的bat文件都放在“放modis數據的文件下”
如圖:
雙擊bat即可批處理。搗鼓了一天,lsd.
處理完之後會發現DATA文件夾下多了投影后的波段數據。
那麼針對上述文件一個個波段組合(layer stacking)是不是很麻煩呢?
寫給和我一樣的小白:
下面再分享一下自己從網上找,然後根據自己的數據進行調試,親測可用的批量波段合成代碼
pro band_envi_layer_stacking_doit_test
compile_opt idl2
envi,/restore_base_save_files
envi_batch_init,log_file='batch.txt'
Filesnames = 'G:\MODIS\20167MOD09A1\189\' ;替換成自己的文件所在路徑
Files_arr = file_search(Filesnames, '*', COUNT = count)
Bandnum = 6
filesnum = count/Bandnum
for num=0, filesnum-1 do begin
inputfiles = strarr(Bandnum)
inputfiles[0]=Files_arr[num*Bandnum+2] ;b3
inputfiles[1]=Files_arr[num*Bandnum+3] ;b4
inputfiles[2]=Files_arr[num*Bandnum] ;b1
inputfiles[3]=Files_arr[num*Bandnum+1] ;b2
inputfiles[4]=Files_arr[num*Bandnum+4] ;b6
inputfiles[5]=Files_arr[num*Bandnum+5] ;b7 我把b5刪除了
out_name = STRMID(inputfiles[0],0,42)
fids=lonarr(n_elements(inputfiles))
dimses=lonarr(5,n_elements(inputfiles))
poses=lonarr(n_elements(inputfiles))
for i=0,n_elements(inputfiles)-1 do begin
envi_open_file,inputfiles[i],r_fid=fids1
envi_file_query,fids1,ns=ns,nl=nl,nb=nb
fids[i]=fids1
dimses[0,i]=[-1,0,ns-1,0,nl-1]
proj=envi_get_projection(fid=fids,pixel_size=out_ps)
endfor
envi_doit,'envi_layer_stacking_doit',$
fid=fids,pos=poses,dims=dimses,$
out_dt=2,out_name=out_name,$
interp=2,out_ps=out_ps,$
out_proj=proj,r_fid=r_fid
endfor
end
歡迎關注個人公衆號