APP下载

基于MATLAB GUI的水汽自动处理系统的设计与实现

2012-09-27乌丽雅苏孟克其劳苏立娟道日娜

电子设计工程 2012年6期
关键词:探空控件水汽

乌丽雅苏,孟克其劳,苏立娟,道日娜

(1.内蒙古工业大学 内蒙古 呼和浩特 010080;2.内蒙古自治区气象科学研究所 内蒙古 呼和浩特 010051)

基于MATLAB GUI的水汽自动处理系统的设计与实现

乌丽雅苏1,孟克其劳1,苏立娟2,道日娜1

(1.内蒙古工业大学 内蒙古 呼和浩特 010080;2.内蒙古自治区气象科学研究所 内蒙古 呼和浩特 010051)

在利用GAMIT软件解算得出对流层总延迟ZTD的基础上,通过MATLAB GUI各控件的布局设计及其回调函数的编写,利用MATLAB的图形用户开发环境(GUIDE)设计实现了水汽自动处理系统。本系统具有气象数据查询,日期与年积日转换,利用GPS气象数据及探空气象数据计算水汽总量及水汽变化分析等功能,可避免使用复杂的程序运算得出天顶静力学延迟ZHD,天顶湿延迟ZWD等气象要素。同时具有界面友好,操作简单,可移植性强等特点,为使用者提供了方便的,可视化的气象数据查询及水汽总量计算方法,具有良好的实际应用价值。

MATLAB;GUI;水汽总量;气象数据

水汽总量(又称大气可降水量)是气象学中非常重要的一个物理量,指从地面直到大气层顶的垂直气柱中所含水汽总量全部凝结并降落到地面可以产生的降水量,通常用相当的水量在同面积容器中的深度表示,以毫米为单位[1]。目前水汽探测的方法有很多,例如通过释放探空气球,利用水汽辐射计,激光雷达等[2]。随着全球定位系统(Global Positioning System)的发展,利用GPS卫星信号在大气层中传输时由大气折射产生的延迟并结合其误差的消除,可解算出毫米级的大气延迟量。大气延迟量可分为电离层延迟,天顶静力延迟和天顶湿延迟,其中电离层延迟通过采用双频技术基本可以完全消除[3-4],而天顶静力学延迟(ZHD)可以通过地面气压参数与天顶静力学模型计算得出,再结合天顶湿延迟(ZWD)并乘以转换系数,即可得出水汽总量。

利用GPS计算水汽总量的方法具有时间分辨率高,设备易于维护和更新,费用较低,可全天观测而不受气溶胶,云和降水的影响等优点[5],但由于该方法数据量大,计算公式复杂,过程繁琐,且目前主要使用编写脚本程序的方式进行水汽总量的计算,从而其交互性不强,不便于初学者掌握。针对以上问题,设计开发一款界面友好,操作简单的水汽自动处理系统是非常有必要的。

MATLAB软件在数值运算,一维和二维图形的绘制,数值拟合等方面均有极强的功能,已被广泛应用于数字信号处理,图像处理,系统仿真等各个领域[6]。同时MATLAB软件具备高质量的图形可视化与界面设计工具,其集成图形用户界面 GUIDE(Graphical User Interface Development Environment)包含了窗口菜单,对话框,按钮和文本等各种控件[7]。用户通过控件的布局设计,编写控件的回调函数就可以按照自身需求实现GUI与用户之间直观,便捷的交互。

文中以GAMIT软件及2007-2008年内蒙古呼和浩特,二连浩特站点探空与地面气象数据为基础,通过MATLAB GUI设计实现了水汽自动处理系统。该系统具有气象数据查询,日期与年积日转换,利用GPS气象数据及探空气象数据计算水汽总量及水汽变化分析等功能,为使用者提供了操作简便,界面友好的用户环境,化简了气象数据查询及水汽总量计算的过程,具有一定的实际应用价值。

1 研究方法

1.1 水汽总量计算过程

