温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :)

1. 项目背景

空气质量优劣程度与一个城市的综合竞争力密切相关,它直接影响到投资环境和居民健康,因此越来越受到政府和公众的关注。本项目利用网络爬虫从某空气质量监测网站抓取全国各大城市的历年空气污染数据(PM2.5,PM10,SO2,NO2,CO,O3),对全国各城市(空间维度)不同年度(时间维度)等维度进行空气污染物的统计分析,并利用 Echarts 进行可视化展示。

2. 功能组成

基于 Python 的全国空气质量监测与可视化分析平台的功能主要包括:

3. 基于 Python 的全国空气质量监测与可视化分析平台

3.1 空气质量 AQI 数据采集

从某天气监测网站采集全国各大城市的历年空气质量数据,并进行数据清洗和格式化:

......for city in city_map:for year_month in year_months:year_month_line = []try:print('爬取{} {} 的AQI数据'.format(city, year_month))url = 'http://www.xxxx.com/aqi/{}-{}.html'.format(city_map[city], year_month)response = requests.get(url, timeout=1000)response = response.textsoup = BeautifulSoup(response, 'lxml')items = soup.table.find_all('tr')for i, item in enumerate(items):if i == 0:continuedata = item.find_all('td')# 日期date = remove_space(data[0].text)# 质量等级tianqi = remove_space(data[1].text)# AQI指数qiwen = remove_space(data[2].text)year_month_line.append(','.join([city, date, tianqi, qiwen]) + '\n')fout.writelines(year_month_line)fout.flush()except:continue
......

3.1 系统注册登录

3.2 城市历史空气质量数据查询

3.3 各城市空气质量年度变化分析

通过对某城市某一年份的各类污染物(PM2.5,PM10,SO2,NO2,CO,O3)进行变化分析,分析出一年当中某类污染物的指标走势情况:

3.4 各城市空气质量年度月份统计

对各城市某一年的各类空气污染指标,按照月份进行分组计算平均污染指数,并绘制柱状图和饼状图,可以直观的发现这些污染物最严重的月份等信息:

def get_city_month_air_quality(city, year, zhibiao):"""对城市的年度空气指标进行统计,计算平均指标"""city_df = air_df[(air_df['city'] == city) & (air_df['year'] == year)]city_df = city_df.sort_values(by='time', ascending=True)print('数据条目数:', city_df.shape[0])city_month_df = city_df[['month', zhibiao]].groupby(by='month').mean().reset_index()city_month_df = city_month_df.sort_values(by=zhibiao, ascending=True)results = {'月份': ['{}月份'.format(int(r)) for r in city_month_df['month'].values.tolist()],'均值': city_month_df[zhibiao].values.tolist()}print(results)return jsonify(results)

3.5 各城市年度空气质量日历热力图

对各城市每个年份某空气污染物的分布情况,通过对每年的污染情况绘制日历热力图,直观的发现该污染物随时间的变化情况:

3.6 各城市空气污染物年度占比

计算各城市每年各类空气污染物指数占比情况,可得出影响该城市空气质量的主要污染源有哪些,为空气治理提供依据:

def get_city_polution_data(city, year):city_df = air_df[(air_df['city'] == city) & (air_df['year'] == year)]city_df['primary_pollutant'] = city_df['primary_pollutant'].map(lambda x: str(x).replace('-', '良').replace('None', '良'))pollutants = city_df['primary_pollutant'].value_counts().reset_index()all_aqis = city_df['AQI'].values.tolist()air_quality = {'优': 0, '良': 0, '轻度污染': 0, '中度污染': 0, '重度污染': 0, '严重污染': 0}for aqi in all_aqis:if 0 <= aqi < 50:air_quality['优'] += 1elif 50 <= aqi < 100:air_quality['良'] += 1elif 100 <= aqi < 150:air_quality['轻度污染'] += 1elif 150 <= aqi < 200:air_quality['中度污染'] += 1elif 200 <= aqi < 300:air_quality['重度污染'] += 1else:air_quality['轻度污染'] += 1air_quality_keys = list(air_quality.keys())return jsonify({'污染种类': pollutants['index'].values.tolist(),'数值': pollutants['primary_pollutant'].values.tolist(),'空气质量': air_quality_keys,'空气质量数值': [air_quality[k] for k in air_quality_keys]})

3.7 城市空气质量对比分析

除了对某个城市的各项空气污染情况,还可以对某两个城市的某一类空气污染指数进行对比分析,筛选出哪个城市的空气质量更好,更宜居:

4. 总结

本项目利用网络爬虫从某空气质量监测网站抓取全国各大城市的历年空气污染数据(PM2.5, PM10, SO2, NO2, CO, O3),对全国各城市(空间维度)不同年度(时间维度)等维度进行空气污染物的统计分析,并利用 Echarts 进行可视化展示。

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。

