APP下载

基于移动客户端的气象预警预报系统设计与实现

2018-06-08邱忠洋付林吴晶璐陈宏波

湖北农业科学 2018年8期
关键词:气象预警互联网

邱忠洋 付林 吴晶璐 陈宏波

摘要:如何及时、高效地将气象预报预警信息推送给决策用户和公众,为解决这一多元化的需求,常州市气象局组建团队研发了气象预警预报移动客户端(Andriod/IOS),作为典型的“互联网+气象”项目,主要从综合气象数据库设计、GIS服务、Mybatis框架、預警推送、实时预报、防灾减灾、专项服务等方面为决策提供依据。结合预报、预警、服务等气象业务需求,有效地对现有气象信息资源进行整合,并依托GIS系统对现有数据进行管理展示。客户端具备强大的气象信息数据处理和分析能力,实现对气象数据采集、处理、制作、服务管理的一体化。

关键词:移动客户端;“互联网+气象”;预警;预报;GIS;Mybatis框架

中图分类号:TP399 文献标识码:A 文章编号:0439-8114(2018)08-0108-06

DOI:10.14088/j.cnki.issn0439-8114.2018.08.027

Design and Implementation of Weather Warning and Forecasting System

Based on Mobile Client

QIU Zhong-yang1,FU ling2,WU Jing-lu1,CHEN Hong-bo1

(1.Changzhou Meteorological Bureau,Changzhou 213022,Jiangsu,China;

2.Shenzhen Kwantler Technology Co.,Ltd.,Shenzhen 518072,Guangdong,China)

Abstract: How to send weather forecasting and early warning information to users timely and effective,in order to solve the diverse needs,the Changzhou Meteorological Bureau set up a team to research and development of meteorological warning of mobile client (Andriod/IOS),As a typical “Internet + weather” project,it provide the basis for decision-making mainly include the comprehensive meteorological database design,GIS service,the framework of Mybatis,the warning signal push,real-time forecasting,disaster prevention and mitigation,special services and other aspects. Combined with meteorological business requirements such as forecast,warning and service,the existing meteorological information resources can be effectively integrated,and the existing data can be managed and displayed on the basis of GIS system. The client has great ability in meteorological information data processing and analysis,realize the integration of meteorological data acquisition,processing,production,service management.

Key words: mobile client; “Internet + weather”; pre-warning; forecast; GIS; the framework of Mybatis

随着移动互联网技术的快速发展,智能化的终端应用不断普及并全方位运用到各个领域,气象领域也不例外。同时,近年来中国极端天气事件频繁,呈现多灾害并发、点多面广的特点,因此如何及时、高效、准确地将预警预报信息推送至决策机构和公众以降低因灾害带来的损失,成为政府及各应急部门工作中的重点[1]。在此环境下,政府与公众对移动气象信息服务需求与日俱增,因此将气象服务以移动互联的方式呈现于决策机构和公众面前显得十分迫切。常州市气象局“气预警预报移动客户端系统”,是一个典型的“互联网+气象”的项目,该App可有效突破传统信息发布方式的瓶颈,大大拓展气象信息服务的传输渠道,提升信息推送效率,对于促进常州市民有效应对灾害性天气的能力提升有着不可估量的作用,其社会效益、政治效益明显。同时决策服务App的开发可以集聚大量用户,为常州市气象部门未来专业气象服务的拓展奠定了坚实基础,有助于挖掘气象信息服务的经济效益潜力。

国外学者对移动互联网与气象结合方面的研究比较早,应用的领域也比较丰富,如Crowley在Android平台上开发了SpaceWeather软件工具用于展示空间天气数据。中国虽然已经开始建设移动气象服务,但实际应用还不成熟[2]。常州市“气预警预报移动客户端系统”的建设,将有助于整合利用常州市气象局已有的各类基础数据资源,并对市气象局现有业务成果进行改造,增加移动数据接口,供公众、行业用户、行业指导部门下载使用,可进一步扩大常州市气象局的预报、预警和实况监测的信息推送能力,为政府和各行业应对气候变化和天气灾害所做的决策提供及时可靠的依据。

在此背景下,本研究阐述了气预警预报移动客户端系统的设计与应用,以Oracle数据库为依托构建了综合数据库、采用多线程的方式对气象资料进行入库处理,使用轻量级框架提供服务,融合GIS技术在地图上展示各类气象要素数据,设计了两套技术方案,分别对于Android和IOS進行设计和研发。

