基于C/B/S参与感知气象服务系统的研究与设计
2021-03-08邱忠洋雷正翠
邱忠洋,雷正翠,蒋 骏
(常州市气象局,江苏 常州 213000)
0 引 言
2016年底的中国气象局发布了《关于发展智慧气象的若干思考》一文,文章高度重视并关注“智慧气象”的战略研究,阐述了智慧气象的内涵和特征,提出了发展智慧气象的三大战略——气象大数据战略、“互联网气象+”战略和气象平台战略,初步确立了2020年的发展目标和重点任务[1]。智慧气象是不断发展的动态过程,需要用新趋势新方向引领智慧气象的发展。智慧气象的成果需要具备智能化、可配置、可评价、可感知的概念。
随着科技的发展,移动设备上集成了许多传感器,数据处理能力增强,使得移动设备可以集通信、计算、感知一体的新型传感器节点,一系列的感知模式应运而生,参与感知就是其中之一。国外加州大学的Deborah Estrin教授对于参与感知有这样的定义:“参与感知是这样一个过程:在感知过程中,个体或群体使用功能越来越强大的移动手机和云端服务器来收集和分析语义信息”[2]。实际意思就是通过收集和分析个人和群体的各种行为所产生的数据,通过研究大量的个性数据得出相关的结论,研究方法多样,最主要是强调了人的参与,而分析的结果也跟参与的人群的数量成正比。
在国内,传统的天气预报主要依托于数值预报产品,而气象要素数据的获取也基本来源于定位式的气象自动站,虽然相比较于早期经验式的预报模式,预报准确性有了很大的提高。但是预报的精细化程度和准确率还是达不到个性化人群的需求。如果将参与感知融合到气象预报中来,也就是将用户作为模拟移动的自动站,将参与采集的相关气象数据通过手机上传至感知数据库,与传统的气象数据进行融合处理。必定会提高气象预报的精细化和准确性。
该文主要从参与感知的概念、感知数据的处理、原型系统的框架设计等几个方面进行了阐述。通过实践证明系统应用是可行的、有效的。
1 关键要点
1.1 参与感知
1.1.1 参与感知
参与式感知最早起源于无线传感网络(wireless sensor networks)的兴起,传感网络可以利用多种传感器为生物追踪、环境监测以及灾难预测等科研活动提供大量实时、全方位、多层次的观测数据[3]。通过各种不同的无线传感器建立一个交互式的、参与式的传感器网络集群。而这个网络集群则是由多种不同类型的信息传感器节点组成,每个节点都可以自主地采集信息,数据通过多跳路由发送到汇集节点(sink node),汇聚节点将采集到的数据通过TCP/IP网络协议或者无线方式(WIFI、GPRS、GSM)发送到远程终端,由终端服务器对上传的数据进行解析、融合、存储,并实时维持与终端用户的通信。
1.1.2 气象参与感知模型构建
目前依托参与感知所构建的模型比较多,比如伯克利大学的Common Sense Project[4]就是参与感知在城市空气质量监测的应用,系统的感知设备被部署在了车辆、街头以及人们正常使用的移动设备中,可以搜集多种带有标签的数据比如温度、二氧化碳浓度等,再以短信的方式上传,最后由系统对这些数据进行分析和可视化展示。
该文以气象参与感知网络构建为例,移动设备为气象感知提供了温度传感器、湿度传感器、压强传感器、风向传感器等。当然除了智能手机以外还有手环、PDA、平板等,也都可以实现对不同定位的感知数据获取和上传。这种非定位的数据获取为感知数据的采集提供了大量的数据样本资源,对数据分析的准确性提供了支撑。当前参与感知气象服务客户端就是将多组气象传感数据进行汇聚处理,通过感知数据与自动站数据以及其他数据进行融合,最后将结果反馈给用户。该文所研究的气象参与感知网络结构强调了人的作用,通过人为手持移动设备接受任务组件可以互动的参与式感知网络来方便地收集、分析和共享气象信息。在整个感知网络中感知节点最重要的是用户的移动设备,所以在该系统中不存在自上而下的节点控制,而是由设备拥有者控制,随其移动而移动。系统框架结构如图1所示。
图1 系统框架结构
1.2 气象数据
1.2.1 气象数据的特点
气象数据种类繁多,对数据的实时性要求高。按照类型可以分为常规和非常规观测资料。比如基本站资料(温度、湿度、气压、风速、风向)等属于常规天气资料,非常规特殊天气资料包括加密自动站、探空、雷达、风廓线雷达、卫星等。气象资料具有连续性,时序性极强,对于这些数据的采集都是按照时间顺序进行存储,计算,统计,整理和保存的。同时气象资料还具有一定的规律性,表现在资料的周期性强,无论是多年长系列,还是年内、季节内、月内等系列,都有一定的周期性[5]。由于数据具有不确定性和复杂性,导致对气象资料的研究一直是气象科研工作的重中之重,外加天气系统的混沌本质和预报本身存在的不确定性,导致天气预报想大幅提高预报准确率变得十分困难。
1.2.2 感知气象数据库
为统一对各种气象数据进行处理,提出建立感知气象数据库(数据库结构见图2)。感知气象数据库处理的对象包含了多种气象数据,比如传统基本自动站的数据、各种户外传感器采集来的感知数据、卫星云图数据、雷达图数据、智能终端反馈数据、客户端提供的天气现象描述、灾情直报、图片上传等。 因此在对数据库进行设计时,需尽量让数据表具备完整性、可拓展性、独立性、共享性、安全性、可控性、规范性和统一性。
图2 数据库结构
感知数据库主要用于存储两个方面的数据,一是元数据,也就是原始数据,即未经处理的一手数据;这样做的好处在于能够保证原始数据的真实性和独立性,为二次使用提供元数据基础,比如样本研究、数据挖掘等。二是将元数据经过质控,融合之后的数据。经过融合处理的数据可直接推送给用户指导决策,其数据的普适性和灵活性较强,也可为其他行业提供接口服务,使用将十分广泛[6-8]。
在数据库的数据处理和存储过程中,对感知数据去伪存真、去粗取精,不被低质量的数据所蒙蔽,让精炼后的数据可以高精度地反映物理世界,将成为提升参与感知质量的重要一环[9]。
1.3 C/B/S 模式
感知数据的采集、分析、融合、入库采用了C/S模式(Client/Server)这种软件系统体系结构,通过客户端、服务器、数据库三级模式,将感知数据的接收定位在了服务器上,而业务逻辑的处理,包括解码、质控、融合、入库放在了客户端。这种开发方式合理分配了Client端和Server端的任务,降低了系统的通讯开销。该模式下系统开发的灵活性、安全性、可拓展性得到了保障,系统维护也比较方便。服务器与数据库进行交互,通过网间通信与客户端就可以进行互动[10]。
在数据的推送、反馈、展示方面系统采用了B/S模式(Browser/Server),手持终端通过Post/Get方式向服务器发送请求,服务器则是通过API接口的方式响应请求,提供服务,反馈数据。这种在规则下的API接口可以提供给众多其他应用,适用性极强,包括WEB、App、Wechat等。
C/B/S混合模式框架如图3所示。
图3 C/B/S 混合模式框架
2 参与感知气象服务客户端总体框架的设计
2.1 新型参与感知预报模式
现行预报模式,预报员根据各种气象观测资料(自动站、云图、雷达数据等)进行研究分析,结合各种数值预报产品做出预报结论[11]。再以各种媒体渠道(电视、广播、LED、QQ、微信、微博等)将数据推送给决策机构和用户。而在面对用户个性化的需求,如何给这些用户提供不同的应对措施方面关注度并不到位。这是气象部门科研发展遇到的瓶颈问题之一。当然目前很多非气象部门已经在研究个性化服务,比如彩云天气、墨迹天气等。
新型参与式感知的预报模型则是在现有预报模式的基础上增加了以人为导向的需求。通过用户自身的参与,将天气实况和自身的需求共享,有助于预报工作的及时订正,还可以为用户提供可靠的预警预报服务和应对策略。如果参与的人员足够得多,数据样本将足够得丰富,这对于气象深度挖掘具有十分重要的作用。无疑将推动气象预报的进一步发展。
2.2 模型构建
在模型构建方面,主要还是参考气象行业当前的数据处理流程,加上对感知网络架构的研究,总体来看主要分为如下四个层级(见图4):数据感知层、数据汇聚传输层、服务器层、应用层[12-13]。
图4 参与感知框架
数据感知层:感知层主要包括两个方面,一是传感器设备层,二是移动便携式感知终端。传感器层主要是数据采集所使用的sensor节点群集。采集的参数类型丰富,如温度、湿度、压强、风速、风向、雨量等。而便携式感知终端则主要以无线传感设备为主,比如手机、PAD、手环、笔记本电脑等。感知网络以气象信息为主,另外通过ZIGBEE、RFID等相关感知技术获取周边气象信息。
数据汇聚传输层:数据经过汇聚通过网络协议上传,网络结构基本与现行的网络通信结构无缝对接,完全实现了气象数据传输通信的顺畅和共享。而在小型网络内部,传输协议需要握手协定,比如WiFi、蓝牙、红外线等。将数据以协议的方式上传至服务器,这种方式有利于保障数据的安全性。
服务器层:服务器层主要是将数据汇聚层的数据进行收集、整理和加工。在该层接收的数据类型繁多,如传统台站txt报文,卫星云图,雷达,用户上传的文字、图片等。接下来由服务器端的C/S架构的程序对数据进行解码、质控、融合计算及入库存储。融合计算工作是该层工作的核心部分。最后一步就是数据的服务了,服务器层提供了API服务功能,包括服务注册、服务发布、服务组合、服务调度,为应用层提供了多样化的服务基础。
应用层:应用层主要对接服务器层提供的各种服务接口,可以将处理后的气象数据信息以web、mobile phone、computer、email、LED等多种方式向外广播发送,发布的渠道多样化。而实际的产品信息包括了气象个性化服务、环境监控、灾害气象预报等,可以以反馈的形式传递至感知节点,为用户提供切实有效的应对指导措施。
3 软件框架设计
3.1 软件数据流
实际软件研发过程中,对涉及到的数据流进行了模块化划分,主要就是数据源模块、数据处理模块、提供的服务模块以及应用模块(见图5)。
图5 数据流图
数据源模块重点研究感知数据的处理,每一台移动智能设备都有固定的物理标识,以此获取其定位以及设备所覆盖的周边实时有效的气象信息。数据采集之后有一个自检的过程,合格的数据将进行进一步的整理。整理之后的数据进入数据处理模块,在数据处理模块中首先是对数据接收,之后进行分类、解码、质量控制,再进行融合分级、评估鉴定,最后再作存储入库。入库后的数据进入服务模块,该模块主要就是调用数据提供服务注册,经过实际注册并通过验证的用户才可以使用该服务。保证了数据的安全性,该模块为实际应用提供API接口服务。这一平台的设计使用了Restful轻量级框架。当数据进入应用模块时,数据则是以图形化的方式展示出来,包括天气预报、个人专业服务、公共服务等。
与此同时,数据也将反馈给上传数据智能的终端节点,为这些用户提供专业的服务和应对措施。在数据流中,最为重要的是数据融合,融合的原因是气象数据的复杂量大,融合的目的是通过一系列大数据处理的手段将数据质量提高,使信息协调优化便于理解和接受。
目前研究融合主要分两个步骤,一级融合就是简单的将感知数据入库,与基础数据实现数据级别融合。二是与雷达回波、卫星云图的特征进行融合,也就是结合雷达回波所观测到的空间雨区分布和云图观测到的云系特征,综合判定天气状况,过程之中通过GIS空间插值、数据挖掘算法训练海量数据,提高短时临近数据的准确性和稳定性[14-15]。在做预报结论之前还参考了中国天气通、彩云天气等相关成熟产品。
3.2 软件平台设计
就框架设计而言,系统包含了两个方面的内容,数据处理下的融合入库系统(C/S架构),数据调用平台系统(B/S架构)。
平台基于前期数据处理的稳定性和复杂性考虑采用C/S架构模式,在该架构下采用了多线程的操作方式,将繁杂多样的气象数据解析融合入库归纳到各自的线程中。主要包括了主线程、读写线程、解析线程以及入库线程。主线程主要进行数据报文文件的预处理及扫描定时器的设定,并启动写线程,读写线程被启动后,则进行数据文件的读取,文件辨别,接着进行文件分类,分类完毕则进入解析线程。解析线程则是对文件进行读取截取字段,提取各个要素值,接着调用各种质控方法对数据进行质量控制、数据分析、划分数据等级,最后则是调用入库线程,执行写的操作并写日志保存。所有操作完成之后将结果向主线程反馈。在此过程中逐渐形成感知数据库模型的数据基础,为接下来的数据访问提供了数据基础。
调用平台采用了B/S模式,模式的好处在于可以随时随地进行查询和浏览数据。业务拓展简单,通过添加网页即可添加服务器功能,数据以接口的方式存在,其共享性能十分强大。具体流程,首先需要初始化页面和相关接口。初始化接口如果连接不上则继续发送请求,已连接则进入数据处理阶段,调用已写好的数据库服务API,系统后台使用了mybatis框架作为后台数据处理服务架构。
前端访问通过线程页面发送请求,返回的响应来自三个方面,一是直接启动数据接口进入数据处理模块,由数据处理模块将用户所需要的数据反馈给页面。二是通过服务接收线程发送请求,由该线程推给API server,之后反馈数据,这是基于用户请求会发生变化的前提下进行的,可在此流程中更新数据接口。三是用户直接与接口沟通,发送请求返回数据。所有流程完成之后将结果反馈给参与体验的用户[16-18]。从具体应用的角度出发,服务可以涵盖例如app、wechat、微博、网站等各项不同的应用。软件架构流图如图6所示。
4 运行效果与分析
4.1 系统运行环境
系统已有原型,系统的开发环境主要分为两个方面,C/S客户端采用.NET技术,C#语言进行开发,后台使用了Oracle作为同步数据库。B/S系统采用了JAVA语言、JavaScript技术和数据服务mybatis框架同步编程,同时结合Oracle数据库来存储数据。APP采用了当前较为成熟的Vue.js技术、elementUi技术、Mysql数据库技术以及Mybatis后台框架技术等。系统运行于Windows及Linux服务器,兼容性良好。这些技术的应用可以解决系统实施中在技术上存在的基本问题。
4.2 运行结果及效果分析
该系统主要由三个子系统组成,包括参与感知气象信息演示系统、参与感知数据采集及反馈APP、预报气象要素解析入库系统。经过一个月的试运行,实际采集数据24万余条,反馈数据6万余条,经过与实况数据的对比,系统的反馈对于预报的调整有着比较有效的指导价值。在技术层面,系统实际运行效果良好,系统压力测试性能良好。对子系统各模块的优化分析让系统在建设过程中思路清晰,系统的数据处理的性能和展示性能变得更加实用,响应速度变快。软件可扩展性更强。
目前系统已形成原型,但是如何进一步提高数据的精确度,从而更好地为公众提供精细化服务,还需要进一步研究和探索。
5 结束语
参与感知概念的提出,是基于公众的力量。一个重要的概念“众包”,将本来应该由特定人员完成的任务,交给了非特定自由人员来自愿完成,这种建模来源于大型互联网网络研究。该文提出的参与感知与气象预报结合的业务,就是将无所动态的人员当成气象数据传输的自动站,可以实时传递相关气象信息,再结合的传统自动站数据、卫星云图、雷达图等数据融合处理。预报精细化程度得到明显提高。
文章重点描述了参与感知的模型建立、感知数据库的构建、软件数据流、软件架构整体设计这几个方面。
软件的优点在于:
①研究用户的反馈和对气象信息的需求,针对这些需求做预报和应急方案,针对性较强;
②系统采用C/B/S混合模式进行开发,各功能进行了模块化的设计,便于系统的扩展;
③将参与感知的概念引入气象预警预报工作中,这一设想为今后预报工作提出了新的思路。
系统在研发过程中,除了借鉴了当前比较成熟的传感器技术、通信技术、数据库技术等,还有一些需要实际解决的问题。比如感知数据的接收、分类、解码、入库,海量数据的处理,在质控和融合方面各种算法研究。这些技术的集中应用,有效地提高了预报的精细化程度,能够为用户提供专业的服务和有效的措施。该文在参与感知与气象系统结合方面的确取得了进展。但是目前系统工作仍存在着不足,如系统还没有完善、算法研究不精细等。在接下来的研究中,将逐步优化各模块的设计,进一步深化算法研究,在保证系统高性能运行的同时不断集成更多的功能。