基于深度学习的气象数据可视化及降水量预测系统(Echarts、Python、LayUI、网络爬虫、数据可视化)
摘 要
科技进步使得人类的生活水平持续上升,对周围的环境如气候和空气等也日益重视起来。一般民众倾向于根据天气情况安排旅行以提升生活的品质感,而企业则需要密切观察气象变化以便制定相应的生产策略,从而增强企业的产出效益并且减少因恶劣天气带来的风险损失。由此可见,无论从个人还是企业的角度来看,天气都无时不刻地左右着我们的决策与日常活动,所以建立一个能够清晰展示我国气象信息的可视化系统是很有价值的。
经过相关调查研究,本系统分别设计了气象数据的后台管理模块和气象可视化模块。在气象后台数据管理模块中,有基础用户、公告数据增删改查功能,气象相关数据的增删改查以及气象数据网络爬虫等功能。而气象数据网络爬虫则是在登录系统后进行启动操作,系统会通过网络加载气象数据,解析数据并进行相应的数据处理,最终将数据存入数据库。用户可以通过该系统实时了解国内各地区的天气数据,并进行数据分析和可视化展示,同时也能通过深度学习算法预测降水量、气温等数据,为用户的决策和实践活动提供有力支持。
该平台采用Python的爬虫技术来实时的收集中国的气象信息,接着运用数据清洗和数据库处理将其存储于数据库中。接下来,使用Python Web框架来构建系统的后端数据交互模块。此外,该系统也采用了Echarts的技术来实现数据的解析与可视化呈现,同时还应用了LayUI的前端工具来设计后台的数据管理界面。最后,通过将原始数据进行处理,划分为训练集以及测试集,然后定义了深度学习模型,并使用得到的训练数据对模型进行了训练。训练好的模型被保存到了名为"model.joblib"的文件中。最后,在测试集上评估该模型的性能,并输出了模型的EMS(均方误差)损失值来检测模型的预测效果。从而来完成最终的基于深度学习的气象数据可视化以及降水量预测系统。
关键词:Python,爬虫,数据可视化,深度学习
A Meteorological Data Visualization and Precipitation Prediction System
Based on Deep Learning
Abstract
Technological progress has led to a continuous improvement in human living standards, and an increasing emphasis has been placed on the surrounding environment such as climate and air. The general public tends to arrange travel based on weather conditions to improve the quality of life, while enterprises need to closely observe weather changes in order to develop corresponding production strategies, thereby enhancing their output efficiency and reducing risk losses caused by adverse weather conditions. It can be seen from both individual and corporate perspectives that weather constantly influences our decision-making and daily activities. Therefore, establishing a visualization system that can clearly display meteorological information in China is very valuable.
After relevant investigation and research, this system has designed a backend management module and a meteorological visualization module for meteorological data. In the meteorological backend data management module, there are functions such as adding, deleting, modifying, and querying basic user and announcement data, adding, deleting, modifying, and querying meteorological related data, as well as meteorological data web crawlers. The meteorological data web crawler is launched after logging into the system. The system will load meteorological data through the network, parse the data, and perform corresponding data processing, ultimately storing the data in the database. Users can access real-time weather data from various regions in China through this system, and perform data analysis and visualization. At the same time, deep learning algorithms can be used to predict precipitation, temperature, and other data, providing strong support for user decision-making and practical activities.
The platform uses Python's web crawling technology to collect real-time meteorological information from China, and then uses data cleaning and database processing to store it in the database. Next, use the Python Web framework to build the backend data interaction module of the system. In addition, the system also adopts Echarts technology to achieve data parsing and visualization, and also applies LayUI front-end tools to design the backend data management interface. Finally, by processing the raw data and dividing it into training and testing sets, a deep learning model was defined and trained using the obtained training data. The trained model has been saved to a file called "model. joblib". Finally, the performance of the model was evaluated on the test set, and the EMS (mean squared error) loss value of the model was output to detect its predictive performance. So as to complete the final deep learning based meteorological data visualization and precipitation prediction system.
Key words: Data visualization, Python, Deep learning
摘 要............................................... I
Abstract.................................... II
第1章 绪 论............................. 1
1.1 论文研究主要内容............................. 2
1.2 气象数据可视化发展现状................. 3
第2章 关键技术介绍.................. 5
2.1 关键性开发技术的介绍..................... 5
2.1.1 Python语言简介................................. 5
2.1.2 Flask 框架.......................................... 6
2.1.3 Navicat Premium 15............................ 6
2.1.4 Echarts................................................. 6
2.1.5 Pycharm............................................... 7
2.1.6 MySQL................................................ 8
2.2 关键性算法的介绍............................. 8
2.2.1 LSTM简介......................................... 8
2.2.2 LSTM原理......................................... 9
第3章 系统分析........................ 10
3.1 构架概述............................................ 10
3.1.1 功能构架.......................................... 10
3.1.2 模块需求描述.................................. 10
3.2 系统开发环境.................................... 11
3.3 系统任务的可行性分析................... 11
3.3.1 技术可行性...................................... 11
3.3.2 经济可行性...................................... 12
3.3.3 操作可行性...................................... 12
3.3.4 社会可行性...................................... 12
第4章 系统设计........................ 14
4.1 设计指导思想和原则....................... 14
4.1.1 指导思想.......................................... 14
4.1.2 软件设计原则.................................. 14
4.2 构架概述............................................ 15
4.3 系统的数据库功能结构设计........... 16
4.3.1 数据库逻辑结构设计...................... 16
4.3.2 数据库物理结构.............................. 19
4.4系统各模块设计................................ 21
4.4.1 数据采集.......................................... 21
4.4.2 数据可视化...................................... 22
4.4.3 数据预测.......................................... 22
4.4.4 用户登录与注册.............................. 23
4.4.5 数据管理.......................................... 23
第5章 系统实现........................ 24
5.1 接口实现............................................ 24
5.2 数据采集模块.................................... 24
5.2.1 数据采集模块实现.......................... 24
5.2.2 数据采集模块代码.......................... 25
5.3 数据可视化模块................................ 25
5.3.1 数据可视化模块实现...................... 25
5.3.2 数据可视化代码.............................. 26
5.3.3 可视化界面...................................... 27
5.4 数据预测模块.................................... 27
5.4.1 数据预测模块实现.......................... 27
5.4.2 数据预测模块代码.......................... 28
5.4.3 数据预测模块界面.......................... 28
5.5 用户登录与注册模块....................... 29
5.5.1 用户登录与注册模块实现.............. 29
5.5.2 用户登录与注册模块核心代码...... 30
5.5.3 用户登录界面.................................. 30
5.6 数据管理模块.................................... 31
5.6.1 数据管理模块实现.......................... 31
5.6.2 数据管理模块代码.......................... 32
5.6.3 数据管理模块界面.......................... 32
第6章 系统测试........................ 34
6.1 测试概述............................................ 34
6.2 测试目的............................................ 34
6.3 测试用例............................................ 34
6.3.1 数据采集模块测试.......................... 34
6.3.2 数据预测模块测试.......................... 35
6.3.3 用户登录模块测试.......................... 36
6.3.4 数据管理模块测试.......................... 37
6.3.5 结论.................................................. 42
第7章 结 论............................ 43
参考文献....................................... 44
致 谢........................................... 45
第1章 绪 论
2.2 关键性算法的介绍
2.2.1 LSTM简介
传统的循环神经网络在数据处理方面显示出巨大的潜力。但其只能记住部分序列,一旦序列过长,其准确率就会降低。因此提出了LSTM模型。
2.2.2 LSTM原理
LSTM:全称Long Short Term Memory(长短期记忆)是一种特殊的递归神经网络,LSTM的结构如下图2.1。

