目录

上一主题

4.4. 计算线段的长度和基本统计

下一主题

4.6. 空间连接


本教程由OSGeo中国中心维护。

4.5. 属性表与CSV表连接

当想要用的资料集可能不是 shapefile,或是任何一种空间资料格式。 这些资料的格式往往是表格或试算表,要把它们加入你的资料分析中, 必须让它们和你手上的空间资料产生关联。操作这个过程称为资料表连接 Table Join 。 这节我们会说明在 QGIS 中如何将资料表连接起来。

我们使用美国加州的人口统计分区 shapefile,与美国人口调查局提供的人口数资料表,做一份加州的人口分布图。 可以在这里下载: http://www.qgistutorials.com/downloads/tl_2013_06_tract.zip

http://www.qgistutorials.com/downloads/ca_tracts_pop.csv

4.5.1. 表连接

1. 我们先载入人口统计分区的 shapefile文件。选择 Layer ‣ Add Vector Layer ,加载"tl_2013_06_tract.shp"图层, 可直接点 Add , QGIS 就会载入人口统计分区资料,如 图 4.29

_images/4_x26.png

图 4.29 加载图层

2. 图层加载后单击图层右键,进行属性查看。选择 Open Attribute Table 检视 shapefile 中每个分区的属性。 要把表格资料与这份 shapefile 文件相关联,图层中的每个要素都需有个共同属性,其值在每个图征中各不相同。 在这个例子中,"GEOID"属性可以识别每一个分区,这就可以把这份 shapefile 与任何包含同样 ID 的表格资料"link"起来, 如 图 4.30

_images/6_xdv.png

图 4.30 属性查看

3. 用文字编辑器打开"ca_tracts_pop.csv"这份 CSV 文件。你会注意到,文件中的每一列都含有关某个分区的资讯, 其中就有我们在上一步骤看到的识别属性。注意在这份 CSV 中,有个识别属性栏位叫作 "GEO.id2" 。 还会看到 "D001" 这个栏位记录了每个分区的人口数。如 图 4.31

_images/7_xw9.png

图 4.31 CSV文件查看

4. 我们可以不做任何加工,直接汇入这份 CSV 文件。不过,这样一来每个栏位预设的资料型态会是 "String" (文字)。 这样通常没有问题,除了像 "D001" 这样包含人口数字的栏位。如果这些数字栏位被当作文字汇入,我们就不能拿这些栏位做数学计算。 要让 QGIS 把这些栏位当作数字汇入,我们必须建立一个".csvt"的附加文件。这个附加文件只会有一列内容, 用来指定每一栏位的资料型态。我们把这个附加文件命名为"ca_tracts_pop.csvt"储存到原本的".csv"文件所在的目录。 如 图 4.32

_images/8_xda.png

图 4.32 CSV文件

5. 我们可以把 CSV 文件汇入 QGIS 中了。选择 Layer ‣ Add Layer ‣ Add Delimited Text Layer , 在目录下浏览并选择 CSV 档。注意 File format 要选择 "CSV (comma separated values)" 。这份资料是单纯的表格, 所以我们得注明文件中不包含地理资讯。选择 No geometry (attribute only table) , 再点选 Add ,如 图 4.33

_images/10_xsl.png

图 4.33 加载CSV文件

6. 这样 CSV 文件就被汇入 QGIS 里成为一份表格,接下来选择"tl_2013_06_tract"图层,然后按右键选择 Properties , 在 Layer Properties 视窗中,选择 Joins 分页,按下底端的"+"号按钮,以建立新的资料表连接, 如 图 4.34

_images/13_xe1.png

图 4.34 Joins分页

7. 在 Add vector join 视窗中,Join layer 选择"ca_tracts_pop",然后我们需要为 shapefile 和 CSV 档选择用以 连接的独特属性,也就是说 Join field 要填上"GEO.id2"和 Target field 要填上"GEOID" 。最后按下 OK , 如 图 4.35

_images/14_xil.png

图 4.35 连接

8. 关闭 Layer Properties 视窗,回到 QGIS 主画面。现在 CSV 档中的资料已经与 shapefile 连接在一起了。 在"tl_2013_06_tract"图层上按右键,选择 Open Attribute Table ,现在我们可以看见所有的图征都多了几个新的栏位, 包括"ca_tracts_pop_D001"这个栏位。现在你可以从 CSV 的资料表连结存取每个分区的人口了,现在关掉属性表并回到 QGIS 主视窗,如 图 4.36

_images/16_xkc.png

图 4.36 连接新属性

9. 接下来我们设置一下图层,在"tl_2013_06_tract"图层上按右键选择 Properties ,选择 Symbology 分页, 然后从下拉式选单中选择 Graduated 。由于我们要制作人口分布图,最好的颜色配置当然是基于人口的数量多少来决定。 在行栏位中选择"ca_tracts_pop_D001",然后再从 Color ramp 下拉选单中选择 "Column" 。 接着在 Mode 中选择 "Quantile (Equal Count)" 。按下 Classify 后,就可看到不同的人口数量被指定成不同颜色, 最后按下 OK ,如 图 4.37

_images/18_xfs.png

图 4.37 图层设置

10. 这下我们就看到了一张人口分区普查结果地图。你可以使用 Zoom in 钮查看图层中较小的区域, 如 图 4.38

_images/19_xq7.png

图 4.38 放大查看

11. 精细、准确的加州的人口地图制作完成。也可以试着使用同样的方法针对不同的普查结果制作地图, 如 图 4.39

_images/20_xe1.png

图 4.39 效果图