基于C#的高空探测数据传输软件的设计与实现

2018-07-09 02:16高雅洁刘奕辰
气象研究与应用 2018年2期
关键词:探空高空报文

高雅洁,刘奕辰,张 玲,李 阁

(济南市章丘区气象局,山东 济南 250200)

引言

高空气象观测业务是对大气的垂直空间的温度、气压、湿度、风向、风速等气象要素的变化进行观测、收集、处理的工作,是对天气预报制作、大气探究具有重要意义的基础观测业务。

随着计算机网络的发展,windows xp系统已经告别市场,台站使用的业务计算机也陆续开始升级到windows 7操作系统。过去本站一直使用着业务人员自行编写的发送高空压、温、湿、风(TTAA、TTBB、TTCC、TTDD)和高空风(PPBB、PPDD)报文的软件(以下以TTAA代指此6份报),虽然该软件功能较为单一(仅传输TTAA报),但使用起来十分方便,界面简洁,易于操作。然而,更换到windows 7系统后,由于该软件落后于系统,致使无法使用;再者,全国探空站业务升级,新增添了BUFR报与XML报传输。为了适应新的要求,用软件进行发送此类数据报,将十分便捷。结合本站实际情况,本文对编写的新探空软件进行分析与实现说明,程序由台站业务人员亲自编写并对程序进行维护,更加贴合实际,方便实用。

1 需求分析

信息技术的普及,计算机的更新换代,对软件的要求也有所提高。由于编程语言的更新与淘汰,过去编写的发报软件在windows 7系统中无法运行。虽然L波段放球处理软件中含有发送报文的功能,但是它将所有报文都集合到了一个发报界面上,虽然可以使用,但存在以下不足:第一不够智能化。如回执报文无法自动下载。由于近期新增添了BUFR报与XML报并行传输。再者,有许多本站不需要发送的报文和不需要观测的业务,但是该软件将其全部整合到一起,用起来并不顺手;第二它是处理软件的一部分,稍有发送失败等问题就可能使计算机崩溃死机,影响正常业务值班。

另外,因山东省气象信息中心更新的服务器在定时刷新时存在基数据和监控报报文上传不完全的问题:即当报文只传送了一部分,服务器刷新时,就会造成报文缺报、漏报等问题。遇此情况,就需要手动修改报文名称,上传之后还需要再次修改方可正常传输,操作繁琐且容易出错。如将此部分用软件加以实现,将提高值班员工作效率,降低失误率。

2 软件设计

2.1 开发环境

本软件使用C#语言,在windows 7环境下,使用visual studio 2010开发。软件以windows窗体的形式显示,简洁、直观。

2.1 功能设计

软件设计是重点,本软件需要将许多琐碎的功能集合在一起,既要面面俱到,又要简洁易操作。考虑到软件的易用性,界面尽可能简洁。基于报文种类较多,且各类报文的发送与回执获取的方式、地址等也不尽相同。因此使用标签选项来进行功能切换最为合适,各类报文的收发互不干扰。将高空值班各类报文囊括其中,做到智能发报,高效值班。按照报文种类来进行界面的划分,并针对各类报文的收发方式做出如下设计。

(1)探空测风报文:其报文文件名是按照世界时命名的。在读取方面需要将文件名重组为北京时。之后做一个匹配,匹配成功即为当前所需发送报文。遍历报文存储文件夹,按照要求自动搜寻所有匹配成功的报文,将其加入发送列表。随后进行发送与回执下载。

(2)基数据、监控报报文传输和回执下载:此类报文在发送时有一个问题,台站过去使用复制粘贴的形式将报文复制到ftp传输文件夹中进行发送,由于服务器的定时刷新这两种报文发送时有缺报、漏报的问题。需要手动添加tmp后缀,粘贴至服务器后,再删除tmp后缀,操作十分繁琐且易出错,且咨询本省其他探空站为解决报文丢包问题,采用的是手动修改报文名称中的时间项的方式,并未有更简捷的方式避免丢包。因此,用软件来处理这一系列的操作。由于本类报文回执的生成有一定的延时,因此回执下载设计为自动下载。

