自动气象站4G数据服务中心软件的设计与应用
2022-04-08黄宏智吕玉嫦钟翠霞
黄宏智,吕玉嫦,钟翠霞
(1.广东省气象探测数据中心,广州 510080;2.广州市黄埔区气象局,广州 510080)
0 引言
广东省基于移动4G无线组网集中采集的气象探测数据有:3200多个区域自动气象站、31个生物舒适度站、31个土壤水分站、9个交通站以及49个海岛自动气象站。由此可见,4G无线采集已成为广东省最主要的数据传输方式。
在数据应用流程上,广东省气象局自动气象站中心采集软件负责收集全省各地运行的各种类别自动气象站上行的原始数据,一路按照指定数据格式形成报文上传到中国气象局[1],另外一路通过判别站点归属地将原始数据传输至对应的市局,再由市局分发至下辖县(区)局以提供数据服务。
基于上述业务架构,从广东省的自动气象站业务数据流程出发,需开发一个自动气象站4G数据服务中心软件,连接省局和市局端的数据传输,解决区域自动气象站、生物舒适度站、土壤水分站、生态自动气象站等多类别站点数据实时分发的难题,使各地级市局和下辖县(区)局实时获取各类设备观测数据,为天气预报预警服务提供有力的数据支撑。文章着重介绍了自动气象站4G数据服务中心软件的模块结构、数据并发接收、数据报组包及校验和数据分发等内容。
1 软件总体架构
软件基于各类别自动气象站中心采集软件的分布式部署架构,采用多线程和TCP/UDP通信技术进行设计[2],主要涵盖3部分内容:1)数据并发接收:针对每类自动气象站设备创建一条数据接收处理线程,采用TCP通信协议与上位机中心采集软件建立数据传输链路,闲时,线程处于监听状态,忙时,线程将接收到的数据报存储在开辟的内存中;2)数据报组报及校验:对存储在内存中的零散分报文进行组报,组合完毕的报文应包含正确的相应设备数据格式报头及报尾,对组合后的报文进行校验,若通过则进行分发待处理,否则将报文作错误处理进行丢弃;3)数据分发:根据配置的区域自动气象站、生物舒适度站、土壤水分站等数据接收目标IP地址,创建UDP协议数据分发线程,实时将完整报文(部分数据需要格式转换)分发至各县(区)局的业务软件进行显示处理。
2 软件详细设计
自动气象站4G数据服务中心软件的设计基于Microsoft Visual Studio 2010开发平台,综合采用多线程并发处理、TCP数据流接收、UDP数据流分发等技术实现市级气象局对各类自动气象站数据同步接收及分发至各县(区)局进行显示、存储以及报文制作等。
2.1 创建数据接收线程
自动气象站4G数据服务中心软件根据设备类型的配置情况,为每类设备创建一条数据接收线程,利用TCP传输协议单向接收省局上位机采集中心软件高速下行的数据流[3]。以区域自动气象站为例,软件启动时,先读取区域自动气象站的通信配置参数正确与否,若为正确,则创建TCP数据流监听线程,将其设置为后台线程并激活。线程的功能及流程是首先与上位机服务器建立TCP通信连接,然后实时接收上位机服务器下行的数据报[4],并存储在内存数组中。关键代码说明如下:
①TCP_Client = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
TCP_Client.Connect(ServerIP,ServerPort);
首先创建服务器端监听Socket,采用IP4寻址协议、流式连接、TCP协议传输数据等模式,然后根据配置的IP地址、端口号进行连接服务器。
②byte[] recv_buf = new byte[1000];
int receiveLength = TCP_Client.Receive(recv_buf);
开辟存储容量为1000字节的缓冲区,循环接收上位机服务器下行的TCP数据流,并把他依序放进缓冲区内。
2.2 数据报文综合处理
软件配置了一个工作时间周期为50 ms的定时器,首先定时依次从接收缓冲区序列中取出子报文,然后对各段子报文进行组包并进行完整性检验。以区域自动气象站的ASCII报文为例,如果组合后的报文包含有报头特征符“BG”和报尾特征符“ED”,并通过报文长度校验,则视为完整的一个报文,否则继续组合下一段子报文。当报文完整性检验完毕,接着根据区域自动气象站的数据字典格式进行各个要素的解析。数据解析时,软件根据各个要素的标识符,如气温变量名称为AAA,湿度变量名称为ADA等对报文进行要素报文段定位,然后再检索提取出该要素的实时值、小时极大值、小时极小值以及极值出现时间等统计量[5]。最后根据部署在县(区)局自动气象站数据处理与显示终端软件对设备报文格式的要求,将各要素的ASCII值加上报头报尾封装成十六进制的报文。
2.3 UDP数据报发送
在数据综合处理模块对接收到的原始报文进行解析及格式转换后,立刻启动数据UDP发送线程,根据配置的县(区)局接收数据服务器的IP地址清单,以数据流的形式利用UDP协议发送至自动气象站数据处理与显示终端、舒适度数据采集系统等业务软件进行数据显示、存储和报文制作等。
数据报的发送采用了一个无连接的传输协议:用户数据报协议(User Datagram Protocol)。UDP是OSI参考模型中一种无连接的传输层协议,他主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成[6]。
3 结束语
随着广东省气象现代化进程不断推进和气象防灾减灾需求日益增长,越来越多类别的自动气象站将会在全省各地部署运行,以提供精细化的气象观测数据。因此,设计一个高效的自动气象站4G数据服务中心软件尤为重要。
目前,自动气象站4G数据服务中心软件已在全省21个地级市的气象局业务应用3 a多,为市、县(区)气象局的区域自动气象站、海岛自动气象站、土壤水分站、生物舒适度站等8类设备提供实时的观测数据,为当地的气象预报预警和防灾减灾服务提供高时空分辨力的数据支撑。同时,市局和县(区)技术保障人员通过该软件能够及时掌握管理区域的各站点设备运行状态和数据质量,实现对业务质量不规范的站点做到及时维护[7]。