GIS界流行一句话:人类活动80%的信息与地理位置有关。然而,我们得到的数据中有很大一部分却没有地理几何图形,而是一张张文字和数字组成的表格,例如,统计局每年发布的统计年鉴。如何将这些表格定位到地图上,并使用表格数据做空间可视化分析,是GISer需要掌握的基本技能。
本文以全国省级行政区划为地理空间底图,以统计年鉴为属性表来源,从数据预处理、表连接、属性表的使用、表持久化四个方面,演示空间数据与纯属性数据结合并进行分析的过程。
• 全国2015年省级行政区划来自资源环境科学与数据中心,该图层为免费公开的数据,输入网址:http://www.resdc.cn/Default.aspx,注册后即可免费下载。
• 统计年鉴来自国家统计局官网,网址为:http://www.stats.gov.cn/,无需注册即可下载。
为了方便大家,以上数据已经打包上传到网盘,连接如下:
链接:https://pan.baidu.com/s/18vKpBMjOGfT9nHcNo31bFw 提取码:hkyi
打开下载到的统计年鉴数据,本文选择“分地区人口的城乡构成和出生率、死亡率、自然增长率”为例进行操作演示。可以看到,该电子表格并不适合直接导入到QGIS中,在空间数据挂接之前,需要对数据做预处理。
处理多重表头
统计年鉴的表头一般由标题和指标名称构成,指标名称可能包含多个层级,需要逐层合并,才能得到某列数据的完整列名,这种复杂的表头样式俗称多重表头。例如上图中第三列的指标名称应为:城镇人口数;第四列指标名称为:城镇人口比重(%)。为了便于计算机处理,在数据整理时一般将复杂的指标名称与数据列名做出对照表,以元数据形式随内容分发。
本文采用的处理步骤为:删除表格标题,用英文代替中文指标名称,保留中英文指标名称之间的对应关系。处理结果如下:
删除全国数据和空行
表格中的“全国”或者“合计”行,与其他数据不在同一行政级别上,应删除。为了阅读方便而增加的空行也应去掉。
处理省名中的空格
统计年鉴中为了提高阅读舒适度和纸质出版物的美观,在省名称中加入空格以达到对齐效果。由于空格对计算机来说也是字符串的内容,在字符串匹配时,空格常常导致匹配失败,因此,省名称中的空格应提前删除。
预处理后数据
03
打开数据
启动QGIS,点击【数据源管理器】工具栏上的【打开数据源管理器】按钮。
切换到【矢量】标签页,选择下载到的省级行政区划shape文件,点击【添加】按钮,打开图层。可以看到,地图窗口中添加了省级区划图层“CN-sheng-A”。
在【图层】面板中右键点击“CN-sheng-A”,从弹出菜单中选择【打开属性表】。观察省级区划的属性表,共包括6个字段,其中“SHENG”字段为行政区划代码前2位,“name”字段为省名称。应仔细检查区划代码和名称的数据质量,因为在数据表连接操作中通常使用这两个属性作为连接字段。
同样,点击【打开数据源管理器】按钮,切换到【分隔文本文件】标签页,浏览到已整理好的统计年鉴表格,设置图层名称为“POP2015”,分隔符选择“逗号”,【几何图形定义】选择“无几何图形(属性表)”,点击【添加】按钮,将统计年鉴添加到【图层】面板。
右键点击纯属性表“POP2015”图层,打开属性表,确认打开的数据无误。
连接属性表可以通过图层属性中的【连接】标签页设置,也可以使用【按字段值连接属性】处理工具完成。本文演示第二种,即使用【按字段值连接属性】处理工具实现属性表连接。
点击菜单【处理】->【工具箱】,打开处理工具箱面板。
在【处理工具箱】的搜索栏中输入“join”,找到【矢量通用】->【按字段值连接属性】,双击运行该工具。
在【按字段值连接属性】对话框中,设置第一个输入图层为“CN-sheng-A”,即带几何图形的省级行政区划图层,连接字段设置为“name”。第二个输入图层设置为“POP2015”,即统计年鉴纯属性表图层,连接字段设置为“name”。其他参数保持默认,点击【运行】按钮,进行属性表连接。
注意,第一个图层和第二个图层的连接字段名不需要完全相同,只需两个图层对应字段可以匹配即可。
观察算法的输出结果,有31个要素正确连接,与省级行政区划要素的个数相同。4430个未匹配成功的要素是远离大陆的岛屿,其“name”字段为NULL,因此匹配失败。
关闭【按字段值连接属性】对话框,返回到QGIS主窗口,可以看到【图层】面板中新增“被连接图层”,右键点击该图层打开属性表,确保统计年鉴的字段已经正确追加到省级行政区划原有属性表中。
统计年鉴与行政区划图层连接后,就可以将年鉴数据可视化表达到地图上了。
点击【图层】面板的【打开图层样式】按钮,在右侧打开图层样式面板。
点击【图层样式】面板渲染器下拉框,选择“渐进”渲染。“渐进”渲染用不同的颜色表达所选属性字段的取值,通常用于对数字型字段进行分级表达,随着属性取值的大小赋予不同的颜色。
由于并未设置用于渲染的字段,地图窗口暂时显示空白。点击【值】下拉框,选择“Total_population”(年末总人口)字段,点击下方的【分类】按钮,一幅默认的专题图显示在地图窗口中。
默认颜色为白色->红色渐进,处于最小区间段的行政区划渲染成白色,与地图背景色融合,效果不好。
可以通过设置颜色渐进参数来改变地图效果。点击【颜色渐变】下拉框,依次选择【全部颜色渐变】->【RdYlGn】。
再次点击【颜色渐变】,选择【反转颜色渐变】,使颜色带反转,用绿色渲染字段取值小的区域,红色渲染字段取值大的区域。
设置符号的描边为透明,最终得到如下效果图:红色图斑代表年末总人口多的省份,绿色图斑代表年末总人口少的省份。
在【图层】面板中,“被连接图层”右侧的图标表示该图层为临时草图图层,工程关闭时将被丢弃。如果需要保留图层内容,右键点击该图层,从弹出菜单选择【永久化…】,将图层保存起来 。
在弹出的【保存草图图层】对话框中,选择文件的格式为“GeoPackage”,设置文件存储的路径和名称,其他参数保持默认,点击【OK】,将临时图层保存到硬盘。
属性表关联除了可以连接统计年鉴数据外,只要空间数据与属性数据中存在可以匹配的字段,均可以实现二者的关联。
属性数据是空间数据的有效补充,然而两种数据的生产过程并不统一,甚至数据来源也不相同,导致收集到的数据往往是空间数据与属性数据分离。QGIS中的【按字段值连接属性表】工具,可以实现属性数据与空间数据关联,从而像操作一个图层一样分析纯属性数据表,为属性数据的空间可视化创造了条件。
-- 本章到此结束 --
【--往期推荐--】
4 QGIS 3.x 图层进阶(一)创建和编辑图层
连载| 3 图查属性、属性查图
连载 | 2 图层基本操作
连载 | 1 QGIS的下载与安装
版权声明
本文欢迎转载,转载时请注明出处。