水汽总量的计算过程中需要用到的数据有:利用GAMIT软件解算得出的对流层总延迟ZTD及地面气象数据,探空气象数据等。GPS观测数据,精密星历等辅助文件的准备过程及GAMIT软件的具体解算过程请参照文献[8]。水汽总量的计算过程如图1所示,包括从GAMIT软件的解算结果提取对流层总延迟ZTD,利用地面气象数据结合天顶静力学模型求出天顶静力学延迟ZHD,根据天顶湿延迟ZWD及转换系数得出水汽总量等步骤。

图1 水汽总量计算流程Fig.1 Flow chart for precipitable water vapor calculation

图1中除了对流层总延迟ZTD可利用GAMIT软件解算得出之外,其余部分的求解均需要通过复杂的数学计算来完成,而且计算过程中需要用到的各参数往往数据量较大。考虑到MATLAB软件具有强大的数值运算及图形界面开发能力,所以利用MATLAB GUI设计实现的水汽自动处理系统可有效的为气象数据利用及水汽计算过程提供便利。

1.2 系统设计过程

利用MATLAB GUI制作水汽自动处理系统的过程可以分为GUI图形界面布局和GUI程序实现两部分。MATLAB GUI的编辑界面由工具栏、控件选择区、控件的标签显示区及位置坐标显示区组成。在GUI图形界面布局的过程中应该首先构思界面所要实现的功能及各控件需要完成的任务,设计时可先绘制草图,审查是否达到界面美观,符合用户使用习惯等。完成控件的布局之后,应该对控件的属性进行设置,通过在相应的控件上双击左键,即可调用属性查看器,设置和查看该控件所有属性。为了使控件具备相应的功能,就要对控件进行回调函数的编写,这一步也是界面设计的关键,直接影响着界面的功能。

在利用GUIDE进行界面设计的过程中,会产生两个文件:一个是.fig文件,主要包括GUI控件的属性及布局位置信息;另一个是.m文件,主要包含了赋予GUI控件相关功能的回调函数信息[9]。

2 系统功能介绍

2.1 水汽自动处理系统主界面

本系统采用总-分式设计,即通过程序控制主界面对各子GUI的调用,当鼠标点击主界面中的6个触控按钮(Push Button)可以分别进入到对应的子界面,点击“退出”按钮可以弹出确认对话框选择是否退出系统,系统主界面如图2所示。实现步骤为:1)在确定界面设计思想的基础上通过MATLAB GUI的编辑界面进行控件的选择,布局。2)通过属性编辑器对控件进行属性设置。3)进行控件回调函数的编写。以界面中的“退出”按钮为例,回调函数为:

通过以上设置,当点击“退出”按钮时,出现图3所示结果。

图2 水汽自动处理系统主界面Fig.2 Main interface of automatic vapor processing system

图3 “退出”按钮功能演示Fig.3 Demo of“Exit” button

2.2 水汽自动处理系统子界面

从实际应用角度出发,本系统具备以下3种功能:1)气象要素查询功能;2)水汽总量计算功能;3)水汽变化分析功能。

2.2.1 气象要素查询功能

由于地面和探空气象数据都是以.OOO为后缀的文本文件,而且文件内的数据都按照一定的规律排列,例如地面气象数据是以年-月-日-时次为文件名,数据内容包括区站号、经度、纬度、海拔高度、站点级别、总云量、风向、风速等26项气象要素。基于以上特点,本系统设计了气象数据查询界面,如图4(a)所示。实现过程为:首先将气象数据存储于系统中指定的位置,然后在该界面.m文件的OpeningFcn函数中规定文件的读取路径,并利用MATLAB读取文本文件的函数将气象数据读入MATLAB的单元数组中,例如将气象数据存放在系统的F盘中,则在界面.m文件的OpeningFcn函数中以语句 fid=fopen([‘F:2008’ ‘0’ num2str(S(k)) ‘.000’],‘r’)将气象文件读取到单元数组中。再根据Button Group中的站点选择(可在回调函数中利用Switch语句进行站号的定位),Listbox中的日期、时间的点击选择(单选或多选)确定相应数据在单元数组中的位置,并编写Edit Text(气象数据显示区)的回调函数使显示查找结果。