技术交流认准下方 CSDN 官方提供的学长 Wechat / QQ 名片 :)

精彩专栏推荐订阅:

1. Python 毕设精品实战案例
2. 自然语言处理 NLP 精品实战案例
3. 计算机视觉 CV 精品实战案例

基于 Python 的全国空气质量监测与可视化分析平台相关推荐

  1. 中国空气质量在线监測分析平台

    中国空气质量在线监測分析平台是公益性质的软件平台,提供PM2.5及天气数据的实时查询和历史数据可视化分析,统计挖掘,眼下收录了190个城市的PM2.5及天气信息数据,主要包含PM2.5实时查询.历史曲 ...

  2. 基于python的汽车信息爬取与可视化分析系统

    温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目简介 本项目利用网络爬虫技术从某汽车门户网站采集汽车数据,并利用 Flask + Echarts 前后端框 ...

  3. 【计算机专业毕设之基于python猫咪网爬虫大数据可视化分析系统-哔哩哔哩】 https://b23.tv/jRN6MVh

    [计算机专业毕设之基于python猫咪网爬虫大数据可视化分析系统-哔哩哔哩] https://b23.tv/jRN6MVh https://b23.tv/jRN6MVh

  4. python爬虫可视化题目北京空气质量监测数据获取与分析

    任务1:数据采集 网页"http://pm25.in/beijing"中包含北京12个监测点的空气质量监测数据,请编写程序抓取网页(网页样本保存在源素材文件夹下src1目录中)上的 ...

  5. 基于Python的招聘信息的大数据可视化分析系统

    1. 项目背景 互联网时代,网络已经完完全全渗透到我们的生活当中,成为我们生活当中的一部分,其中很多求职.找工作也不例外,因此,很多招聘平台,例如像赶集网.58同城.英才网.智联招聘.前程无忧等求职网 ...

  6. arduino读取水位传感器的数据显示在基于i2c的1602a上_构建Arduino的LoRa远程智能空气质量监测系统...

    背景知识视频教程 Arduino分步指南:完整指南 - 国外课栈​viadean.com Arduino微控制器:学习Arduino制作项目 - 国外课栈​viadean.com 通过构建实际应用程序 ...

  7. 【JS逆向系列】某空气质量监测平台无限 debugger 与 python算法还原

    [JS逆向系列]某空气质量监测平台无限 debugger 与 python算法还原 1.前置阅读 2.过反调试 3.js分析 4.代码逻辑改写 1.前置阅读 样品地址:aHR0cHM6Ly93d3cu ...

  8. 【JS 逆向百例】某空气质量监测平台无限 debugger 以及数据动态加密分析

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 逆向目标 写在前面 绕过无限 debugger 方法一 方法二 方法三 抓包分析 加密入口 动态 JS 本地改写 ...

  9. ECharts实现全国空气质量查询

    ECharts实现全国空气质量查询 ECharts实现全国空气质量查询   项目简介   效果展示   主要技术   主要流程   环境配置 Python Flask框架建立项目 Python 爬虫爬 ...

最新文章

  1. 如何发现数据中的异常值?对异常值是怎么处理的?
  2. 第二次作业——个人项目实战
  3. jsp button提交表单
  4. 设计面向游戏的人工智能(三):战术和战略人工智能 (AI)
  5. Bailian4138 POJ NOI MATH-7827 质数的和与积【数论】
  6. 程序员最想得到的十大证件,你最想得到哪个?
  7. 电脑出现问题,你的PIN不可用。请单击以重新设置。
  8. Hadoop配置和启动
  9. 大型电商项目数据库表设计
  10. mac ios自动化 appium-doctor 安装opencv4nodejs爬坑记录
  11. 保持公司电脑不锁屏技巧
  12. video标签使用controls属性怎么去掉三个点
  13. Pytorch TextCNN实现中文文本分类(附完整训练代码)
  14. Galois Field NTT
  15. CodeForces 332B Maximum Absurdity(线段树单点更新)
  16. 短路与()、短路或(||)和逻辑与()、逻辑或(|)的区别
  17. 2600万TRX被盗背后的罗生门
  18. 机器人履带底盘的悬挂和传动
  19. VB6.0打开提示“Automation错误”解决办法
  20. PHP判断给定的三个数是否能构成直角三角形

热门文章

  1. C++ Primer Plus 第九章答案 内存模型和名称空间
  2. 微信测试睡眠的软件,微信小睡眠小程序使用方法
  3. 基于数字证书的UKEY安全登录 与身份认证技术研究
  4. overriding managed version警告
  5. SQL函数StDev与StDevP区别
  6. c语言注释不能嵌套什么意思,C语言嵌套注释问题
  7. Unity3D 中LookAt()方法
  8. 虚幻四Gameplay Ability System入门学习合集
  9. 画图别存为png 透明_怎么样是使(PNG格式)图片背景透明
  10. 工程测量的各种数据考点