26.3. 工具箱

这个 Processing Toolbox 是处理图形用户界面的主要元素,也是您更有可能在日常工作中使用的元素。它显示所有可用项的列表 algorithms 分成不同的块,称为 Providers 、和定制 modelsscripts 您可以添加以扩展工具集。因此,工具箱是运行它们的接入点,无论是作为单个进程还是作为涉及在不同输入集合上多次执行相同算法的批处理进程。

../../../_images/toolbox3.png

图 26.6 处理工具箱

提供程序可以在中(停用) Processing settings dialog 。默认情况下,只有不依赖第三方应用程序的提供程序(即只需要运行QGIS元素的提供程序)才处于活动状态。需要外部应用程序的算法可能需要额外的配置。中对配置提供程序进行了说明 later chapter 在这本手册中。

在工具箱对话框的上半部分,您可以找到一组工具,用于:

  • 与.一起工作 处理模式 ModelsCreate New Model...Open Existing Model...Add Model to Toolbox...

  • 与.一起工作 PythonFiles ScriptsCreate New Script...Create New Script from Template...Open Existing Script...Add Script to Toolbox...

  • 打开 处理历史记录 History 评审团;

  • 打开 处理结果 Results Viewer 评审团;

  • 将工具箱切换到 in-place modification mode 使用 所选流程 Edit Features In-Place 按钮:只显示适合在活动层上执行的算法,不输出新的层;

  • 打开 选项 Options 对话框中。

此工具栏下方是一个 搜索 Search... 框,帮助您轻松找到所需的工具。您可以在文本框中输入任何单词或短语。请注意,当您键入时,工具箱中的算法、模型或脚本的数量将减少到仅包含您在其名称或关键字中输入的文本的那些。

备注

在算法列表的顶部显示了最近使用的工具;如果您想要重新执行任何工具,这是非常方便的。

../../../_images/toolbox_search.png

图 26.7 显示搜索结果的处理工具箱

要执行某个工具,只需在工具箱中双击其名称即可。

26.3.1. 算法对话框

Once you double-click on the name of the algorithm that you want to execute, a dialog similar to that in the 图 26.8 below is shown (in this case, the dialog corresponds to the Centroids algorithm).

../../../_images/parameters_dialog.png

图 26.8 算法对话框-参数

该对话框显示两个选项卡 (ParametersLog )左侧是算法说明,右侧是算法说明,底部是一组按钮。

26.3.1.1. 参数类型

这个 Parameters 页签用于设置算法需要执行的输入值。它显示要设置的输入值和配置参数的列表。它当然有不同的内容,这取决于要执行的算法的要求,并根据这些要求自动创建。

