目录

  • Python代码
  • 注意
  • 参考

Python代码

本文示例为处理MOD11_L2数据,提取数据中的QC和LST图层的代码:

# -*- coding: utf-8 -*-
"""
调用HEG相关工具批处理MODIS数据
"""
import os# 设置HEG相关环境变量
os.environ['MRTDATADIR'] = 'D:\\HEGtools\\HEG_Win\\data'
os.environ['PGSHOME'] = 'D:\\HEGtools\\HEG_Win\\TOOLKIT_MTD'
os.environ['MRTBINDIR'] = 'D:\\HEGtools\\HEG_Win\\bin'# 设置HEG的bin路径
hegpath = 'D:\\HEGtools\\HEG_Win\\bin'
# 指定处理模块的可执行程序文件路径,此处采用swtif.exe,可以根据具体的处理问题设置
hegdo = os.path.join(hegpath, 'swtif.exe')# 指定输入数据的路径
inpath = r'D:\MODIS\testin'
# 指定输出数据的路径
outpath = r'D:\MODIS\testout'
# os.chdir(inpath) #改变当前工作目录到输入数据目录# 获取当前文件夹下的所有hdf文件
allfiles = os.listdir(inpath)
allhdffiles = []
for eachfile in allfiles:if os.path.splitext(eachfile)[1] == '.hdf':allhdffiles.append(eachfile)
print('--'*20)
print('文件数量为:', len(allhdffiles), ',所有hdf文件如下')
print('  '+'\n  '.join(allhdffiles))
print('--'*20)# prm文件设置模块,需要首先在HEG工具中生成一个参考的prm文件,示例如下
# 设置prm文件存储路径
prmpath = r"D:\MODIS\testin"
#prmpath = prmpath.replace('\\', '/')
for eachhdf in allhdffiles:prm = ['NUM_RUNS = 2\n','BEGIN\n','INPUT_FILENAME = ' + inpath+'/'+eachhdf+'\n','OBJECT_NAME = MOD_Swath_LST\n','FIELD_NAME = QC|\n','BAND_NUMBER = 1\n','OUTPUT_PIXEL_SIZE_X = 0.014441\n','OUTPUT_PIXEL_SIZE_Y = 0.009046\n','SPATIAL_SUBSET_UL_CORNER = ( 61.485413 -12.8604 )\n','SPATIAL_SUBSET_LR_CORNER = ( 39.5896 27.465942 )\n','RESAMPLING_TYPE = NN\n','OUTPUT_PROJECTION_TYPE = GEO\n','ELLIPSOID_CODE = DEFAULT\n','OUTPUT_PROJECTION_PARAMETERS = ( 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0  )\n','OUTPUT_FILENAME = ' + outpath+'/'+eachhdf[0:-4]+'_MOD_Swath_QC.tif\n','OUTPUT_TYPE = GEO\n','END\n''BEGIN\n','INPUT_FILENAME = ' + inpath + '/' + eachhdf + '\n','OBJECT_NAME = MOD_Swath_LST\n','FIELD_NAME = LST|\n','BAND_NUMBER = 1\n','OUTPUT_PIXEL_SIZE_X = 0.014441\n','OUTPUT_PIXEL_SIZE_Y = 0.009046\n','SPATIAL_SUBSET_UL_CORNER = ( 61.485413 -12.8604 )\n','SPATIAL_SUBSET_LR_CORNER = ( 39.5896 27.465942 )\n','RESAMPLING_TYPE = NN\n','OUTPUT_PROJECTION_TYPE = GEO\n','ELLIPSOID_CODE = DEFAULT\n','OUTPUT_PROJECTION_PARAMETERS = ( 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0  )\n','OUTPUT_FILENAME = ' + outpath + '/' + eachhdf[0:-4] + '_MOD_Swath_LST.tif\n','OUTPUT_TYPE = GEO\n','END\n']prmfilename = prmpath + '\\' + eachhdf[0:-4]+'.prm'# 这里一定要注意,设定换行符为‘\n’,否则由于在windows系统下默认换行符为‘\r\n’,则无法运行成功fo=open(prmfilename,'w',newline='\n')fo.writelines(prm)fo.close()for eachhdf in allhdffiles:prmfilepath = prmpath + '\\' + eachhdf[0:-4] + '.prm'try:resamplefiles = '{0} -P {1}'.format(hegdo, prmfilepath)os.system(resamplefiles)print(eachhdf + ' has finished')except:# 提示错误信息print(eachhdf + 'was wrong')

注意

需要修改的部分为

  1. 全部路径
  2. prm文件的设置内容

参考