1 系统相关技术

1.1 多线程入库技术

App所使用到的相关气象数据必须要导入到数据库中并提供调用服务,而相关报文以txt形式存在并以通过路由或其他方式进行传递。由于报文种类多样化,数据量极大,使用传统的单线程操作方式不仅效率低下而且会影响平台的实时展示。针对这些问题,系统将采用多线程的操作方式进行解析入库。在多线程处理数据的过程中,一方面会需要使用线程同步机制,即处理数据的各线程依赖扫描主线程,需要扫描线程提供消息进行唤醒调用,而其他的线程则是处于等待状态;另一方面当共享资源被多个线程争相使用时,又用到线程互斥机制,即任何时候最多只允许一个线程使用资源,其他要使用该资源的线程必须处于等待状态,直到占用资源的线程释放了该资源[3]。

多线程的创建主要从新建线程对象开始,通过线程Start()方法开始线程操作,线程就绪完毕,则等待CPU分配时钟片进入运行状态,若线程发生阻塞,则当前线程进入阻塞状态,等待阻塞结束,重新回到线程就绪状态等待CPU分配时钟片,否则线程结束。具体多线程运作方式如图1所示。

1.2 Oracle数据库

Oracle数据库产品是当前数据库技术的典型代表,它不仅具备常规的数据库功能,还包含了与数据库对应的开发工具和应用客户端。Oracle数据库既非纯的面向对象的数据库也非纯的关系数据库,它是两者的结合,因此叫做“对象关系数据库”。

Oralce具有以下特点[4]:①对象/关系模型。Oracle不仅能够处理普通的表结构信息,而且还能够处理文本、视频、图形和空间对象等新型数据类型。②动态可伸缩性。Oracle采用了高级网络技术,提高共享池和连接管理器来提高系统的可拓展性,能满足目前数据库及数据仓库应用的需要。③可用性和易用性。Oracle提供了灵活多样的数据分区功能,可以按照数据的类型和数据的取值以及表的结构进行分区。④可管理性和数据安全功能。Oracle提供了自动备份和恢复功能,对分布式操作系统的提供了支持而且还加强了对SQL并行运行的效率。⑤支持多平台。网络结构往往含有多个平台,Oracle兼容性较强,适用于所有操作系统平台。⑥提供结构化查询语句。当前支撑移动客户端的数据库需要具备强大存储能力,数据吞吐量需要达到一定的量级,由于客户端支持多种移动数倍,这就需要数据库的兼容性能完善,支持windows、linux、unix等常规操作系统等。基于上述原因系统选择Oracle数据库作为后台数据支撑,部分结构如图2所示。

1.3 GIS技术

地理信息系统(GIS)是一门集计算机科学、信息学、地理学等多门学科为一体的新科学,是由计算机系统、地理数据和用户组成的。它是一种特定的十分重要的空间信息系统,在计算机硬、软件系统支持下,对整个与地球表面有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。通过GIS技术可以将具有控件内涵的数据按照实际的需要准确、真实、图文并茂的展示出来。目前,GIS技术在各行各业的使用已经趋于潮流化。

GIS主要由以下四个方面特性[5]:①计算机系统的支持是GIS的重要特性,GIS的实际应用则表现为计算机软件上的图层数据展示,而其内涵在于地理数据中所包含的一些用于分析的要素信息。②GIS操作的是实体地理数据。以GIS技术为依据的信息系统与其他信息系统的最大的区别在于操作的对象是实体的地理数据。③GIS系统具备数据采集、数据管理、数据分析和数据输出展示多种地理信息的能力,还可以对空间数据进行动态展示。通过已有的数据分析模拟的方式对未来的数据进行预测和估计,实现对地理过程的动态化模拟和决策支持。④GIS技术有开源的GIS服务和商业GIS服务,但开源GIS服务提供的功能有限,且数据不可编辑,而商业GIS服务提供较好的数据服务,支持对数据的编辑修改等。

GIS的应用不断普及,GIS给业务人员带来的便捷也是不言而喻,就该系统而言,在城镇精细化预报及预警信息发布功能上,则是要求选用普通ArcGIS Engine服务。而在台风路径、临近降水等功能模块则是选用了第三方开源GIS工具进行处理。结合该系统的应用需求则采用了综合GIS服务(图3)。

1.4 Mybatis框架提供API服务

