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

您所在的位置:网站首页 全国空气质量实时监控 基于 Python 的全国空气质量监测与可视化分析平台

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

2023-09-01 12:24| 来源: 网络整理| 查看: 265

温馨提示:文末有 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.text soup = BeautifulSoup(response, 'lxml') items = soup.table.find_all('tr') for i, item in enumerate(items): if i == 0: continue data = 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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3