虽然参数的数量和类型取决于算法的特性,但它们的结构都是相似的。表中的参数可以是以下类型之一。

  • A vector layer ,从QGIS中所有可用(当前打开)的矢量层的列表中进行选择。您也可以使用已卸载的层:按 ... 按钮,然后选择:

    • Select file... :使用操作系统文件资源管理器选择磁盘上的文件

    • Browse for layer... :打开 Browser panel ,允许直接从数据库源(PostgreSQL、SQL Server、Oracle等)、Web服务(WFS、AFS等)获取层或磁盘上的文件。

    ../../../_images/vector_iterator.png

    图 26.9 向量输入小工具

    备注

    默认情况下,Layer小工具会显示该层的CRS及其名称。如果您不想看到此附加信息,可以在处理设置对话框中禁用此功能,取消选中 General ► Show layer CRS definition in selection boxes 选择。

    向量输入小部件还具有以下功能:

    • 迭代器 迭代 按钮:如果切换,算法将在其每个功能上迭代执行,而不是整个层只执行一次,生成与算法执行次数相同的输出。这允许在必须单独处理图层中的所有要素时自动执行该过程。如果算法包含多个可以迭代的输入向量,则只会按照算法中声明的参数顺序对第一个切换的参数进行迭代。

    • 选项 Advanced options 按钮调整用于该特定参数的设置。这些设置涉及:

      • Invalid feature filtering :允许 default method 用于处理要覆盖的具有无效几何的要素

      • Limit features processed :对从源处理的要素数量进行可选限制

      • Feature filter :允许在运行工具时输入表达式以动态设置层的子集,从而无需单独的步骤来设置层过滤器或创建层子集。

      ../../../_images/vector_input_parameters.png

      图 26.10 矢量输入小工具的高级选项

    • 还可以将向量层上的算法执行限制为其 Selected features only

  • A table ,从QGIS中所有可用项的列表中进行选择。非空间表像向量层一样加载到QGIS中,并使用 same widget

  • A raster layer ,从QGIS中可用的所有栅格图层列表中进行选择。选择器还包含一个 ... 按钮,用于选择表示当前未加载到QGIS中的层的文件名。

    ../../../_images/raster_input1.png

    图 26.11 栅格输入微件

  • 一个 option ,从可能选项的选择列表中进行选择。

  • A numerical value ,将在旋转盒中介绍。在某些情况下(当参数应用于要素级别而不是图层)时,您会发现 数据定义 Data-defined override 按钮,允许您打开 expression builder 并输入数学表达式以生成参数的变量值。可以将一些与加载到QGIS中的数据相关的有用变量添加到表达式中,以便您可以选择从这些变量中的任何一个派生的值,例如一个图层的像元大小或另一个图层的最北坐标。

../../../_images/number_selector.png

图 26.12 基于表达式的输入

  • A range ,将在两个文本框中引入最小值和最大值。

  • A text string ,将在文本框中介绍。

  • A field ,从矢量层的属性表或在另一个参数中选择的单个表中进行选择。

  • A coordinate reference system 。您可以从下拉列表中或从 CRS selection 当您单击右侧的按钮时出现的对话框。

  • 一个 extent ,文本框通过其角坐标以格式定义矩形 xmin, xmax, ymin, ymax 。按下按钮 地图标识 Set to current map canvas extent 按钮以使用地图画布范围。单击值选择器右侧的箭头,将出现一个弹出式菜单,为您提供以下选项:

    • Calculate from layer ► :用要从加载的层的边框中选择的层的边框坐标填充文本框

    • Calculate from layout map ► :使用从当前工程的布局中选择的地图项的坐标填充文本框

    • Calculate from bookmark ► :用已保存书签的坐标填充文本框

    • 地图标识 Use current map canvas extent

    • Draw on canvas :参数窗口将隐藏自身,因此您可以单击并拖动到画布上。定义范围矩形后,该对话框将重新出现,其中包含范围文本框中的值。

    ../../../_images/extent.png

    图 26.13 范围选择器

  • A list of elements (无论是栅格还是矢量层、表、字段)以供选择。按下 ... 按钮,查看如下所示的对话框。允许多选,当对话框关闭时,参数文本框小部件中会显示所选项目的数量。

    ../../../_images/multiple_selection.png

    图 26.14 多项选择

  • A small table 由用户编辑。这些参数用于定义查找表或卷积核等参数。

    单击右侧的按钮可查看该表并编辑其值。

    ../../../_images/fixed_table.png

    图 26.15 固定工作台

    根据算法的不同,可以使用窗口右侧的按钮修改或不修改行数。

备注

某些算法需要许多参数才能运行,例如在 栅格计算器 您必须手动指定单元大小、范围和CRS。当算法具有 Reference layers 参数。通过此参数,您可以选择参考层,并将使用其所有属性(单元大小、范围、CRS)。

26.3.1.2. 记录执行情况

Along with the Parameters tab, there is another tab named Log (see 图 26.16 below). Information provided by the algorithm during its execution is written in this tab, allowing you to track the execution as well as being aware and having more details about the algorithm as it runs. Information on algorithm execution is also output in the View ► Panels ► Log Messages Panel.