Mybatis 是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。该框架避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。Mybatis功能框架主要分为三层[6]:①API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层接收到调用请求就会调用数据处理层来完成具体的数据处理。②数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等,主要目的是根据调用的请求完成一次数据库操作。③基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将其抽取出来作为最基础的组件,为上层的数据处理层提供最基础的支撑。

考虑到App服务器使用的可扩展性、高效性、兼容性、通用性。选择Mybatis作为系统开发的ORM框架,框架结构如图4所示。

1.5 开发语言及相关环境

J2EE(Java 2 Platform,EntERPrise Edition)是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关复杂问题的体系结构,是一个基于组件的体系结构,定义了一套标准来简化多层分布式企业应用程序的开发,同时定义了一套标准化的组件,并为这些组件提供了完整的服务。

J2EE体系架构将表示逻辑、业务逻辑与数据逻辑相分离,使系统的并行操作、网络计算能力大为提高,系统的整体性能得以优化,并采用先进的软件分层设计思想,支持基于框架的开发,降低开发难度和成本,同时降低组件的耦合度,极大地增强软件的可维护性、可扩展性,满足大型管理信息系統的要求。

开放语言方面中心服务端采用基于J2EE规范的Java技术,支持JDK1.6以上版本,采用流行的Spring+Struts+mybatis架构及分层体系结构,前端采用Html\JavaScript\XML\CSS\JSON等页面技术和规范,构建安全、稳定、高效、简单实用的中心服务端应用。客户端支持两个版本分别为Android、IOS,IOS基于Xcode 8及IOS 10的环境开发,Android基于JDK1.6及Android 4.0的环境开发[7]。

网络通信及数据传输方面采用3G、4G或其他无线技术,数据传输采用加密方式,保障信息的安全通信。与其他系统的对接采用安全规范的接口技术,数据格式采用JSON和XML,基于安全规范的制定统一控制接口,重要数据实现加密,支持异构系统、目录、FTP站点等手动或自动获取数据。

2 系统设计与实现

系统设计主要包括业务架构设计、技术架构设计、数据处理平台的设计,其最终目的是让系统能够正常业务化运行。

2.1 业务架构分析

预警预报系统客户端采用了多元化的设计模式,以移动互联网的方式将气象预报、预警、实况信息、统计信息、重要天气、乡镇预报、气候统计、专家用图等服务产品整合到移动终端中。系统集约化、规范化、流程化管理将全面覆盖和整合业务数据资源和功能能性需求,以实现“掌上气象台”为最终目标。系统主要有七大模块组成主要包括实况监测、气象预报、生活气象、气候统计、专家用图、用户反馈以及配置服务模块[8],如图5所示。

1)实况监测模块:可以监测天气实况、雷达图像、卫星云图、预警信息、台风路径等。

2)气象预报模块:可以查询到预报内容、乡镇预报、临近降水预报、重要天气报告、气象专报(春运服务、太湖蓝藻、防汛服务等)及气候评价等相关内容。

3)生活气象模块:可以查询到生活指数及农历节气相关信息。

4)气候统计模块:包含了对历年来常州气象数据的研究统计,包括对历年降水、气温、大风、梅雨等要素的分析统计。

5)专家用图模块:为天气预报人员提供了手机在线参考依据。

6)用户反馈模块:提供了App与用户之间的互动窗口,包括了随手拍及灾害性天气上传。

7)配置服务模块:包括了一些推送设置、好友推荐等功能。

通过App首页可以实现随时随地查询常州当前天气实况信息(包括气温、雨量、风向风速、湿度、能见度)、预警信息、七天预报、空气质量、生活指数等相关信息。App力求为用户提供准确、权威、实时、全面的气象服务信息服务,为专业用户、决策用户提供气象辅助决策数据服务,同时兼顾公众用户需求,为出行、户外工作计划等提供可靠的天气信息服务。

重点阐述监测预报相关模块的内容,在这两个模块中监测包括了实况、雷达、云图、台风等相关内容;预报包括了预警、短期、旬报、重要天气、气候评价、天气专报、乡镇精细化预报、回波预测等相关内容(图6)。

2.2 技术架构流程分析