2.2.2 水汽总量计算功能

水汽总量PWV的计算可根据GPS数据结合地面气象数据及利用探空数据的方法得出,具体计算公式请参见文献1。本系统根据以上两种方法分别设计了GPS数据计算PWV及探空数据计算PWV界面,如图4(b),(c)所示。实现方法为:在站点选择控件(Radio Button)及日期、时间设定控件(Edit Text与Listbox)的回调函数中设定操作的访问路径,通过查找MATLAB的单元数组中对应的气象数据的位置信息,读取到计算所需要的数据,并将数据传递到“计算”按钮的回调函数中(即用MATLAB语言编写的水汽总量计算公式中),经过计算,将得出的数据送至计算结果显示区域显示。同时,在“保存”按钮的回调函数中设定以日期时间为文件名的文本文件的保存路径,以便满足使用者保存计算结果的需求。

图4 水汽自动处理系统子界面Fig.4 Sub-interface of automatic vapor processing system

2.2.3 水汽变化分析功能

水汽数据是气象业务应用中重要的观测数据,其根据时间的变化趋势是气象预报和分析的重要依据。基于MATLAB强大的绘图及图形显示功能,本系统设计了水汽分析界面。通过界面中GPS及探空数据变化曲线及其对比按钮控件的回调函数的编写,调用保存的水汽总量计算结果的文本文件,并根据日期与数据范围的变化确定图形显示的X轴(时间)与Y轴(水汽总量值),并将变化曲线送至Axes控件显示。此界面可以为使用者提供直观的水汽变化观测方法,为用户在水汽变化分析,数据对比方面提供便利。

2.2.4 其他功能

同时,本系统也设计了年积日查询与pH自动气象台站数据读取功能。由于年积日与日期之间是一一对应的,所以通过预先制作的年积日-日期转换表格 (为2列365行的表格,可以为EXCEL或TXT形式),在回调函数中规定读取此转换表格的访问路径,通过用户所输入的需要转换的数值,与表格中的数值进行比较、定位,再将表格中与此数据同行不同列的数据返回并输出显示即可实现年积日-日期之间的转换。而PH自动台站产生的气象数据与图4(a)中所显示的气象数据只是在文本格式上有所不同,只要在程序的文件读取语句中将文件后缀名作更改即可,在此不再赘述。

3 结果测试

图 5(a)、(b)分别表示经本系统计算得出的 2008年 1月6日当日GPS数据PWV变化曲线和本周内探空数据PWV变化曲线。与其他计算水汽总量的手段相比,本系统既保证了计算结果的准确度,又提供了简便易行的水汽数据分析方法。

4 结 论

基于MATLAB软件在图形绘制,数值计算及可视化界面开发等方面的优势,在利用高精度GPS数据解算软件GAMIT得出对流层总延迟ZTD的基础上,结合地面及探空气象数据,通过MATLAB GUI设计完成的水汽自动处理系统可以实现气象数据查询、利用GPS及探空数据计算水汽总量、并对计算得出的结果进行分析,显示其变化曲线等功能。本系统为水汽总量的计算提供了简便易行的方法,提高了气象数据的利用度,并具有性能可靠,便于操作等特点。同时,本系统在气象业务及数值天气预报方面具有一定的数据参考价值。

图5 水汽总量变化曲线Fig.5 Precipitable water vapor changing curves

[1]李国平.地基GPS气象学[M].北京:科学出版社,2010.

[2]谷小平.GPS反演及降雨预报方法研究[D].北京:中国农业大学,2004.

[3]李成才,毛节泰.GPS地基遥感大气水汽总量分析[J].应用气象学报,1998,9(4) :470-472.

