在之前的博文中,将2022的全国百强县一般公共预算收入的数据下载到了本地,博客原文地址:一种使用Java的快速将Web中表格转换成Excel的方法。对于不关注时空位置关系的一般分析,到此也就基本够用了。但是,如果站在全国的视野去观察分析这些全国百强县的时空分布关系,就十分有必要增加一个空间的维度,以此来作为空间分析的基础。
本文就是在此背景下,重点讲解如何对一个包含区县信息的excel表格,再结合对应的空间shp数据,将普通的二维表格融合空间shp数据,实现二维数据的空间化,给决策者一种地理尺度上的分布认知,更好的做好经济服务支撑。文中将重点介绍如何使用Qgis软件进行两者的融合,最后基于融合的结果进行制图,得到一个直观的结果。
在进行系统融合之前,需要准备的两份数据,第一是从网上下载的2022全国百强县一般公共预算收入榜的excel文件。数据列表如下(说明:在全国百强县中,区县名称重复的不对,因此不考虑使用市名称进行二次过滤):
序号 | 列名 | 例子 |
1 | 县级地区 | 昆山市 |
2 | 所属省 | 江苏 |
3 | 一般公共预算收入(亿元) | 430.18 |
上述是一份excel二维表格数据,为了进行空间分析,因此还需要一份空间数据,这里使用审图号为:2019中国地图-审图号GS(2019)1822号的一份全国区县数据。
序号 | 参数名 |
值 |
1 | 名称 |
县(等积投影) |
2 | 路径 | F:\XXX\2019中国地图-审图号GS(2019)1822号\县(等积投影).shp |
3 | 存储 |
ESRI Shapefile |
4 | 编码 | GBK |
5 | 几何图形 |
Polygon (MultiPolygon) |
6 | 坐标参照系(CRS) |
Krasovsky_1940_Albers - 投影 |
7 | 单位 |
米 |
8 | 要素数目 |
2,901 |
这里需要牢记属性表中的NAME字段,因为后续将会采用NAME作为数据关联的关键字段。
对上述数据进行简单符号化和标注以后,可以看到如下的图件。
通过仔细对比观察Excel和Shp数据,两份数据通过excel表中的县级地区和Shp数据中的Name字段进行映射关联。它的数学表达如下:
设R是n元关系,S是m元关系,A是R的属性,B是S的属性,A和B的值域具有相同的数据类型,θ∈{=, ≠, >, <, ≤, ≥}。R和S的连接操作定义为:
其中,r[A]表示元组r在属性A上的值,s[B]表示元组s在属性B上的值。我们称A和B是连接属性。这里的链接应采用等值链接的模式,即Inner Join。翻译成数据库的语句大致就是:Select A.* from TableA A join TableB B on A.xxx = B.xxx。上述理论知识是数据能够建立连接的理论基础。
为了方便后续的处理,我们将Excel同样到Qgis平台中。由于Excel是不带空间坐标的,因此无法进行空间位置的展示,只有属性信息展示。在Qgis可以打开Excel的属性表进行属性表信息查看。
在这里可以打开excel的属性,Field3字段与Shp表中的Name字段是有对应关系的。这个要牢记,后续操作会用到。
在上述成果之上,我们进行实际的空间数据挂接。操作步骤如下:
第一步、鼠标单击县(等积投影),打开属性面板。如下图所示:
第二步、点击连接按钮,弹出如下对话框:
第三步、点击新的连接,在新的连接窗口中进行属性的关联和配置。在这里,连接图层注意选择为打开的Excel图层,连接字段选择Field3,目标字段为Name字段。完成后,点击OK即可。
经过上述步骤即可完成属性的挂接,在关闭窗口点击Apply按钮之后,再次打开属性表发现。原来的属性表中已经挂接上了新的属性,后面增加就是。详情如下图所示:
此时,这几个挂接的字段还不是最终的字段,需要导出要素后自动生成一份新的数据后属性生效,参考坐标系我们修改成4326的。
细心的小伙伴发现,经过挂接后,因为我们是将excel数据挂接到了shp中,excel只有100条数据,而shp中有2901条,有2801条不是我们要的,因此我们要将这部分数据从库中过滤掉。我们打开属性表,发现百强县的挂接字段均有值,因此只需要将值不为空的数据过滤出来即可。
我们发现挂接的属性名字不太友好,我们可以修改成英文或者其他的想要的属性名。
鼠标右键点击数据,选择过滤,弹出如下对话框,在查询构建器中进行属性的过滤,通过前面的规则说明,对于ggys不是null的数据就是我们需要的,因此我们需要执行的过滤SQL就是
"ggys" is not null
点击测试,可以进行查询结果的验证,通过点击可以得到以下结果:
这就是全国百强县的数据,可以将得到的数据导出到外部作为下一步制图的基础数据。
为了更好的进行空间展示,通过不同的一般性公共预算收入来区分展示,从空间和值域的设置上直观看到不同的区县的收入信息。需要我们根据公共预算收入的值进行制图。具体步骤如下:
第一步、符号化,点击需要符号化的图层,选择分类方式进行符号化。
第二步、标注。对区县信息进行空间标注,让读者看起来更直观。
最终得到的效果图(基于省份进行分类)如下所示:
除了按照省份进行分类外,还可以根据不同的收入类型进行分类展示。这里采用渐进分类方式:
以上就是本文的主要内容,本文重点讲解如何对一个包含区县信息的excel表格,再结合对应的空间shp数据,将普通的二维表格融合空间shp数据,实现二维数据的空间化,给决策者一种地理尺度上的分布认知,更好的做好经济服务支撑。文中将重点介绍如何使用Qgis软件进行两者的融合,最后基于融合的结果进行制图,得到一个直观的结果。