基于Python语言的HITRAN数据库接口
可视化工具的开发与应用
王明吉倪子颜李玉爽姚岱男张政刘博
(东北石油大学电子科学学院)
摘要采用Python语言开发HITRAN应用程序编程接口(HAPI"可视化工具#该工具可对HITRAN-online提供的功能和数据进行远程访问,实现获取数据、筛选数据,提供4种不同线型,计算吸收系数、吸收光谱、透射光谱、辐射光谱并绘制图谱功能#多次使用结果表明:基于Python语言的HITRAN数据库接口可视化工具界面简洁、方便,没有编程语言基础的使用者也可快速按照所需获取数据,大幅提高了工作效率#
关键词图形用户界面HAPI Python
中图分类号TH865文献标识码B文章编号1000-3932(2021)01-0079-06
高分辨率传输分子吸收数据库HITRAN包含用于计算和模拟光在气体中传输与扩散的各种光谱参数[1],对光学研究有很大的参考价值,是光学研究者常用的工具之一#当前版本HI-TRAN2016提供了HITRANonline交互式互联网应用程序,用户可以在线查询获取数据#此外, HITRAN2016还提供了HITRA
N应用程序编程接口(The HITRAN Application Programming In­terface,HAPI),用户可以对HITRANonline提供的功能和数据进行远程访问#对比HITRANon­line,HAPI扩展了过滤数据、绘制图像、下载用户定义的输出数据、计算吸收和传输以及应用高级线型函数等功能巴使用起来更加方便、快捷、灵活。HAPI是基于Python语言的应用程序,对于不熟悉编程语言的用户来说使用起来极为不便,因此笔者开发HITRAN数据库接口可视化工具,为无程序语言基础用户的使用提供有利条件。
1HITRAN数据库应用程序编程接口
HAPI是HITRAN数据库为用户提供的免费的应用程序编程接口,是基于Python语言的函数集。目前最新版本为HAPI.PY V.1.1.0.9.7,该版本除可对HITRANonline提供的功能和数据进行远程访问,还提供以下功能[3]:
a.使用大量第三方Python库处理数据;
b.HT线型的Python实现,该线型也可以简化为高斯(多普勒)、洛伦等传统的线型;
C.TIPS-2011的Python实现;
d.考虑压力、温度和光路长度的高分辨率光谱模拟;
e.计算吸收系数、吸收光谱、透射光谱、辐射光谱;
f.使用许多工具函数模拟实验光谱,用于光谱计算。
用户在使用过程中需要应用Python语言编写程序来调用HAPI中的相应函数,以实现上述功能,这就要求使用者有一定的编程语言基础#没有编程语言基础的使用者在应用该数据库的过程中会受到很大限制,只能在HITRANonline 上对数据进行远程获取#
2图形用户界面
图形用户界面(Graphical User Interface, GUI)指采用图形方式显示的计算机操作用户界
基金项目:中国石油科技创新基金项目(2718D-5007-0608)。
作者简介:王明吉(1963-),教授,从事测试技术计量与仪器的研究#
通讯作者:李玉爽(1979-),教授,从事激光检测及信号处理的研究,****************
面。传统的字符界面操作复杂,非专业用户难以理解和操作。HAPI就是依靠使用者编写程序调用功能函数实现上述HAPI的各种功能,属于传统的字符操作界面。而在图形用户界面中,使用者不需要学习复杂的代码,可以通过窗口、按键、菜单等图形对象向计算机等电子设备发出指令,设备接收指令后,通过图形反馈操作的结果⑷。
笔者开发的HITRAN数据库接口可视化工具是将用户通过编程调用HAPI中的功能函数这一复杂的字符界面操作过程转换成以图形方式表达函数和参数,使用者根据需求选择相应的函数和参数,本工具根据使用者的选择调用HAPI 中的功能函数,以满足使用者的需求。
3基于Python语言的HITRAN数据库接口可视化工具
3.1开发原理及环境
3.1.1开发原理
根据使用者的需求并结合HAPI的内置函数设计人机交互界面。该人机交互界面通过应用鼠标事件、键盘事件和菜单事件,将使用者选择的功能和参数转换为对HAPI内置函数的参数并调用函数,实现HAPI的功能。
3.1.2开发环境
HAPI是应用Python语言开发的应用程序。Python作为一种面向对象的解释性脚本语言,具有简洁直观、灵活方便及可移植等特点,并且Python语言的使用是免费的⑸。目前,最新版本的HAPI.PY V.1.1.0.9.7支持Python2.6+,因为Python3全新版本与&,止/02不完全兼容,所以笔者将Python2.7.14作为开发语言。除此之外,许多开源的科学计算库都提供了Python的调用接口并免费使用,因此本设
计的界面框架应用与Python2.7.14匹配的wxPython作为辅助工具,开发HITRAN数据库接口可视化工具。本设计基于Windows系统开发验证,但由于Python的跨平台特征,也可运行于Linux或M ec OS平台。
3.2程序实现
本设计应用Python和开源wxPython开发HITRAN数据库接口可视化工具,本工具通过HAPI接口在线访问HATRAN数据库获取数据、筛选数据并保存至本地,还可提供利用数据绘制特定图谱的功能!系统结构如图1所示!
图1系统结构示意图
本设计分为主界面、数据获取模块、数据筛选模块、图形绘制模块与帮助模块5部分,以面向使用者为理念实现各个模块功能!主界面介绍HITRAN数据库;数据获取模块从HITRAN数据库获取相应条件的数据,并保存文件至相应目录;数据筛选模块对已获取数据进行相应条件的查看或保存;图形绘制模块对已获取数据进行相应计算并生成曲线图形;帮助模块帮助使用者了解光谱参数,并可通过该模块访问HITRANon-line。程序流程如图2所示。
主界面如图3所示,本设计在wx.Frame()函数创建框架中添加wx.Notebook()函数,用笔记本模式将各
个模块在一个窗口显示出来,每一个页面即notebookpage()函数显示一个模块,每一个模块功能的实现都依托HAPI中相应的功能函数。
3.2.1数据获取模块
实现数据获取模块功能的核心函数是fetch_ byjds(),调用该函数可以从HITRANonline服务上逐行下载数据并保存到本地。从图2
可以看
图2程序流程
—►
帮助查看或保存文件
图3 主界面
出,使用者需要输入本地目录名、获取数据的波
段、获取数据的分子与参数组。获取后的数据以 文件形式保存至使用者定义的目录下。本设计应
用wxTextCtr ()函数创建对话框,实现使用者在对
话框中输入目录名与获取数据的波段范围'应用wxRadioButton  ()函数创建选择按钮,列出参数组
供使用者选择$ HITRAN 数据库目前提供49种气 体分子及其分子种类中最重要的同位素分子光 谱参数,因此本设计应用wxComboBox ()函数创
建下拉框,在MolecularsChoices  ()函数中列出49
种分子,同时在wxNotebook ()函数中创建49个
notebookpage  ()函数,列出每种分子同位素,使
MolecularsChoices  ()函数与 notebookpage  ()函数
产生联动,实现使用者快速查同位素并选择需
要查询的分子的功能$ OnButtonClick ()函数连接
fetch_by_ids ()函数,点击按钮触发事件,程序开
始执行fetch_by_ids ()函数,实现模块功能$在用
户图形界面设计过程中,应用wx.Panel ()函数和
wx.BoxSizer  ()函数对界面进行分割,分布上述函
数在界面中的位置,如图4所示$
图4
数据获取模块图形用户界面
3.2.2数据筛选模块
数据筛选模块的核心函数是select  (),对已
经下载的数据进行选择或筛选到标准输出或保 存到指定文件(使用者可以对数据的波段%参数
进行筛选,筛选后的数据以.txt 格式保存。数据 筛选模块的图形用户界面如图5所示。由于进
行筛选的数据必须为HITRAN 数据库下载的数 据,为避免出错,选择文件部分应选用
wx.FilePickerCtrl  ()函数访问本地文件,并将获
取数据模块中定义的目录默认为选择文件所
在的目录。数据筛选模块其余部分的实现过程
与数据获取模块类似,本节不做详细描述。
图5数据筛选模块图形用户界面
3.2.3图形绘制模块
图形绘制模块是根据吸收系数计算分子不 同线型的吸收、透射率和辐射光谱,由absorption -
Coefficient_Lorentz  () % absorptionSpectrum  ()等多 个函数实现这些功能。图形用户界面布局与上面
两个模块类似,将选择吸收线型、设置影响条件、
输入文件名和波段、图形绘制这些步骤分模块列
出。因为功能函数较多,该模块采用if 语句对使
用者的输入进行判断,进而实现该模块功能。图 形用户界面如图6所示。
3.2.4帮助模块
帮助模块可以查看HAPI 、光谱参数信息与
访问HITRANonline 网站。为了使界面简洁,应用
wx.MenuBar ()函数在界面上方设置菜单栏,下设3 个选项,wx.MenuItem  ()函数分别实现3个功
能。图形用户界面如图7所示。
图6
图形绘制模块图形用户界面
3.3运行结果图7帮助模块图形用户界面
接口可视化工具的效果,以H i O和NH3为例,各
为验证基于Python语言的HITRAN数据库个模块的程序运行结果如图8所示
二]旦凶
©Fi g ure1
文件已保存(data文件夹中)
NH3k(w):p=5atm,T=1960K
39004000
金创Q|昌目|圃H2O.data2020/1/1321:29DATA文件604K B 也H2O.header2020/1/132L29HEADER文件4K B □2020^/1321^7文本如17K B
-记事本
文件(F)编辑(E)格式(O)查看(V)報助(H)
2000.094867  1.082E-30
2000.114106  1.273E-27
2000.231336  3.192E-29
2000.273352  5.193E-30
2000.297854  1.393E-27
2000.333096  6.201E-30
2001.018361  3.309E-27
2001.071420  1.150E-27
编程语言下载2001.128124  5.473E-30
2001.139879  1.106E-28
2001.156295  1.289E-30
2001.194479  1.925E-29
2001.213395  1.678E-28
2001.258784  6.679E-27
2001.331354  2.148E-29
2001.348611  1.906E-27
2001.412840  1.801E-26
图8运行结果
4结束语
基于Python语言的HITRAN数据库接口可视化工具界面简洁、方便,没有编程语言基础的使用者也可以快速获取所需数据,并可对数据依照需求再筛选、在线查看或保存成文件,方便对数据进行下一步处理,提高工作效率。此外,本工具还提供了4种不同线型的吸收系数、吸收光谱、透射光谱和辐射光
谱,对HITRAN数据库使用者有极大帮助。在本程序的基础上,可进一步实现更复杂的数据处理,以满足各种不同需求。
参考文献
[1]Gordon I E,Rothman L S,Hill C,et al.The HITR-
AN2016Molecular Spectroscopic Database[J].
Journal of Quantitative Spectroscopy and Radiative
Transfer,2017,203:3〜69.[1] Gamache R R,Roller C,Lopes E,et al.Total Internal
Partition Sums for166Isotopologues of51Molecules Important in Planetary Atmospheres:Application to HITRAN2016and Beyond[J].Journal of Quantitative
Spectroscopy and Radiative Transfer,2017,203:70〜
87.
[3] Kochanov R V,Gordon I E,Rothman L S,et al.
HITRAN Application Programming Interface(HAPI):
A Comprehensive Approach to Working with
Spectroscopic Data[J].Journal of Quantitative Spectr­
oscopy and Radiative Transfer,2016,177:15〜30.
[4]冯斌•图形用户界面外观设计法律保护问题研究
[D]•南京:南京大学,2017.
[5] Lutz M.Learning Python[M].南京:东南大学出版
社,2008.
(收稿日期:2020-02-24,修回日期:2020-03-27
)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。