王 莹 任 芳 姜 峰 马 磊
(陕西省气象服务中心 陕西 西安 710014)
专业气象服务能力与地方社会经济关系密切。近年来,随着互联网+、大数据等技术的广泛应用,全国各级气象部门在专业气象服务手段、服务产品、服务水平等方面都有了长足的发展,在专业气象服务系统建设方面,各级气象部门进行了有效的探索和实践,开发了一系列专业预报服务系统。但是,全国各地的专业气象服务情况受地域、气候、社会经济发展等多种因素制约,发展不平衡,各类系统的开发往往只是针对气象服务系统的某个方面,缺乏自动化、精细化、集约化等特点,在很大程度上不能完全满足用户对专业气象服务产品在制作广度上、精度上的需求。主要体现在两个方面:(1) 产品制作与产品新需求两个环节严重脱节,产品制作自动化程度低。新产品需求在快速增加,僵尸产品仍在制作,造成大量人力、物力资源浪费。(2) 产品繁多且分散,精细化、集约化程度低。针对不同行业和不同用户的需求,没有深度挖掘气象服务产品的通用性和制作流程的一致性,造成同一服务内容,多系统重复制作,不能及时共享,工作效率低。因此,实现一条面向不同行业的自动化、智能化的气象服务产品生产线显得十分必要。
陕西省专业气象服务涉及行业13类,百余家用户,重点集中在能源、电力、交通、旅游、林业、水利等行业。针对上述专业气象服务的现存问题,提出从数据到客户的一体化系统解决方案。通过气象服务数据平台化支撑、自动化产品制作生产、一键式多渠道协同分发、全流程可视化监控四个方面,研究并设计了基于多源数据融合的一体化气象服务产品加工系统,实现各行业服务模型的智能化应用、多行业全景气象服务概览、气象服务产品从生产到消亡的整个生命周期的可配、可视、可管,最终提升多源气象数据在不同行业的再分析产品的可视化、智能化应用能力。
陕西省一体化气象服务产品加工系统(SPMS),是数据集约化、功能模块化、支撑一体化的气象服务平台,不仅能够满足专业气象服务的需求,还能满足部分公众和新媒体气象服务的业务需求,同时面向不同用户群体及气象业务系统提供基础产品及数据接口服务,为陕西省专业气象服务提供统一架构的业务支撑。主要的功能特点有:(1) 数据接口服务,满足不同用户的数据服务需求;(2) 行业产品制作,满足不同行业的专业性产品制作需求;(3) 一键式发布,实现行业服务产品的自动发布,减少人工;(4) 全流程监控,满足业务流程化管理,做到产品从生产到发布的全流程监控。
SPMS旨在建立面向不同行业的气象预报预警服务产品一体化制作、分发、监控、管理的综合性业务系统[1]。主要设计完成数据分析、产品制作、专题制作、产品审发、产品展示、分发监控、系统管理、接口服务等任务:(1) 数据分析:对来自各类数据源如CIMISS接口、中国气象局公共服务中心下发、气象服务中心数据源、FTP传输的数据进行查询、分析、校验,对不完整数据进行补报,对错误信息进行订正。(2) 产品制作:通过地图划片或者文字编辑的形式对预报内容进行解释分析,制作产品发布内容。(3) 专题制作:进行临时性的专题制作。(4) 产品审发:对即将发布的产品进行审核,审核通过进行发送。(5) 分发监控:对数据采集、产品制作及分发状态进行监控、展示、查询。(6) 系统管理:对用户权限、岗位、产品配置等信息进行管理。(7) 接口服务:为气象服务应用系统及气象服务数据可视化系统提供数据支撑。(8) 产品展示:按行业-产品类型-产品名称进行归类展示与检索,形成一个产品库,实现产品可视化。
系统采用SOA面向服务架构,由采集层、数据层、加工层、服务层组成。采集层使用Spring+Quartz框架,实现从数据库、Http接口、FTP、网络映射等多源异构数据(站点、格点、文本、图片)的定时采集及数据分析,完成分布式存储工作;数据层使用SpringMVC+Mybatis+Ehcache框架,将从采集层读取并处理后的数据以Http接口的形式为本业务平台和第三方应用提供服务;加工层使用前后端分离的模式,后端主要使用SpringMVC+Mybatis框架,结合地图划片技术,实现风险模型计算,文档格式转换、产品封装等逻辑处理;前端使用Vue+OpenLayers+Echarts实现交通、能源、林业等行业和专题产品的制作,以及预警信号、历史天气、火险实况等数据的查询;服务层使用Spring+Quartz框架,完成加工层制作的各类产品实时发送。系统框架图如图1所示。
图1 系统框架
系统主要设计了数据采集服务子系统、专业服务产品分析制作子系统、多渠道分发传输子系统、接口服务子系统、监控子系统、管理子系统六个模块。核心是产品制作与分发,所有的产品及制作任务均可在后台配置管理,最终实现产品制作可定制、可管理、可跟踪。同时,面向不同角色用户,设计了不同的业务操作流程,并设定岗位职责,主要分为产品制作岗、系统监控岗、系统管理岗。
数据采集服务子系统:采用PostgreSQL大型数据库数据库管理软件建立中心数据库[2],包含公共预报产品、行业预报产品、常用的模式预报产品、预警信号、应急命令产品、公共气象服务产品、实况、历史数据等各类数据表。专业服务产品分析制作子系统:基于B/S架构和底层核心框架的绘图及分析功能,采用Java、AJAX等技术开发,承接产品制作岗的主要业务流程,包括数据分析、产品制作、专题制作、地图划片、产品审发、分发监控和产品展示功能。多渠道分发传输系统:基于Java多线程技术,实现产品制作系统生产的交通、能源、林业等行业服务产品通过FTP、网络映射、短信、邮件、传真等渠道实时发送,为多渠道同时进行发布提供保障。接口服务子系统:依托云平台资源池,建立面向气象服务应用的气象服务私有云平台,对接CIMISS系统、中心数据源、公服下发数据、FTP传输等数据源,基于B/S架构,采用Java、HTTP等技术以JSON、XML等方式承载返回的业务数据,为本系统业务和第三方应用提供数据保障。系统管理子系统:主要承接产品管理岗的主要业务流程,包括产品配置、系统管理、配置管理等模块,完成站点信息、要素管理、渠道配置、图例管理、色标配置、分析管理、阈值管理和产品的配置、用户相关的岗位和权限管理、组织机构和单位管理等基础性配置管理功能。监控子系统:主要承接产品监控岗的主要业务流程,包括监控管理和监控展现模块,完成数据、产品、网络、系统状态的实时流程监控和管理功能。
数据采集系统根据入库规则完成分布式数据库存储工作后,监控系统从数据库获取数据的采集动态、异常数据、数据订正状态等信息,如果出现异常告警,则快捷打开采集系统对异常数据重新采集;数据接口服务系统根据数据API接口标准从数据库调用各类数据文件包(站点实况、格点精细化预报、空气质量、森林火险),将数据以Http接口的形式再对外提供服务;产品分析制作系统根据指标模型设置、专题模板设置、产品设置等相关设置,实时判断各类产品的生成条件,获取产品格式、内容等相关信息,从数据库或者数据接口获取所需数据完成产品制作,并将生成的产品发送到分发传输系统;分发传输系统收到产品后,通过产品ID查找相关分发渠道,完成产品分发,并将产品分发状态写入数据库。监控系统从数据库读取产品分发的非正常状态后,对产品制作岗和监控岗位提供相应异常提醒服务。系统业务流程如图2所示。
图2 系统业务流程
系统以多源数据为基础,构建“一体化”支撑体系。基于分布式计算与存储技术,采用分布式数据库PgSQL和内存数据库Redis,存储CIMISS系统及其他多种数据源下的各类结构化及非结构化数据,构建数据支撑平台,同时采用高内聚、低耦合原则划分数据集,减少数据同步损耗,提升运行效率,最终实现气象数据快速存储与读取,为系统提供统一的数据采集、格式转换、空间化处理、数据更新、数据加工、数据可视化等数据服务。数据支撑服务平台每日平均访问量6万余次,为用户提供数据服务200多MB,平均响应速度达到毫秒级。效果如图3所示。
图3 数据接口平台
以数据为基础,紧密贴合行业,搭建“高性能图形制作+时空多维影响分析”引擎。基于地图划片技术,建立各类行业指标算法池,实现气象要素数据、行业预报预警指标、灾害影响分析指标相融合的行业气象服务产品制作功能,最终生成基于影响的行业气象服务产品。
地图划片技术底层核心框架主要包括:地理信息引擎[3]、气象图形引擎[4]、图像分析引擎等功能模块。地理信息引擎为产品制作模块的核心,支持多种地图底图的展现,包括平面地图、卫星地图、地形地图等,并支持导入高分辨率的地图数据[5]。气象图形引擎用于气象数据的处理和可视化,基于气象图形引擎强大的智能绘图语言与绘图技术,结合SHP地图数据和气象数据实现对最高温度、最低温度、风、雨量等天气要素色斑图绘制,支持hdf、grib2、shapefile、micaps4、.txt(站点)、.txt(格点)数据格式输入,绘制色斑图、散点图等图片类型。图像分析引擎实现地图上绘图的底层分析功能,获取各类色素对应的影响范围、下垫面数据等,完成分析解剖并形成对应的产品结论[6]。
行业模型算法池采用了模块化构建方法,具有较强的可扩展性,涵盖电力、交通、旅游、能源等行业服务指标54种、模型13种。以交通大雾风险预报产品为例,将大雾强度、持续时间等气象要素指标、公路路网密度、单项车流量、交通风险区划等级等行业服务指标要素综合考虑,构建交通大雾风险模型,得到大雾风险等级指数R:
F×f
(1)
式中:P为大雾的强度分指标;T为大雾的持续时间分指标;D为路网密度分指标;N为单项车流量分指标;F为风险区划等级;p、t、d、n、f、d1、n1分别为对应的权重系数。
将气象要素数据(P、T)与公路相关指标(D、N、F)代入式(1),得到大雾风险等级指数R,通过后台插值算法、人工主观订正、自定义气象图形产品样式等操作,制作特定区域不同要素、风险影响的时序图、色斑图、等值线图、剖面图和空间分布图,并对特定区域下垫面进行影响分析,最终生成全省公路大雾风险预报产品,见图4。
图4 公路大雾风险预报产品
以客户为中心,基于多源气象数据融合及再分析产品的制作与应用,实现多灾害模型数据和行业数据的耦合,完成从天气到影响的服务转变,客户体验得以提升。
以数据支撑平台为基础,使用流处理引擎,通过分布式任务调度和通信,建立基于多业务流程的产品制作、自动生成、审核分发、多渠道发布、可视化监控引擎机制,构建“一个岗位、一站式、一键式”全自动智能生产线,实现从数据到客户的一体化服务交付[6]。任务调度实现方法:
Scheduler scheduler=sf.getScheduler();
scheduler.addJobListener(new TaskListener());
scheduler.scheduleJob(jobDetail,simpleTrigger);
scheduler.start();
通过定义调度器工厂SchedulerFactory,通过getScheduler()方法得到调度器实例,客户端通过scheduleJob()方法将任务和触发器存储在JobStore中,通过start()方法通知调度线程执行任务,调度线程即完成从JobStore中去调取即将触发的任务。
基于JavaScript的API技术,深入开展气象数据的挖掘、高效计算及行业应用。系统将实况、预报、影响分析[7]、色斑图等各类气象服务要素使用富文本编辑技术封装成具有独立展示功能的显示单元,形成面向不同行业的多个组件,并提供二次开发接口,供新组件的定制开发[8]。配置管理、部分产品配置效果见图5、图6。
图5 配置管理界面
图6 产品配置页面
通过对不同类型的实况、预报数据设置不同的阈值,配置产品高影响及突发天气产品制作的触发规则,实时判断各类产品制作是否超出阈值,如果超出则自动生成提示信息,告警提示并提供制作引导。
以低温高影响产品为例,产品制作提醒条件:预报显示某一区域内所有的点当日最低气温将小于等于-5 ℃;或者实况显示过去1 h某一区域内所有的点以出现最低气温将小于等于-2 ℃且预报显示该区域低温还将持续。系统根据上述产品制作条件设置阈值,并生成制作提示页面弹出提醒,效果见图7。
图7 低温产品制作阈值提醒
服务器采用CentOS7 64位软件作为操作系统,系统开发采用Spring+Struts2+Mybatis企业级应用框架,主要编程语言为Java,并融合Vue、JavaScript、Ajax等网页开发技术,开发环境为Eclipse2018+Maven3,数据库管理系统使用PostgreSQL 9.4,Web Server为Tomcat 8.0和Nginx 1.14。
首页以整合为核心,以用户为导向,简约直观,并配以个性化图标和智能提醒,体现互联网+气象。主要作用是对产品制作的流程追踪,面向多行业的产品全景概览,服务重点提醒。通过产品制作时间轴,展示预报应制作的时间,超时未制作的置顶变红提示,点击可进入相应产品制作界面;实时动态区动态滚动产品生成及分发情况;高突天气(高影响及突发天气)产品制作区:根据设定的高影响天气分析、行业预警及临近预报的制作阈值,判断实况、预报、预警条件是否达到阈值,达到即提示制作并显示;产品审发全景按照行业划分,显示待审核产品,点击可进入产品审核界面。效果见图8。
图8 首页全景
作业人员在地图划片模块,绘制全省及省外部分地区的天气影响范围,同时可确定此次影响范围的预警圈,如图9所示,可手工绘制,也可选择数据源自动绘制,绘制完成后可根据后台设定的各行业用户关注区域预览反演出各行业的影响范围图,保存后系统自动反演生成影响用户关注区域的天气影响服务产品[9-10],如图10所示,并形成对应的文字分析结论,如图11所示。图和文字分析都作为不同服务产品的内容模块来源,配置到不同文件产品,然后进入审发流程。
图9 全省范围天气影响
图10 反演行业天气影响
图11 文字分析结论
模块特色:可自定义绘图,自由选择业务图、地形图、卫星图和无底图。可灵活绘制落区,自由配置图例、图标、预警圈、文字等效果。
产品制作既能够按照行业要求制作特色产品,也能够找出共性,制作综合性产品应用于各行业,充分体现了系统针对行业的专业化及综合性特点。产品制作任务均可在后台配置,例如公路短期预报,可配置SHP底图、按不同要素、不同数据频次、不同气象类型和综合性文字分析,系统自动绘制产品图并生成分析结论。图文可切换展示重点,如图12所示。
图12 产品制作页面
模块特色:产品制作任务及内容自动化、定制化,均可根据实际需求灵活更改配置信息,具有较高的业务拓展性。
产品制作完成后进入产品审发模块,审核列表可按产品生成时间或按照行业排列,产品前小闹钟颜色表示审核状态。产品是否审核可在后台产品管理中配置审核规则,设置为自动审核的产品,小闹钟为绿色,设置为发送失败的产品;小闹钟颜色为红色,设置为发送中的产品;小闹钟颜色为黄色,产品生成后自动按照配置的渠道完成发送。此外,每个产品均可在审核中进行修订,如图13所示。
图13 产品审发页面
模块特色:集约化程度高,在同一界面整合展示多个行业的产品,并可区分当天审发产品(日常列表)和不同行业的所有产品(产品列表),同时协调发布到多个渠道,实现资源整合与一键式发布。
系统监控主要用于数据、产品、网络、系统状态的实时流程监控和可视化管理。数据采集监控:对网络文件与定时任务进行监控,出现异常则标色自动警告;站点实况数据以地图模式展现,出现异常标色自动警告,可进行异常数据实时订正,地图点击交互事件可展示该站点24小时天气实况多要素曲线图供订正参考。见图14中间部分。硬件网络监控:以多层次节点监控结构图形式布局和监控服务器、主要网站、第三方专线等硬件网络,异常标色自动警告,见图14左下部分。产品流监控:监控服务产品制作流程,通过统计应生成、应发送、实际生成、实际发送的产品数,查看产品生成、审核、分发情况,如图15所示。
图14 实况、网络、任务监控
图15 产品发送监控
模块特色:具有概览全局的效果,提供数据流、产品流、文件流等的状态监测与报警功能。
系统的应用创新主要有:(1) 多行业资源整合:多个行业气象产品编制与分发,统一全景概览。(2) 灵活配置流程化:提供自定义产品配置,自动生成产品,实现从数据源到分发的整个产品流程。(3) 绘图分析智能化:提供实时绘图、实时分析与自动绘图、自动分析。(4) 集约发布自动化:实现对同一个产品分发到多个渠道,减少重复工作,提高分发效率。(5) 省市县区一体化:面向省市县不同单位不同部门的一体化体系,实现不同用户与对应产品的独立应用。(6) 工作一站式:业务人员只需一个系统即可完成产品的制作及服务。(7) 集中监控可视化:对系统数据、产品、文件、网络的全面可视化监控。
系统建成后主要应用于陕西省专业气象预报服务业务,实现了岗位一站式、发布一键式、产品专业化的全自动智能生产线,实现了用户和服务之间的紧密联动,资源节约52%,作业时效提升400%。同时,系统的模块化及拼插式架构体系,非常适合移植到省、市级行业气象服务中心,它可以通过配置当地行业用户的气象服务指标以及生产作业流程,为当地行业用户提供智能化气象服务支撑,适用于气象与各行业的多维度融合,具有非常广泛的应用前景。
陕西省一体化气象服务产品加工系统以多行业气象产品制作分发及平台统一监控作为切入点,实现了气象预报预警服务产品的个性化配置制作、多渠道协调分发、多行业产品全景、全平台集中监控功能,重点解决专业气象服务业务流程的优化问题,实现一次指导性制作,多样化产品输出,极大提高了业务人员的制作效率,具有较高的应用价值。