基于大数据Hadoop气象分析大屏可视化设计和实现
信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对气象分析大屏可视化等问题,对气象进行研究分析,然后开发设计出气象分析大屏可视化系统以解决问题。
博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作✌
主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
目录
一、前言介绍:
信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对气象分析大屏可视化等问题,对气象进行研究分析,然后开发设计出气象分析大屏可视化系统以解决问题。
气象分析大屏可视化系统主要功能模块包括后台首页,系统用户(管理员),模块管理(日照时数,平均相对湿度,年降水量,平均气温,贵阳气象分析,气温对比),采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用Hadoop框架、python技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对气象分析大屏可视化系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现气象分析大屏可视化系统和部署运行使用它。
关键词:气象分析大屏可视化;Hadoop框架;MySQL数据库
二、功能设计:
气象分析大屏可视化系统只要由管理员模块构成。
模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。
综上所述,系统功能结构图如下图所示。
三、功能实现:
主要由两部分组成,登录前的登录界面以及登录后的用户功能界面。登录界面,要求用户输入用户名和密码,当用户名和密码其中一个输入为空时,给出提示“用户名,密码不能为空”。获取用户名和密码后到数据库中查找,如果用户名存在,以及对应的密码正确,则登录成功,否则登录失败。登录失败后给出提示,并把焦点停在文本框中。登录成功后将该次会话的全局变量username设置为用户名。登录成功后进入会员的功能模块,主要有会员基本信息修改,已经发布商品信息管理,发布信息,和退出功能。退出功能是清除全局变量username的值,并跳回到首页。
登录流程图如下图所示。
图5-3登录流程图
登录界面如下图所示。
图5-4登录界面
用户登录/注册成功之后可以修改自己的基本信息。修改页面的表单中每一个input的name值都要与实体类中的参数相匹配,在用户点击修改页面的时候,如果改后用户名与数据库里面重复了,页面会提示该用户名已经存在了,否则通过Id来查询用户,并将用户的信息修改为表单提交的数据。
图5-4系统用户界面
图5-5用户信息维护界面
管理员登录系统后,可对模块管理中的日照时数,平均相对湿度,年降水量,平均气温,贵阳气象分析,气温对比等信息进行查询,重置,删除,添加等维护操作,可以导入数据或者下载导入的文档。如下图所示。
图5-6日照时数管理界面
图5-7数据导入界面
图5-8按城市查询界面
图5-9按月份查询界面
展示大屏的实现
展示大屏模块调用echarts.min.js初始化图表的样式和框架,首先要初始化类目参数和数量参数,本系统在日照时数,年降水量,平均气温等模块上使用了可视化图表,其的类目参数为日照时数,年降水量,平均气温等参数,从参数表里读取,遍历参数表中的数据,分别加入到类目数组和数量数组中,做好数据初始化准备,其次是用pythonScript开始画图,设置图的类型,设置图的标题,设置类目数,设置数量和可视化图表的尺寸,设置背景颜色,设置画图样式,调用画图函数,可视化图表就自动生成了。
展示大屏界面如下图所示。
图5-10展示大屏界面
四、库表设计:
表access_token (登陆访问时长)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
表annual_precipitation (年降水量)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | annual_precipitation_id | int | 10 | 0 | N | Y | 年降水量ID | |
2 | city | varchar | 64 | 0 | Y | N | 城市 | |
3 | january | varchar | 64 | 0 | Y | N | 1月 | |
4 | february | varchar | 64 | 0 | Y | N | 2月 | |
5 | march | varchar | 64 | 0 | Y | N | 3月 | |
6 | april | varchar | 64 | 0 | Y | N | 4月 | |
7 | may | varchar | 64 | 0 | Y | N | 5月 | |
8 | june | varchar | 64 | 0 | Y | N | 6月 | |
9 | july | varchar | 64 | 0 | Y | N | 7月 | |
10 | august | varchar | 64 | 0 | Y | N | 8月 | |
11 | september | varchar | 64 | 0 | Y | N | 9月 | |
12 | october | varchar | 64 | 0 | Y | N | 10月 | |
13 | november | varchar | 64 | 0 | Y | N | 11月 | |
14 | december | varchar | 64 | 0 | Y | N | 12月 | |
15 | annual | varchar | 64 | 0 | Y | N | 全年 | |
16 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表auth (用户权限管理)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表average_relative_humidity (平均相对湿度)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | average_relative_humidity_id | int | 10 | 0 | N | Y | 平均相对湿度ID | |
2 | city | varchar | 64 | 0 | Y | N | 城市 | |
3 | january | varchar | 64 | 0 | Y | N | 1月 | |
4 | february | varchar | 64 | 0 | Y | N | 2月 | |
5 | march | varchar | 64 | 0 | Y | N | 3月 | |
6 | april | varchar | 64 | 0 | Y | N | 4月 | |
7 | may | varchar | 64 | 0 | Y | N | 5月 | |
8 | june | varchar | 64 | 0 | Y | N | 6月 | |
9 | july | varchar | 64 | 0 | Y | N | 7月 | |
10 | august | varchar | 64 | 0 | Y | N | 8月 | |
11 | september | varchar | 64 | 0 | Y | N | 9月 | |
12 | october | varchar | 64 | 0 | Y | N | 10月 | |
13 | november | varchar | 64 | 0 | Y | N | 11月 | |
14 | december | varchar | 64 | 0 | Y | N | 12月 | |
15 | annually_average | varchar | 64 | 0 | Y | N | 年平均 | |
16 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表average_temperature (平均气温)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | average_temperature_id | int | 10 | 0 | N | Y | 平均气温ID | |
2 | city | varchar | 64 | 0 | Y | N | 城市 | |
3 | january | varchar | 64 | 0 | Y | N | 1月 | |
4 | february | varchar | 64 | 0 | Y | N | 2月 | |
5 | march | varchar | 64 | 0 | Y | N | 3月 | |
6 | april | varchar | 64 | 0 | Y | N | 4月 | |
7 | may | varchar | 64 | 0 | Y | N | 5月 | |
8 | june | varchar | 64 | 0 | Y | N | 6月 | |
9 | july | varchar | 64 | 0 | Y | N | 7月 | |
10 | august | varchar | 64 | 0 | Y | N | 8月 | |
11 | september | varchar | 64 | 0 | Y | N | 9月 | |
12 | october | varchar | 64 | 0 | Y | N | 10月 | |
13 | november | varchar | 64 | 0 | Y | N | 11月 | |
14 | december | varchar | 64 | 0 | Y | N | 12月 | |
15 | annually_average | varchar | 64 | 0 | Y | N | 年平均 | |
16 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表guiyang_meteorological_analysis (贵阳气象分析)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | guiyang_meteorological_analysis_id | int | 10 | 0 | N | Y | 贵阳气象分析ID | |
2 | month | varchar | 64 | 0 | Y | N | 月份 | |
3 | average_temperature | varchar | 64 | 0 | Y | N | 平均气温 | |
4 | sunlight_hours | varchar | 64 | 0 | Y | N | 日照时数 | |
5 | precipitation | varchar | 64 | 0 | Y | N | 降水量 | |
6 | relative_humidity | varchar | 64 | 0 | Y | N | 相对湿度 | |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表sunlight_hours (日照时数)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | sunlight_hours_id | int | 10 | 0 | N | Y | 日照时数ID | |
2 | city | varchar | 64 | 0 | Y | N | 城市 | |
3 | january | varchar | 64 | 0 | Y | N | 1月 | |
4 | february | varchar | 64 | 0 | Y | N | 2月 | |
5 | march | varchar | 64 | 0 | Y | N | 3月 | |
6 | april | varchar | 64 | 0 | Y | N | 4月 | |
7 | may | varchar | 64 | 0 | Y | N | 5月 | |
8 | june | varchar | 64 | 0 | Y | N | 6月 | |
9 | july | varchar | 64 | 0 | Y | N | 7月 | |
10 | august | varchar | 64 | 0 | Y | N | 8月 | |
11 | september | varchar | 64 | 0 | Y | N | 9月 | |
12 | october | varchar | 64 | 0 | Y | N | 10月 | |
13 | november | varchar | 64 | 0 | Y | N | 11月 | |
14 | december | varchar | 64 | 0 | Y | N | 12月 | |
15 | annual | varchar | 64 | 0 | Y | N | 全年 | |
16 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表temperature_comparison (气温对比)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | temperature_comparison_id | int | 10 | 0 | N | Y | 气温对比ID | |
2 | city | varchar | 64 | 0 | Y | N | 城市 | |
3 | month | varchar | 64 | 0 | Y | N | 月份 | |
4 | air_temperature | varchar | 64 | 0 | Y | N | 气温 | |
5 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
五、关键代码:
# -*- coding: utf-8 -*-
import os
import importlib
services_abspath_arr = []
services_arr = []
services_dir_ = os.getcwd() + "\\hadoop"
# 遍历模块文件(绝对路径)加到services_abspath_arr数组
# 选择服务函数
def service_hadoop_select(str):
for service_item in services_arr:
if str.capitalize() == service_item.__class__.__name__:
return service_item
def foreach_file(path_name):
for root, dirs, files in os.walk(path_name):
for f in files:
services_abspath_arr.append(os.path.join(root, f))
# 读取模块
# f:文件路径
def loadModule(f):
# 将f变成相对路径
f = f.replace(services_dir_ + "\\", "").replace(".py", "").replace("\\", "/")
# print(f)
mod = importlib.import_module(
"jobs."+f.replace("/", ".")
)
arr_1 = f.split("/")
cs_service = getattr(mod, arr_1[len(arr_1) - 1].capitalize())
# service的class形式
service = cs_service()
services_arr.append(service)
foreach_file(services_dir_)
for f in services_abspath_arr:
if f.find(".pyc") == -1 and f.find("__init__") == -1:
# print(f)
loadModule(f)
六、论文参考:
摘 要 I
Abstract II
第1章 绪论 1
1.1 研究背景与意义 1
1.2 开发现状 1
1.3 研究方法 2
第2章 相关技术介绍 3
2.1 开发技术说明 3
2.2 MVVM模式介绍 3
2.3 B/S体系工作原理 3
2.4 Hadoop框架介绍 4
2.5 echars主要功能 4
2.6 MySQL数据库 5
第3章 系统分析 7
3.1 可行性分析 7
3.2 功能需求分析 7
3.2.1 管理员功能 8
3.3 非功能需求分析 8
3.4 安全性需求分析 9
3.4.1 系统的安全性 9
3.4.2 数据的安全性 9
第4章 系统设计 10
4.1 系统架构设计 10
4.2 系统总体设计 10
4.3 系统功能设计 11
4.4 数据库设计 11
4.4.1 数据需求分析 11
4.4.2 数据库概念设计 11
4.4.3 数据库表设计 11
第5章 系统实现 18
5.1 数据库访问层的实现 18
5.2 登录模块的实现 18
5.3 系统用户模块的实现 19
5.4 模块管理的实现 20
5.5 展示大屏的实现 22
第6章 系统测试 24
6.1 测试目的 24
6.2 功能测试 24
6.3 性能测试 24
第7章 总结与展望 26
参考文献 27
致谢 28
七、其他案例:
八、推荐项目:
基于微信小程序+Springboot线上租房平台设计和实现-三端
基于Java+SpringBoot+Vue前后端分离手机销售商城系统设计和实现
基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现
基于SpringBoot+uniapp微信小程序校园点餐平台详细设计和实现
基于Java+SpringBoot+Vue+echarts健身房管理系统设计和实现
基于JavaSpringBoot+Vue+uniapp微信小程序实现鲜花商城购物系统
基于Java+SpringBoot+Vue前后端分离摄影分享网站平台系统
基于Java+SpringBoot+Vue前后端分离餐厅点餐管理系统设计和实现
九、源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻
精彩专栏推荐订阅:在下方专栏👇🏻
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)