资料表连接

警告

本教学已经过时,如需阅读新的版本请前往 资料表连接 (QGIS3)

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

内容说明

我们会使用美国加州的人口统计分区 shapefile,与美国人口调查局提供的人口数资料表,做一份加州的人口分布图。

你还会学到这些

  • 为 CSV 档案制作一份 .csvt 档案,以注明各栏位的资料型态

  • 在 QGIS 中载入不含任何地理资讯的 CSV 档案

取得资料

美国人口调查局提供多种从 MAF/TIGER 资料库汇出的空间资料。你可以查询并下载加州的人口统计分区 shapefile。下载 Census Tracts for California 这个档案。

Americal FactFinder 提供所有美国的人口统计资料。你可以用「进阶搜寻」(Advanced Search),查询 Topic - Total PopulationGeographies - All Census Tracts in California,以建立并下载我们需要的 CSV 档案。以下教学使用 Total Population 2010 Census Summary File 1 这份资料。

为了方便起见,你也可以直接用下面的连结下载这两份资料集:

tl_2013_06_tract.zip

ca_tracts_pop.csv

资料来源 [TIGER] [USCENSUS]

操作流程

  1. 我们先载入人口统计分区的 shapefile。选择 图层 ‣ 加入向量图层

../_images/1176.png
  1. 浏览并选择载下来的 tl_2013_06_tract.zip 压缩档。QGIS 可以直接开启压缩档,所以档案不用事先解压缩。

../_images/2135.png
  1. 选择 tl_2013_06_tract.zip 图层并点选 确定

../_images/374.png
  1. QGIS 就会载入人口统计分区资料。

../_images/452.png
  1. 图层上按右键,选择 开启属性表格

../_images/553.png
  1. 检视 shapefile 中每个分区的属性。要把表格资料与这份 shapefile 相关联,图层中的每个图征都需有个共同属性,其值在每个图征中各不相同。在这个例子中,GEOID 属性可以识别每一个分区,这就可以把这份 shapefile 与任何包含同样 ID 的表格资料「连接」起来。

../_images/651.png
  1. 用文字编辑器开启 ca_tracts_pop.csv 这份 CSV 档案。你会注意到,档案中的每一列都含有关于某个分区的资讯,其中就有我们在上一步骤看到的识别属性。注意在这份 CSV 中,有个识别属性栏位叫作 GEO.id2。你还会注意到 D001 这个栏位记录了每个分区的人口数。

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

../_images/848.png
  1. 我们可以把 CSV 档案汇入 QGIS 了。选择 图层 ‣ 加入分隔文字图层

../_images/947.png
  1. 在目录下浏览并选择 CSV 档。注意 档案格式 要选择 CSV (逗号分栏值)。这份资料是单纯的表格,所以我们得注明档案中不包含地理资讯。选择 无几何栏位 (仅产生属性表格) ,再点选 确定

../_images/1046.png
  1. 这样,CSV 档案就被汇入 QGIS 里成为一份表格。

../_images/1177.png
  1. 选择 tl_2013_06_tract 图层,然后按右键选择 属性

../_images/1247.png
  1. 图层属性 视窗中,选择 连结(Joins) 分页,按下底端的 + 号按钮,以建立新的资料表连结。

../_images/1345.png
  1. 加入向量连结 视窗中,连结(Join)图层 选择 ca_tracts_pop,然后我们需要为 shapefile 和 CSV 档选择用以连结的独特属性,也就是说 连结栏位 要填上 GEO.id2目标栏位 要填上 GEOID。最后按下 确定

../_images/1444.png
  1. 关闭 图层属性 视窗,回到 QGIS 主画面。现在 CSV 档中的资料已经与 shapefile 连结在一起了。在 tl_2013_06_tract 图层上按右键,选择 开启属性表格

../_images/1542.png
  1. 现在我们可以看见所有的图征都多了几个新的栏位,包括 ca_tracts_pop_D001 这个栏位。现在你可以从 CSV 的资料表连结存取每个分区的人口了,请关掉属性表格并回到 QGIS 主视窗。

../_images/1638.png
  1. tl_2013_06_tract 图层上按右键选择 属性

../_images/1735.png
  1. 选择 样式 分页,然后从下拉式选单中选择 渐层。由于我们要制作人口分布图,最好的颜色配置当然是基于人口的数量多寡来决定。在 栏位中选择 ca_tracts_pop_D001,然后再从 色彩映射表 下拉选单中选择你喜欢的色条。接着在 模式 中选择 分位数 (每个颜色相同计数)。按下 分类 后,就可看到不同的人口数量被指定成不同颜色,最后按下 确定

../_images/1835.png
  1. 这下我们就视觉化了一张不错的人口分区普查结果地图。你可以使用 放大 钮查看图层中较小的区域。

../_images/1929.png
  1. 精细、准确的加州的人口地图制作完成。你也可以试着使用同样的方法针对不同的普查结果制作地图。

../_images/2022.png