请注意,并非所有算法都将信息写入 Log 选项卡中,它们中的许多可能以静默方式运行,除了最终文件外不会产生任何输出。查看 Log Messages Panel 那样的话。

../../../_images/algdialoglog.png

图 26.16 算法对话框-日志

在列表的底部 Log 选项卡,您可以找到按钮以 文件保存 Save Log to File文案编辑 Copy Log to Clipboard清除控制台 Clear Log 。如果您已经检查了 Keep dialog open after running algorithmGeneral 处理选项的一部分。

26.3.1.3. 其他工具

在该对话框的右侧,您将找到该算法的简短说明,这将帮助您了解其目的及其基本思想。如果没有这样的描述,则不会显示描述面板。

有关更详细的帮助文件,其中可能包括它使用的每个参数的描述或示例,您将找到 Help 对话框底部的按钮将带您进入 Processing algorithms documentation 或提供商文档(对于某些第三方提供商)。

这个 Advanced ► 菜单提供了在不运行算法的情况下重复使用对话框中定义的配置的功能:

  • 设置 Algorithm Settings... :允许覆盖当前算法执行的处理设置。更多详细信息请访问 覆盖算法设置

  • PythonFiles Copy as Python Command :允许轻松复制等效项 PyQGIS command 使用对话框中定义的参数运行工具

  • 终端机 Copy as qgis_process Command :允许轻松生成 qgis_process command ,包括其环境设置,如距离单位、面积单位、椭球体,以及任何复杂的参数值,如具有特定图层的GeoPackage输出

  • 文案编辑 Copy as JSON :该命令的所有设置都复制在 JSON 格式,可供QGISProcess使用。这是一种查看命令预期格式的便捷方法,即使对于复杂参数(如三角网内插参数)也是如此。您可以轻松地存储这些值,然后通过粘贴这些值来恢复它们。

  • 编辑粘贴 Paste Settings 在一个 JSON 格式

这个 Run as Batch Process... 按钮会触发 batch processing mode 允许配置和运行具有各种参数的算法的多个实例。一个 Run as Single Process... 帮助您从批处理模式切换回。

当算法执行完成(无论成功与否)时,会出现一个新按钮 Change Parameters 将显示为只要 Log 选项卡处于活动状态。

26.3.1.4. 覆盖算法设置

从内部触发 Advanced 位于算法对话框底部的下拉菜单, 设置 Algorithm Settings... 显示了一个面板,允许用户控制仅适用于该算法执行的常规处理设置。它旨在成为用户可以覆盖其 global processing settings 在特定的基础上,而不必改变其通常的默认设置。

可以覆盖的设置包括:

  • Invalid feature filtering :与现有的逐参数设置覆盖不同,此处设置的处理方法将应用于 ALL inputs 对于该算法

  • Calculation settings ,例如 Distance unitsArea units 用于距离/面积测量

  • Environment settings, such as Temporary folder and Number of threads to use

26.3.1.5. 关于投影的一个注记

处理算法的执行始终在输入层坐标系(CRS)中执行。由于QGIS的动态重新投影功能,尽管两个层可能看起来重叠和匹配,但如果使用它们的原始坐标而不将它们重新投影到公共坐标系上,情况可能就不是这样。每当您使用多个层作为 QGIS native algorithm ,则所有层都将被重新投影以匹配第一个输入层的坐标参考系。

然而,对于其算法通过处理框架公开的大多数外部应用程序来说,情况就不是这样了,因为它们假设所有层都已经位于公共坐标系中,并且准备好进行分析。

默认情况下,参数对话框将显示每个层的CRS的说明及其名称,从而可以轻松地选择共享相同CRS的层作为输入层。如果您不想看到此附加信息,可以在处理设置对话框中禁用此功能,取消选中 Show layer CRS definition in selection boxes 选择。

如果您试图使用CRSS不匹配的两个或更多层作为输入来执行算法,将会显示一个警告对话框。这要归功于 Warn before executing if layer CRS's do not match 选择。

