罗亚楠,李 刚,聂 祥,吴 姗,吴蔚然
(1.贵州省七星关区气象局,贵州 七星关 551799;2.贵州省气象台,贵州 贵阳 550002;3.贵州省毕节市气象局,贵州 毕节 551700)
毕节市位于贵州省西北部,地处云贵高原东麓乌蒙山腹地,地形复杂,海拔差异显著,地方性气候特征明显,暴雨、冰雹、凝冻等多种灾害性天气频繁出现,且局地性较强,给气象预报预测及服务工作带来较大挑战,特别在云贵准静止锋影响期间,使得这一地区天气更加复杂多变。由于毕节市地形的特殊性和高海拔等因素,除暴雨、冰雹等灾害性天气影响外,大雾和大风也较为频发和典型,且时空分布极度不均匀,对当地农业设施、林业及交通等均存在着不同程度的破坏与影响。大风天气多发于赫章和威宁的春秋季节,夏季常常伴随着强对流天气发生,对基础设施、农业设施、林业等影响巨大,给当地带来巨大损失[1]。大雾常年均有发生,尤以大方、威宁和金沙等县较为突出,具有显著的局地性特点。特别是高速公路大雾,严重影响交通安全[2],给国民经济和人民生命财产带来重大损失。因此,做好当地大风、大雾的监测预警服务工作,有助于政府决策与调度,最大限度减小因气象因素造成的经济损失,研发一套适合本地的大风大雾监测预警系统[3]尤为重要。
目前,毕节市大雾和大风的监测、预警及服务工作,主要依靠人工每天关注短临一体化等平台的观测数据,根据数据变化进一步主观判断是否进行预警服务,存在较大的滞后性。此外,因预报服务工作中业务人员需要关注的数据种类较多,工作量大且人工不能完全24 h无间隙地对数据进行实时监视,因此,靠人工监测来开展大雾与大风预警工作不但难度大且极易发生错漏与滞后,易错过最佳决策调度时段。虽然现阶段应用的一体化平台兼有自动检测大雾与大风的功能,但目前仅限于国家气象观测站,针对本地常规站点实时监测预警功能并未纳入其中,而当地破坏力较大的风及能见度较低的大雾又常常发生于乡镇,因此其监测预警服务难以满足当前的业务需求;另外,当前一体化业务平台主要停留在文字提醒,尚不足以起到及时警示的作用。
本系统的建设不仅包括国家气象观测站,还包括乡镇常规站数据的实时监测与跟踪研判,更能够适应当地服务需求;在预警形式上,采取声音警报与文字弹窗分级组合共同完成,更好地适应当前实际需求[4]。系统的建设完成,将大量减小人工实时对数据的监视工作,可以帮助业务人员提前判断是否发布相应的预警信号并开展相关服务,从而提升预警信号发布的及时性和准确率,改善服务效果。本系统旨在从天擎系统实时调取数据并加以监测,然后对其进行统计、分析和显示,还可以通过监测数据建立预测模型,对未来可能出现大风或大雾天气进行演变趋势分析,便于业务人员及时开展预警服务工作。
基于Windows环境,采用Python3.7语言,Pycharm2019专业版IDE,通过经典的B/S架构进行搭建,Web端本次采用Python + flask框架设计,此架构易用性强,免安装,部署在毕节地区本地的服务器上,业务人员在局域网中可由浏览器登陆使用,后台程序在服务器中运行,也可实时查看运行情况,保障功能通畅。此外,开发过程中还合理应用Python接口获取、SQLite数据库管理、ECharts数据可视化等技术。
系统数据主要来源于天擎系统。气象大数据云平台(天擎系统)是在中国气象局预报司的组织下,由省气象信息中心牵头开发的“数算一体”的气象大数据云平台,于2020年12月15日上线正式开始运行,具备海量数据存储、全业务贯通、数据应用高效的能力,足够开放,可直接支撑天气、气候、探测、公服、人影等各类气象应用的云化融入,初步形成“云+端”的应用生态,是目前气象数据的集中共享平台,相较于之前使用的CIMISS环境更加稳定,开放,功能更加完善[5]。
系统的建设与应用主要致力于标准化提取数据,实时显示关键指标变化趋势,并根据趋势和临界值判断与警示,提醒业务人员是否需要发布预警。天擎数据读取中,服务节点使用NMIC_MUSIC_CMADAAS,序列化格式为JSON,数据名称为SURF_WEA_CHN_MUL_MIN(中国地面分钟全要素资料),服务接口为:getSurfEleInRegionByTime(按时间、地区检索地面数据要素)。总体结构图见图1。分为前台和后台2个部分,其中后台部分包含了取数据,数据库管理,计算和处理数据以及报警功能4个模块;前台主要为显示功能模块。
图1 核心功能结构
系统功能模块主要有:观测数据实时显示模块、数据处理模块、监测预警模块、业务人员信息管理模块等。在观测数据实时显示模块中,使用百度地图API实时根据经纬度显示站点位置,后续可选择加入其他要素数据显示;观测数据实时显示模块,使用ECharts实时以折线图形式显示在网页上,利用ajax技术逐分钟局部刷新;业务人员信息管理包括管理业务人员登录信息和预警提醒记录2部分;监测预警模块在核心功能计算后依据预警标准触发提醒功能[6],数据处理模块根据毕节市预警业务实际需要,对直接读出的数据进行本地化处理,针对性调取核心要素,满足功能的前体下提升系统性能。
大风预警规则是:平均风速6级以上,或者阵风7级以上。在系统数据中表现为:即平均风速≥10.8 m·s-1,或瞬时风速≥13.9 m·s-1,其中瞬时风速是观测值极大风速。
大雾预警规则是能见度≤500 m[7], 在系统数据中表现为 1 min平均能见度≤500 m。当实时观测数据或者系统预测数据达到以上标准时即分级触发报警程序,提醒业务人员考虑发布大风、大雾预警信息[8]。
当前业务应用系统一体化平台是对观测数据全要素全域数据调取,对实际使用并不友好,一方面会出现信息过多,使用者上手难度大,操作过程复杂,降低处理速度,另一方面海量数据,对系统运行硬件要求提高,维护成本提升。因此,本系统数据从天擎系统接口调取观测数据后,按要素、市域、区县进行拆分,进行结构化重组后存储进数据库,大幅度减小数据存储量及实时流量。后续调取时使用分级策略,协助用户更方便快捷获取想要的数据及决策建议,对市级,县区级的数据处理区分单独处理,最大限度提升使用感和系统运行效率。
在使用端,系统根据不同用户的需求提供不同的服务。如业务人员以预警目的查看信息时,显示结果为简洁易读的折线图方式;依据不同查询条件查询数据时,显示为表格形式;需统计数据时提供统计分析图表,显示结果可选饼图、柱状图、堆叠图等实用类型[9]。
为及时有效地进行工作服务,除数据的实时监测显示外,还对数据进行存储与管理。数据包含了国家气象观测站和常规站的分钟级数据,数据量较大,为更有效地进行数据应用,进行了SQLite数据库设计。现行一体化系统无本地服务器,使用时常出现卡顿,处理速度慢等状况,为提升系统运行性能,进行数据的本地存储与处理。
系统数据表格设计:业务人员信息表、大雾观测逐分钟实时数据表、大风观测逐分钟数据表、大雾大风逐小时观测数据表、大雾大风逐日最值数据表、预警提醒记录表。其中大雾观测逐分钟实时数据表和大风观测逐分钟数据表信息每日自动清理。
目前本地化使用的系统多为个人设计实施,对数据的定义、采用的开发语言、设计的数据存储结构、使用的架构等多依据个人习惯采用,并未形成统一规范的形式,对多系统融合和后续扩展开发造成较大麻烦。而且同一个实例采用不同软件会有不同结果,对服务工作造成不便。本次系统的设计严格采用国家及省局业务规范与指标,对数据进行规范性编译与处理,形成统一规范的数据出口,规范了业务服务工作。
针对本系统中的大雾大风监测预警,一方面监测实时数据,达到标准报警,提醒发布;另一方面通过前期实时数据进行趋势拟合,对未来数据进行预判,根据结果报警。在数据的趋势拟合预判中,主要根据30组数值利用二次三项式拟合找出回归方程来完成,如出现缺省则向前取数补充,并预判后续5 min内的数值,根据预判做出拟合图效果,如达到标准则触发警报[10-13]。
监测预警模块是本系统的核心功能之一,需根据不同紧急情况采取不同方式警报,具体如表1所示:
表1 警报模式表
监测预警模块为了保证实时效果好,设定每分钟执行1次报警检测程序,确保新的分钟数据进入数据库之后第一时间进行预警监测。
系统数据展示模块依据实际用户需求做分类处理,地图部分适应地市和区县两级需求,根据用户权限默认首页显示地图区域大小,各级用户均可根据需要选择显示的区域级别。数据显示,默认显示大雾,大风逐分钟实时数据依据时间变化折线图,可根据需要选择时间、空间、站点、要素及图标类型等,按需求显示。例如:可显示1个站点过去1 h逐分钟的能见度变化情况,可显示本行政区域所有站点此刻的2 min平均风速值等等,图2为毕节地区过去10 min内所有国家气象观测站的2 min平均风速的变化折线图,图3为毕节本级显示区域内所有国家气象观测站点的效果图,已做到最大程度的定制化显示。
图2 大风预警数据展示界面
图3 毕节地区国家站分布效果图
测试的具体案例数据参照大雾和大风测试数据表(表2),测试过程中采用手工传入数据库,系统自动生成图片,并自动根据规则触发报警行为。表中大雾、大风测试数据各5组,其中3组是历史实际数据,2组是人工测试数据。
表2 大方站大雾测试数据表
大雾数据测试:实例1传入系统后,引发第3级警报,成功响起语音报警,点击关闭弹窗,后续无其他报警触发;实例2传入系统中,成功触发语音报警,不做处理,2 min后触发弹窗+语音报警;实例3传入系统前,输入前置程序,引发预测5 min后出现大雾趋势,1.2 s后成功触发弹窗报警,点击关闭弹窗,后续无其他报警触发;实例4传入系统中,输入前置程序,引发预测5 min后出现大雾趋势,1.4 s后成功触发弹窗报警,不做处理,3 min后触发警报声音+语音;实例5作为储备实例,分别按前4中情形重新传入,得到结果均符合预设。
大风数据测试:实例1传入系统后,引发第3级警报,成功响起语音报警,点击关闭弹窗,后续无其他报警触发;实例2传入系统中,成功触发语音报警,不做处理,2 min后触发弹窗+语音报警;实例3传入系统前,输入前置程序,引发预测5 min后出现大风趋势,1.2 s后成功触发弹窗报警,点击关闭弹窗,后续无其他报警触发;实例4传入系统中,输入前置程序,引发预测5 min后出现大风趋势,1.4 s后成功触发弹窗报警,不做处理,3 min后触发警报声音+语音;实例5作为储备实例,分别按前4种情形重新传入,得到结果均符合预设。
表3 毕节市大风测试数据表(单位:m·s-1)
在七星关区气象局部署程序测试,经过2021年6月的试运行,毕节市七星关区发生大风成功预测2次大风预警,6月未发生大雾情况。其中,6月3日的大风预警为2 min平均风速在10时10分率先达到预警值,系统10时10分准时正确发出语音报警,经预报员研判10时14分发出大风预警信号;6月16日20时51分出现2 min平均风速达到预警值,20时51分弹出语音报警后3 min内未处理,20时54分系统正确触发了语音报警和警报声音报警,预报员经综合考虑21时发出预警信息。
在充分吸取以往服务平台优势基础上,结合现行业务运行流程规范,从当前业务需要出发,对毕节市大风、大雾实时监测预警业务系统中数据环境、系统架构设计、核心功能模型及关键技术进行了详细论述。目前该系统已投放业务试运行,各方面表现出较好的业务应用价值。
①当前业务系统开发主要立足于省级气象局,本地化针对性不够,不能完全满足本地市县级预报使用需求,本系统的设计与实施基于本地预报员使用习惯,更能满足业务需求。
②针对本地实际需求集合关键要素数据分级存储并处理,提升系统运行效率,方便业务人员及时查询与处理,提升工作准确性和效率。
③大雾大风监测预警系统建设,结合预报员对大雾大风预警的经验,极大提升了对大雾大风天气预警的时效性。
综上所述,毕节大雾大风监测预警系统开发对预警信息化工作的本地化做出探索,更有效地提升服务和效率,为未来信息化建设添砖加瓦。