代码参考:https://www.cnblogs.com/yhpan/p/12324465.html
关于路径中的“\\”解释参考:https://blog.csdn.net/databatman/article/details/49453953

Python调用HEG批量转换hdf影像为tiff相关推荐

  1. python 调用HEG工具批量处理modis数据将hdf转为tif

    python 调用HEG工具批量处理modis数据将hdf转为tif 搞了2.3天才搞定,在这里做个记录,希望 可以帮到需要的朋友. HEG工具安装需要的准备工作: 一.. JAVA安装. 电脑上没有 ...

  2. python调用everything批量查找表格中的文件名在磁盘中是否存在

    python调用everything批量查找表格中的文件名在磁盘中是否存在 介绍 Everything 配置 使用openpyxl读写文件 读文件 写文件 BeautifulSoup的使用 创建 be ...

  3. python调用js批量爆破账号密码

    python调用js批量爆破账号密码 前言 流程 爬取账号 爆破 参考文章 前言 在进行默认弱口令爆破的时候遇到了使用js对账号密码加密,而且加密算法写的比较复杂,如果用python重新写一个加密算法 ...

  4. Python学习:批量转换图片格式-PNG转JPG

    个人微信公众号:AI研习图书馆,欢迎关注~ 深度学习知识及资源分享,学习交流,共同进步~ 1. 介绍 Python代码:批量将PNG格式图片转换为JPG图片格式,即PNG转JPG格式. 2. Pyth ...

  5. 【ArcGIS遇上Python】ArcGIS批量处理栅格影像(NDVI)归一化完整案例代码

    文章<ArcGIS栅格影像(NDVI)归一化处理的两种方法精解>详细介绍了ArcGIS中进行NDVI影像归一化处理的两种方法,但是无法批量进行,本文就放大招用Python实现批量NDVI归 ...

  6. python多层遍历批量转换PPT为PDF

    Python多层遍历转换PPT为PDF 1. 需求分析 2. 环境配置 3. PPT转为PDF 4.文件夹遍历 5. 总程序 参考资料 1. 需求分析 因为Mac制作的PPT在一些Windows电脑打 ...

  7. win10:dos调用ffmpeg批量转换视频格式

    简介:在某些特定场景中,测试数据的输入有格式要求,例如需要将目录下所有3gp文件转成mp4,那么我们可以通过dos命令操作ffmpeg进行转换,其他场景以此类推. 相关攻略: 利用ffmpeg将avi ...

  8. python实现文件格式批量转换,PNG,JPG,PGM(娱乐项)

    用python实现文件夹下的成批文件格式转换(娱乐项) 我们对于文件转换的需求很大,甚至于对于图片的格式,JPG和PNG格式在肉眼看来都没什么差别,但是对于计算机而言,它有时候就只接受这些肉眼看起来差 ...

  9. python 经纬度 地址批量转换

    # coding=utf-8import csv import requests import json import pandas as pd import re num=0 y=[] ''' 在u ...

最新文章

  1. Exp1 PC平台逆向破解(5)M
  2. Tkinter的事件绑定
  3. 策略模式在jdk Arrays 中使用
  4. 让AI自动调参,才是百度无人车的进化方式:适应环境全靠自己 | 论文
  5. awakeFromNib 与 viewDIdLoad 自己小结
  6. 4月24 利用shell脚本添加环境变量
  7. 税务会计实务【19】
  8. 【参赛作品101】充实openGauss每日一练21天学习完成大总结
  9. command not found: npm
  10. 【MySQL数据库设计与应用(四)】视图
  11. 鼠标失灵,但鼠标和USB接口都是好的的情况。
  12. Related Problems
  13. Http免费升级Https详细步骤【Let's Encrypt】
  14. C# Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
  15. linux中的帮助命令man,help
  16. oracle stdevp函数,plsql和tsql常用函数比对
  17. 多功能计算机使用教程,腾讯tim使用教程计算机应用知识
  18. 安卓开发实现俄罗斯方块游戏
  19. 图灵奖得主Yann LeCun的六十年
  20. EOS智能合约开发系列(15): N与name

热门文章

  1. OpenGL 凹凸贴图实例
  2. 使用RX方式模拟DoubanFm的登陆
  3. Introduce myself
  4. Windows Azure Active Directory (1) 前言 - 基于声明的验证和授权
  5. docker教程视频教程下载
  6. Python3简单爬虫:爬取猫眼评分top100电影
  7. QAOA如何在NISQ处理器中展示应用级量子优势?
  8. python怎么计算百分比_python计算两个数的百分比方法
  9. 利用Deskpool 搭建 桌面云教室
  10. 拆解易鑫2020:担保服务收入猛增,助贷业务营收占比超三成