属性的操作

GIS 资料可解构成两个层级──图征(Features)及属性(Attributes), 而属性就是图征的结构化资料。 本教学将示范如何浏览这些属性, 以及在 QGIS 中对属性执行基本的查询操作。

内容说明

这次教学使用的资料是所有世界上有人住的地方。 我们要从这当中找出所有人口大于 1,000,000 的国家首都。

你还会学到这些

  • 使用表达式选取图层中的图征.
  • 使用 Attributes 工具列取消选取图征。
  • 使用 Query Builder 来显示图层中的次群组。

获取数据

Natural Earth 上有不错的
人口居住地

资料库。 其中也有 简化版 (栏位较少) 的资料库

为了方便起见,你也可以直接从以下连结下载:

ne_10m_populated_places_simple.zip

资料来源 [NATURALEARTH]

操作流程

  1. 载好资料以后,打开 QGIS,选择 Layer ‣ Add Layer ‣ Add Vector Layer.
../_images/1138.png
  1. 点选 Browse 然后移到你下载资料的地方。
../_images/290.png
  1. 找到 ne_10m_populated_places_simple.zip 这个档案后, 直接选 Open 即可。这个档案不需要解压缩,QGIS 自己有能力可以读取 zip 档的内容。
../_images/346.png

4. 这下子 QGIS 就会显示档案的内容, 你会看到许多点,每个点都是世界上有人居住的地方。

../_images/433.png
  1. 在这个图层上按右键,选择 Open Attribute Table
../_images/534.png
  1. 然后就可以看到许多的属性,每个属性都有各自的数值。
../_images/632.png

7. 我们要找的是每个图征(每个点)的人口数, 相对应的属性就是 pop_max 。 点两次这个标题就可以把这个栏位以递减排序显示。

../_images/731.png
  1. 接下来就来试试属性的查询功能。QGIS 可以运用类似 SQL 的表达式进行查询,首先要选择 Select features using an expression.
../_images/830.png
  1. 在跳出的 Select By Expression 视窗中, 展开 Fields and Values 的内容,点两下 pop_max 。 这样它就会被加进表示式的视窗当中。如果你不是很确定这个属性会有什么值, 可以选择 Load all unique values 全部唯一值 以查看资料库中这个属性具有的所有可能的值。本教学中,我们要寻找所有人口大于 1,000,000 的图征点,所以在完成如图所示的表达式后,就可以按下 Select.
"pop_max" > 1000000
../_images/928.png

10. 按下 QGIS 主视窗,你应该就会看到有一些点已经变成黄色了。 这些点就是在这资料库中, 所有 pop_max 属性值大于 1,000,000 的点的集合。

../_images/1029.png

11. 我们还有一个目标,那就是找出这些点里面有哪些是国家首都。 相关的资讯记在 adm0cap 栏位中, 1 代表这点是国家首都。

因此,我们只要使用 and o运算子添加另外一个条件到刚才的表达式中就行了。 立马来试试:在属性表格中选择 Select feature using an expression 按钮,输入以下的表达式后, 按下 Select 然后 Close.

"pop_max" > 1000000 and "adm0cap" = 1
../_images/1139.png
  1. 回到 QGIS 主视窗,这下子被选取的点就变少了。这些点就是「人口大于 1,000,000 的国家首都」的查询结果。我们可以把这个选择存起来, 以利后续的分析。在图层 ne_10m_populated_places_simple 上按右键,然后选择 Properties
../_images/1229.png
  1. General 分页中, 找到 Feature subset 的栏位,选择 Query Builder.
../_images/1327.png
  1. 输入之前的表达式,然后按下 OK
"pop_max" > 1000000 and "adm0cap" = 1
../_images/1426.png

15. 回到 QGIS 主视窗,这时你会发现其他的点都消失不见了。 现在你就可以只针对这些点,进行其他的分析。 你应该也会发现这些点目前都还是黄的, 这是因为他们目前还处在被选取的状态下。 在 Attributes 工具列上, 有个 Deselect Features from All Layers 钮,只要点选它...

../_images/1524.png
  1. 你就会看到所有的点都被取消选取,并且回复原来的颜色了。
../_images/1623.png