美文网首页遥感水文
MODIS数据拼接、投影、重采样

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

作者: 无语是我不懂_ | 来源:发表于2020-07-19 11:27 被阅读0次

    【新手入门,学习存档,禁搬,侵删】

    感谢互联网!

    代码参考:

    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:在第②个链接里有MRT的安装包链接,安装方法见链接③
    (2)批量拼接(下面是拼接一年的代码,多年批量拼接的代码在最后):
    ① 将同一年的hdf数据放到一个文件夹里(此处是yr2001),新建一个result文件夹用来存放拼接后的文件。注意拼接完成后原文件就删除了,所以要做好备份。
    ② 文件夹内新建txt文档,将如下代码复制进去(参考链接①&②),修改相应的内容,后缀名改为bat。务必将bat文件和hdf文件、result文件夹放在一起,双击bat文件运行即可。


    亲测可用代码:

    set MRTDATADIR=D:\MOD10A2\yr2001
    set /a DAY=2001001        rem ***开始日期***
    set /a DEADLINE=2001361  rem ***结束日期***
    :start
    if %DAY% leq %DEADLINE% (goto ORDER) else exit
    :ORDER
    rem **将当天的图幅数据文件名放在一个TXT文件中**
    dir *%DAY%.*.hdf/a/b/s > MOSAICINPUT.TXT
    rem **拼接HDF2种数据中的第二种**
    d:/MRT/bin/mrtmosaic.exe -i MOSAICINPUT.TXT -s "0 1" -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% + 8  rem ***拼接下一个时相的数据***
    goto start
    

    说明:

    文件存放 代码说明 结果文件

    (3)拼接后的数据进行投影、重采样
    ① 双击打开D:\MRT\bin(MRT的安装目录)中的 ModisTool.bat,按照下图生成prm文件(设置投影、重采样、转格式都在这步进行)。

    软件界面说明
    ② 把拼接之后的hdf文件、prm文件都放在一个文件夹,在这个文件夹内新建txt文件,将下面代码粘贴进去(参考链接①&②),保存为bat,双击即可使用代码运行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文件

    补充 :可以直接进行多年拼接的代码(仍然是参考链接②,主要是做了一些备注,方便理解)

    亲测可用代码:

    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
    

    说明:

    代码说明

    相关文章

      网友评论

        本文标题:MODIS数据拼接、投影、重采样

        本文链接:https://www.haomeiwen.com/subject/xuuekktx.html