QGIS Graphical Modeler 使用教程
在做空间分析时,我们很少只运行一个单独的工具。更多时候,是一整串步骤:裁剪、缓冲、统计、再导出结果……
QGIS 的 graphical modeler 就是用来把这些零散步骤“串成一条龙”的可视化工具。
它提供了一个简单的图形界面,你可以像搭积木一样,把每一步处理组合成一个可复用的模型。 以后遇到类似任务,只需要调整少量输入参数,就能一键跑完整个流程,大幅减少重复劳动。
可以从“处理”菜单中打开 graphical modeler:
Processing ► Graphical Modeler

打开后,窗口右侧的大画布用来搭建和调整模型结构与流程;左侧则是各种模型节点和配置面板,主要包括:
Model Properties:设置模型名称以及它所属的分组。Inputs:模型运行时需要由用户提供的输入参数(图层、数值、字符串等)。Algorithms:可以在模型中使用的处理算法。Variables:只在Processing Modeler中可用的变量定义。Undo History:操作历史,方便一步步回退。
创建一个模型通常分两步:
- 定义输入:告诉模型“运行时需要用户给我哪些东西”(图层、数值、参数等)。每个输入都会出现在画布上。
- 搭建流程:把算法一个个放到画布中,并指定它们用哪些输入、依赖谁的输出,最后形成一条完整的工作流。
操作
定义输入
第一步是把模型的输入定义好。
在左侧的 Inputs 面板中,双击某种输入类型即可添加。例如,选择“输入矢量图层”:

添加完成后,画布上会多出一个对应的输入节点:

除了双击,也可以把输入类型从列表中直接拖拽到画布上合适的位置。
如果之后想修改这个输入的参数(比如名称、是否必填、默认值等),只需要在画布上双击该输入节点,会弹出同样的配置对话框,随时可调。
搭建工作流程(使用算法)
所有可用的算法都在左侧 Algorithms 面板中,分组方式基本和 Processing toolbox 中一致,找起来很类似。
要把某个算法加入模型,有两种方式:
- 双击算法名称
- 或者像输入一样拖拽到画布中
添加后,你可以:
- 修改算法在模型中的描述(让模型图更好懂)
- 添加注释,帮助自己或同事回看时理解这一步是干什么的
弹出的参数设置对话框整体上和 Processing toolbox 里是一致的,只是多了一些与模型相关的选项。


算法输入的几种类型
在模型里配置算法参数时,数据输入大致有四种来源:
-
Value从当前 QGIS 项目中已加载的图层中选择,或从磁盘路径浏览图层文件。这类似于在普通处理对话框里直接选一个图层。 -
Pre-calculated Value使用表达式生成器来计算参数值。 你可以在表达式里引用模型输入、图层统计等,这些变量会列在表达式生成器的“搜索”对话框顶部,方便直接点击使用。 -
Model Input当某个参数应该来自“用户在运行模型时要填写的输入”时,选择这个选项。 这里会列出所有与该参数类型兼容的模型输入。 -
Algorithm Output当这个算法的输入需要使用“前面某个算法的输出”时,则选择这里。 它会列出流程中已定义、且类型匹配的算法输出。
此外,对于算法的输出,还多了一个 Model Output 选项。
如果勾选它,该输出就会暴露为模型的最终输出之一,可以在下游模型中继续作为输入使用,或者在运行时保存为结果文件。

编辑与管理模型节点

在画布中,右键单击模型中的任意“框”(无论是输入还是算法),会看到一个小菜单:
Remove:移除该节点及其连接。Edit:编辑节点参数,打开配置面板。Add Comment:给该节点添加文字备注,方便说明用途或提醒注意事项。Deactivate:将该算法“停用”。 被停用的算法以及与它相关联的算法会以灰色显示,并且在运行模型时不会执行。 这在调试某一部分流程、或者暂时屏蔽某些耗时步骤时很有用。
将模型导出为 Python 脚本
QGIS 中的处理算法既可以从图形界面运行,也可以在 Python 控制台中调用;同样,你也可以用 Python 来编写自己的处理算法。
如果你已经用 graphical modeler 搭好了一个模型,可以直接将其导出为 Python 脚本文件。这是从“可视化搭建”过渡到“Python 自动化”的一个很好入口:

- 先用模型器把流程理顺、搭好;
- 确认结果没问题后,导出为 Python;
- 在脚本基础上做更细致的定制,比如批处理、循环、条件判断等。