郭俊峰 李垚周
摘要:在信息量剧增的时代,我们需要从数据中获取信息来分析和预测天气情况,因此设计基于Java的气象管理系统,采用B/S模式,并运用Java语言完成编写,系统主要包含三个模块,分别为天气预报模块、自然灾害预警模块、全局观测模块等。该系统为城市提供气象信息支持,在预防城市发生自然灾害中发挥重要作用。
关键词:气象系统;天气预报;自然灾害
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)12-0066-03
在大数据、人工智能技术的推动下,信息数据呈现爆发式增长,而数据的合理利用能为城市、政府、企业提供强有力的帮助。在互联网时代,各行各业都在蓬勃发展,对于城市而言,随着5G时代的来临,气象数据越来越丰富,气象服务的内容越来越广泛,数据传播的方式通过采集、过滤、传递、存储等过程进行展示。但随着气象类型的增多,信息数据的格式发生变换,传统的气象系统无法真正利用这些数据进行过滤、清洗,使某些城市天气出现不准确的情况,针对这些问题,如何能将当前所有气象数据准确收集起来,并合理利用成为当前各城市在预防工作中需要面对的问题。
如今已进入5G互联网时代,天气预测虽然在十年前就已经被使用,但现如今网络技术的高速发展,通过气象系统+5G互联的模式使天气数据能得到更加合理的利用,这样可以使用户得到更加精准的气象信息和内容,进而改善城市天气不精准问题,使智能气象服务更智能化。
因此本文设计基于javaWeb的气象管理系统,通过天气预报模块将提取的气象数据进行计算,分析出精准的气象情况,供用户进行查看,同时包含自然灾害预警模块、全局观测模块、其他用户和权限模块以及日志管理模块等。
1系统开发
1.1Java技术概述
Java是由詹姆斯·高斯林所创建,到目前为止,已经成为世界上排名前三的计算机编程语言,在国内,被知名的互联网公司阿里巴巴、京东等大型公司作为底层代码所使用,并且在Hadoop生态圈,Java也被大数据领域如Kafka、Flume等作为底层语言。
Java作为一种面向对象语言,具有三大特性,即封装、继承、多态。这三种特性保证了代码之间的高内聚低耦合,对比面向过程语言更加简洁易懂。同时,Java之所以被广泛使用是因为其内部独有的Java虚拟机JVM,它保证了Java代码可以在任何平台上使用,具有跨平台的作用,并且Java拥有垃圾回收机制,它发生在JVM的堆内存中,垃圾回收机制拥有多种算法,可以保证创建的对象被合理清理。不需要向C++那样,进行手动清理,释放内存。
1.2MVC技术概述
MVC模式(Model-View-Controller)又被称作三层架构模式,它是软件工程中的体系架构模型,它将系统分为三个部分,即视图层、模型层和控制器。
MVC将整个系统的代码按照逻辑进行划分,它将业务逻辑、基本数据和应用程序接口可视化分开的方式组织集成代码,并将大量的业务逻辑合并到一个特定的部分。在不需要重写业务逻辑代码的情况下,减少编码时间和工作负载,同时调整接口和用户交互的改进和规范。
在视图层,将数据由控制器传到视图层,即用户所看到的WEB前端页面,通过视图将HTML,CSS样式进行渲染,模型层包含逻辑Service层和数据访问Dao层,主要负责将前端传过来的代码进行逻辑处理,并在数据库中查到对应的数据,最终返回给前端。MVC模式在气象管理系统的模型图如图1所示。
2需求分析
2.1系统分析
为了更好地服务于城市和用户,提高城区气象服务水平,依据互联网模式,提出应用于城市与用户的气象管理系统建设。该气象管理系统分为三个重要模块,分别为天气预报模块、自然灾害预警模块、全局观测模块等,利用这些模块提高城区气象信息的准确性。
2.2天气预报管理需求
天气预报模块主要进行天气预测、预测预警、雨量检测、交通气象、雷雪天气、实时监控的维护,可以查看到各城市的天气资讯、风速、风向等情况。
预测预警主要对各城市的天气进行1小时、4小时、7小时、12小时、一天、两天、一周等天气进行实时修正,系统中会具体显示出档期天气的符号、风速、风力、温度、湿度、空气质量等,还可以查看未来一周的天气情况,并显示最高气温和最低气温。
2.3自然灾害模块需求
突发自然灾害,相对于城区而言是突然爆发强降雨、雷电、山体滑坡、洪流等自然災害,该模块针对突发情况需对该城市进行不定时快速更新讯息,显示自然灾害预警图标、级别、内容以及大致的持续时间等。并且可以查看发布信息的具体时间、日期、状态等。
2.4全局观测模块需求
全局观测模块由卫星云图、雷达监测资料、气象信息实况资料,降雨资料等数据构成,用于全局观测卫星云图的天气情况、并且对给定城市的天气进行实时雷达拍摄,每5分钟形成一张图片。并可以对形成后的数据进行导入导出。
3系统设计
气象管理系统主要服务于城区和用户,所以在系统设计上,将从系统架构、重要功能模块、数据库三方面进行设计。
3.1系统架构设计
气象管理系统采用SpringMVC框架、Spring框架、Mybatis框架对系统后端进行集成,前端采用LayUI框架进行设计,数据持久层使用Mysql数据库、数据缓存层使用Redis框架,同时使用浏览器/服务器(B/S)架构进行前后端页面交互,将Tomcat设为本系统的轻量级服务器,考虑到系统访问压力过大时,出现访问速度过慢等现象,在系统设计时采用Nginx进行负载均衡,减轻单个服务器的访问压力。最后在层级上采用MVC三层架构模式进行设计。
3.2功能模块设计
气象管理系统在模块设计上包含三个重要功能模块和一个系统管理模块,分别为天气预报管理模块、自然灾害管理模块、全局探测管理模块、系统管理模块。
天气预报模块在设计中根据三层架构模式设计了Dao层、Service层、Controller层,Dao层负责和Mysql数据库进行交互,Service负责业务逻辑代码的编写、Controller层负责将查询的结果返回给视图层进行解析。该模块包含预报预警控制类ForAndEarlyWarningControUer,天气预测控制类WeatherWarning-Controller,雨量监测控制类RainNumberControUer,雷雪天气控制类ThunderAndSnowController,交通气象控制类TrafficMeteo-rologyController,实时监控控制类ReaIMonitoringController,如表1所示。
自然灾害模块包含山体滑坡、洪流、雷电等监测子模块,其中山体滑坡控制类为LandSlideController,涉及的方法有山体滑坡监测LandSlideMoniter()、山体滑坡类型LandSlideType()、山体滑坡级别LandSlideGrade(),洪流控制类为TorrentController,方法包含洪流类型TorrentType()、洪流等级TorrentCrade()、雷电控制类为ThunderController,方法包含雷电类型ThunderType()、雷电等级ThunderGrade(),其中包含的属性有名称、城市、年份、日期、级别、内容、持续时间、图标。映射表如表2所示。
全局探测管理模块包含卫星云图控制器SatelliteCloud-ChartController、雷达监测控制器RadarMonitoringController,气象信息控制器MeteorInformationController,以及导人导出方法,其中气象信息拍摄的图片全部存储,根据上次发生的自然灾害情况,可以将信息数据全部导出来进行分析,也可以将图片进行导入,进行探测分析。映射表如表3所示。
系统管理模块包含登录功能、注册功能、修改密码功能,登录功能包含用户名、密码、验证码,验证码根据阿拉伯数字随机生成4位,当其中一项输入不合理时,系统会提示输入错误及其原因等。注册功能会根据所在省份和城市按地区注册,注册信息可以通过手机号直接注册,系统注册成功后初始密码为123456,可以通过修改密码功能进行修改。系统用户分为超级管理员、管理员和用户三级,每一级的权限都不相同,超级管理员具备最高权限,其他两级具备对应功能的权限。
3.3数据库设计
气象管理系统通过对前期调研和需求分析之后,对系统各模块进行了相应的数据库设计,主要涉及的表包含用户表user、角色表role、日志表log、省市县表city、天气预报表weather-Forecast、自然灾害表naturalDisaster、全局探测表globalDetection、气象数据分析表dataAnalysis等,数据表及其字段名如表4所示。
4系统实现
4.1开发环境
气象管理系统所采用的开发环境如表5所示。
4.2系統部署
基于Java的气象管理系统通过开源的服务器Tomcat进行线上部署,部署成功后,可以根据不同用户进行访问,如需要实现各国各地进行访问,则需将该系统部署到共有网络中,可以购买阿里云或者腾讯云等服务器。
5结论
本文运用Java语言进行编写,采用浏览器/服务器模式进行设计,最终设计并实现基于Java的气象管理系统,该系统包含三个重要功能模块分别为天气预报模块、自然灾害模块、全局观测模块、通过这些模块用户可以实现实时查看所在城市当前及未来的天气情况,并能通过自然灾害模块的分析查看是否发生山体滑坡、洪流等自然灾害。该系统可通过IP地址直接访问,便于系统维护,极大地提高了系统的安全性。
本系统下一步在针对自然灾害模块和全局观测模块添加echar图形分析和模块化的日志管理等功能,使之系统功能更加完善。