下面的代码主要用于使用python语言调用NASA官方的MODIS处理工具HEG进行投影坐标转换与重采样批量处理
主要参考
- HEG的用户手册:https://newsroom.gsfc.nasa.gov/sdptoolkit/HEG/HEG215/EED2-TP-030_Rev01_HEG_UsersGuide_2.15.pdf
- HEG批处理帮助:https://newsroom.gsfc.nasa.gov/sdptoolkit/HEG/HEG_Batch_job_Help.htm
主要的注意事项如下:
- 首先按照官方指南安装HEG工具,具体安装步骤可参考我的上篇博客:https://www.cnblogs.com/yhpan/p/11298595.html
- 根据HEG用户手册批量生成批处理参数文件,可以在HEG工具中生成一个文件,拿来自己改改用用
- 具体调用哪一个工具,参数文件如何写,请一定仔细阅读用户手册,东西全都在上面。一般常用的是resample.exe和swtif.exe,如果实在无法判断可以先用HEG的GUI处理一个自己的数据,保存一个prm文件,然后根据这个文件中的参数,对照着用户手册一个一个的找,就可以了。
- 生成参数文件写入时一定要注意,设定换行符为‘\n',fo=open(prmfilename,'w',newline='\n'),否则由于在windows系统下默认换行符为‘\r\n',程序无法运行成功
下面是源码分享
# -*- coding: utf-8 -*- """ Created on Sun Feb 16 11:27:19 2020 调用HEG相关工具批处理MODIS数据,主要完成投影坐标转换与重采样 @author: pan """ import os # 设置HEG相关环境变量 os.environ['MRTDATADIR']='D:/MyApps/HEG/HEG_Win/data' os.environ['PGSHOME']='D:/MyApps/HEG/HEG_Win/TOOLKIT_MTD' os.environ['MRTBINDIR']='D:/MyApps/HEG/HEG_Win/bin' # 设置HEG的bin路径 hegpath = 'D:/MyApps/HEG/HEG_Win/bin' # 指定处理模块的可执行程序文件路径,此处采用resample.exe,可以根据具体的处理问题设置 hegdo = os.path.join(hegpath, 'resample.exe') hegdo = hegdo.replace('\\', '/') # 全路径以“/”连接 # 指定输入数据的路径 inpath = r'C:\Users\pan\Desktop\Py_ex\data\hdf' inpath = inpath.replace('\\', '/') # 指定输出数据的路径 outpath = r'C:\Users\pan\Desktop\Py_ex\data\hdf\out' outpath = outpath.replace('\\', '/') # 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"C:\Users\pan\Desktop\Py_ex\data\hdf\prm" prmpath = prmpath.replace('\\', '/') for eachhdf in allhdffiles: prm=['NUM_RUNS = 1\n', 'BEGIN\n', 'INPUT_FILENAME = ' + inpath+'/'+eachhdf+'\n', 'OBJECT_NAME = MODIS_Grid_8Day_1km_LST|\n', 'FIELD_NAME = LST_Day_1km\n', 'BAND_NUMBER = 1\n','SPATIAL_SUBSET_UL_CORNER = ( 90.0 -180.0 )\n', 'SPATIAL_SUBSET_LR_CORNER = ( -90.0 180 )\n', 'RESAMPLING_TYPE = BI\n', 'OUTPUT_PROJECTION_TYPE = ALBERS\n', 'ELLIPSOID_CODE = WGS84\n', 'OUTPUT_PROJECTION_PARAMETERS = ( 0.0 0.0 25.0 47.0 105.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 )\n', 'OUTPUT_PIXEL_SIZE = 500.0\n', 'OUTPUT_FILENAME = ' + outpath+'/'+eachhdf+'_out.tif\n', 'OUTPUT_TYPE = GEO\n', 'END\n'] prmfilename=prmpath +'/'+ eachhdf+'.prm' prmfilename=prmfilename.replace('\\', '/') #这里一定要注意,设定换行符为‘\n',否则由于在windows系统下默认换行符为‘\r\n',则无法运行成功 fo=open(prmfilename,'w',newline='\n') fo.writelines(prm) fo.close() for eachhdf in allhdffiles: prmfilepath=prmpath +'\\'+ eachhdf + '.prm' prmfilepath=prmfilepath.replace('\\', '/') try: resamplefiles = '{0} -P {1}'.format(hegdo, prmfilepath) os.system(resamplefiles) print(eachhdf + ' has finished') except: # 提示错误信息 print(eachhdf + 'was wrong')
总结
以上所述是小编给大家介绍的python调用HEG工具批量处理MODIS数据的方法及注意事项,希望对大家有所帮助!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“python调用HEG工具批量处理MODIS数据的方法及注意事项”评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年12月31日
2024年12月31日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]