使用QGIS实现城市空气质量指数(AQI)数据可视化

空气质量情况影响着人们的日常生活和身心健康,空气质量指数(AQI)是衡量空气质量情况的一个重要依据,它利用函数将空气中影响人们健康的几种主要污染物化成单一指数值的形式,通过它的大小来判断空气质量情况,值越大,空气污染情况越严重,是目前衡量空气质量情况最常用的参照指标。

本文以生态环境部今天(2021年1月28日)发布的实时空气质量指数为例,通过QGIS演示空气质量指数地图制作过程,展示QGIS点数据分级可视化和表达式生成文字标注技巧,最终的效果图如下:

 01 示范数据

本文的示范数据及图层样式文件打包下载地址为:

链接: https://pan.baidu.com/s/1hX0_UsAK-v7xWqTjMuCj2A 

提取码: krrn 

其中,空气质量指数来自中华人民共和国生态环境部官网:https://www.mee.gov.cn/。

城市点数据来自天地图的1:100万地形数据(2017版),WFS服务地址为:http://gisserver.tianditu.gov.cn/TDTService/wfs。

 02 数据收集和预处理

首先,收集和整理空气质量指数。从生态环境部将所需要的数据下载,整理为三个字段:AQI、空气质量、城市,保存为CSV分隔文本文件。其中AQI为整型字段,用于制作空气质量指数分级专题图;空气质量是对应AQI分级的中文描述;城市名称将作为连接字段与矢量数据挂接。

其次,利用QGIS提取和处理天地图1:100万地形数据(2017版)居民点数据。打开QGIS,在【浏览】面板找到“WFS/OGC API-Features”节点,右键->【新建连接】,在弹出的对话框,名称填写“tianditu”,URL输入:“http://gisserver.tianditu.gov.cn/TDTService/wfs”,点击【OK】完成WFS连接。

展开【浏览器】面板->【WFS/OGC API-Features】->【tianditu】,可以看到该数据服务下共有AANP、AGNP、BOUA、BOUL等十个图层,对应居民点、行政区划界线、水系、道路等要素,其中AGNP为带名称的居民点,将其拖拽到地图窗口,同时打开对应的属性表,观察数据情况:

可以看到,AGNP图层共包含OBJECTID、CLASS、NAME、PINYIN、GNID、XZNAME六个字段,其中CLASS表示居民点分类,通过分析可知,当CLASS取值为“AD”时,可提取到城市点。

点击属性表窗口左下角的下拉菜单,选择【高级过滤(表达式)】,打开表达式字符串过滤器,输入下列表达式筛选出城市点:

"CLASS"  =  'AD'

点击【OK】完成表达式筛选,返回属性表窗口,共过滤出415个要素,点击表格左上角,选中所有过滤结果:

切换到QGIS地图主窗口,右键点击【图层】面板->【AGNP】->【导出】->【另存选中的要素为…】,弹出【矢量图层另存为】对话框,设置如下参数:

格式:GeoPackage;

文件名:任意存储路径\city.gpkg;

其他参数保持默认,点击【OK】将筛选到的城市点保存为单独的图层。

最后,建立空气质量指数与城市点数据的连接。在【浏览器】面板找到上一步骤保存的城市点图层和空气质量指数,拖拽到地图窗口。右键点击城市点图层->【属性】->【连接】: 

点击左下角的 按钮,打开新建连接对话框,设置如下参数:

连接图层:AQI20210128;

连接字段:城市;

目标字段:NAME。

点击【OK】完成连接设置。

关闭图层属性对话框,返回QGIS主窗口,打开城市点图层的属性表窗口,可以看到属性字段增加了AQI、空气质量和城市,说明AQI数据已经连接到城市点图层:

至此,数据预处理工作完成,开始空气质量指数地图可视化设置。

 03 空气质量指数分级

根据我国生态环境部科技标准司于2012年发布的《环境空气质量指数(AQI)技术规定(试行)(HJ 633—2012)》,我国的空气质量指数可以分为六个等级,具体分级标准如下:

使用QGIS的“渐进”渲染,可以将上述标准表达在地图上。

选中城市点图层,点击【图层】面板上方的 按钮,打开【图层样式】面板,点击渲染器下拉框,选择“渐进”渲染:

设置“渐进”渲染的参数如下:

值:AQI20210128_AQI;

图例格式:精度-2,勾选“裁剪”;

模式:等数量(分位数);

类:6。

点击【分类】按钮,将城市的AQI分为6个等级,如下图:

默认的分级断点和样式与我国的标准并不一致,需要手工调整。首先,修改一级AQI的符号颜色为标准规定的绿色,RGB值为(72, 228, 0):双击分类第一行中的【符号】, 在符号图层选中【标记】->【简单标记】->【填充颜色】->【选择颜色】,分别填入颜色的R、G、B分量:72, 228, 0。

第二步,修改分级的上下限。双击第一行的【值】,弹出上下限设置对话框,输入【下界值】为0;【上界值】为50:

最后,修改图例的文字,双击第一行的【图例】,进入编辑状态,输入文字“优”:

按同样步骤完成其他AQI级别的符号、上下限、图例的修改,完成后效果如下图:

 04 添加文字标注

在【图层样式】面板,切换到 标注标签页,选择“单一标注”,点击【值】右侧的 按钮,打开【表达式对话框】,输入如下表达式作为标注的内容:

"NAME"  ||  '\n'  || "AQI20210128_AQI"

接下来设置标签的背景颜色。切换到 背景,勾选“绘制背景”,设置【大小 横坐标】为2,【纵向大小】为0.5,点击【填充颜色】右侧的 按钮,打开【表达式字符串构造器】对话框,输入如下表达式设置标注的背景色:

@symbol_color

此时可以看到,有些标注压盖了城市点,需要设置标注的位置以解决压盖问题。切换到 位置,将【模式】设置为“离点偏移量”,【横、纵坐标偏移】分别输入0.0000,-6.0000。

为了明确标注与城市的对应关系,可以绘制引出线,即标注牵引线。切换到 引出线,勾选“绘制引出线”,将【从要素偏移】设置为1毫米。

最后,为地图选择一个比较素净的网络地图作为背景图,本文选择使用OpenStreetMap monochrome作为底图,其XYZ连接URL为:http://a.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png。也可以使用国内的天地图、高德地图等(关于如何加载网络地图,请参考:浅谈XYZTiles 和 通过QGIS XYZ Tiles访问国内四大图商地图服务)。最终效果如下:

从图中可以看出,我国冬季空气污染“北高南低”的布局特点仍然非常突出,今天(2021年1月28日)华北平原普遍污染较严重。本人在郑州,从昨晚开始刮起大风,污染物大部分来自扬沙,对空气质量情况的感受与图中所展示的数据相一致。


版权声明

本文欢迎转载,转载时请注明出处。

猜你喜欢

转载自blog.csdn.net/QGISClass/article/details/113360573