马琰钢 郑伟才 邓闯
(浙江省气象服务中心,浙江杭州 310017)
基于LBS的气象报警系统的设计与开发
马琰钢 郑伟才 邓闯
(浙江省气象服务中心,浙江杭州 310017)
为使用户通过移动终端准确、及时地获取所在位置和所关心位置的天气变化情况,研究设计并实现了一个基于LBS的网气象报警系统,通过云消息推送,为用户提供基于位置信息的强降水、极热极寒、低能见度和冰雹等多个灾害类别的综合气象报警服务。为保证系统对海量用户并发访问有足够承载能力和较快响应速度,将多种气象格点数据转换为二进制格式进行传输和计算,用分布式计算方式进行运算处理,并在整个过程中采用Memcached内存管理机制。
气象报警 云推送 短时临近预报 基于位置服务 风暴追踪 格点数据
近年来移动互联网技术的迅猛发展正在深刻改变着人们的生活方式和各个行业的发展模式。与传统互联网技术不同,移动互联网技术具有实时在线及与用户主动交互的新特性。而随着现代气象业务体系的建设,气象部门制作了大量的基于地理信息的格点化气象监测和预报产品,可快速实现探测范围内任意经纬度的气象信息检索。在众多气象信息中,公众对气象灾害信息的需求最为迫切,大部分气象灾害来临前,气象部门都能准确预测并向公众发布预警信息,但是这些信息往往是针对某一行政区域的,格式则较为固定[1-3]。公众不仅需要获取“面”上的气象预警信息,也希望能从“点”上获取精细化和智能化的综合气象报警服务。将格点数据快速检索技术与移动互联网技术相融合,就能实时和主动告知用户探测范围内任意经纬度的天气变化情况。
气象报警系统总体设计思路是,基于WebGIS服务建立统一的气象数据模型,管理包括降水、温度、风、能见度和强天气预警等在内的一系列气象信息数据,并在统一的时空模型下将各类气象数据与用户定位信息相融合,最终实现基于位置服务(Location Based Service,LBS)的气象报警系统。系统旨在移动互联网背景下为用户提供精准的基于位置的短期天气变化提醒、短时临近预报预警、灾害防御措施及温馨提示等气象报警服务。
2.1 软件设计原则
本系统设计遵循软件架构设计的基本原则[4],基于开发维护的需要,主要在以下几方面进行了更多的考虑。
①标准化:数据接口统一使用标准SOAP协议,并对数据接口进行双向加密;
②可靠性:为保证系统的可靠性,数据处理服务器和WEBSERVICE服务器均采用分布式部署,WEBSERVICE服务器通过F5进行负载均衡;
③效率性:气象数据种类多及数据量大,本系统采用了二进制数据处理方式,将Micaps第四类格式数据转换为二进制格式并压缩,以此为标准格式在服务端完成数据传输、解析和计算等各个数据处理流程,并以二进制数据格式传送至客户端进行解析,以此提高数据传输解析效率;
④可扩展性:报警阈值及报警要素均可通过后台进行快速简单配置,部分后台处理程序采用Python和C#混合编程,方便二次开发。
2.2 功能设计原则
功能设计原则主要有以下3个方面。
①全面性:涵盖冰雹、雷雨大风、雷暴、强降水、大风、极热极寒、低能见度和空气污染等公众特别关心的灾害类别,发布方式应包括自动发布和手工发布;
②准确性:综合预测及实况监测数据,以强降水为例,以10 min滚动更新的1 km定量降水客观预报格点数据为基础,辅以5 min区域自动站的实况监测数据,得出综合的强降水报警信息;
③及时性:短临的强降水灾害,往往过程短,影响大[5],从监测到客观预报,再生成报警信息,往往只有数十分钟的防御时间,通过短信、网站提醒等传统手段,往往在通信上浪费了宝贵的时间。为此,系统通过云推送服务,直接对移动终端推送提示消息,辅以短信电话等其他手段,确保公众能在第一时间接收报警信息。
3.1 系统架构
本系统核心内容包括数据库、数据处理程序、安卓及IOS客户端程序、云消息推送接口。系统使用C#进行气象报警数据逻辑处理,结合Android及IOS系统的自动定位功能,调用百度云推送服务,根据移动终端绑定的TAG向所有用户或不同标签分类的特定用户群体、单个用户或基于地理位置推送通知、消息及富媒体,数据库则使用ORACLE 11G高性能数据库如图1所示。
图1 系统网络架构
3.2 数据来源
本系统的数据一部分来源于浙江省气象台短临预报预警平台生成的风暴追踪、中气旋、降水估测和雷电数据[6-8],其中格点数据为1 km格距的MICAPS 4类数据;另外还使用了部分自动站数据,包括温度、降水、气温、能见度和风速等,这些数据由浙江省气象信息网络中心进行插值后处理成统一的MICAPS 4类格点数据。系统将原始数据进行统一处理后,发布成WEBSERVICE接口进行统一调用。
3.3 数据库设计
通过分析,构建本系统需要用户基本信息、各种气象要素报警阈值、报警用语和报警历史记录等内容。因此,数据库由用户表、用户关注位置表、报警内容模板表和用户关注要素表等数据表组成。
用户表主要由用户注册信息、最近一次定位经纬度、手机号码和用户终端唯一码组成。用户终端唯一码则可以和云消息推送服务器TAG进行绑定,从而可实现单用户消息推送。用户关注位置表主要由经纬度信息、通知人和通知人手机号码等组成,用户可打开APP,通过地图选取或输入地址,设置关注地点。
报警内容模板表主要由要素类型、报警阈值和报警内容等组成,不同要素可以设置不同阈值及报警提示语。通过几个主要数据表内容形成了用户、关注点和要素阈值之间的对应关系,是系统数据库设计的核心部分。除此之外,还需建立发送日志、收费策略和用户类型等其他辅助表。
3.4 系统功能
基于系统设计的总体原则,突出气象报警精细化和网格化的特点,主要包含数据逻辑处理、用户定位、手动报警和云消息推送等功能。同时,为了贴合浙江省气候特点,各要素的报警级别也要在国家标准的基础上,进行一些微调。
3.4.1 数据逻辑处理及报警阈值
短临预报数据每10 min更新一次,加上自动站分钟资料,数据量相当巨大。对基础的格点数据,首先通过线性计算,将不在阈值范围内的格点值置空,然后根据不同的要素特点,与GIS数据结合,计算出乡镇级或格点级的灾害级别,再与关注点进行比对,如达到预置的灾害报警阈值,则通过推送消息或短信等手段对用户进行报警,并在阀值提升后滚动报警。基本气象要素报警的阈值如表1所示。
表1 气象报警阈值设计
3.4.2 用户定位
本系统的用户定位信息采集及关注点设置功能集成在浙江省气象服务中心研发的“智慧气象”手机客户端中。用户只要打开“智慧气象”APP,通过简单操作,就能将自己所在位置及自己所关心的位置设为关注点,后台经过运算,就能对关注点发送报警信息。考虑到用户隐私,系统并没有采用实时获取用户定位信息的方式获取用户经纬度,只有用户打开APP,才记录用户最近一次定位经纬度信息,用户也可以通过客户端设置,允许后台实时调用用户定位信息。
3.4.3 手动报警
除了可以通过后台数据处理逻辑,对用户关注点自动推送报警消息,如果出现重大天气过程或突发气象灾害,如台风和强暴雨等,还可以针对不同影响范围,实现气象报警信息分区域手动推送,该功能主要依托移动终端与云推送服务器不同标签绑定来实现。在与云服务器绑定TAG时,除了可以通过终端UUID进行唯一绑定,还可以将用户定位点所在区域的省、市、县、乡镇和街道等行政区划信息作为TAG进行绑定,这样,如判断天气过程会对某一区域产生影响时,就可以根据移动终端绑定的TAG向所有用户或不同标签分类的特定用户群体、单个用户或基于地理位置推送通知、消息及媒体。
3.4.4 云消息推送
系统目前采用百度的云推送服务推送报警消息,通过客户端绑定用户的userid、channelid、TAG,根据需求对用户进行组播或单播,后期也可以进行深入研究,搭建自己的云推送服务器。云推送(Push)是百度开放云向开发者提供的消息推送服务;通过利用云端与客户端之间建立稳定和可靠的长链接来为开发者提供向客户端应用推送实时消息服务。百度云推送服务支持3种推送类型:通知、消息及富媒体;支持向所有用户、根据标签分类向特定用户群体、向单个用户和基于地理位置推送消息;支持更多自定义功能(如自定义内容、后续行为、样式模板等);还提供用户信息及通知消息统计信息,方便开发者进行后续开发及运营。
结合2014年8月18日宁波、台州一个强对流天气过程进行分析,假设在“智慧气象”手机客户端中设置3个关注点1、2和3,其中,关注点2在中气旋前进路线上。首先判断中气旋中心点经纬度与风暴追踪线垂直距离,如果距离小于30 km,则气旋将随着风暴方向移动。此时通过系统计算,10 min后中气旋将随着风暴经过关注点2,此时手机将收到报警推送消息,提醒用户10 min左右有可能会出现雷雨大风。10 min后,中气旋随着风暴移动到关注点2位置,短时伴有雷雨大风,用户通过10 min前收到的推送消息,如果采取了一定的防御措施,就可以减少强对流天气造成的损失。
本系统旨在利用移动互联网技术所具有的实时在线及与用户主动交互的新特性,整合各类精细化格点数据产品,提供精准的基于位置的智能化气象报警服务。系统的特色及创新性主要体现在以下2个方面:①基于位置服务的气象报警信息推送;②基于精细化短时临近预报数据的强对流潜势预报预警。使用本系统后,公众及专业用户能通过移动终端及时获取探测范围内任意经纬度的多要素气象报警信息,并可随着用户位置的实时变化,实时切换报警位置,即使提醒用户防范气象灾害,为气象防灾减灾提供高效、智能化的支撑。
[1]李强.基于GIS的小区域气象灾害精细化预警系统[J].气象科技,2014,42(1):89-93.
[2]阎丽凤.灾害性天气监测预警平台设计与开发[J].气象科技, 2014,42(5):804-809.
[3]王赟.基于Web Service的气象预警短信发布系统设计与实现气象科技[J].2012,40(3):384-387.
[4]温旻.软件架构设计[M].北京:电子工业出版社,2012.
[5]赵放.应用多普勒雷达制作近海台风临近预报技术研究[J].气象,2008,34(5):64-74.
[6]徐传玉利用雷达进行风暴的识别、跟踪、分析和临近预报的方法[J].气象科技,1994(4):39-45.
[7]邹德龙,冯业荣,梁巧倩,等.0~3小时短时定量降水预报算法研究热带气象学报[J].2014,30(2):249-260.
[8]郑石,王启威,王冠,等.一次短时暴雨天气过程及短时临近预报分析[J].现代农业科技,2014(22):226-228.
Design and Development of Meteorological Alarm System Based on LBS
MA Yan-gang,ZHENG Wei-cai,DENG Chuang
(Zhejiang Meteorological Service Center,Hangzhou Zhejiang 310017,China)
In order to let users obtain the accurate and timely weather changes about his location and his concerned location through the mobile terminal,this paper puts forward a meteorological alarm system based on LBS.This system uses cloud push to provide users with comprehensive meteorological alarm service for various disasters such as heavy rainfall,extreme hot and cold,low visibility,hail,etc. In order to ensure the system has enough bearing capability and fast response speed for massive user accesses,a variety of meteorological grid data are converted to binary format for transmission and calculation,the distributed computing method is used for operation and processing,and the Memcached memory management mechanism is used in the whole process.
meteorological alarm;cloud push;nowcasting;LBS;storm tracking;grid data
TP393
A
1008-1739(2015)23-68-4
定稿日期:2015-11-12