LI Cheng-cai,MAO Jie-tai.Analysis for remote sensing of atmospheric precipitable water using ground based GPS receiver[J].Journal of Applied Meteorological Science,1998,9(4):470-472.

[4]李成才,毛节泰,李建国,等.全球定位系统遥感水汽总量[J].科学通报,1999(44):333-336.

LI Cheng-cai,MAO Jie-tai,LI Jian-guo,etal.Remote sensing of precipitable water vapor using global positioning system[J].Chinese Science Bulletin,1999(44):333-336.

[5]李国平,黄丁发.GPS遥感区域大气水汽总量研究回顾与展望[J].气象科技,2004,32(4):201-205.

LI Guo-ping,HUANG Ding-fa.Reviews and prospects of researches on remote sensing of regional atmospheric water vapor using ground-based GPS[J].Meteorological Science and Technology,2004,32(4):201-205.

[6]罗建军,杨琦.MATLAB7教程[M].北京:电子工业出版社,2005.

[7]姚秀芳,崔松菲.基于MATLAB GUIDE的程序设计[J].电脑知识与技术,2009,27(5):7767-7768.

YAO Xiu-fang,CUI Song-fei.Programme design based on MATLAB GUIDE[J].Computer Knowledge and Technology,2009,27(5):7767-7768.

[8]王皓,李国平,陈娇娜.运用GAMIT10.34解算成都地区的GPS可降水量[J].成都信息工程学院学报,2009,24(5):478-483.

WANG Hao,LI Guo-ping,CHEN Qiao-na.Solution of GPS precipitable water vapor in Chengdu area by using GAMIT10.34[J].Journal of Chengdu University of Information Technology,2009,24(5):478-483.

[9]罗华飞.MATLAB GUI设计学习手记[M].北京:北京航空航天大学出版社,2011.

Design and implementation of the MATLAB GUI-based automatic water vapor processing system

Wu-li-ya-su1, Meng-ke-qi-lao1, SU Li-juan2, DAO Ri-na1
(1.Inner Mongolia University of Technology,Huhhot010080,China;2.Inner Mongolia Institute of Meteorological Sciences,Huhhot010051,China)

On the base of calculating out zenith total delay ZTD in the use of GAMIT software,then on the basis of layout design of each MATLAB GUI control unit and the programming of their callback function,the author design and ultimately accomplish the water vapor automatic processing system by using MATLAB graphical user development environment(GUIDE).This system has the functions of meteorological data query, the date and year accumulate conversion, and the function of calculating the precipitable water vapor and analyzing the water vapor changes by using GPS meteorological data and sound data.It can avoid using complex programs to get the zenith hydrostatic delay ZHD;zenith wet delay ZWD and other meteorological elements.At the same time this system has the characteristics of friendly interface, the operation is simple,strong portability and others.The system provides the user with convenient,visual meteorological data query and precipitable water vapor calculation method,and has a good practical value.

MATLAB; GUI; precipitable water vapor; meteorological data

TP311

A

1674-6236(2012)06-0001-04

2012-02-08稿件编号:201202030

内蒙古自治区应用技术研究与开发资金项目(20080508;20100905)

乌丽雅苏(1985—),女,蒙古族,内蒙古自治区赤峰人,硕士研究生。研究方向:实时控制与信息处理。

猜你喜欢

探空控件水汽
青藏高原上空平流层水汽的时空演变特征
基于探空数据的贵阳市冰雹天气大气垂直环境特征分析*
用L波段探空测风雷达评估风廓线雷达测风准确性
国内首个无人机机载下投探空系统将探测台风
关于.net控件数组的探讨
TK-2GPS人影火箭探空数据与L波段探空数据对比分析
1979~2011年间平流层温度及平流层水汽的演变趋势
深圳“5·11”特大暴雨过程的水汽输送特征分析
ASP.NET服务器端验证控件的使用
地基GPS观测在水汽监测中的应用