✨作者主页:IT毕设梦工厂✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
文章目录
- 一、前言
- 二、开发环境
- 三、系统界面展示
- 四、部分代码设计
- 五、论文参考
- 六、系统视频
- 结语
一、前言
本系统《基于大数据的全球空气污染数据可视化分析》围绕全球空气污染数据展开,目标是把采集到的空气污染记录进行存储、清洗、统计和可视化展示。大数据部分使用Hadoop和HDFS做数据存储,使用Spark、Spark SQL完成数据读取、分组聚合和指标计算,并结合Pandas、NumPy做辅助处理;后端采用Python+Django或Java+Spring Boot两种版本,数据落到MySQL;前端使用Vue、ElementUI、Echarts、HTML、CSS、JavaScript和jQuery完成页面交互和图表呈现。系统包含系统首页、数据大屏、用户管理、空气污染信息管理、时空格局分析、污染组分分析、气象影响分析、人为驱动分析、空气质量分析、污染画像分析、个人信息和修改密码等功能。用户可以在数据大屏查看整体污染态势,在时空格局分析中按地区和时间观察变化,在污染组分分析中查看不同污染物占比,在气象影响分析中比较温度、风速、湿度等条件与污染的关系,在人为驱动分析中查看相关驱动因素,在空气质量分析和污染画像分析中形成区域或城市画像。系统也支持空气污染信息维护、用户管理和个人资料修改,整体功能比较完整,适合作为计算机专业毕业设计选题。
二、开发环境
大数据框架:Hadoop+Spark(本次没用Hive,支持定制)
开发语言:Python+Java(两个版本都支持)
后端框架:Django+Spring Boot(Spring+SpringMVC+Mybatis)(两个版本都支持)
前端:Vue+ElementUI+Echarts+HTML+CSS+JavaScript+jQuery
详细技术点:Hadoop、HDFS、Spark、Spark SQL、Pandas、NumPy
数据库:MySQL
三、系统界面展示
- 基于大数据的全球空气污染数据可视化分析系统界面展示:
四、部分代码设计
- 项目实战-代码参考:
spark=SparkSession.builder.appName("GlobalAirPollutionAnalysis").master("local[*]").config("spark.sql.shuffle.partitions","4").getOrCreate()deftime_space_analysis(request):start_date=request.GET.get("start_date")end_date=request.GET.get("end_date")region=request.GET.get("region")df=spark.read.format("jdbc").option("url","jdbc:mysql://localhost:3306/air_pollution").option("dbtable","air_pollution_info").option("user","root").option("password","123456").load()df.createOrReplaceTempView("air_pollution_info")sql="SELECT year, month, region, AVG(pm25) AS avg_pm25, AVG(pm10) AS avg_pm10, AVG(so2) AS avg_so2, AVG(no2) AS avg_no2, COUNT(*) AS total FROM air_pollution_info WHERE 1=1"ifstart_date:sql+=" AND data_date >= '"+start_date+"'"ifend_date:sql+=" AND data_date <= '"+end_date+"'"ifregion:sql+=" AND region = '"+region+"'"sql+=" GROUP BY year, month, region ORDER BY year, month, avg_pm25 DESC"result=spark.sql(sql).collect()data=[]forrowinresult:data.append({"year":row["year"],"month":row["month"],"region":row["region"],"avg_pm25":row["avg_pm25"],"avg_pm10":row["avg_pm10"],"avg_so2":row["avg_so2"],"avg_no2":row["avg_no2"],"total":row["total"]})returnJsonResponse({"code":200,"msg":"时空格局分析完成","data":data})defcomponent_analysis(request):city=request.GET.get("city")df=spark.read.format("jdbc").option("url","jdbc:mysql://localhost:3306/air_pollution").option("dbtable","air_pollution_info").option("user","root").option("password","123456").load()df.createOrReplaceTempView("air_pollution_info")sql="SELECT region, SUM(pm25) AS sum_pm25, SUM(pm10) AS sum_pm10, SUM(so2) AS sum_so2, SUM(no2) AS sum_no2 FROM air_pollution_info WHERE 1=1"ifcity:sql+=" AND region = '"+city+"'"sql+=" GROUP BY region ORDER BY sum_pm25 DESC"rows=spark.sql(sql).collect()total_pm25=sum([r["sum_pm25"]or0forrinrows])total_pm10=sum([r["sum_pm10"]or0forrinrows])total_so2=sum([r["sum_so2"]or0forrinrows])total_no2=sum([r["sum_no2"]or0forrinrows])total=total_pm25+total_pm10+total_so2+total_no2 ratio={"pm25":round(total_pm25/total*100,2),"pm10":round(total_pm10/total*100,2),"so2":round(total_so2/total*100,2),"no2":round(total_no2/total*100,2)}returnJsonResponse({"code":200,"msg":"污染组分分析完成","ratio":ratio,"rows":[r.asDict()forrinrows]})defweather_impact_analysis(request):region=request.GET.get("region")df=spark.read.format("jdbc").option("url","jdbc:mysql://localhost:3306/air_pollution").option("dbtable","air_pollution_info").option("user","root").option("password","123456").load()df.createOrReplaceTempView("air_pollution_info")sql="SELECT temperature, wind_speed, humidity, AVG(pm25) AS avg_pm25, AVG(pm10) AS avg_pm10, COUNT(*) AS total FROM air_pollution_info WHERE temperature IS NOT NULL AND wind_speed IS NOT NULL AND humidity IS NOT NULL"ifregion:sql+=" AND region = '"+region+"'"sql+=" GROUP BY temperature, wind_speed, humidity ORDER BY avg_pm25 DESC LIMIT 200"rows=spark.sql(sql).collect()result=[]forrowinrows:temp_score=1ifrow["temperature"]isnotNoneandrow["temperature"]<10else0wind_score=1ifrow["wind_speed"]isnotNoneandrow["wind_speed"]<2else0humidity_score=1ifrow["humidity"]isnotNoneandrow["humidity"]>70else0risk_score=temp_score+wind_score+humidity_score result.append({"temperature":row["temperature"],"wind_speed":row["wind_speed"],"humidity":row["humidity"],"avg_pm25":row["avg_pm25"],"avg_pm10":row["avg_pm10"],"total":row["total"],"risk_score":risk_score})result.sort(key=lambdax:x["risk_score"],reverse=True)returnJsonResponse({"code":200,"msg":"气象影响分析完成","data":result})五、论文参考
- 计算机毕业设计选题推荐-基于大数据的全球空气污染数据可视化分析系统-论文参考:
六、系统视频
- 基于大数据的全球空气污染数据可视化分析系统-项目视频:
点击观看项目演示视频
结语
计算机毕业设计选题推荐:基于大数据的全球空气污染数据可视化分析|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:⬇⬇⬇
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目