第34卷第1期2019年2月成都信息工程大学学报JOURNAL OF CHENGDU UNIVERSITY OF INFORMATION TECHNOLOGYVol.34No.1Feb.2019文章编号:2096-1618(2019)01-0007-06基于Qt 的天气雷达数据处理软件系统设计及实现魏玮1,高必通2,杜宇飞3,倾鹏程4,龙桂才5(1.成都信息工程大学电子工程学院,四川成都610225;2.广东省连州市气象局,广东连州513400;3.重庆市防汛抗旱抢险中心,重庆401100;4.广东省中山市气象局,广东中山528401;5.广西壮族自治区梧州市气象局,广西梧州543002)摘要:在气象领域,天气雷达是观测降水过程的主要工具。
随着雷达技术的快速发展,中国新一代多普勒天气雷达开始逐渐升级改造为双线偏振雷达,提供更多的雷达偏振参量,从而更充分地分析天气过程的特征,并不断提高对暴雨、龙卷和冰雹等强对流天气过程的观测和预报能力。
为了适应雷达发展过渡期的需求,方便用户使用和查看不同雷达产品,设计了基于Qt 的多波段多型号雷达数据处理软件系统。
最终实现反射率因子、径向速度、速度谱宽、差分反射率因子、相关系数等基本数据产品和回波顶高、组合反射率因子、垂直积分液态水等衍生产品的生成和预览功能。
通过对产品效果进行验证,系统基本能满足使用需求。
关键词:新一代多普勒天气雷达;双线偏振雷达;Qt ;数据处理软件;基本数据产品;衍生产品中图分类号:TN957文献标志码:Adoi :10.16836/j.cnki.jcuit.2019.01.002收稿日期:2018-06-080引言雷达是一种电子设备,可以向空中发射并接收返回的电磁波。
由于电磁波接触到降水粒子等目标物时会发生散射现象,部分返回到雷达并被接收,由此可计算出目标物到雷达的距离、高度、速度及方位等信息。
雷达现在广泛应用到气象观测和预报,军事和航空监控等很多领域[1]。
气象雷达是观测天气过程的重要工具,能够实现观测和预警暴雨、冰雹等强对流天气过程[2]。
20世纪70年代中国就开始了天气雷达的研究和应用,并不断建设新一代天气雷达系统业务网[3]。
截至2016年底,新一代天气雷达业务网已初见规模,共计有两百多部建成并投入运行,同时又将少数单偏振天气雷达升级为双线偏振雷达,实现了约220万平方公里的近地面覆盖范围。
到2020年,新一代天气雷达业务网将更加优化完善,东部和东南沿海地区基本由双线偏振雷达覆盖。
此外继续开展新型气象雷达技术的研究、观测和试验,形成完善的气象雷达发展体系。
新一代多普勒雷达是单偏振的,只能发射一个方向上的偏振波,因此所能获得的雷达参量也相对较少,仅有反射率因子Z H 、速度V 、谱宽W 3种数据。
从1976年Seliga 提出双线偏振理论至今,双线偏振雷达已经在全球得到充分、快速的研究和应用[4]。
双线偏振雷达能发射、接收水平和垂直极化方向相互正交的电磁波,具有测量不同极化方向上回波功率和相位的功能。
除可获取新一代多普勒雷达的探测量外,还能够得到差分反射率因子Z DR、差传播相移ΦDP 、相关系数ρHV 等与降水粒子密切相关的多个偏振参量[5]。
随着双线偏振雷达的不断发展,更多天气过程中的关键信息变得更容易获得,从而不断提高对强对流天气过程的观测和预报能力[6]。
中国新一代多普勒天气雷达大多数为S 或C 波段的型号,而升级改造到双线偏振雷达后发展到更多的波段(S 、C 和X 波段)和型号,由于生产厂家不同,各型号保存的基数据格式不统一,存在差异,格式多样制约了天气雷达软件的使用范围,依据特定格式研发的软件不能被直接适用于其他格式的天气雷达[7-8]。
周鑫等[9]放弃常规天气雷达应用软件的设计方式,使用相关的地理信息系统软件进行了研发、设计。
楚志刚[10]提出了多种天气雷达基数据格式的兼容方法,设计了适用多种格式的天气雷达软件,实现不同格式间的自动判断及相互转化。
赵坤等[11]设计了一种WIN-DOWS2000/9X 系统下的实时信号处理软件,并实现了相关产品的显示。
王美娟等[12]设计了基于Linux系统的天气雷达显示控制系统,实现了多型号雷达参量PPI 、RHI 、VOL 和FFT 4类扫描数据产品,以及雷达整机状态、故障和日志的实时和非实时显示。
为了使雷达应用软件可以兼容多种基数据格式,满足处于新一代多普勒天气雷达向双线偏振雷达更新换代过渡期的使用需求,设计基于Qt 的多波段多型号基数据处理软件,实现基本数据产品和相关衍生产品的生成。
1软件系统设计1.1开发环境1991年,Trolltech发布了一种可跨平台的C++图形用户界面应用程序开发框架Qt[13]。
应用其可以开发GUI和非GUI程序,例如控制台工具和服务器等。
该框架应用特定的程序来生成扩展和部分宏,用户能够快速入门,从而相对容易开发。
同时,为软件研发人员提供了构建艺术级的图形用户界面需要的所有功能[14]。
有极强的兼容性,能够实现一次编写,多系统编译。
Qt同X Window上的Motif,Openwin,GTK等图形界面库和Windows平台上的MFC,OWL,VCL,ATL 等类似。
目前,Google Earth、Adobe Photoshop Elements 等软件都是基于Qt编写。
Qt引入了信号与槽的机制[15]。
信号可以被认为是一种标识符,而槽则为一种函数,两者联系紧密。
槽函数和普通函数有所差别,它可以与信号进行关联,也能如普通函数那样被直接在程序中调用。
若某一事件发生,作为特定标识的信号被发送,触发了相关联的槽函数,并开始执行指定的操作。
在编写程序时,通过框架内的QObject类中connect()函数将某一信号与槽函数关联起来。
信号与槽之间有多种关联情况,例如某一信号可以与一个或同时与多个槽函数关联,此外还允许多个信号同时与一个槽函数关联,其中任何一个信号发出都会触发槽函数的执行。
当某一信号已经与多个槽函数进行关联,发出信号后多个槽函数则按照随机顺序运行。
信号之间也可以进行关联。
若两个信号进行关联,先发出的信号将会触发另外一个信号[16],随后再执行与信号关联的槽函数代码。
使用Qt能够更简单、快速地开发有更强交互能力的应用软件,所以基于Qt开发了一个完整的能够单个或批量处理各波段各型号雷达基数据的系统。
系统采用版本为Qt5.8.0作为开发人机交互界面的工具。
1.2软件结构根据天气雷达软件的设计需求,软件共包含如下模块:用户界面、功能选择、单一或批量处理选择、数据读取、数据预处理、产品生成和保存、产品显示和浏览等多个模块。
各模块之间联系紧密,根据单一或批量处理模式的选取,决定后续对数据的处理方式,模块关系如图1所示。
系统使用多线程设计结构,由1个主线程,2个次线程组成。
使用线程可以把占用内存时间长的操作独立出来运行,避免了单一线程出现卡顿,以及处理能力不足的问题。
当主程序运行后,系统进入用户界面模块,并完成系统初始化,等待用户指令。
用户选择需要处理的雷达型号及生成的产品种类。
系统产品主要分基本数据产品(反射率因子、径向速度、速度谱宽等的PPI或RHI等)和相关衍生产品(如垂直积分液态水、组合反射率因子、回波顶高等)。
根据实际需求选择单一或批量处理模式,然后加载目标数据。
当单一处理雷达数据时,会对生成的产品进行显示和保存,并提供预览功能。
而使用批量处理模式时,系统只生成和保存产品,不提供显示功能。
系统生成一次PPI产品流程如图2所示。
图1系统模块关系图2一次PPI产品生成流程2主要功能模块和运行效果用户界面在人机交互中起到桥梁的作用,能够让用户一目了然,极简操作是设计的目的。
系统用户界面设计直观、简单,使用户不需要特别的指导就可以快速上手操作。
界面包含菜单栏、产品类别、单一或批量处理模式选择部分。
菜单栏中同样提供文件加载、产品选择功能,除此之外还增加了帮助功能,介绍了软件的设计目的和操作方式,为用户提供使用便利。
通过在用户界面中选择雷达型号、产品种类、数据处理方式8成都信息工程大学学报第34卷及数据加载和产品保存路径,便可生成所需产品。
用户界面如图3所示。
图3系统用户界面软件设计采用多线程的编程方法[17-18]。
线程是系统进程中的实体,也是系统能够单独支配的最小单元。
线程不单独占有系统资源,在同进程内运行的所有线程间共享全部资源。
Qt 软件提供了多线程QThread 类,用户通过继承QThread 类得到自己需要的线程类,并定义线程对象便可设定系统线程的数量。
在设计专属线程类时,经过改写软件提供的QThread 类中run ()函数实现具体要执行的任务。
若要启用线程,使用线程类定义的对象调用start ()函数后即可进入目标线程的run ()函数,触发并开始执行相应操作。
若要终止线程运行,可先后调用QThread 类中stop ()和wait ()函数实现。
Qt 中还能利用信号与槽机制的跨线程连接特性,用某一线程的信号触发另一线程的槽函数实现线程间的通信。
系统引入多线程设计,可以明显提升整体的运算能力。
系统设计为1个主线程,2个次线程,分别负责单一或批量数据处理。
程序设计时,考虑到某些因素的影响,若线程在执行任务期间便被强行中断,程序中立即响应操作,终止线程,并释放处理任务时占用的内存。
单一或批量处理模式为用户使用提供很大的方便。
单一处理模式通过对基数据的读取、预处理及绘图后,可以将产品图像显示出来。
而且在显示界面右击鼠标时,会弹出菜单栏,提供对产品的预览功能选项,实现对产品的放大缩小,有助于查看天气过程的细节变化。
批量处理模式预先获取需要生成产品的所有数据路径,按照顺序循环读取数据和生成产品,并将产品保存在目标路径文件内,不提供产品显示和预览功能。
产品图像保存为.png 格式,文件名由雷达站点、仰角层或方位角信息、产品类型、数据日期及使用的数据类型组成,例如HZDMS_Layer1_PPI_20151205_080354_ref.png 。
系统设计时,产品生成过程提供进度显示功能。
单一处理模式的进度显示包括目前执行的操作步骤,能够更透明的让用户了解生成产品的状态。
批量处理模式提供了列表式的进度显示,将还未生成产品的数据标记为“未处理”,而处理完后则将该数据标记为“已处理”,此外,界面上还提供处理文件总数和剩余未处理文件数量的显示,批量处理界面如图4所示。
图4批量处理数据界面新一代多普勒天气雷达与双线偏振雷达的基数据格式并不相同,所以在读取时需要进行区分。
在读取数据时,通过选择的雷达型号能够确定数据格式,从而调用对应的数据读取函数。
按照官方给定的基数据格式,通过编写通用头块、站点配置块、任务配置块、扫描配置块、径向数据块等的结构体,便能够循环获取到雷达各个距离库内的反射率因子、径向速度等回波数据[19]。