目录

上一主题

10.4. 点资料插值法

下一主题

10.6. 利用图形建模自动执行复杂的工作流程


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

10.5. 使用处理框架进行批次处理

QGIS引进了一个称为处理框架(Processing Framework)的新概念。它的前身是 Sextante,旨在为 QGIS 提供可以用来执行 原生或第三方提供的演算法来处理资料的环境。此概念包含一个很棒的批次处理介面,让使用者可以简单地对许多图层执行程序计算。 这个批次处理工具可以自动处理重复的工作,为你省去许多时间精力。 我们要只使用一个批次指令,来裁切几个全球的向量图层的非洲大陆区域资料。 可以在一下链接进行下载: Natural Earth 可以载到以下几个向量图层:

10.5.1. 批次处理操作流程

1. 打开QGIS,选择 Layer ‣ Add Layer ‣ Add Vector Layer , 选择我们需要的数据"ne_10m_admin_0_countries.shp"并按下 Add 。由于我们的任务是裁切全球图层到非洲大陆的范围, 因此需要先准备一个多边形图层,描绘出非洲大陆的外框。本图层具有一个称为"CONTINENT"的属性,我们可以利用一个"Dissolve"的 地理运算工具,来融合所有具有相同属性的非洲国家(多边形)成为一个大的多边形。如 图 10.61

_images/3_xah.png

图 10.61 加载图层

4. 选择 Vector ‣ Geoprocessing Tools ‣ Dissolve ,开启 Dissolve 工具, 如 图 10.62

_images/4_x7j.png

图 10.62 选择Dissolve

5. 在 Input vector layer 中输入"ne_10m_admin_0_countries", 在 Dissolve field 选择"CONTINENT", 输出档命名为"continents.shp",然后勾选 Open output file after running algorithm 至 QGIS 地图中, 如 图 10.63

备注

如果你想要不管属性、融合"ALL"的多边形的话,可以在 Dissolve field 中选择 -- Dissolve All -- , 这样的话所有的多边形就会融合成一个。

_images/5_xhn.png

图 10.63 Dissolve设置

6. 融合的处理需要一些时间。当处理完毕后,名为"continent"的新图层会加到QGIS中, 使用工具列上的 Select Feature by Cerea or Single Click 工具, 点选非洲大陆,把大陆外框的多边形选取起来,如 图 10.64

_images/6_xuz.png

图 10.64 选取工具

7.在"continents"图层上按右键选择 Export --> Save Selection As... ,点击储存仅选取的要素, 如 图 10.65

_images/7_x13.png

图 10.65 另存为

8. 输出文件命名为"africa.shp",由于我们只需要大陆的形状,不在乎其属性值, 因此 Save only selected features 的框框也可以勾选起来。 顺便确认 Add saved file to map 有勾选后,按下 OK ,如 图 10.66

_images/8_xso.png

图 10.66 另存为设置

9. 现在 QGIS 已载入了"africa"图层,图层内只有一个非洲的多边形。现在我们可以开始批次剪下文件了。 开启 Processing ‣ Toolbox ,如 图 10.67

_images/9_xt2.png

图 10.67 选择Toolbox工具

10. 在所有可用的运算法中搜寻并找到裁切 Clip 工具。 或是 QGIS geoalgorithms ‣ Vector overlay tools ‣ Clip 底下。 你也可以使用:guilabel:Search 框简单查询此运算法的位置,如 图 10.68

_images/10_xmw.png

图 10.68 搜索Clip

  1. 右键点选:guilabel:Clip 运算法然后选择:guilabel:Execure as batch process ,如 图 10.69

_images/11_xys.png

图 10.69 选择Execure as batch process

12. 在 Batch Processing 的视窗中,第一个分页 Parameters 就是我们给定输入文件的地方。 请点选第一行的 Input layer 框旁边的 ... 按钮,如 图 10.70

_images/12_xha.png

图 10.70 Batch Processing设置

13. 切换至你刚下载的有关全球交通的 shapefile 的资料夹,按住 Ctrl 键然后选择所有你想要裁切的图层。 你也可以使用 ShiftCtrl-A 进行多重选取。接着按下 Open , 如 图 10.71

_images/13_xuc.png

图 10.71 选取资料

14. 你会看到:guilabel:Input layer 栏位现在已经自动填上我们刚才选择的文件。你可以使用:guilabel:Add row 的按钮 增加更多栏位,一次处理更多资料。接下来,我们要选择含有裁切边界的图层,因此请点选 裁切图层旁边的:guilabel:... 钮, 选择"africa.shp"。由于我们要用同一个 Overlay layer 所有的输入档,因此可以在:guilabel:Overlay layer 的 标题地方点两下,此图层就会自动填到所有的空白行中。接下来我们要设定输出文件,请点选在:guilabel:Clipped 一栏 旁边的:guilabel:... 钮,如 图 10.72

_images/14_x41.png

图 10.72 Batch Processing设置

  1. 浏览到你想要储存输出档的资料夹内,档名输入为 "clipped_",然后按下 Save ,如 图 10.73

_images/15_xnb.png

图 10.73 保存

16. 你会看到有个 Autofill settings 的视窗出现。在 Autofill mode , 选择 Fill with parameter values ,在 Parameter to use , 选择 Input layer 。此设定会让所有的输出档档名为输入档档名之前再加上 "output_" 文字。 此步骤非常重要,务必确认出各个输出档档名都是独一无二的,才不会发生互相覆蓋的情况, 如 图 10.74

_images/16_xfp.png

图 10.74 Autofill settings设置

  1. 现在批次处理已经准备就绪,请按下 Run ,如 图 10.75

_images/17_xi0.png

图 10.75 运行Batch Processing-Clip

18. 裁切运算将执行在你刚刚指定的输入档上,然后制作成为输出档。批次处理完成后,产生的图层会载入到 QGIS 中, 你会发现这些全球的图层都被裁切到只剩下非洲大陆的区域了,如 图 10.76

_images/18_xq7.png

图 10.76 结果显示