图2.1 LSTM结构原理
其中 xt是输入向量,it是时间步长 t 中的输入状态,ft是时间步长 t 中的遗忘状态,ot是时间步长 t 中的输出状态,ht-1和 ct-1是时间步长 t-1 中的隐藏状态和单元状态。以 tanh 和sigmoid 激活函数 σ 的形式添加非线性。
算法原理:(1)遗忘门:决定细胞状态信息的遗忘与丢弃程度,如公式2-1所示
|
ft=σWf·ht-1,xt+bf
|
式(2-1) |
(2)输入门:可以决定当前时刻保存至单元状态的信息内容,如公式2-2、2-3所示
|
it=σ(Wi[h(t-1),Xt]+bi)
|
式(2-2) | |
|
Ct=tanh(Wcht-1,xt+bc
|
式(2-3) |
(3)细胞状态:更新细胞状态Ct

主要由细胞输出门和模型遗忘门两部分的输出结果决定,如公式2-4所示
|
Ct=ftCt-1+itCt
|
式(2-4) |
(4)输出门:最后LSTM的输出内容主要有两部分,一是LSTM细胞在当前时刻的状态,二是在当前时刻LSTM细胞的隐藏状态,如公式2-5、2-6所示
|
ot=σ(Woht-1,xt+bo)
|
式(2-5) | |
|
ht=OttanhCt
|
式(2-6) |
第3章 系统分析
3.1 构架概述
3.1.1 功能构架
系统功能结构如图3.1所示。

3.1.2 模块需求描述
4.2 构架概述
基于深度学习的气象数据可视化及降水量预测系统是一个具有复杂功能和多层次交互的应用程序,因此需要一个良好的系统架构来支持其实现。这里设计了基于Python的系统的架构包括交互层、通信层、服务层和数据层这四个层次。根据这一设计理念,绘制如下图4.1所示的系统总体架构示意图。

图4.1 系统架构示意图
在整个体系结构里,互动部分专门执行对用户及系统之间的交流操作,涵盖了显示用户界面和接受用户输入的功能。这个阶段主要是由前台科技手段完成的,比如HTML、CSS和JavaScript等工具,也包含一些前台框架,例如Layui,它们可以用来创建出易于使用的用户界面,从而让用户能更轻松地与系统产生联系。
通信层负责处理系统内部各个模块之间的通信和协作。它提供了模块之间的接口和通信协议,以实现数据的传递和交换。在本系统中,通信层主要通过后端的Python框架Flask来实现,通过定义API接口,实现模块之间的数据传递和调用。
服务层是系统的核心,负责实现系统的各项功能和业务逻辑。在本系统中,服务的核心部分包含了从数据提取到数据解析再到数据可视化的各种任务。借助像pandas、numpy及scikit-learn这样的Python数据处理与机器学习工具,我们实现了对于气象信息的采集、清理、操作和研究。此外,该系统也使用了诸如Echarts之类的可视化软件来把研究成果转化为易于理解的图像呈现出来。
数据层负责管理系统所需的数据,包括用户数据、气象数据和系统配置数据等。在这个系统里,MySQL被用作数据库管理工具,通过Pymysql库来进行数据库的访问和操作,以保证数据的安全性和稳定性。
通过以上四个层次的协同工作,基于深度学习的气象数据可视化及降水量预测系统能够实现用户友好的交互界面、高效的数据通信、丰富的功能和灵活的数据管理。这样的系统架构使得系统各个模块之间相互独立、高度可扩展,同时保证系统的性能和稳定性,为用户提供一个优秀的天气数据分析与可视化平台。
4.3 系统的数据库功能结构设计
4.3.1 数据库逻辑结构设计
在构建数据库逻辑结构的过程中,我们使用E-R图来展示概念设计的成果。基于对系统的深入分析和设计,我们创造了一个关于气象数据分析系统的E-R图,以更精确地描绘系统,为系统开发和详尽的数据库设计做好准备。系统的E-R图如下图4.2所示。其中其他数据包含全国天气数据以及上海历史气象数据和上海气象数据。

图4.2 系统E-R图
用户E-R图如下图4.3所示,其中包括了用户ID、账号、密码、名称以及类型等多种属性。

图4.3 用户E-R图
城市E-R图如下图4.4所示,城市包含城市ID、城市名称、城市拼音以及城市编码这些属性。

图4.4 城市E-R图
当前天气E-R图如下图4.5所示,当前天气包含数据ID、省、城市名称、天气时间、当前温度、风速、天气、降雨量、空气质量、创建时间、数据类型等属性。

图4.5 当前天气E-R图
历史天气E-R图如下图4.6所示,历史天气包含数据ID、省、城市名称、天气时间、最低温、最高温、风向、风力、天气、数据类型、创建时间、数据类型这些属性。

图4.6 历史天气E-R图
公告E-R图如下图4.7所示,包含公告ID、公告标题、公告内容、发布人等属性。

图4.7 公告E-R图
日志E-R图如下图4.8所示,日志实体包含日志ID、日志内容、创建时间这些属性。

图4.8 日志E-R图
4.3.2数据库物理结构
表4.1展示了用户表的结构,该表主要用于存储系统中普通用户和管理员用户的相关信息。
表4.1 用户表表结构
|
字段名称 |
数据类型 |
字段内容 |
主键设置 |
非空 |
|
id |
int |
用户ID |
是 |
是 |
|
name |
varchar |
用户名称 |
否 |
否 |
|
account |
varchar |
用户账号 |
否 |
否 |
|
password |
varchar |
用户密码 |
否 |
否 |
|
company |
varchar |
企业名称 |
否 |
否 |
|
|
varchar |
邮箱 |
否 |
否 |
|
type |
int |
用户类型 |
否 |
否 |
|
status |
int |
用户状态 |
否 |
否 |
如表4.2展示的城市表结构主要用于记录系统内城市相关的信息。
表4.2城市表表结构
|
字段名称 |
数据类型 |
字段内容 |
主键设置 |
非空 |
续表4.2城市表表结构
|
id |
int |
城市ID |
是 |
是 |
|
city_name |
varchar |
城市名称 |
否 |
否 |
|
city_code |
varchar |
城市编码 |
否 |
否 |
|
city_py |
varchar |
城市拼音 |
否 |
否 |
当前天气表表结构如表4.3所示,该表主要用于记录系统中的当前天气数据相关信息。
表4.3当前天气表表结构
|
字段名称 |
数据类型 |
字段内容 |
主键设置 |
非空 |
|
id |
int |
天气ID |
是 |
是 |
|
province |
varchar |
省 |
否 |
否 |
|
cityname |
varchar |
城市名称 |
否 |
否 |
|
record_date |
date |
天气时间 |
否 |
否 |
|
record_time |
varchar |
实时时分 |
否 |
否 |
|
temp |
int |
当前温度 |
否 |
否 |
|
wd |
varchar |
风向 |
否 |
否 |
|
ws |
int |
风力 |
否 |
否 |
|
wse |
int |
风速 |
否 |
否 |
|
sd |
int |
湿度 |
否 |
否 |
|
weather |
varchar |
天气 |
否 |
否 |
|
rain |
decimal |
降雨量 |
否 |
否 |
|
aqi |
int |
空气质量 |
否 |
否 |
|
create_time |
datetime |
创建时间 |
否 |
否 |
|
is_old |
int |
1老数据,0新数据 |
否 |
否 |
历史天气表表结构如表4.4所示,该表主要用于记录系统中的历史天气数据相关信息。
4.4历史天气表表结构
|
字段名称 |
数据类型 |
字段内容 |
主键设置 |
非空 |
|
id |
int |
天气ID |
是 |
是 |
|
province |
varchar |
省 |
否 |
否 |
|
cityname |
varchar |
城市名称 |
否 |
否 |
|
record_date |
date |
天气时间 |
否 |
否 |
|
high |
int |
最高温 |
否 |
否 |
续表4.4历史天气表表结构
|
low |
int |
最低温 |
否 |
否 |
|
weather |
varchar |
天气 |
否 |
否 |
|
wd |
varchar |
风向 |
否 |
否 |
|
ws |
int |
风力 |
否 |
否 |
|
create_time |
dtetime |
创建时间 |
否 |
否 |
如表4. 5所展示的公告表结构,主要是为了记录系统中与公告数据相关的信息。
4.5公告表表结构
|
字段名称 |
数据类型 |
字段内容 |
主键设置 |
非空 |
|
id |
int |
公告ID |
是 |
是 |
|
title |
varchar |
公告标题 |
否 |
否 |
|
content |
longtext |
公告内容 |
否 |
否 |
|
user_name |
date |
发布人 |
否 |
否 |
|
create_time |
datetime |
发布时间 |
否 |
否 |
如表4. 6所展示的日志表结构,主要是用于记录系统中与日志数据相关的信息。
4.6日志表表结构
|
字段名称 |
数据类型 |
字段内容 |
主键设置 |
非空 |
|
id |
int |
日志ID |
是 |
是 |
|
log |
varchar |
日志 |
否 |
否 |
|
create_time |
datetime |
创建时间 |
否 |
否 |
4.4 系统各模块设计
4.4.1 数据采集
该模块负责实时获取国内各地区的天气数据,并进行数据清洗和格式化处理,以确保数据的准确性和一致性。该模块需要使用Python网络爬虫技术,网络爬虫又被称为网页蜘蛛或网络机器人,是指按照某种规则从网络上自动爬取用户所需内容的脚本程序[10]。用该程序从中国天气网获取数据,并将其存储到MySQL数据库中,这是该系统实现的首要条件。其中需要对数据源管理,能够灵活地添加、编辑和删除数据源,包括数据库、API、文件等不同类型的数据源。首先,我们需要从收集来的初始信息中提取出经过清理的数据,这可能涉及去除重复项、消除干扰因素及调整其格式等等步骤,以保证数据的高品质。接着,我们将这些原始资料转化为预设的目标数据类型,这样便于进一步的处理与研究。最后,我们会把已经清洁并改编过的数据储存在适当的数据储存媒介上,例如数据库、数据中心或者大数据池等等。同时支持数据的实时同步或定时批量同步,保持数据的及时性和准确性。若是在监控数据采集过程中的各种指标和异常情况,也要及时发现并处理问题。最后确保数据的安全性和隐私保护,包括数据加密、访问控制等措施。
4.4.2 数据可视化
此部分功能主要承担了从收集的气象信息中提取并以视觉化的手段来呈现与解析的工作。本系统采用了Echarts这个可视化平台,利用各种如图形、地图等方式清晰地展现出全国各地当前的实际气候情况、上海市的历史气候记录以及全中国的总体气候状况等等。这样用户可以通过可视化界面更直观地了解气象情况,辅助决策和实践活动,这是系统实现的必要功能。数据可视化提供了一系列观察结果结构的定性图像。数据可视化通过图表、图形和表格以精确清晰的方式呈现信息。可视化有助于使复杂的数据更容易阅读和理解,并帮助用户分析数据和解释结果[11]。利用不同的图表形式可以简化复杂数据的阅读和理解,帮助用户分析数据并解释结果。折线图、柱状图、饼图和散点图等常见形式适用于不同的数据展示要求。图表能清晰展示数据的分布、变化和关系,用户可以与图表进行交互,如放大、缩小、筛选和排序,以提升用户体验。通过可视化分析,用户更容易发现数据中的趋势、关联和模式,从而做出更准确的决策。它不光简化数据分析和报告生成的过程,并且节省时间和精力,提高了工作效率。而基于数据可视化的分析结果,也可以更好地支持数据驱动的决策制定,降低决策风险。除此之外,要保证数据的安全性和隐私保护,以及保证大规模数据的高效渲染和快速响应,避免因数据量过大导致的性能问题。
4.4.3 数据预测
系统使用scikit-learn、pandas和numpy等Python库实现机器学习中的深度学习模型,用于对天气数据进行预测和分析。此模块能够依据过去的气象记录来训练模型,然后借助这个模型进行未来的气象预测。用户可以通过可视化预测界面查看预测结果,从而协助他们在做决定时作出明智的选择,这正是系统的核心优势所在。机器学习是对大量数据进行分析,寻找统计规律,建模,并使用模型对新数据进行预测和分析的学科[12]。对于历史数据需要进行清洗、去噪和处理,确保数据质量和可靠性,为预测建模做准备,接着进行特征提取、选择和转换,将原始数据转换成适合建模的特征集,提高模型的精度和泛化能力。根据业务需求和数据特点,在转换后选择适合的预测模型,比如深度学习、决策树、神经网络等。选定后对模型进行训练和评估,利用历史数据训练选定的模型,调整模型参数以提高预测性能,然后通过交叉验证、指标评估等方法对训练好的模型进行评估,选择最佳模型并评估其预测效果。对预测结果要能够解释,帮助用户理解模型的预测依据和逻辑。接着保证监控模型的性能和稳定性,及时处理模型预测结果的异常情况,并通过反馈机制持续改进模型效果。最后确保预测模块的安全性,包括数据隐私保护、模型安全性等方面。
4.4.4 用户登录与注册
此部分构成了整个软件的基本操作,用户可通过网页实现登陆与注册的功能,这亦为软件的核心组成部分。首要任务就是让用户能够自行创建账户并开始使用这个平台。而对于已经拥有账号的用户来说,他们可以根据自己的权限选择进入对应的界面。
当用户完成注册流程时,他们需要提供如姓名、账号、电子邮件等关键信息并对其输入的数据进行确认,以保证数据的正确与完全。一旦用户成功注册,系统会检查其提供的名字和电子邮件是否独一无二,防止出现多次申请的情况发生,然后通过发送验证邮件或者短信来核实新会员的身份,以此保障他们的真实存在。
用户在登录时需要打开登录页面,其中包含用户名/邮箱和密码的输入框,然后进行用户信息的验证,确保用户名和密码输入正确。不仅如此在登陆界面要有支持记住密码和自动登录功能,以此提升用户体验。在登录后允许用户查看和编辑个人信息,如用户名、头像、联系方式等,还需要支持用户修改密码、邮箱等账户信息。做到用户信息管理的增删改查。
4.4.5 数据管理
该模块具备执行各种数据库管理功能,例如搜寻用户信息、发布通知内容、全球气候状况及上海市的历史气温记录等等的功能都包含其中。其主要目的是为了保证信息的有效使用率高且具有保密与稳定性的特性。此过程涉及到从开始的数据收集直至结束的信息保存的所有环节的管理工作,这不仅限于获取资料阶段还覆盖到了后续的工作流程如整理、储存、清理、解析、运用并加以保障各个步骤中可能出现的问题。
总而言之,这个系统的核心目标是实现上述各项任务的需求从而为全国各地实时的环境监测情况提供了支持;同时它也肩负着关于过去一段时间内某一特定地区的温度变化趋势的研究报告及其相关的管理工作。
第5章 系统实现
5.1 接口实现
在对系统进行了需求分析和系统设计后,明确了开发要求,就可以根据相关的设计结果进行系统实现。本章主要说明了本系统各模块实现的具体过程,详细解释了数据采集模块、数据可视化模块、数据预测模块、用户登录与注册模块和数据管理模块的具体实现。
5.2 数据采集模块
5.2.1 数据采集模块实现
系统数据采集模块是基于深度学习的气象数据可视化及降水量预测系统的核心组成部分之一,其功能是实时获取国内各地区的气象数据,并将数据进行清洗、处理和保存到数据库中。第一步需挑选合适的数据来源,以便完成自动化且持续的气候信息的获得和更新;接着对所获原始资料进行清理和调整,确保它们能满足本系统的数据结构和规范要求。最后将数据存储,这个步骤实现需要与数据库进行交互,实现数据的插入、更新和查询等功能。在数据采集过程中可能会出现各种异常情况,如数据源不可用、网络故障等则需要实现相应的异常处理机制,包括错误日志记录、错误提示和自动恢复功能,保证系统的稳定性和可靠性。
为了更清晰地展示数据采集模块的实现过程,设计了一个系统流程图以清晰地呈现出数据收集模块的工作方式。此流程图详细描述了从数据需求到数据分析再到数据储存的过程。这一模块的设计使得我们可以快速且有效地获得并处理气象信息,从而为我们系统的数据供应提供了更为稳定与全面的支持。流程图如图5.1所示。

图5.1 系统架构示意图
5.2.2 数据采集模块代码
气象数据采集爬虫代码的核心在于,首先加载预先准备的城市,然后根据城市数据词典生成对应的URL,通过请求URL数据接口获取气象信息,接着对这些数据进行判断是否已经存在,如果不存在则将其输入到数据库中。该函数还处理数据检索过程中的异常,并将web抓取操作的成功执行记录在名为“slog”的数据库表中
5.3 数据可视化模块
5.3.1 数据可视化模块实现
该模块需要实现各种图表类型来展示气象数据。其中包含了如曲线图、条形统计图、扇型图及分散坐标系等多种形式的信息展现方式,这些都能够清晰明朗且直接向使用者传达出信息的形态与关联度。其主要目标就是利用可视化的手段把收集到的大气环境参数用一种简单而容易被接受的方法呈现出来供人查看。
可视化模块是一个重要的功能模块,通过前端页面向后台发送请求,获取相关数据并对其进行解析和可视化展示。首先,用户在系统首页(可视化页面)访问页面时,页面会调用前端JavaScript脚本发送异步请求,访问后端提供的数据接口。中包含了如曲线图、条形统计图、扇型图及分散坐标系等多种形式的信息展现方式,这些都能够清晰明朗且直接向使用者传达出信息的形态与关联度。其主要目标就是利用视觉化的手段把收集到的大气环境参数用一种简单而容易被接受的方法呈现出来供人查看。数据渲染可以使用各种可视化库或框架,例如D3.js、Echarts等。在可视化页面中,可视化页面包括了各种气象数据的可视化展示,例如全国综合天气数据可视化、全国各城市天气数据可视化以及上海历史天气数据可视化。
简而言之,可视化模块是将气象数据呈现出来的关键部分。它通过前端和后端技术的配合,把从后台获取的数据进行了可视化展示给用户,以帮助他们更深入地理解并分析气象数据。详细流程如下图5.2所示所示。

图5.2 数据可视化流程图
5.3.2 数据可视化代码
数据可视化模块核心主要是页面发送数据请求,然后Flask进行相应的数据处理,响应给前端,页面再进行可视化渲染就可实现可视化分析效果。这里以实时气象分析可视化数据业务逻辑处理代码为例,它以适合使用基于时间的x轴打印的格式返回数据。该功能检索指定城市的最新15条天气数据记录,并按日期和时间降序排列。其中天气数据包括温度、空气质量指数、风速和降雨量。函数处理这些数据,并将其作为字典返回,关键字为“x”、“temp_data”、“aqi_data”、“wse_data”和“rain_data”,其中“x”包含日期和时间信息,其他关键字包含列表中相应的天气数据。此函数可用于可视化特定城市随时间变化的当前天气趋势。
5.3.3 可视化界面
数据可视化模块是基于深度学习的气象数据可视化及降水量预测系统的重要组成部分,其功能是将采集到的气象数据进行统计、分析和可视化展示,以便用户能够更直观地理解和探索气象状况。该模块分为三个主要部分,首当其冲的是全国家庭气候信息可视化;接下来则是全国各地城市的家庭气候信息可视化及上海的历史气候信息可视化。借助图像、表格等多种视觉呈现方式,使用者能深度理解气候情况,洞察模式与走势,从而做出更为精确的决定和行动计划。如下图5.3所示。

图5.3 数据可视化界面图
5.4 数据预测模块
5.4.1 数据预测模块实现
气象数据分析预测模块包括气象数据预测模型的训练以及利用现有气象数据,加载气象模型进行预测。
首先,气象数据预测是基于上海历史气象数据进行的,这些数据首先从数据库中提取出csv格式的信息。然后,我们会利用pandas和numpy技术对这些数据进行预处理、格式化以及数据集分割。分割完成后,试用sklearn库进行构建深度学习模型,再将分割后的数据进行投喂,训练模型[13]。最终将模型保存并计算模型的EMS损失值用于参考模型的训练效果。训练结果如下图5.4所示,模型建立流程图如下图5.5所示。

图5.4训练结果

图5.5模型建立流程图
5.4.2 数据预测模块代码
气象数据预测模块以气象数据预测模型训练代码为例。首先利用pandas工具对原始数据进行了预处理,接着采用循环方式提取并划分了数据集。接下来,我们从"deal_data"中导入数据集,并将它划分为训练样本和测试样例。随后,运用训练数据来构建深度学习模型,借助scikit-learn的技术完成了模型的设定与训练。
5.4.3 数据预测模块界面
气象数据预测,需要输入想要预测下一天数据的前一天气象数据。首先加载已经训练好的模型,然后将上一天的数据进行格式化,输入到模型,这样就可以得到下一天的数据;以下一天的数据为基础输入又可以得到下下天的数据;以此类推,可以控制预测近10天数据进行终止。界面如下图5.6所示。

图5.6数据预测
5.5 用户登录与注册模块
5.5.1 用户登录与注册模块实现
对于一般用户与管理者这两种类型的用户,我们主要进行了相关的设计工作。首要任务是为他们提供了登录及注册的功能模块,以便于他们能够自行创建账户并开始使用该系统。其次,根据不同的用户角色,我们将其引导至适当的网页界面。用户模块业务流程图,如下图5.7所示。

5.7用户模块业务流程图
5.5.2 用户登录与注册模块核心代码
用户登录与注册模块核心代码以用户登录前端发送请求代码为例,通过帐户和密码从数据库中选择用户。首先前端通过form表单监听login按钮,然后通过ajax异步携带表单发送请求,检查密码是否需要加密,然后准备一条SQL语句从数据库中的用户表中选择数据。在SQL查询之后,它将获得结果,并使用get_class_one函数将其映射到User对象。最后,它将结果作为result对象返回,指示登录是否成功。
5.5.3 用户登录界面
图示展示了用户登录界面,其中必须填写账号和密码。输入准确的账号信息后点击注册即可。如果没有账号,可以选择立刻注册完成后再进行登录。用户登录模块如下图5.8所示。

图5.8用户登录模块
5.6 数据管理模块
5.6.1 数据管理模块实现
数据管理模块是系统的一个重要组成部分,主要负责管理系统中相关数据。这个模块需要管理员用户登录后,才能进入到后台的数据管理控制中,对全国的天气状况、上海的历史气象信息以及用户数据和公告信息等进行操作。其设计流程如下图5.9所示。
首先,管理者必须先登入其账户,然后才能访问后台的资料处理界面。在此界面上,他们能够选择并操作各种资料,比如新增或更新现存的天气资讯,或者移除这些资讯等。当他们在管理天气资讯时,需输入相关的详细内容。完成此步骤后,他们应把所填的信息存储于数据库内,以备后续使用。
利用这个数据管理模块,管理者能轻松掌控系统的各类数据,保证所有数据都维持着最及时且精确的状态。

图5.9数据管理流程图
5.6.2 数据管理模块代码
核心代码主以数据管理的全国实时数据查询后台接口为例。
首先调用方法,传入分页数据包括页码、页面容量以及查询条件。然后进行计算查询页面起始数据标志并构建查询条件,再传入Pymysql创建的连接,最终执行SQL语句并返回数据。对返回的数据经过固定格式处理后,响应给前端。
5.6.3 数据管理模块界面
数据管理包含了用户数据、公告数据、全国天气数据、上海历史气象数据和上海气象数据管理,下图是以上海气象数据管理为例截取了管理页面,页面中包含了编辑、删除、新增以及列表搜索功能,其他数据管理与上海气象数据大同小异,都是编辑、删除、新增等功能,上海气象数据管理页面如下图5.10所示。

图5.10上海气象数据管理页面
第6章 系统测试
6.1 测试概述
在做完全部的系统模块开发后,需要对系统进行全方位多层面的测试,查找系统运行中是否有错误,从而确保系统运行的可靠性。
6.2 测试目的
该项试验旨在验证基于深度学习的气象数据可视化及降水量预测的有效性、稳定性和耐用性。经过实验,我们能找出并修正系统内的错误或瑕疵,提升其品质和效能,保证用户能够顺利操作系统并且获取精确的气象资料和预测成果。
6.3 测试用例
6.3.1 数据采集模块测试
系统数据采集模块是基于深度学习的气象数据可视化及降水量预测系统的核心组成部分之一,其功能是实时获取国内各地区的气象数据,并将数据进行清洗、处理和保存到数据库中。数据采集模块测试结果如表6.1、图6.1、图6.2所示。
表6.1数据采集模块测试
|
测试行为 |
预测结果 |
实际结果 |
|
Pycharm内直接运行爬虫代码,进行数据爬取 |
控制台输出爬虫采集日志 |
可以爬取各个城市的气象数据 |
|
通过浏览器进入爬虫日志管理页面 |
爬虫日志最新记录与当前一致息 |
可以显示当前的爬虫数据记录 |

图6.1爬虫代码测试

图6.2爬虫记录网页显示
6.3.2 数据预测模块测试
数据预测模块指的是气象分析预测页面,页面中包含上海各地区天气数据以及未来10天温度变化折线图。数据预测模块测试结果如表6.2、图6.3、图6.4所示。
表6.2数据采集模块测试
|
测试行为 |
预测结果 |
实际结果 |
|
从其他界面切换进入气象分析预测界面 |
显示对应的界面 |
可以显示对应的气象分析预测界面 |
|
选择宝山区进行搜索 |
显示宝山区未来10天的天气数据 |
显示出宝山区的未来十天的气象数据 |

图6.3 切换到气象分析预测界面

图6.4对宝山区进行搜索
6.3.3用户登录模块测试
以下两个方面是用户登录与注册模块功能测试的需求。
第一步是对用户登录功能进行评估,并检查用户输入的信息是否符合要求,比如用户名和密码是否匹配、是否输入正确等,同时也需要验证用户登录后是否能够正常访问系统资源。
第二步是对用户注册功能进行评估,以确定该功能是否正常运作。同时也要检查用户输入的信息是否满足规定,比如说用户名是否唯一、密码是否符合安全标准等。另外,还需要验证注册后的用户信息是否被妥善保存在数据库中。
经过上述功能测试,我们可以确认用户模块的功能是否满足需求,从而保障用户在使用系统时能享受到优质的体验和服务。用户模块功能测试用例下表6.3、图6.5、图6.6、图6.7、图6.8所示。
表6.3用户登录模块测试
|
测试行为 |
预测结果 |
实际结果 |
|
从其他界面切换进入用户登录界面 |
显示登录界面 |
与预测结果相同 |
|
点击登录或者注册按钮 |
显示操作成功 |
与预测结果相同 |
|
对用户个人密码进行修改并提交 |
显示修改操作成功 |
与预测结果相同 |
|
退出登录后重新登录系统 |
可以进入系统 |
与预测结果相同 |

图6.5显示登录界面

图6.6显示登录成功
下图可以看出操作对用户个人密码进行修改并提交后修改成功提示。

图6.7修改密码成功
下图可以看出操作对用户个人密码进行修改后,使用新的修改后的密码进行登录后,登录成功的提示。

图6.8修改密码后登录成功
6.3.4 数据管理模块测试
数据管理分为用户数据、公告数据、全国天气数据、上海历史气象数据以及上海气象数据管理功能,主要针对象管理的数据增删改查功能测试。数据管理测试用例图如下表6.4、图6.9至图6.23所示。
表6.4数据管理模块测试
|
测试行为 |
预测结果 |
实际结果 |
|
从其他界面切换进数据管理界面 |
显示界面相应功能数据 |
与预测结果相同 |
|
点击某一个用户数据的编辑按钮 |
显示对应用户数据编辑界面 |
与预测结果相同 |
|
点击新增按钮 |
进入新增用户数据页面 |
与预测结果相同 |
|
点击某一个用户数据的删除按钮 |
相应的用户信息消失在界面 |
与预测结果相同 |
|
输入信息进行查询 |
显示相对应的用户信息 |
与预测结果相同 |
|
从其他页面切换进入公告数据管理界面 |
界面显示相应功能和数据 |
与预测结果相同 |
|
点击某一个公告数据编辑按钮 |
显示对应公告编辑界面 |
与预测结果相同 |
|
点击新增按钮 |
进入新增公告数据页面 |
与预测结果相同 |
|
点击某一个公告数据的删除按钮 |
相应的公告信息消失在界面 |
与预测结果相同 |
|
输入信息进行公告查询 |
显示相对应的公告信息 |
与预测结果相同 |
下图可以看出通过点击数据管理模块内的全国气象数据模块,显示全国气象数据的管理模块信息。

图6.9进入数据管理模块
下图可以看出通过点击数据管理模块内的用户信息管理模块,显示了用户管理模块的界面,再通过点击某个用户的信息编辑按钮,进入个人信息编辑界面。

图6.10进入用户数据编辑页面
下图可以看出通过点击数据管理模块内的用户信息管理模块,显示了用户管理模块的界面,再通过点击用户新增按钮,进入用户信息添加界面。

图6.11进入用户数据新增页面
下图6.12、6.13可以看出在用户管理模块的界面,可以进行用户数据的删除和查询。

图6.12用户数据删除

图6.13用户数据查询
下图6.14可以看出通过点击数据管理模块内的公告管理模块,显示了公告管理模块的界面,进入公告数据管理界面。

图6.14进入公告数据管理界面
下图6.15、6.16可以看出进入公告数据管理界面后,可以进行公告数据的编辑功能和公告添加功能。

图6.15进入公告编辑页面

图6.16进行公告添加
下图6.17、6.18可以看出进入公告数据管理界面后,可以进行公告数据的删除功能和公告查询功能。

图6.17进行公告删除

图6.18进行公告查询
6.3.5 结论
系统经过功能测试,各项功能都能够正常运行。数据获取功能能够实时采集国内各地区的天气数据,并进行数据清洗和存储;数据分析功能能够对气象数据进行统计和分析,并提供多种数据可视化方式;用户登录和注册功能能够实现用户身份验证和登录等,数据管理模块也能够稳定运行。
参考文献
[1] 余涛涛,江柯,高鹏等.基于深度学习对茅台机场降水量预测的研究[J].科技与产业,2023,23 (07):235-240
[2] 王荟奥,蔡永香,杨岸霖等.大屏数据可视化易用工具的研究与开发[J].计算机系统应用,2022(02):114-119
[3] Stamoulis Dimitrios S.;Giannopoulos Panos A. ”My personal forecast”: the digital transformation of the weather forecast communication using a fuzzy logic recommendation system[J],Advances in Science and Research,2022,19(01):9-12
[4] 王琪,王艺.基于中国知网数据的气象监控研究现状可视化分析[J].天津科技,2022,49(01):63-65.
[5] 陶倩, 赵振宇,舒海燕等.PYTHON在气象业务平台的应用[J].新农业,2022(02):85-86.
[6] 周文帆.基于Flask的形式化验证系统的设计与实现[D].北京交通大学,2020.
[7] 范梓豪,杨楚雯.基于Vue的气象信息可视化大屏的设计与实现[J].气象水文海洋仪器,2023,40(01):115-117.
[8] 银笛. Echarts类库在气象数据可视化图形绘制中的应用[J].电子世界,2021,(22):182-183.
[9] 苏青.网络爬虫的演变及其合法性限定[J].比较法研究,2021(03):89-104.
[10] Gilbert Imuetinyan Osaze Aimufua,Sulaiman Ammar Gummi,Muhammad Umar Abdullahi. Development of a Cloud-Based Meteorological Historical Data System[J]. International Journal of Intelligent Information Systems,2022,11(6).
[11] Madhukar Rao G;Ramesh Dharavath. DSSAE-BBOA: deep learning-based weather big data analysis and visualization [J],Multimedia Tools and Applications,2021(05):01-23
[12] 卫菊红,常润东.机器学习在生态环境大数据中的应用[J]. 现代工业经济和信息化,2022(11):129-131
[13] 李涵.基于时空信息的可再生能源预测方法研究[D].北京工业大学,2023
更多推荐









所有评论(0)