(3)BUFR报文:对于整个高空业务来说,BUFR报与XML报文是新增添的报文类型,这也是本软件面对的一个新业务要求。BUFR报文的读取是关键,不仅需要区分开07时和19时,还要区分开500Hpa,100Hpa,探空终止这三类。设计按照报文的生成时间来判断发报时次。通过对报文名称的分析,其中有后3类报文的区别,按此进行区分。

(4)XML报文的传输与回执下载:XML报文可以说是新格式下的基数据、监控报,其上传与回执下载方式与基数据、监控报基本相同。

(5)月报发送:仅需每月4日发送,有一定的遗漏性,软件考虑加入报文发送提醒功能,这功能在很大程度上可以避免漏发月报的问题。

(6)参数设置:本软件的设计初衷考虑到后续的升级问题,为了适应业务需求,顺应业务改革,本软件必须要做出相应升级。因此不能将发报地址、存储地址、用户名、密码等固化在程序中。要做到可以手动修改这些参数。

(7)考虑到是否会需要发送加密观测时次的报文,需要增加手动选择报文的发报功能。

软件功能设计如图1所示。

图1 功能设计方框图

3 功能实现

3.1 按世界时日期时间读取报文

TTAA报文在读取文件时,文件名作为读取的依据。在这里对文件名进行一下分析:如UP011200.EJN,UP 后的数拆为 3 组,01、12、00,分别表示日期、时次、报文序号,时间为世界时。将本地时间读取后转换为世界时,与文件中的时次进行比对,并将该文件夹下的目标报文筛选读取出来。

3.2 基数据、监控报上传与下载回执

基数据与监控报的传输流程:1显示报文→2修改文件名后缀→3报文上传至ftp服务器→4删除后缀,恢复文件名→5自动下载回执

回执下载时,先判断两种报文的回执是否均已生成,只有在回执全部生成的情况下,才执行回执下载的操作。使用timer控件进行自动回执下载,根据计算机性能以及回执通常的生成时间,设计为每隔20秒进行一次回执下载操作。直到回执成功下载,结束timer,并弹出成功下载的提示。

3.3 BUFR报和XML报文

2017年9月1日起,全国探空站均进行了报文升级,所有探空站均需在发送原有报文的基础上并行编发BUFR报与XML报文。

(1)BUFR报:根据最新的标准格式文件(BUFR)传输规定,综合探测07时需要按500hPa、100 hPa、探测终止传输三次BUFR报文,综合探测19时需要按100hPa、探测终止传输二次BUFR报文。其命名规则如下:

Z_UPAR_I_54727_20170814061953_O_TEMPL-50_12042312.BIN 500hPa(只 07时发)

Z_UPAR_I_54727_20170814061953_O_TEMPL-10_12042312.BIN 100hPa(所有时段发)

Z_UPAR_I_54727_20170814061953_O_TEMPL-00_12042312.BIN 探测终止(所有时段发)

其中的“50、10、00”即表示“500hPa、100hPa、探测终止”。根据报文名称读取出放球的时次和标志位来综合判断是否为本次探空需要发送的BUFR报文,并将其读出。

(2)XML报:新增XML版的状态文件,在放球5分钟后会和原txt版的状态文件同步产生一个XML版的状态文件;在产生探测终止后的BUFR(00)文件的同时会同步产生一个xml版的状态文件,该文件名与放球软件产生的XML版的状态文件一样,内容也一样(放球软件产生的XML状态文件由于一些参数还没确定会暂时空白),在发送完毕BUFR报文后立即发送该状态XML文件。即新增了两份XML文件。

XML报文按照文件的生成时间进行判断读取,令其只可读取当天时次的报文。探空数据处理软件在探测终止时,如果误点击到BUFR生成按钮时,也会生成一份新的XML报文,并且XML报文命名方式是按照时间(精确到秒),误点后,会生成内容重复的XML报文。出现这种情况时,会弹出提醒令值班员自行选择需要传输的XML报文。

3.4 参数设置

参数设置存储内容包括(1)ftp服务器上传与下载地址、用户名、密码;(2)报文存放地址;(3)回执存放地址。 分 3 个模块:(1)TTAA 参数;(2)监控报、基数据参数;(3)月报参数。为了程序应用方便,使用ini配置文件来保存这些参数,存放内容均可以手动修改,因数据量少,不需要使用数据库,增强了程序的可移植性。

