下面的代码主要用于使用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数据的方法及注意事项,希望对大家有所帮助!

本文标题: python调用HEG工具批量处理MODIS数据的方法及注意事项

本文地址: http://www.cppcns.com/jiaoben/python/300755.html

python批处理工具_python调用HEG工具批量处理MODIS数据的方法及注意事项相关推荐

  1. python modis数据拼接_python调用HEG工具批量处理MODIS数据的方法及注意事项

    下面的代码主要用于使用python语言调用NASA官方的MODIS处理工具HEG进行投影坐标转换与重采样批量处理 主要参考 HEG的用户手册:https://newsroom.gsfc.nasa.go ...

  2. hdf heg 批量拼接_python调用HEG工具批量处理MODIS数据

    下面的代码主要用于使用python语言调用NASA官方的MODIS处理工具HEG进行投影坐标转换与重采样批量处理 主要参考 主要的注意事项如下: 根据HEG用户手册批量生成批处理参数文件,可以在HEG ...

  3. python大气校正_Python调用C2RCC实现批量数据的大气校正

    目录 1.前言 2.配置环境 3.程序 1.前言 C2RCC大气校正方法在SNAP中作为一个工具出现,安装好SNAP后,就会有该工具.但是发现在SNAP中直接打开C2RCC对OLCI数据进行大气校正时 ...

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

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

  5. GLASS数据预处理/MRT工具批量处理MODIS数据

    GLASS数据预处理/MRT工具批量处理MODIS数据 准备工作 处理步骤 准备工作 1.数据准备:进行网站批量下载MRT数据,存储方式为数据–年份–天(例如GLASSFVC数据为8天分辨率,001. ...

  6. python批处理栅格转点_三种利用Python批量处理地理数据的方法——以栅格数据投影转换为例...

    时至今日,笔者已经总结了三种用Python语言结合ArcGIS10.2提供的接口去批量处理地理数据的方法.即: 1. 用IDLE.Python Tools for Visual Studio等去编写独 ...

  7. python账单查询软件_利用Python批量识别电子账单数据的方法

    这篇文章主要介绍了利用Python批量识别电子账单数据的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 一.前言 有一定数量类似如下截图所示的账单,利用 ...

  8. 【python】批量实现modis数据的辐射定标,大气校正及地形校正

    批量实现modis数据的辐射定标,大气校正及地形校正 1.定义辐射定标函数 def radiance_cal(band, gain, bias, scale_factor):rad = gain * ...

  9. 关于批量下载MODIS数据的坑

    关于批量下载MODIS数据的坑与正确姿势 1. 第一个坑 1.1 Ladsweb的坑 由于之前做项目的时候去Ladsweb官网下载数据的时候还好好的,于是经过被批评改正之后回来就信心满满地去Ladsw ...

最新文章

  1. IMAX融资5000万美元,三年内要打造25个VR项目
  2. linux ssh免密登陆远程服务器
  3. ASP.NET MVC 视图
  4. 微軟 ASP.NET 2.0 的 AJAX 利劍 ~ Atlas Framework
  5. linux 内核配置raid,在 Linux VM 上配置软件 RAID - Azure Virtual Machines | Microsoft Docs
  6. win7 64系统无法看见其他计算机,win7一直显示正在启动进不了系统怎么办
  7. mq多个消费者消费一个消息_ActiveMQ多个消费者消费不均匀问题
  8. C# list删除 另外list里面的元素_在Python 中 List 操作 9种例子详细了解
  9. 【Json】JSONPath之fastJson与Snack3的使用介绍与区别
  10. mybatis中使用小于号
  11. 网易“吃鸡”,干腾讯何事?
  12. 最新html取消dynsrc属性无效,HTML属性标签2
  13. windows openssl环境变量_run custom build command for `openssl-sys v0.9.55`
  14. 云服务器搭建京东签到,在路由器上实现jd京东每日自动签到、自动领京豆,并将签到结果推送至微信...
  15. 阿里云大学双11特惠活动
  16. 关于C语言中的int - float 计算的问题
  17. CVE-2022-28512 Fantastic Blog CMS 存在SQL注入漏洞
  18. Parallels Desktop的windows虚拟机无法打开iso文件
  19. Studio One5编曲和音频后期制作音乐编辑软件更新及新增功能介绍
  20. 车载网络测试 - 车载以太网 - ICMP详细解析

热门文章

  1. Core Java For The Impatient-阅读笔记1.基本的编程结构
  2. 1-13-14-15-16
  3. Java开源网络服务器端组件
  4. 诺基亚无源光网络助力剑桥教育服务的开展
  5. 开机使用脚本批处理打开软件
  6. android 自定义通知不显示,Android notification设置的图标不显示
  7. ElementUI极简loading动画
  8. mysql8.0字符集排序规则_2021-2-18:请你说说MySQL的字符集与排序规则对开发有哪些影响?...
  9. 给PyQt5 exe程序设置自启动(Windows)
  10. PyQt5学习:Qtdesigner设计转换而来的界面.py文件与 2k等高分辨率屏幕不匹配或自适应问题,导致部分控件显示不完全解决办法