基于JAVA的气象站数据监控平台的设计与实现
2020-02-21吴吉哲张蕊
吴吉哲 张蕊
摘要:本文综合运用Java桌面应用开发技术,SQL Server技术,采用Eclipse作为开发工具,同时利用气象数据统一服务接口(MUSIC)在业务内网环境下利用全国综合气象信息共享平台(CIMISS)数据,构建一个县级气象站数据监控平台。该系统的开发与应用可以很好地实现区域内大风、暴雨、高温预警信号的监测报警、在用站和备份站的数据对比监测、乡镇区域站的故障预警、雨情汇报自动生成的功能,界面友好美观、性能稳定,方便业务值班员更快、更好、更准确的提供气象服务。
关键词:监控平台;Java;预警信号;气象服务
通过计算机技术开发气象站数据监控平台,解决在实际气象业务中经常出现的大监站某要素值缺测,区域站掉线等故障现象;同时对大风、高温、暴雨三种预警信号达标监控,及时提醒值班员发报预警信息;自动统计生成雨情汇报短信,提高对外雨情发布效率。
SQL Server是由Microsofi开发和推广的,便于同各种数据库建立联系,进行沟通的数据库管理系统(DBMS),它拥有豐富的图形化用户界面,以及适用多开发平台的编程接口工具。经过几个版本的更新,现在已经成为商业智能的一个重要数据工具。
MUSIC: Meteorological Unified Service Interface Community,是气象数据统一服务接口,基于国省统一的数据环境(CIMISS),面向气象业务和科研,提供全国统一、标准、丰富的数据访问服务和应用编程接口(API),为国、省、地、县各级应用系统提供唯一权威的数据接入服务。
1 总体设计
本系统一共分为大监站数据对比、区域站故障预警、预警信号监测和雨量统计四个模块。主程序由Java Timer定时器启动并定时运行各个功能。Java Timer是一种Java定时器工具类,线程类(thread)用其控制后台线程中执行定期的任务。实际上是运用线程,定时调度所拥有的TimerTasks。各功能模块如图3.1所示,在设计该平台时,为了避免数据未入库引起的读取错误,在0、5分钟后延迟一段时间后再执行数据读取操作。在此次设计中作者使用1、6分时执行大监站数据对比模块;2、7分钟执行区域站故障监测模块以及预警信号监测模块。
2 各功能模块程序设计
2.1 大监站数据对比模块
此功能模块实现主要依赖于通过两台电脑之间的数据交流,来实现在用站和备份站数据的对比,首先使用在用站数据发送端软件获取每五分钟产生一次的Z数据文件,通过TCP/IP协议发送到指定计算机(备份站计算机),数据接收端同时获取本地的备份站Z数据文件,进行对比分析,将异常数据及时报警。
在该模块中,如何实现两台计算机通信传输是关键。本平台利用TCP/IP技术实现两台工作站之间的通信。在后台设计时分为客户端和服务器端,使用的Java对象分别是Socket和ServerSocket。
首先,数据接收端建立连接的申请,生成一个socket对象,ServerSocketsockeF new ServerSocket(9001);赋予一个服务器端的文件地址(之后在写数据的时候如果文件不存在,则自动创建文件并写数据,若存在文件,则会覆盖原文件),fos - newFileOutputStream(file);运行socket.accept0函数,等待数据发送端的连接。在到达指定时间时,发送端通过服务器的IP地址和端口号实现和服务器的连接,socket - new Socket(local,9001);获取本地的文件的地址,建立j ava和文件的连接,获取文件输入流和数据输出流(输入和输出都是指对于Java.文件输入流的对象名可以为fis,数据输出流的对象名可以为dos;反之,文件输出流fos,数据输入流dis,即和前者相反的过程)。
fis - new FilelnputStream(file);
dos - newD ataOutputStream(socket.getOutputStream0);
sendByte - new byte[1024];
while《length - fis.read(sendByte》>0){dos.write(sendByte.0,length);)
在发送端写完文件后,数据接收端开始获取数据输入流和文件输出流。
InputStreamiFsocket.getlnputStream0;
while《length-ir.read(getByte》!一一1){fo s.write(getByte.0, length);)
在接收完文件后,将本地两个Z文件进行解析。根据新型观测站数据格式规范,将气象站各项要素逐一显示出来,并计算两套气象站数据差异,判断误差的差异度,进行数据合理性分析,如果数据差异过大则可以判断数据异常,进行报警。数据的差异范围确定经由相关文献查出,利用2019年两套气象站的观测数据的差值平均值、差值标准差、一致率等方法分析评估分析后,提出在用站和备份站数据差异范围如表1所示。
2.2 预警信号监测模块
预警信号的监测首先通过在用站数据发送端软件调取本站气象数据,进行本站是否达到预警信号的判断,其他区域指标站数据通过SQL Server获取数据库中分钟气象要素数据,然后对各要素值阈值进行判断、报警。
SQL Server上文已经介绍过,它是微软公司推出的关系型数据库管理系统,由于其具有的使用方便、可伸缩性好、与相关软件集成程度高等优点,可跨越多种编程开发平台使用。在实际业务中,我们读取数据库数据,同时不想改变数据原值,数据库管理者都会对用户权限加以限定,限制用户擅自更改内容。对于数据库使用者来说,查询操作时最为频繁的,也是数据库中非常重要的一项操作,