网站首页  词典首页

请输入您要查询的论文:

 

标题 基于微信的“雨在哪”小程序设计与实现
范文

    王家乐

    

    

    

    摘要:近年来,智能手机应用悄然兴起,人们依赖手机获取天气实况愈来愈显著。文章基于微信,研发了“雨在哪”微信小程序,实现了内蒙古自治区历史、实时降水信息的展示,用户可针对性对降水严重区域进行防范,避免由于严重降水引起的各类灾害。

    关键词:微信小程序;数据接口;降水产品

    中图分类号:TP311? ? ? 文献标识码:A

    文章编号:1009-3044(2021)15-0082-03

    1 背景

    降水包括雨、雪、雨夹雪等相态,不同降水相态对应的降水量级具有差异性,降水过度会严重影响人们的生活,造成不同程度的灾害,因此及时将降水相态、降水落区及降水的量级推送给社会活动人员对气象防灾减灾至关重要。近年来,通过智能手机的微信应用获取各种信息资源已经成为当今社会的主流趋势,微信具有操作简便、交流高效、信息推送精准等优点,这些都为实现基于微信的“雨在哪”小程序设计与应用(以下简称“雨在哪”)奠定了基础。本文将对该系统设计与应用进行介绍。

    2 系统设计

    2.1 总体结构设计

    “雨在哪”微信小程序[1]主要基于气象局内部私有云平台进行建设,在公有云上适当补充。数据环境主要基于内蒙古气象大数据云平台-天擎数据环境,应用软件由微信小程序、接口应用、后端数据处理应用三部分组成。

    微信小程序和接口应用部署在公有云虚拟服务器上。前端部署负载均衡设备进行任务调度,提供高并发访问下的数据分流处理。网络入口处部署防火墙,进行网络攻击拦截,既能够实现数据的高效传输,也能够保证数据访问的安全性。

    后端数据处理应用,基于处理服务组件,具备多并发实时处理功能。后端数据处理基于气象局内部私有云,根据业务需要获取全区预报,实况,历史降水信息,对这些数据进行分析加工,生成可供应用快速方便高效使用的结构化数据。随着业务发展的需求和访问量的增加,可以扩展处理服务器的数量。

    2.2 总体结构设计

    系统由基础设施层、数据访问层、数据加工层、应用接口层和展示层五个功能模块组成。每个模块實现其特定的核心任务,下层为上层提供支撑,同时上层从下层获得基础数据并服务,功能模块见图1:

    1)展示层

    展示层是系统操作界面,面向的用户是自治区级、盟市级和旗县级从事气象服务相关工作或社会活动人员,用户通过手机搜索“雨在哪”即可使用。

    2)应用接口层

    应用接口层是系统业务逻辑处理的核心部分,采用REST服务方式实现与展示层的信息请求交互,该方式降低了系统开发的复杂性和耦合度,提高了系统的可扩展性。

    3)数据加工层

    数据加工层是对基础数据预处理,包括实况降水数据统计、历史数据集解码入库、历史数据统计,最终生成有效的降水数据产品,应用接口层基于此产品完成数据接口开发。

    4)数据访问层

    数据访问层是进行逻辑算法与基础数据环境的数据交互层,对各类数据库进行适配,本文应用的数据库为XUGU分布式数据库和postgreSQL数据库。为了保证气象基础数据使用安全,采用ETL从“天擎”数据环境抽取实况数据和建站以来的极端降水并加载至“雨在哪”数据环境。

    5)基础设施层

    基础设施层是支撑“雨在哪”微信小程序部署的软硬件环境,部署在内蒙古自治区气象信息中心的虚拟化资源池,主要包括WEB服务器和数据库服务器。

    3 系统功能实现

    3.1 “雨在哪”微信小程序基础框架

    微信小程序由逻辑层、视图层和app文件组成[2]。逻辑层是用JavaScript代码编写的js文件,实现页面逻辑的编写;视图层由wxml和wxss组成,是面向用户的页面结构和样式,将逻辑数据反映成视图展现给用户,同时将用户请求的事件发送给逻辑层;app文件是微信小程序的全局配置JSON文件,定义页面文件的路径、视图的大小、网络连接超时等信息。

    3.2 基于A文件的历史降水数据集制作

    A文件的观测数据由20个地面要素构成,每个要素在文件中的排列顺序是固定的。20个要素的名称(指示码)排列顺序如下:气压(P)、气温(T)、湿球温度(I)、水汽压(E)、相对湿度(U)、云量(N)、云高(H)、云状(C)、能见度(V)、降水量(R)、天气现象(W)、蒸发量(L)、积雪(Z)、电线积冰(G)、风(F)、浅层地温(D)、深层地温(K)、冻土深度(A)、日照时数(S)、草面(雪面)温度(B)。

    历史降水数据集的制作程序主要采用的是JAVA语言,遍历建站以来的A文件资料,逐行读取A文件内容,当解析到降水量(R)和天气现象(W)指示码后,提取的降水量和天气现象数据制作数据产品,数据集制作完成后,按照站号、站名、观测时间、降水量、降水相态降水经由入库程序写入到数据库,处理流程见图2:

    3.3 基于ETL的历史实时降水数据产品加工

    ETL是Extraction-Transformation-Loading的缩写,中文名为数据抽取、转换和加载[3]。利用ETL技术将气象观测数据从天擎数据环境抽取出来,经过一系列的融合转换[4],然后加载至“雨在哪”数据环境中,数据产品包括实时分钟降水产品、实时小时降水产品、各个台站24小时降水滚动统计产品、各盟市24小时降水滚动统计产品、历史极值统计产品和历史降水极值排名,主要流程见图3。

    1)数据抽取

    为了保证数据正确性,逐时从天擎数据环境抽取中国地面分钟资料、中国地面小时资料、中国地面日值资料,分钟资料抽取近三小时数据、小时资料抽取近三天数据、日值资料抽取近一个月数据。

    2)转换加载

    为了保证数据安全性,分钟资料保留一天、小时资料保留三天。基于小时降水数据,逐时滚动统计01-01、02-02……23-23的近24小时降水累计产品,该产品保存10天;基于近24小时降水累计产品,统计各盟市近24小时降水统计产品,内容包括降水站点总数、降水量级划分和最大降水及最大小时雨强等信息;基于历史降水产品和日降水数据,统计各个台站超历史同期极值或超历史同期极值的台站及历史降水量排名,加载至微信小程序数据环境。

    3.4 “雨在哪”微信小程序接口实现

    接口开发采用JAVA语言,开发框架是HttpServlet的web服务,主要由服务地址、接口ID、接口参数和返回格式四部分组成[5]。接口ID的命名能反映接口的基本功能、适应的数据种类和检索条件等内容,接口命名使用驼峰风格(lowerCamelCase);接口参数类型分成了资料属性、要素属性、时间属性、空间属性,多个参数用&拼接;返回数据格式为JSON。

    服务接口路径格式:(https://wapp.tqonline.top/wx-miniprogram-rain-service-interface/preDistribution/接口ID/接口参数/返回格式)。基于歷史实时统计产品,编写“雨在哪”微信小程序调用接口,实现小程序和后台数据的交互,主要接口见表1:

    4 系统展示效果

    “雨在哪”微信小程序的首页分为上中下三部分展示[6],上部分是时间段选择区域,tab标签切换显示地图上不同区域降水分布信息。中间部分为地图显示区域,展示所有站点降水情况,地图左下角两个图标,上图标为降水总览,下图标为重置定位点。下部分为站点信息显示区域,默认显示近24小时降水量实况,也可切换显示分钟降水量实况;向上滑动显示历史降水量前五名出现时间和累计降水量;点击“降水总览”按钮,进入全区降水总览页面,可以查看全区最大降水量、最大降水强度、超极值降水台站详情及降水量级分布情况。“雨在哪”微信小程序展示见图4:

    5 结束语

    “雨在哪”微信小程序完成了历史实时降水数据产品的制作,为小程序提供了高效的数据支撑。应用方面不仅满足了内外部消息发布及沟通,而且降水实况信息可在微信内被便捷获取和传播,同时结合订阅号、企业号、服务号使用户获得更加便捷的使用体验。

    参考文献:

    [1] 张晨,王奇博.基于微信小程序的气象保障平台设计与实现[J].湖北农业科学,2020,59(S1):443-446.

    [2] 刘玉佳.微信“小程序”开发的系统实现及前景分析[J].信息通信,2017(1):260-261.

    [3] 赵建勋.基于Kettle的数据整合研究与实践[J].西安文理学院学报(自然科学版),2020,23(3):28-31,36.

    [4] 李莉娇.基于KETTLE的专项项目库数据同步方法研究[J].信息系统工程,2019(12):34-35.

    [5] 何文春,高峰,孙周军,等.气象数据服务接口规范[S].2020.

    [6] 吴志霞,叶根梅,甘丽,等.基于Vue.js框架实现移动终端数据可视化研究与实践[J].通化师范学院学报,2020,41(6):62-66.

    【通联编辑:谢媛媛】

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/17 1:25:55