MODIS數(shù)據(jù)拼接、投影、重采樣

【新手入門,學(xué)習(xí)存檔,禁搬,侵刪】

感謝互聯(lián)網(wǎng)!

代碼參考:

https://blog.csdn.net/qq_41718357/article/details/88776377

https://blog.csdn.net/good_learner_1/article/details/103414514 (非常重要)

https://blog.csdn.net/gisboygogogo/article/details/75784080

步驟:

(1)下載安裝MRT:在第②個(gè)鏈接里有MRT的安裝包鏈接,安裝方法見鏈接③
(2)批量拼接(下面是拼接一年的代碼,多年批量拼接的代碼在最后):
① 將同一年的hdf數(shù)據(jù)放到一個(gè)文件夾里(此處是yr2001),新建一個(gè)result文件夾用來存放拼接后的文件。注意拼接完成后原文件就刪除了,所以要做好備份。
② 文件夾內(nèi)新建txt文檔,將如下代碼復(fù)制進(jìn)去(參考鏈接①&②),修改相應(yīng)的內(nèi)容,后綴名改為bat。務(wù)必將bat文件和hdf文件、result文件夾放在一起,雙擊bat文件運(yùn)行即可。


親測可用代碼:

set MRTDATADIR=D:\MOD10A2\yr2001
set /a DAY=2001001        rem ***開始日期***
set /a DEADLINE=2001361  rem ***結(jié)束日期***
:start
if %DAY% leq %DEADLINE% (goto ORDER) else exit
:ORDER
rem **將當(dāng)天的圖幅數(shù)據(jù)文件名放在一個(gè)TXT文件中**
dir *%DAY%.*.hdf/a/b/s > MOSAICINPUT.TXT
rem **拼接HDF2種數(shù)據(jù)中的第二種**
d:/MRT/bin/mrtmosaic.exe -i MOSAICINPUT.TXT -s "0 1" -o MOSAIC_TMP_%DAY%.hdf
rem **將拼接后數(shù)據(jù)復(fù)制到已建Result 文件夾中并刪除當(dāng)天的數(shù)據(jù)**
copy MOSAIC_TMP_%DAY%.hdf  Result & del MOSAIC_TMP_%DAY%.hdf
del *%DAY%.*.hdf
set /a DAY= %DAY% + 8  rem ***拼接下一個(gè)時(shí)相的數(shù)據(jù)***
goto start

說明:

文件存放
代碼說明
結(jié)果文件

(3)拼接后的數(shù)據(jù)進(jìn)行投影、重采樣
① 雙擊打開D:\MRT\bin(MRT的安裝目錄)中的 ModisTool.bat,按照下圖生成prm文件(設(shè)置投影、重采樣、轉(zhuǎn)格式都在這步進(jìn)行)。

軟件界面說明

② 把拼接之后的hdf文件、prm文件都放在一個(gè)文件夾,在這個(gè)文件夾內(nèi)新建txt文件,將下面代碼粘貼進(jìn)去(參考鏈接①&②),保存為bat,雙擊即可使用代碼運(yùn)行prm文件。
親測可用代碼:

set unknow_wgs.bat=D:\MOD10A2\yr2000\result
for %%i in (*.hdf) do D:\MRT\bin\resample.exe -p unknow_wgs.prm -i %%i -o %%iout.tif
pause

說明:

文件說明

成功得到tif文件!
得到tif文件

補(bǔ)充 :可以直接進(jìn)行多年拼接的代碼(仍然是參考鏈接②,主要是做了一些備注,方便理解)

親測可用代碼:

set MRT_DATA_DIR=D:\MOD10A2MAX
set /a DAY=2001009
set /a DAY1=9
set /a DEADLINE=2019361
:start
if %DAY% leq %DEADLINE% (goto ORDER1) else exit
:ORDER1
if %DAY1% leq 361 (goto ORDER)
:ORDER
dir *%DAY%.*.hdf/a/b/s > MOSAICINPUT.TXT
d:/MRT/bin/mrtmosaic.exe -i MOSAICINPUT.TXT -s "1 0" -o MOSAIC_TMP_%DAY%.hdf
copy MOSAIC_TMP_%DAY%.hdf  Result & del MOSAIC_TMP_%DAY%.hdf
del *%DAY%.*.hdf
set /a DAY1= %DAY1% + 8
set /a DAY= %DAY% + 8
if %DAY1% leq 361 (goto ORDER1) else (goto ORDER2)
pause
goto start
:ORDER2
set /a DAY=%DAY% - 8 + 640
set /a DAY1=1
goto start

說明:

代碼說明

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容