4 运行效果

通过测试,经进行多次修改、更新,最终实现了预期的效果。图2为TTAA报文发送与回执下载测试图;图3为基数据、监控报功能测试图。

图2 TTAA报文发送与回执下载测试图

图3 基数据、监控报功能测试图

自从加入了月报发送提醒功能后,台站月报遗漏问题得到明显的改善,创新类小功能的加入让软件收获了更大的使用效果。面对今年新增添的报文选项,本软件也做出了及时的更新。

图4、图5为新增的BUFR报与XML报文发送运行效果图。值班员在发送BUFR报时可以直观地、便捷地进行选择报文。由于报文名称极其类似,在使用自带发报软件的时候容易发生错选、漏选等问题。本软件极大程度上避免了这些问题,并且提供了回执下载功能,更加贴合实际应用。

图5所展示的为自定义传输功能。由于目前处于并行发报阶段,BUFR报和XML报文处于试运行期,未知何种情况需要发送CCA报,因此,在此处设置自定义发报,让值班员可以有选择的进行报文的发送,为后续的报文和软件更新留下了可持续发展的空间。

图4 BUFR报和XML报

图5 自定义发报

5 结语

软件的成功运行使业务人员可以放心地使用新的系统,在信息时代中,系统与硬件的更新推动着台站业务的进步。这款高空数据传输软件为业务带来了很多便利,不仅提高了值班员的工作效率,而且在一定程度上为高空气象业务提供了保障。通过软件更新,可以适应数据传输的需求,也可以扩充其他业务使用(例如在前期基础上增添了BUFR报与XML报文的传输项)。本软件可以作为高空探测业务长期有效的数据传输软件使用。

[1]李伟,李柏,陈永清,等.常规高空气象观测业务手册[M].北京:气象出版社,2012:129-136.

[2]中国气象局.常规高空气象观测业务规范[M].北京:气象出版社,2010:10-16.

[3]郑阿奇.Visual C# 网络编程[M].北京:电子工业出版社,2011:25-55.

[4]刘远,胡维,姚立宏.雷达产品生成与传输监控短信报警平台[J].气象研究与应用,2014,35(4):115-116.

[5]梁建平,赵丽英,覃晓玲.高空地面业务一体化运行中常见问题分析[J].气象研究与应用,2016,37(1):97-100.

[6]熊文兵,罗永明,曾鹏.广西森林火险等级精细化监测与预报系统研究[J].气象研究与应用,2016,37(2):59-63.

[7]曾鹏,廖国莲,莫雨淳.广西地质灾害业务平台的设计与开发[J].气象研究与应用,2014,35(2):57-59.

[8]张许斌,覃天信.广西农情气象短信产品采集系统开发及应用[J].气象研究与应用,2017,38(2):49-51.

[9]黄宏智,黄飞龙,陈冰怀.新型自动气象站实时监控系统的设计与实现[J].广东气象,2016,38(5):74-77.

[10]何迪,罗律,陆德辉.基于RIA的观测数据共享平台设计和实现[J].广东气象,2015,37(4):77-80.

[11]李茂,谢近年,马佩强.东源探空站秒数据在探空异常情况下的应用[J].广东气象,2014,36(5):78-80.

[12]梁钊扬,郭泽勇.基于C/S架构的雷达产品分发系统的设计与实现[J].广东气象,2013,35(5):64-67.

[13]王建庄,余秀娟.广东省自动气象站数据传输监控功能的实现[J].广东气象,2013,35(2):71-73.

猜你喜欢
探空高空报文
基于J1939 协议多包报文的时序研究及应用
高空走绳
用L波段探空测风雷达评估风廓线雷达测风准确性
福州探空气球的漂移轨迹特征及其对航空飞行的影响分析
CTCS-2级报文数据管理需求分析和实现
MP-3000 型地基微波辐射计探测性能分析
浅析反驳类报文要点
国内首个无人机机载下投探空系统将探测台风
高空缆车
不要高空抛物!