python空气质量_现在,哪个城市的空气最好闻?空气质量指数分布图——Python实例...

本文介绍如何使用Python爬取空气质量指数(AQI)和PM2.5浓度数据,通过XPath解析网页,整理成DataFrame并保存为CSV。然后利用ArcGIS进行地图制图,展示各城市空气质量状况。
摘要由CSDN通过智能技术生成

我们要做如下两张图。

空气质量指数AQI的分布图。

PM2.5的分布图。

一、获取空气质量指数AQI和PM2.5浓度数据

刚开始想找这个网站,可网页打开的速度太慢,导致代码执行一度停滞。

网站提供的实时数据排行榜,已经有快半年没有更新了。

我就重新选择这个作为Python爬取的数据来源。

打开Anaconda的Jupyter Notebook,新建New一个Python文件。这次使用的库有点多,后几个是为了坐标转换用的,此次没有转换,因为区域广,影响不大。

把网页实例化。

现在显示的是358,上午我尝试的时候是350。

我们通过xpath解析出所有的城市名,但有重复的,正好多了一倍。716是最后一个,正好显示排行榜的最后一名,也就是说,要从中间截一半。

得到城市名,从358开始,到715结束。

类似的,通过xpath解析出所有的空气质量状况。

通过xpath解析出所有的省份。

得到空气质量状况和省份,从358开始,到715结束。

通过xpath解析出所有的空气质量指数AQI。

通过xpath解析出所有的PM2.5浓度。

得到空气质量指数AQI和PM2.5浓度,后者从359开始,到716结束,因为解析出来的数量是717,第一个是标题。

把所有的内容都输出下,看看是否显示完整。

把所有内容转换为DataFrame结构,并导出为csv保存,因为一个小时会更新一次,下面操作以今天下午15点的数据为例。

二、获取城市坐标

获取城市坐标的url,key记得用(高德开放平台)Web服务的。

还是放在这里看吧,结构清晰多了,我们主要需要城市名city和坐标loaction。有的同学会有疑问,前面我们不是已经有了城市名了,怎么还获取呢?用ArcGIS作图的时候就有影响了。

获取城市坐标的函数。

把城市名作为参数依次调用city函数,并把获取的坐标拆分出来,添加到DataFrame结构中。

导出为csv文件格式。

三、ArcGIS制图

打开ArcGIS中的ArcMap,把刚才产生的cvs文件和城市shp文件拖到中间。

在csv文件上,右键,点击显示XY数据。

在打开的对话框中,设置X、Y字段分别为lng和lat。

在cities图层,右键,点击连接和关联—>连接。

设置本图层NAME和csv文件中的city连接。

接着往下操作时,会出现大片的空白。右键打开属性表,你会发现,大部分的值都是空值。为什么?因为csv文件里的city字段,没有市(或其他),连接不到一起。

我们回到Jupyter Notebook,把从city函数中获取的城市名赋值给DataFrame结构中的city列,导出csv文件。

把刚才在ArcMap中的操作再进行一次,然后右键cities,点击属性,符号系统—>显示—>数量—>分级色彩—>字段—>值,选AQI。

在最后带事件的图层(显示XY数据产生的),右键,点击标注要素,就能把城市名显示出来;在cities点击也可以,有少许区别。

最后的成图,点击菜单文件—>导出地图可以产生。

结尾

PM2.5的需要重新加载一个新的cities图层。

空白的地方,就是数据为空,没数据或数据未清洗造成的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值