您仍然可以执行该算法,但请注意,在大多数情况下,这将产生错误的结果,例如由于输入层不重叠而导致的空层。

小技巧

Use Processing algorithms to do intermediate reprojection

当算法由于CRSS不匹配而无法在多个输入图层上成功执行时,请使用QGIS内部算法,例如 重新投影层 在使用这些输出执行算法之前,执行到相同CRS的层的重投影。

26.3.2. 由算法生成的数据对象

算法生成的数据对象可以是以下任何类型:

  • 栅格层

  • 矢量层

  • 一张桌子

  • 一个HTML文件(用于文本和图形输出)

这些都保存在磁盘上,并且参数表将包含与每个输出相对应的文本框,您可以在其中键入用于保存的输出通道。输出通道包含将结果对象保存到某个位置所需的信息。在最常见的情况下,可以将其保存到文件中,但对于矢量图层,当它们是由本地算法(不使用外部应用程序的算法)生成时,也可以保存到PostGIS、GeoPackage或SpatiaLite数据库或内存层。

要选择输出通道,只需单击文本框右侧的按钮,您将看到一个包含可用选项的小上下文菜单。

在最常见的情况下,您将选择保存到文件。如果您选择该选项,系统将提示您保存文件,您可以在其中选择所需的文件路径。受支持的文件扩展名将显示在该对话框的文件格式选择器中,具体取决于输出类型和算法。

输出的格式由文件扩展名定义。支持的格式取决于算法本身支持的格式。要选择一种格式,只需选择相应的文件扩展名(如果直接键入文件路径,则添加它)。如果您输入的文件路径的扩展名与任何支持的格式都不匹配,则会在文件路径后附加一个默认扩展名,并使用与该扩展名对应的文件格式来保存层或表。默认扩展名为 .dbf 对于表, .tif 对于栅格层和 .gpkg 对于矢量层。可以在设置对话框中修改这些设置,选择QGIS支持的任何其他格式。

如果您没有在输出文本框中输入任何文件名(或在上下文菜单中选择相应的选项),则结果将保存为 temporary file 在相应的默认文件格式中,它将被删除,一旦您退出QGIS(注意,如果您保存您的项目,它包含临时层)。

您可以为输出数据对象设置默认文件夹。转到设置对话框(您可以从 Settings ► Options ► Processing 菜单),并在 General 组中,您将找到一个名为 Output folder 。此输出文件夹用作默认路径,以防您只键入没有路径的文件名(即, myfile.shp )执行算法时。

在迭代模式下运行使用向量层的算法时,输入的文件路径将用作所有生成文件的基本路径,这些文件使用基本名称命名,并附加一个表示迭代索引的数字。文件扩展名(和格式)用于所有此类生成的文件。

除了栅格层和表格,算法还将图形和文本生成为HTML文件。这些结果在算法执行结束时显示在新的对话框中。此对话框将保存当前会话期间任何算法产生的结果,并可通过选择 Processing ► Results Viewer 从QGIS主菜单。

一些外部应用程序可能将文件(没有特定的扩展限制)作为输出,但它们不属于上述任何类别。QGIS不会处理这些输出文件(已打开或包含在当前QGIS项目中),因为它们在大多数情况下对应于QGIS不支持的文件格式或元素。例如,用于LiDAR数据的LAS文件就是这种情况。文件已创建,但您不会在QGIS工作会话中看到任何新内容。

对于所有其他类型的输出,您将找到一个复选框,您可以使用该复选框告诉算法在文件由算法生成后是否加载该文件。默认情况下,所有文件都是打开的。

不支持可选输出。也就是说,将创建所有输出。但是,如果您对给定输出不感兴趣,则可以取消选中相应的复选框,这实质上会使其行为类似于可选输出(换句话说,无论如何都会创建该层,但如果您将文本框留空,则它将保存到临时文件中,并在您退出QGIS后删除)。