【空气质量数据分析专题六】污染物浓度季节变化分析
前言
对空气质量日级别五年数据进行季节变化分析,可以看出污染物浓度随季节变化的特征。
分析流程
对数据进行专题二的预处理后,计算出各污染物全时段的各季节平均浓度,最后进行可视化分析。
核心代码
(1)计算各季节浓度
@staticmethod def get_feature_season_concentration(df, first, second, third): """ 获取污染物某季节数据 :param df: 全数据 :param first: 该季节第一个月 :param second: 该季节第二个月 :param third: 该季节第三个月 :return: 各污染物浓度该季节数据 """ dfx = df.loc[(df['month'] == first) | (df['month'] == second) | (df['month'] == third)] return [round(np.mean(dfx['PM10'])), round(np.mean(dfx['PM2.5'])), round(np.mean(dfx['SO2'])), round(np.mean(dfx['NO2'])), round(np.mean(dfx['O3'])), round(np.mean(dfx['CO']), 1)] 12345678910111213
(2)可视化分析
def season_trend_analysis(self, df_station, year_list): """ 日级别数据季节趋势分析 :param df_station: 站点日级别数据 :param year_list: 年份列表 :return: None """ dft_spring = self.get_feature_season_concentration(df_station, 3, 4, 5) dft_summer = self.get_feature_season_concentration(df_station, 6, 7, 8) dft_autumn = self.get_feature_season_concentration(df_station, 9, 10, 11) dft_winter = self.get_feature_season_concentration(df_station, 12, 1, 2) co_arr = [dft_spring.pop(-1), dft_summer.pop(-1), dft_autumn.pop(-1), dft_winter.pop(-1)] bar_width = 0.1 index_pm10 = np.arange(4) index_pm2_5 = index_pm10 + 1.5 * bar_width index_so2 = index_pm2_5 + 1.5 * bar_width # 年份INDEX index_no2 = index_so2 + 1.5 * bar_width index_o3 = index_no2 + 1.5 * bar_width fig = plt.figure() ax1 = fig.add_subplot(111) plt.bar(index_pm10, height=[dft_spring[0], dft_summer[0], dft_autumn[0], dft_winter[0]], width=bar_width, label='PM$_{10}$') plt.bar(index_pm2_5, height=[dft_spring[1], dft_summer[1], dft_autumn[1], dft_winter[1]], width=bar_width, label='PM$_{2.5}$') plt.bar(index_so2, height=[dft_spring[2], dft_summer[2], dft_autumn[2], dft_winter[2]], width=bar_width, label='SO$_{2}$') plt.bar(index_no2, height=[dft_spring[3], dft_summer[3], dft_autumn[3], dft_winter[3]], width=bar_width, label='NO$_{2}$') plt.bar(index_o3, height=[dft_spring[4], dft_summer[4], dft_autumn[4], dft_winter[4]], width=bar_width, label='O$_{3}$') ax1.set_ylim(0, 100) ax1.set_yticks(np.linspace(0, 100, 6)) plt.legend(ncol=1, loc='upper left', fontsize=8) # 显示图例 plt.ylabel('污染物浓度(${μg}$/m${^3}$)') # 纵坐标轴标题 ax2 = ax1.twinx() ax2.plot(index_pm10 + bar_width * 3, co_arr, label='CO浓度', color='black', marker='o', markerfacecolor='red', markersize=4) plt.ylabel('CO浓度(mg/m${^3}$)') plt.xticks(index_pm10 + bar_width * 3, ['春', '夏', '秋', '冬']) plt.legend(loc='upper right', fontsize=8) ax2.set_yticks(np.linspace(0, 1.5, 6)) plt.grid(axis='y', ls='--') pic_loc0 = Path(self.cf_info['output']['picture']).joinpath(df_station['city'].values[0]) pic_loc = pic_loc0.joinpath('污染物季节变化特征') if not os.path.exists(pic_loc): os.mkdir(pic_loc) plt.savefig(pic_loc / ( df_station['station'].values[0] + str(year_list[0]) + '-' + str(year_list[-1]) + '年各污染物季节浓度变化.png'), dpi=1200, bbox_inches='tight') plt.show()
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748结果展示与分析
结果如下图所示,从该图可以看出各污染物季节平均浓度的变化趋势,有利于对该地区空气质量的各污染物季节变化变化情况有直观了解。最明显的就是臭氧浓度春夏季高、秋冬低,颗粒物浓度冬高夏低。
(图片右键新标签页打开会很清晰)
预告
下期进行污染物浓度月变化的分析。
以下是本人独自运营的微信公众号,用于分享个人学习及工作生活趣事,大佬们可以关注一波。
相关知识
【空气质量数据分析专题九】污染物浓度小时变化分析
浓度及浓度单位换算
科学网—基于Delft3D模型水体流动、污染物对流扩散、质点运移、溢油漂移及地表水环境报告编制
专家解读《环境空气质量标准》修改单
花卉大数据分析与市场预测
幼儿园室内环境质量,如何利用智能空气净化系统的智能运行模式,根据空气质量自动调节净化强度?
空气检测实时监控污染源
空气检测实时掌握污染变化
空气质量检测数据的处理与分析方法
什么是:季节变化
网址: 【空气质量数据分析专题六】污染物浓度季节变化分析 https://www.huajiangbk.com/newsview2013620.html
上一篇: 探索未来空气质量预测:AQI项目 |
下一篇: Python+KNN 算法怎么实 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039