批量给MODIS拼接和重投影

更新时间:2024-04-26 06:56:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

A. 先进行拼接处理

1. 先新建一个DATA文件夹,并将HDF数据拷贝到该文件夹下 2. 在DATA文件夹下再新建一个Result文件夹(用于存放拼接后的数据)

3. 将以下代码内容粘贴到一个txt文件中,更改txt文件扩展名为bat即可,假设你命名该bat文件名为MODISmosaic.bat;程序导读:rem 表示开始的为注释 ;MOSAICINPUT.TXT这是程序运行时自动生成的,不用管;MRTDATADIR为你的MRT安装文件中data的路径,“c:/MRT/bin/mrtmosaic.exe”改成你的mrtmosaic.exe的安装路径。\则是因为输入数据是16天间隔的,根据你的数据进行相应修改。

rem Set the MRTDATADIR environmental var to the MRT data directory.

set MRTDATADIR=C:\\MRT\\data

set /a DAY=2011097 rem **batch data start time**

set /a DEADLINE=2011273 rem **batch data end time** :start

if úY% leq TADLINE% (goto ORDER) else exit :ORDER

rem **save the file name into a notepad** dir *úY%.*.hdf/a/b/s > MOSAICINPUT.TXT rem **execute mosaic **

rem Set the mrtmosaic.exe directory.

c:/MRT/bin/mrtmosaic.exe -i MOSAICINPUT.TXT -s \-o MOSAIC_TMP_úY%.hdf

rem **copy the result to a file and delete the input data**

copy MOSAIC_TMP_úY%.hdf Result & del MOSAIC_TMP_úY%.hdf del *úY%.*.hdf

set /a DAY= úY% + 16 goto start

4. 点击MODISmosiac.bat,即可进行拼接操作

注意:该操作数据及BAT文件须放在一个文件夹(文件夹起名请

用英文,MRT对中文路径数据会打不开)下。代码未考虑中间天数间断的情况,比如对MODIS时间分辨率为16天的数据,在一个应连续的等差数列中间有数据缺失,存在相差32天的情况,可能会报错,请注意。同时,需要备份好你的输入数据,因为程序运行中会自动删除拼接好的数据。

进行到此处则得到了初步的拼接数据,下面进行第二步

B. 再进行重投影,改格式,缩小范围

1. 新建记事本,在记事本中输入下面代码,改txt后缀为bat,定义modis.bat文件。

rem Set the MRTDATADIR environmental var to the MRT data directory.

set MRTDATADIR=C:\\MRT\\data

for %%i in (*.hdf) do C:\\MRT\\bin\\resample -p my.prm -i %%i -o %%iout.tif

其中,MRTDATADIR为你的MRT安装文件中data的路径 2. 利用MRT的图形界面工具定义投影文件

选择一期刚刚拼接好的影像,在UL Corner和LR Corner可以输入经纬度来缩小你需要的区域,设置你的保存路径以及命名(最好以日期命名,到时候程序会自动按照你的规则全部按日期命名),选择tif格式,选择你要的投影类型,点击Save Parameter File将

投影文件保存。记住:这两个文件必须和刚刚拼接后的数据放在一个文件夹中

3. 双击modis.bat执行批处理即可!

操作如图:

总的来说,就是先进行拼接得到一个hdf的临时文

件,然后在进行重投影,转格式,缩范围的操作。整个过程你只需要安装MRT即可进行,不需要再安装Cygwin模拟lunix环境,安装Cygwin很麻烦。

另外网上有小熊工具箱挺好,但是他编写的只能对

同一个tile进行长时序列的批量处理,所以遇到需要多景影像的时候可以采用此法。

PS:番茄甜土豆就是我,我为他俩代言!

本文来源:https://www.bwwdw.com/article/4n3p.html

Top