在客户端系统的研究过程中,使用分层的监控系统框架。通常情况下框架分为5层:物理感知层、接入层、中间件层、服务平台层和应用层。最底层的物理感知层主要由无线传感器节点组成,它们负责采集气象监测数据,并将数据转发给接入层网关设备,继而网关设备通过多种网络连接方式(GPRS/3G/4G)将数据再次转发给中间件层的实时数据处理平台,通过中间件对监测数据的实时接收、解析、处理与存储服务,服务平台层可以利用这些数据提供诸多种类的数据服务,最终可以开发跨平台的数据监控客户端对监测数据进行实时的分析和应用。本研究中重点考虑上三层,数据库层、服务平台层和应用层[9],如图7所示,展示出了气象无线传感网监控系统的分层框架。

1)数据库层:建设综合气象数据库,由于目前气象台所使用数据为文本等多种类型的数据格式,需要将这些文件做成一个产品数据库(图8),存储气象监测、预报、预警等基础数据,农业气象数据、林业气象数据、环境气象数据等其他相关数据。

2)服务平台层:建设中心服务端系统,实现气象信息的采集、处理、存储、产品制作、监测报警及发布管理。实现多种应用的统一管理,简单维护,高效运行和灵活配置。为建立统一的业务运行平台提供数据支撑与技术支持。①具备数据处理功能,将所有的业务上的计算、数据的处理、逻辑的判断都整合在后台中心服务器,降低对客户端的负载压力。②产品的制作功能,针对App的需求所提出的多种气象产品,对产品的软件化的实现将放置在后台中心服务器实现。包括预报产品、生活指数、雷达云图、预警信息、区域站统计、天气实况等。③多方位推送,将气象预警信息、气象服务信息、交通信息等相关的信息推送至手机客户端。

3)应用层:建设手机客户端系统,实现基于GIS的各类生活气象服务、气象预警接收、气象灾害防御信息服务等的查询和展示。客户端支持Android、IOS两个版本。

2.3 数据处理平台多线程设计

客户端系统数据经过解析、质控后则将数据录入到数据库中。入库系统采用了多线程的操作方式,主要包括了主线程、读写线程、解析线程以及入库线程,主线程主要进行数据报文文件的预处理及扫描定时器的设定,并启动误写线程,读写线程被启动后,则进行数据文件的读取,文件辨别,接着进行文件分类,分类完毕则进入解析线程,解析线程则是对文件进行读取截取字段,提取各个要素值,接着调用各种质控方法对数据进行质控控制数据分析,并划分数据等级,最后则是调用入库线程,执行写的操作并写日志保存,最终则是将结果逐级向主线程反馈[10](图9)。

2.4 系统其它相关设计要求

系统基于多方面考虑对整体的框架做了如下几点设计要求:

1)统一管理模式、应用软件和传输信息,实现网络信息统一、标准统一、接口统一。

2)网络安全,信息保密,稳定可靠,高效运行。将网络安全、信息保密放在首位,确保网络和系统稳定性和可靠性、高效性和信息保密性。

3)系统支持,包括Android和IOS两种,设备类似于iPhone 5s、iPhone 6/6s、Samsung等。

4)服务更新不间断原则,便捷地数据传递更新服务,高效的信息服务引擎,保证信息24小时不间断在线连接;服务器定时自动推送,地理位置精确到区、县;完全无需用户干涉。一次安装,终身自动使用。

5)设计模块化及可拓展性,以功能块为单位进行程序设计,降低程序复杂度,使程序设计、调试和维护等操作简单化;系统应具备可扩展性,可以在未来添加新功能或修改完善现有功能。

6)安全性原则,安全性原则包括物理安全、网络安全、应用安全、数据安全、管理安全。支持数据的热备份,保障系统的稳定安全运行,防止数据丢失[11]。

3 系统展示及应用

软件展示方面,主要展示3个核心模块:首页、实况监测以及天气预报模块。与客户端系统相匹配的还有一套后台管理的Web网站,用于维护和统计客户端数据。

3.1 首页

显示当前时间地名、温度、湿度、风向、风速、日出、日落、能见度,实况更新时间、天气背景、历史今天,当有新的重要天气、气象专报发布时,均显示为蓝色图标,没有默认是白色图标;当有预警发布时,首页会显示预警图标;未来7 d预报信息,空气质量以及生活指数等;点击语音图标能进行语音播报,点击左侧上方图标会打菜单,点击右侧上方图标则显示一些自动站信息,如图10所示。

3.2 实况监测

