袁迎蕾,陈 亮,李长顺
(1.海南省气象服务中心 海南省南海气象防灾减灾重点实验室,海南 海口 570203;2.福建省气象服务中心,福建 福州 350000)
微信公众平台在气象服务领域被广泛应用[1]。海南省气象局自2014年开设官方微信公众号以来历经多次升级改造以适应服务需求,当前官方微信平台有三大板块包含13个子栏目,综合提供涵盖天气、旅游、农业等几十种气象服务产品。
海南气象服务官方公众号为用户提供了优质的气象服务,但在格点数据、全域旅游和用户定制表现形式方面仍存在不足,不能满足公众对旅游服务、精细化数据相关产品的查询和定制化需求[2]。自2017年3月,海南省人民政府办公厅印发《海南省全域旅游建设发展规划》,海南省气象局以实际需求为引领,升级和优化微信公众号以完善微信气象服务功能,主要内容包括加强气象精细化信息、全域旅游产品和用户定制化的展示能力,突出海南“生态环境、经济特区、国际旅游岛”三大优势。具体设计思想如下:
前期改造重点为加强气象基础观测信息、历史统计数据和精细化预报服务产品的展示能力,提高在突发天气事件及重大气象灾害发生时,官方微信公众号为公众提供实时气象服务信息的及时有效性[3];此外加强气象信息的实时监测以提升服务支撑针对性;在此基础上做好气象保障服务,推进智慧气象服务的发展[4-5]。
技术架构如图1所示。
图1 技术架构
1.1.1 数据层
数据来源:全国API数据服务接口、全国气象数据文件、国家级或省局CIMISS数据接口、海南省格点精细化预报和实况数据。后台程序通过API接口或通过读取数据文件获取的数据都需要格式化为标准数据格式(如果获取的数据已经是格式化的数据,则不需要再格式化)[6],可通过脚本或额外程序格式化数据,亦可通过后台程序格式化数据。
1.1.2 接口层
由于后台各种数据(包括气象数据、图片、视频)都需要提供接口服务,接口层的功能是方便数据接口供功能层调用。接口层使用MVC架构搭设的一套Web Service的服务,采用PHP语言,为用户提供大量API实现对整个系统的数据支撑[7-8]。
接口层负责对原始数据的深加工,基于不同用户的业务需求有所差异,旅游气象、农业气象等各类产品的展现方式也不尽相同,这要求对相同的数据进行差异化处理。原始数据经后台处理后作为备用数据,用户调取接口进入后台逻辑加工,从而返回给用户所需的格式化数据[9]。
接口层既要保证安全性也要保证即时性,因为接口的性能直接影响整个项目的稳定性。本设计在处理较为复杂的数据时会对数据的结果进行静态缓存,这样既保障了服务器的资源也保证了接口的效率。此外对接口的权限进行较为有效的限制,每个调取接口的用户会分配一个唯一的标识码,只有经过特殊的加密算法才可以正常请求本平台的接口层。
缓存在平台架构以及接口开发中也尤为重要。本平台用到的是Apache缓存,Apache除了可以提供自带的缓存模块外,也可通过外加Squid模块进行缓存,以上两种方式都能够有效地提高Apache的访问响应能力。此外为了防止接口层的大量并发,负载均衡方法被应用到此平台中。
1.1.3 功能层
功能层通过与接口层相连接实现与气象服务数据库之间的衔接[10],从而为微信平台提供各类定制化专业气象服务,并实现定制化气象服务信息的推送及发布,从而达到自动推送气象服务信息的目的。除此以外,功能层还对系统产品等相关业务提供管理功能。
1.2.1 后台支撑系统
微信平台的后台支撑系统采用Mysql、Linux和php等标准开发语言进行开发,其中部分php支撑系统采用ThinkPHP框架。这是一个国产轻量级开发框架,具有快速和兼容的特点。原名叫FCS,后改名为ThinkPHP的PHP开发框架遵循Apache2开源协议发布,它移植并改善了Struts结构,采用的是面向对象的开发结构和MVC模式,并且将Struts的思想以及ActiveRecord模式和TagLib(标签库)、RoR的ORM映射融合在一起[11-12]。ThinkPHP是一个整体开发解决方案,能够比较方便地实现跨版本、跨平台和跨数据库移植,可以满足应用开发中的很多实际需求。
用户请求说明如图2所示。
图2 用户请求说明
本设计的业务逻辑为,通过http协议请求,将微信用户发送的click提交给Linux服务器,其中负责监听80端口的nginx将请求分发给php-fcgi进程,再通过php对URL参数进行逻辑处理。
腾讯云提供的Mysql数据库被应用到Mysql部分。基于PCI-e SSD存储介质,可以提供高达37 000 QPS的强悍性能。因此服务兼有可用性和可靠性双高的特征,而且能够实现全面监控管理自动化[13]。
开发实现逻辑如图3所示。
图3 开发实现逻辑
1.2.2 模型和算法
基于海南省气象台的格点预报,该设计研究旅游点定点预报自动生成和控制方法,同时研究逐小时向逐日预报的转化方法。通过研究不同旅游活动的高影响气象影响因子和指标,从而建设观光、潜水、赏花、漂流、登山等活动的逐小时影响预报模型,并建立服务用语词库。
通过广泛收集主流天气APP和微信服务号的服务提示,结合海南本地实际,建设针对不同天气、节气,重大节日,不同灾害风险以及停课、停业等信息的提示用语库,同时探索建设综合天气形势与特色旅游活动的温馨提示用语[14]。此外研究基于第三方地图接口的气象数据和地理数据的叠加方法,并构建不同用户位置和不同的天气情况下的用户场景服务模型。
优化升级正在业务化运行的海南气象服务官方微信公众号。
基于《海南省全域旅游建设发展规划》,本模块的全域旅游产品设计分为点、线、面三个维度。
2.1.1 点的设计
“点”的建设分为滨海(滨海娱乐、海上活动)、雨林(雨林探险、峡谷漂流)、疗养(温泉养生)、观光(休闲观光、生态观光、湖景观光、文化观光)、农事(乡村休闲、赏花、采摘)、文体(博物馆、高尔夫)、风情(风情街、特色旅游风情小镇、特色产业小镇)、美食、购物、婚纱拍摄、交通(道路、港口、机场)11个主题,包含已建成使用和未建成共计三百多个景点。
气象服务产品包括两种。一种是逐小时风、降雨量、气温等要素预报的气象服务基本产品;另一种是基于基本产品生成的赏花活动、登山活动、漂流活动等的逐小时天气影响预报,根据用户所在位置的天气所生成的台风、山洪、中小河流洪水、短时强降水等的灾害天气风险提示,显示旅游景点和过去一小时降雨量、气温、风等的全省色斑图的实况数据等产品,结合旅游信息、天气信息、交通信息等的旅游点相关资讯等[15],以上几种对基本产品进行再加工而形成的气象服务产品统称为气象服务衍生产品。其中,旅游资讯的推荐部分分为4个方面的主要内容:一是结合天气情况和景区景观等特点的当季最佳旅游活动推荐;二是结合天气情况和用户定位的所在地最佳旅游景点推荐;三是基于大数据技术评估出用户喜好旅游景点类型,并作旅游景点推荐;四是结合天气情况和交通路线的景点推荐。
2.1.2 线的设计
“线”的设计是在“点”的设计完成后,将旅游景点按照主题分类并串联,形成主题鲜明,提升服务层次的线路推荐。
本研究中,“点”的设计中旅游景点分为滨海、雨林、疗养、观光、农事、文体、风情、美食、购物、婚纱拍摄、交通11个主题,不同的旅游主题按照所在市县不同分为包括海口、三亚、儋州等11个市县的城市景点推荐,结合旅游主题和城市景点,规划出符合实际需求、突出绿道属性的田园、西岸、黎西、海韵4条线路。
2.1.3 面的设计
本研究基于WebGIS的用户位置,结合天气情况、旅游等信息,综合绘制出“站点式景区道路天气导航地图”,这也是所谓“面”的设计,是全域旅游气象服务产品的综合展示。
“站点式景区道路天气导航地图”可显示用户所在位置的天气信息,导航线路上的站点天气情况、道路拥堵状况、途经景点游玩适宜情况、旅游线路上景点的评论情况等等,如图4所示。
本地气象服务产品采用海南省自己的天气实况和精细化格点预报数据,国内省外其他地区的产品使用北京华风创新网络技术有限公司提供的天气实况和精细化格点预报数据。运用精细化格点预报生产系列产品,展现形式包括一级菜单“天气播报”,二级菜单“尊享订阅”内的“定点天气”、“旅游天气”、“交通预报”等内容。此类产品的管理通过开发后台数据管理平台实现。天气播报、旅游天气页面如图5所示。
图4 全域旅游-站点式景区道路天气导航地图
图5 天气播报、旅游天气页面
该模块设置在二级菜单“尊享订阅”中,包括免费和付费两个模块,当前该模块所有内容可免费试用。后期开发的付费模块,用户只需开通微信支付,便可个性订阅所需模块。
用户在个性定制模块能看到免费和付费两个模块的内容,免费模块对所有用户开放,付费模块提示收费,用户根据需求微信付费后可查看相关内容。在此模块增设统计模块,便于用户查看已付费产品的费用及使用期限,同时也能查看未购买产品的价格。
在定点天气模块的一级页面中增设二级页面,面向所有普通用户开放,显示海南全省格点精细化预报及天气实况;向付费用户显示一级页面,在点击某地点查看后再进入二级页面。
个性定制模块升级预警订阅功能选项,对于订阅数量不再限制,订阅地区包括全国市县范围以及国外主要城市。
设计微信矩阵管理后台的目的是管理和操作多个微信公众号,以此集约资源,减少重复操作,实现对多个账号的统一管理。
通过微信矩阵管理后台,可以实现对单个微信公众号的单独操作,也可实现让一个或多个账号执行同一任务或者不同任务的操作。比如市县对本公众号的菜单管理、推送信息编辑、广告发布等,或者在某个或某几个公众号上发布相同或不同广告的简化操作。
矩阵平台的设计初衷是使得微信公众号能够高效完成推送信息的编撰和发布,拥有自己的专属后台。腾讯微信平台自带兼容编辑器,可实现编辑、预览和群发功能,以及推送的音视频信息、图文信息或其他专题等的访问统计,关注用户情况也作趋势曲线图统计,以便于了解一定时期内关注/取消本微信公众号的人员情况。
微信矩阵平台设计后拟定向开发公众号,如天气网眼实图美景之类的旅游景区类公众号,风云即拍灾害天气视频类公众号等,并通过这些定向开发的微信公众号吸引粉丝,最终将粉丝迁移到海南省气象局官方微信公众号。
作为全国首个全域旅游创建省,海南对旅游气象服务提出了更高要求,为了做好旅游气象服务创新,满足公众对旅游气象服务的高需求,海南省气象部门不断优化升级原“海南气象服务”官方微信公众号,构建海南全域旅游气象服务微信平台。结合“点”、“线”、“面”,将全省三百多个景点按照11个主题进行分类,并根据田园、西岸、黎西、海韵4种风格,串联不同主题的景点,形成4条旅游线路,融合“旅游+气象+交通”等信息,综合绘制出“站点式景区道路天气导航地图”。新升级的微信平台基于天气实况和精细化格点预报等数据,设计气象服务基本产品和衍生产品,个性定制模块优化升级,用户可根据自身需求选择免费或付费的气象服务产品。微信矩阵管理后台的设计,将有效集约资源和人力,以实现未来对全省多个气象部门微信服务账号的统一管理。
未来,海南气象部门还将不断健全旅游气象自动化和信息化的综合观测体系,进一步完善海陆空交通线(站、场)气象观测站组网建设等。同时建立融合GPS、气象、旅游和交通信息等的大数据平台,编制全域旅游气候适应性区划,为近海观光、旅游和海峡航运等提供更加快捷、专业的定向气象保障服务。