MODIS数据批量拼接、投影、重采样

利用MRT和windows的批处理工具提取NDVI我已经很熟练了,但是提取其他波段频频翻车,后来找到了这个方法,原文找不到了,感谢这位同学的细心记录。

https://www.jianshu.com/p/eefc3599cb9c

步骤:

1. 下载安装MRT(这个比较简单)

2.批量拼接

2.1 将同一年的数据放在一个文件夹X中,新建一个result文件夹来存放拼接后的文件(代码中是拼接完就把源文件删除啦,注意备份)

2.2 文件夹X内新建txt文档,复制代码,根据自己的数据修改代码,然后将txt的后缀修改为bat。注意:bat 和 hdf 以及result文件夹都在 X之下,然后点击bat文件即可开始拼接。

代码:

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


代码说明和修改方法

3. 拼接后重采样

3.1 生成prm文件


mrt生成prm文件的一些注意

3.2 将拼接后的hdf 、prm 放在同一个文件夹之内,新建txt,粘贴代码,修改后缀为bat,双击即可。

代码:

set MRT_DATA_DIR=D:\2019

for %%i in (*.hdf) do C:/MRT/bin/resample.exe -p 2000mrttest.prm -i %%i -o %%iout.tif

pause


--------------

多年拼接的代码:

set MRT_DATA_DIR=d:\aaamoment

set /a DAY=2001065

set /a DAY1=337   

set /a DEADLINE=2003353 

: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

C:/MRT/bin/mrtmosaic.exe -i MOSAICINPUT.TXT -s "0 0 0 0 0 0 0 0 0 0 0 1" -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)

goto start

:ORDER2

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

set /a DAY1=1

goto start


代码修改事项

--------------------------------------------

以前采用windws 的cmd命令来完成拼接和格式转换,采用上述方法完成第一部分拼接和波段提取之后就不可以用cmd命令进行后续处理,否则会报错找不到HDF文件 ,噢,对了,投影和重采样的过程依旧除了prm和hdf之外,还需要红框这俩:


这俩在MRT的安装目录之下,比如我的就是这里:C:\MRT\data 

-------------over-----------------

你可能感兴趣的:(MODIS数据批量拼接、投影、重采样)