包括常州、金坛、溧阳3个基本站点的气温数据、降水、能见度、气压、相对湿度、风速风向等模块数据以及色斑图(图11)。根据选择不同地区得到不同的卫星云图,雷达图像、台风路径、生成动态变化的图像,并且进行播放。左上角点击分享可以将截图分享到微博、QQ、微信以及微信朋友圈等。

3.3 天气预报

主要显示短期预报、一周天气预报、旬报等3个模块(图12),让用户对天气情况了如指掌。乡镇精细化预报主要显示了一些常州市周边乡镇的天气情况,点击天气图标可以显示该地区的一些实况信息,包括最低溫最高温、风速风向、湿度以及发布时间等信息。预报还包括临近降水预报以及其它的气象服务报告。

3.4 接口管理

通过对接口管理可以方便实现对专业用户、决策用户及普通用户权限的划分。同时添加接口认证的方式可以实现对黑白名单用户的控制,只有在系统中赋予了API权限的用户才可以对接口进行使用。系统的安全性能得到了很好的控制。

3.5 应用统计

管理员可以看到各个接口的使用次数的柱状图,并且可以看到接口认证中的不同用户的接口使用饼图,可以根据这些统计数据知道用户常用的功能或数据,从而挖掘用户的喜好,为未来的客户端的改进提供服务。该功能也迎合了人工智能大数据对数据的剖析要求。

4 结语

由于气象条件的变化直接影响到生活中的方方面面,因此深入研究气象与人们的生活,提供气象预报预警服务,是城市经济和社会发展的需要,也是气象部门的重要责任。做好气象服务和保障工作,对于确保人们生活出行正常进行具有重要意义。系统提出了实现“掌上气象台”的最终目标,结合先进的J2EE平台架构,跨平台部署,实现多级多节点分布式部署,并能够支持第三方整合接入。在数据整合方面丰富了移动客户端决策辅助材料,涵盖春运服务、太湖蓝藻、防汛服务、夏收夏种、秋收秋种、重要天气、气候评价等诸多方面,以此建设的集约化服务产品采集平台可供气象台进行文件产品的集约化管理。气象服务手段的移动化,气象信息发布的便捷化对社会经济以及防灾减灾有极其重要的意义。

就目前而言系统处于应用阶段,还有很多不足和需要改进的地方。尤其是在海量数据处理和展示的模式上,未来将采用数据挖掘以及人工智能等方面的研究成果应用到气象服务中来,结合成“互联网+气象+人工智能”的全新提法并投入应用。

参考文献:

[1] 钱 峥,赵科科,许皓皓.基于Android的移动气象信息服务系统设计与实现[J].气象科技,2014,42(1):99-103.

[2] 孙石阳,邱宗旭,刘东华,等.智能专业气象信息融合与服务系统建设初步研究[A].中国气象学会.第27届中国气象学会年会雷电防护科学与技术发展分会场论文集[C].2010.

[3] 闫 伟,叶建栲.多线程技术在android手机开发中的应用[J].信息通信,2012(1):46-47.

[4] 刘志成.Oracle数据库管理与应用实例教程[M].北京:人民邮电出版社,2010.

[5] 薛建军,周 杰,杜景林.改进型实时气象资料处理系统设计与实现[J].计算机工程与设计,2012,33(4):1623-1628.

[6] 马琰钢,沈萍月,邓 闯.基于ArcGIS Mobile的“智慧气象”数据服务技术研究[J].数字技术与应用,2015(9):62.

[7] 蔡 明,陈永运.J2EE架构的研究与应用[J].计算机应用与软件,2004,21(1):42-43.

[8] 金勇根,黄芬根,雷桂莲,等.手机移动气象防灾减灾服务系统的设计与实现[J].自然灾害学报,2006,15(5):126-131.

[9] 李 浩.气象应急服务系统体系结构设计与实现[D].成都:电子科技大学,2013.

[10] 杨开杰,刘秋菊,徐汀荣.线程池的多线程并发控制技术研究[J].计算机应用与软件,2010,27(1):168-170.

[11] 潘巨龙,闻 育.无线传感网的异构性研究[J].航空计算技术,2007,37(2):124-126.

猜你喜欢

气象预警互联网
气象树
《内蒙古气象》征稿简则
法国发布高温预警 严阵以待备战“史上最热周”
大国气象
园林有害生物预警与可持续控制
美丽的气象奇观
从“数据新闻”看当前互联网新闻信息传播生态
互联网背景下大学生创新创业训练项目的实施
机载预警雷达对IFF 的干扰分析