邱忠洋, 蒋 骏, 雷正翠, 黄文彦
(常州市气象局, 江苏 常州 213022)
现代计算机网络和数字资源建设的不断发展极大地加快了各行业信息化建设步伐。2016 年底, 中国气象局发布了《关于发展智慧气象的若干思考》[1], 文中高度重视并关注 “智慧气象” 的战略研究, 阐述了智慧气象的内涵和特征, 提出了发展智慧气象的三大战略——气象大数据战略、 “互联网气象+” 战略和气象平台战略。这为数据可视化技术在气象行业的应用做了政策上的引导。
大数据时代的到来, 对于数据分析以及数据展示都带来了极大的挑战。气象数据具有种类繁多、监测频次密、传输周期短、历史资料量大等特点[2]。这也给行业气象数据服务的展示带来很大困难。将传统技术中的统计学、机器学习、运筹学、数值模式等技术与可视化技术结合, 将数据挖掘出来的结果与演示的系统相结合, 最终形成大型数据资源和挖掘系统, 为用户提供服务, 成为行业内需要研究的重要方向。
数据可视化是应对该挑战非常有效的办法, 从海量的气象数据中挖掘获取有价值的关键信息, 及时高效地洞察隐藏信息, 并将其直观地展示给决策机构, 为决策提供参考依据。数据可视化平台致力于用更生动、友好的形式, 及时呈现隐藏在瞬息万变且庞杂数据背后的变化规律。数据可视化主要是借助图形化的手段, 演示所要传达的信息。在大数据分析、监控、指挥、调度等方面, 可视化平台已经成为不可或缺的基础工具之一。结合当前业务现状, 本研究提出通过DataV 技术建设可视化大屏系统, 将气象预警、预报、观测、站点、服务产品等信息集中进行展示。大屏系统还可以作为参展平台将业务中的服务产品、影视视频、新媒体、科普情况等以统计信息的方式给予演示。通过地理分析、实况监控、历史资料再现等方式让用户在一个屏幕上读懂多元数据的深层次关系。
根据前期业务需求分析以及调查研究, 本平台采用单页在大屏上进行数据的呈现与展示, 展示内容包括观测、预报、预警、服务产品、气候统计、视频监控、空气质量、新媒体服务等方面(图1)。
图1 系统模块
1)观测。展示常州地图, 在地图上标注站点, 并显示数据流向、监控站点状态。同时展示实时温度、小时降水量、湿度、风速风向、能见度、日出日落时间、空气质量等数据。
2)预报。展示7 d 天气预报, 空气质量预报。
3)预警。滚动展示生效预警信号, 按预警类型与预警级别分别统计历史预警信号。
4)服务产品。滚动展示各项服务产品, 主要包括重要天气报告、气象服务专报、气候影响评价、生活指数预报等。
5)影视视频。播放最新气象影视视频。
6)新媒体。展示通过微信、微博、App、短信、传真、邮件等渠道发布出去的统计信息。
7)科普次数。统计气象科普次数。
8)气候统计。展示极端最高/最低气温及发生日期、最大日雨量、最大小时雨量、极端最大风速等信息。
9)设备建设。展示自动站、加密站、雷达站、探测设备、无人机、应急指挥车等设备统计。
系统业务架构主要分为4 层:基础数据层、采集服务层、数据接口层, 数据展示层[3]。基础数据层和采集服务层为可视化平台提供基础数据, 数据接口层包含了对基础数据的分析整合, 其中包括数据挖掘算法的实现。数据展示层则是将大屏系统所需要的数据进行展示, 形式多样(图2)。
图2 系统模块划分
1)数据接口层。该模块主要任务在于统一数据源, 将零散的数据资源整合到同一个平台, 目前集中处理的数据源包括CIMISS、CMACAST、省局数据共享平台、自建数据库及外部共享数据等。
2)采集服务层。该模块主要工作是对来源多、种类繁杂的气象数据进行自动采集、处理、分批入库并提供相应的数据服务。采集的数据除了本地气象探测资料以外, 还包括雷达、卫星云图、自动站、PM2.5 以及PM10 等多种类型数据。
3)数据接口层。将底层整理好的数据进行再处理, 处理过程包括对基础数据的整理、分析、提纯、再加工等, 最终得到用户想要的数据。包括了观测数据接口、站点信息接口、预警数据接口、空气质量接口、服务产品接口等。
4)数据展示层。该层主要是响应用户需求, 将数据进行可视化展示, 在DataV 技术中使用拖拽即可实现对大屏整体结构的把控, 该技术提供了GIS地图、地图层叠、飞线、热力图、折线图、饼图、柱形图等, 这些都为用户更直观地感受数据提供有力的技术支撑。
1.3.1 传统可视化技术 传统可视化技术主要基于软件的原生研发, 前端可视化主要依托第三方提供的可视化开发工具, 如D3、Charts、Highcharts 工具等, 对数据进行组合展示。而软件的原生研发则需要前端、后台、数据库等全方面的研发团队共同参与才能实施完成, 成本较高、效率低下, 一套系统的完成需要漫长的研发周期, 这种模式在大数据时代已经无法满足用户对数据及时获取并用于决策的实际需求。这就对全新的数据可视化平台提出了新的需求, 应具备实时性、操作简单、研发快捷、展现丰富、多元数据兼容等特点。
1.3.2 DataV 技术 DataV 是由阿里巴巴(中国)网络技术有限公司开发, 是一个精于业务数据与地理信息融合的大数据可视化平台。相较于传统可视化技术, DataV 数据可视化技术有了质的飞越, DataV技术使用了可视化应用的方式来分析、展示庞杂的数据。DataV 旨在让更多的人看到数据可视化的魅力, 帮助非专业工程师通过图形化的界面轻松搭建专业水准的可视化应用, 满足业务监控、风险预警、地理信息分析等多种业务的展示需求[4]。
1.3.3 DataV 技术使用 对于DataV 技术的使用, 主要包括页面布局、文字及颜色设计、图表选择、数据接入4 个方面[5]。
1)页面布局。该模块主要是对大屏可视化页面进行合理布局, 是信息可视化的基础, 主要分为主要素、次要素、辅助要素3 大类, 主要素放中间, 其他要素尽量靠近, 本系统GIS 地图以及预警信息放置中间, 其他辅助摆放。
2)文字和颜色设计。可视化中色彩和文字是重要元素, 色彩可以快速让人区分信息, 文字则可以简要说明, 避免阅读疲劳。
3)图表选择。图形可视化以图表的形式为主。本平台使用了曲线图显示天气预报, 反映天气变化形式, 柱状图直观反映降水量, 饼图反映气象要素部分与总体的对比。DataV 能将数据由单一的数字转化为各种动态的可视化图表, 从而实时地将数据展示给用户。
4)数据接入。DataV 支持多种类型的数据源, 包括数据库类、文件类、API 类等。其优势在于能够加强信息传输的效率, 快速访问相关数据接口, 更好地管理业务, 快速识别最新趋势, 可以准确定位客户需求、与数据直接交互、做深度挖掘演示分析、定制数据可视化以及轻松理解数据。
在传统IT 建设方式下, 各种信息系统大多独立采购或建设, 无法做到信息的互联互通, 导致内部形成多个数据孤岛。互联网以及移动互联网的发展带来了很多模式, 新模式通过新平台支撑, 产生的数据也无法与传统模式下的数据互通。分散的数据很难完成当前快速变化的前端业务。 “大中台, 小前台” 的数据中台技术应运而生, 该模式能够融合老模式, 整合分散在孤岛上的数据, 快速提供数据服务能力[6, 7]。气象数据种类繁多, 对数据的实时性要求高。按照类型可以分为常规天气资料和非常规天气资料。比如, 基本站资料(温度、湿度、气压、风速、风向等)属于常规天气资料, 非常规天气资料包括加密自动站、探空、雷达、风廓线雷达、卫星等。这些数据分散独立, 将其形成一整套可用于提供气象数据服务的后台系统显得尤为重要。为适应复杂多变的前端业务, 本平台采用数据中台技术整合资源, 提供数据服务(图3)。
图3 小型数据中台技术流程
1.5.1 数据库技术选择 MySQL 是一个高速度、高性能、多线程、开放源代码, 建立在客户/服务器结构上的关系型数据库管理系统。MySQL 数据库可以高度融合标准结构化查询语言(SQL 数据库语言)。在性能方面, MySQL 性能卓越、服务稳定, 很少出现宕机, 并且源代码开放、自主性强、使用成本低。软件体积小, 安装使用简单, 并且易于维护。在WEB应用方面, MySQL 是最好的RDBMS 应用软件之一。支持多种操作系统, 提供多个API 接口, 支持多个开发语言[8, 9], MySQL 数据库因其安装便捷、使用方便、安全性能高、稳定性强以及可移植性好等性能被广泛使用。
结合当前实际, 考虑小型数据中台能够使多元数据完成整合管理, 为了能够让本系统与其他系统对接兼容, 本系统采用MySQL 数据。
1.5.2 表结构构建 系统关联是减少数据冗余, 提高数据操作效率的重要方式, 本系统中数据表之间有许多关联表。本系统构建的数据库表包括人员信息表、观测业务管理表、预报业务数据管理表、预警业务数据管理表、气候业务数据管理表、统计信息管理表、日志管理表等(图4)。
图4 数据库表结构
1.5.3 多线程入库技术 本研究对数据的处理除了基础的气象数据, 还有其他业务数据。数据种类较多、数据量较大, 使用传统的单线程的操作方式不仅效率低下, 而且会影响平台的实时展示。针对效率问题, 系统将采用多线程的操作方式进行解析入库。在多线程处理数据的过程中, 一方面, 需要使用线程同步机制, 即处理数据的各线程依赖主线程, 需要主线程通过扫描提供消息进行唤醒调用, 而其他的线程则是处于等待状态。另一方面, 当共享资源被多个线程争相使用时, 又用到线程互斥机制, 即任何时候最多只允许一个线程使用资源, 其他要使用该资源的线程必须处于等待状态, 直到占用资源的线程释放了该资源[10, 11]。
多线程的创建主要从新建线程对象开始, 通过线程Start()方法开始线程操作, 线程就绪完毕, 则等待CPU 分配时钟片进入运行状态, 若线程发生阻塞, 则当前线程进入阻塞状态, 等待阻塞结束, 重新回到线程就绪状态等待CPU 分配时钟片, 否则线程结束。具体流程如图5 所示。
图5 多线程运作方式
1.5.4 Mybaitis 框架提供API 服务 系统对数据的调用和访问都有一定的要求, 一是数据的精准度, 二是调用数据的效率, 三是能够满足多并发数据获取的条件。这样的后台数据处理急需一个具备简易存储过程、高级映射、通用SQL 及高并发的持久性框架来满足。经过研究, 系统最终选择了MyBatis 框架, 除了能够满足上述的功能以外, 通过XML 和注解配置数据库原生信息, 将接口和java 对象映射成数据库中的记录, 满足基本数据调用需求, 该模式可以让开发者把更多的精力放在业务SQL 的编辑上, 节省了一定的开发成本。Mybatis 功能框架主要分为3 层[12]。
1)API 接口层。负责为外部应用提供API 接口服务, 通过这些API 可对数据库进行操作。 向接口层发送带参数的request 请求, 数据处理层将接收参数并完成数据处理。
2)数据处理层。负责将接收到的SQL 及参数进行解析、执行、映射处理及反馈结果。返回的结果可自行设定, 可以是JSON/XML 等。它的主要目的是根据调用的请求完成一次数据库操作。
3)基础支撑层。负责基础的功能支撑, 包括数据库链接配置、映射管理、事务管理、配置加载和缓存处理。为上层的数据处理层提供最基础的支撑。
考虑到系统未来使用的可扩展性、高效性、兼容性、通用性。选择Mybatis 作为系统开发的ORM 框架, 框架结构如图6 所示。
图6 Mybatis框架结构
本研究在软件研发过程中对涉及到的数据流进行模块化划分, 主要包括数据源模块、数据处理模块、中台服务模块以及数据演示模块(图7)。数据源模块重点研究多元数据资料的整合, 对于来自多个渠道的数据分类采集, 包括了人员信息、OA 办公信息、观测数据、预报信息、预警信息、自动站信息等。数据采集之后有一个自检预处理的过程, 合格的数据将进入进一步的整理。整理之后的数据进入数据处理模块, 在数据处理模块中首先是数据接收, 之后进行分类、解码、质量控制, 进行融合分级、评估鉴定, 最后再作存储入库。入库后的数据进入中台服务模块, 该模块主要是对数据进行汇聚连接、存储计算、算法研发、提纯加工、数据整理以及API 服务。数据演示模块中, 通过API 调用数据, 使用DataV 技术中的控件进行数据绑定, 可以通过个性化的选择完成前端演示, 比如, 气候统计匹配曲线图、饼图、形图等, 站点信息匹配GIS 地图, 预警预报可匹配文字滚动。在数据流中, 最重要的是数据中台服务, 数据中台可以将复杂的气象数据进行融合处理, 使信息协调优化便于调用。
图7 数据处理及反馈流程
系统使用B/S 模式和JAVA 语言进行开发, 前端使用DataV 技术数据可视化控件进行页面布局以及JavaScript 技术前端数据调取, 后台则是采用mybatis框架和MySQL 数据库同步编程, 在系统开发工具上选择Eclipse、VS Code、Tomcat 等。Java 语言选择基于其面向对象、分布式、解释性、安全特性、可移植、高性能、多线程和静态等特点。 Eclipse 选择基于其是一种流行的开源软件, 其强大的语言提示功能和代码分类显示功能, 极大地提高了软件开发人员的程序开发效率。Tomcat 服务器优点是兼有可扩展性和安全性。系统可运行于Windows 及Linux 服务器, 兼容性良好。这些选型基本可以解决系统实施中的技术问题。
实际运行效果表明系统性能良好。大屏首页如图8 所示, 预警以及气候数据统计如图9、图10 所示。但是, 未来如何进一步优化对海量气象数据的处理以及挖掘数据中隐藏的规律, 还需要进一步研究和探索。
图8 可视大屏首页
图9 预警统计
本研究根据气象资料辅助决策的实际需求, 设计并实现了可视化大屏系统, 该系统具备自动采集、分析、提纯、可视化等功能。采用DataV 技术极大地减轻了前端开发人员的工作量, 使系统能够快速搭建。数据中台技术的引入, 实现对局内资源的整合, 完成了传统数据供给到新型数据仓库的转型。系统结合使用了多线程数据处理、B/S 框架、Mybatis 框架下MySQL 数据库同步编程, 最后跨平台部署。最大效能地发挥了互联网技术在气象服务中的作用。
图10 气候数据统计
系统当前处于应用阶段, 还有很多不足和需要改进的地方, 后期将重点解决3 个问题, 一是进一步整合气象系统的各类数据, 完善中台数据基础。二是对多元气象数据进行深度挖掘, 探索海量气象数据背后的规律和秘密。三是深入研究数据可视化技术, 并将其应用于实际业务中。