利用MRT對MODIS數據進行批量重投影+批量波段合成

寫在前面:

官方渠道已經下載不到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

 

歡迎關注個人公衆號

 

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章