自动气象站数据监测预警系统的开发与应用
2021-08-31李子平周钦强麦宗鉴刘祖俐
李子平,周钦强,麦宗鉴,刘祖俐
(1.茂名市气象局,广东茂名 525000;2.广东省气象探测数据中心,广东广州 510640)
近年来,突发性短时极端强降水造成的山洪、城市内涝给茂名造成了巨大的人员伤亡和财物损失,特别是茂名北部山区“雨窝”强降水区域多次发生山体滑坡、泥石流等次生地质灾害,是典型的气象灾害频发区[1],提升茂名市灾害性天气监测预警服务决策水平,提高气象灾害的防御能力,显得非常迫切和很有必要。短时强降水的监测依据主要是自动气象站雨量数据[2],随着广东省向着更高水平气象现代化迈进,自动气象站实时的观测资料到桌面越来越及时,对标“监测精密,预报精准,服务精细”,增强茂名本地短时强降水的监测预警手段和决策服务也提出了更高的要求。
目前,李江南[3]、高凌峰等[4]、常国旭等[5]、杨涛等[6]等已针对区域自动气象站预警应用方面进行了研究。这些研究,基本上只实现了某一时次的雨量监测预警或统计,而其他气象要素监测预警或数据分析处理、筛选结合精细化GIS应用的研究还未涉及。本研究介绍了一种通过C#、VB编程软件结合PostgreSQL数据库,通过实时调用广东省气象局IDEA数据接口的标准数据,一方面实现对观测数据的实时监测和预警,另一方面将数据存储在本地数据库,根据预报服务、决策服务和防灾减灾服务的需要,可进行任意时间和数据要素的筛选、统计和长时间跨度的日雨量、时雨量、5 min雨量、最高温度、最低温度以及极大风速等观测数据加工处理并实时叠加显示在茂名市各县(区)的GIS地理信息上,实现全市或分区自动监测预警、自动调用surfer绘图、自动生成统计表格、填色图和决策短信文本等基础业务功能的监测预警平台。
1 功能结构
1.1 主要功能
该监测预警系统的总体功能以实现对茂名全市自动气象观测站实时观测数据监测、预警以及对各种气象要素的数据综合统计处理为目标,总体架构如图1所示。
图1 自动气象站数据监测预警应用系统总体功能结构示意图
该系统主要功能:
(1)实时气象观测数据可视化操作。主要是实现从广东省气象局业务网IDEA数据库接口对茂名全市所有的自动气象观测站观测数据实时获取并存储的本地数据库,实现按各观测站点的经纬度信息实时在茂名市精细化GIS上显示实时风速、风向、温度等各观测要素值,为气象服务、防灾减灾提供各种观测数据的参考。
(2)气象观测资料数据综合统计分析和加工处理。主要是实现各类气象观测要素数据的筛选、统计分析和加工,包括任意时间段气温、降水量、气压、风等观测资料的查询和历史资料的统计分析,采用软件后台运行方式。
(3)调用统计资料绘制地域空间分布图。主要是实现软件系统对气温、降水等要素数据统计加工后,直接调用VB生成的Surfer自动绘图ActiveX控件,在茂名市GIS信息系统上完成自动绘图。
(4)自动生成服务和决策辅助短信功能。预设特定的阀值,对选定时间段的气温、总降水量、极大风速等特定选项资料进行统计和筛选,通过后台相关函数自动计算判断和识别相应值所占总量的百分比。
(5)相关辅助功能。主要用来实现以上所描述的功能辅助。包括站点信息资料编辑、站点选择、地形图和河流加载等。
1.2 逻辑结构
茂名全市现在有将近180个自动气象站,每天入库的观测数据非常庞大,为了更好实现系统的预定设计功能,尽可能提高数据入库速度和效率,综合考虑数据的查询速度和使用操作方便、简易,该系统设计了数据实时读取、数据实时入库存储,以及应用操作终端3个逻辑层面。
(1)数据实时调取程序通过扫描广东省气象局IDEA数据库接口,实时从IDEA接口中调取茂名市的自动站气象观测资料,包括小时数据、5 min数据等地面资料。
(2)数据库采用免费的PostgreSQL,库表采用主、分表设计,库表结构设计方案如图2所示。小时数据、5 min数据各建一张主表,其中时数据表记录每小时整点数据和常规资料,5 min数据表记录5 min观测数据,但是由于时、分记录的地面资料数据量庞大,因此在数据表下再另设分表,每隔1年再建一张子表,子表数据结构继承父表,对应年份的数据存放到对应的子表。该设计解决了随着存储的数据资料庞大而查询速度较缓慢的问题,在数据量庞大时依然能实现对数据的快速分类查询统计和操作。其中,数据实时读取和数据库部署在不同的机器上,互相之间通过内部千兆网络链接,可有效解决平台服务器运行压力,为可视化软件操作终端对数据的检索创造了稳定的基础条件。
图2 数据库逻辑结构设计示意图
(3)应用操作端在基础数据库提供的数据服务平台上,通过内部网络快速访问数据库,实现各种基于茂名精细化GIS的可视化观测数据操作。
2 开发与实现
2.1 茂名市各县(区)GIS地图处理
茂名市和茂名各县(区)的地理信息系统(GIS)以ArcGIS的市、县一级图层数据为信息源,通过ArcGIS10把地图数据导出为Shapefile文件数据,使用C#读取Shapefile的矢量数据,实现对茂名和茂名各县(区)的GIS信息图层的分区绘制。通过C#的控制技术和控件组合,绘制界面透明图层的显示和叠加,实现点击鼠标操作对各GIS系统图层的放大、缩小、拖动等基本操作功能,并在地图界面可叠加显示站点、站名,各气象要素和地形、境内河流等。通过预设定,可根据需要选择相应的区域自动气象站、国家级地面气象观测站,各自动气象站点的经纬度信息通过预设TXT文本直接导入并且可编辑,用户可以很方便、直观地浏览各气象要素资料的时空分布特征[7],根据不同监测预警级别需要,可选择茂名全市或某个县区进行显示,其中县一级图层精细到镇。以茂名市和电白区的图层界面为例,效果如图3所示。
图3 茂名市(a)和电白区(b)GIS信息图层
(1)5 min实时数据。可选自动刷新或手动刷新,实时显示所选站点的实时气温、2 min风、10 min风等。20:00(北京时,下同)雨量和08:00雨量,软件系统根据当前计算机时间自动进行判别,如当前时间大于08:00,数据的查询开始时间选在08:01,如当前时间小于08:00,则当有数据查询请求时,自动对前一天20:00或当天08:00到当前时间段的雨量数据自动统计和甄别,通过按不同量级用不同颜色在地图上显示,主要代码如下:
(2)数据统计模块。数据统计模块可选时数据或分钟实现任意时间段的时雨量、最大时雨量、极大风速、最高和最低气温等相关数据资料的统计和筛选。
(3)雨量和风速预警模块。用C#自带的定时器函数将系统软件处于监控状态,按相关规定的级别设定阀值,系统每2 min对新存入的风速数据进行一次查询,每5 min对当前时间1 h内雨量进行自动统计判断,对如有达到或超预警阀值的,发出声音和图文预警,软件选择操作界面如图4示。
图4 软件系统筛选统计(a)和监控预警(b)选项界面
2.2 辅助模块的设计与实现
辅助功能主要用来实现调用surfer自动进行填色、短信文本生成、绘图资料编辑、数据导出等。数据导出功能可把查询到的要素数据直接生成文本或excel格式相应文件,在生成的文件后缀直接命名为csv文件,excel软件即可打开。
为了减少在C#中调用surfer控件的工作量,在本设计中采用VB软件制作Surfer8的ActiveX控件[8],当系统有填色图响应时直接调用该控件,即可自动绘制相关要素的空间分布图。于平等[9]已经研究过用VB制作Surfer绘图控件,该技术已应用在相关业务中。把VB调用Surfer8自动绘图的原代码生成控件,在C#中直接调用此控件即可实现根据相关数据自动出图。
3 在气象服务中的应用
针对茂名本地气象服务要求,该软件系统按以上所述进行设计,构建了不同的数据处理功能模块,并能将相关的数据要素正确的以图表形式呈现出来,实现了对观测数据自动检索、筛选处理,实现了按实际空间分布的数据图形操作并能进行空间分析,为业务人员提供了便利的数据检索平台,目前该软件系统已实现了在基层气象台的业务使用。
2020年第7号台风“海高斯”于2020年8月19日06:00前后在珠海市金湾区登录,受“海高斯”外围云系影响,2020年8月17—20日茂名全市出现小到中雨、局部大暴雨的降水过程。使用该软件系统对17日08:00至20日20:00的过程雨量、小时最大雨量、极大风速等进行统计和作空间分布图,其主要实现如图5所示,其中总降雨量用不同的颜色显示以区分不同的降雨量级。
图5 2020年8月17日08:00—20日20:00累计降雨量(单位:mm)和极大风速(单位:m/s)
4 结论
本软件应用系统设计用ArcGIS矢量数据资源接口为数据源,利用C#和VB的控件组合与控制技术,以茂名市精细化地理信息系统(GIS)为基础依托,结合PostgreSQL数据库,从广东省气象局业务网IDEA标准数据库接口调取实时观测资料,实现了基于茂名市精细化GIS的自动气象站数据监测预警系统。
该软件优点是有丰富的数据存储、查询功能和筛选、统计的方法,简单明了的图形操作方式,业务人员可快速实现对资料进行筛选、统计分析和加工处理,尤其是在台风、强降水过程中可及时掌握风速、雨情等实况的基本变化,为决策服务提供及时、准确的数据,并能按要求完成数据导出和绘图等基础功能,在茂名市基层气象服务中使用良好,对“监测精密,预报精准,服务精细”的要求有很好的提升作用。因数据量大,软件系统在数据调取上只采用了实时的要素资料,缺乏对相关数据的质量控制,这还有待继续研究改进。