3. 模型设计器界面与基础操作
模型设计器(Graphical Modeler)是 QGIS 处理框架中的可视化编排工具。它把一个个处理算法当作“积木”,让你在画布上拖拽、连线,把多步处理固化成可重复调用的模型。本节的目标很明确:认识画布与参数面板,理解输入/输出参数的作用,并亲手搭出一个能跑通的最小模型——先对输入图层做缓冲区,再用裁剪图层把缓冲区结果裁掉一部分。这个模型虽小,却完整覆盖了“输入—算法—输出”的模型骨架。
一、界面构成:先认清四个区域
从“处理”菜单打开“图形化模型构建器”后,窗口大致分为四块。左侧是算法面板,可按提供者(QGIS、GDAL 等)或关键词搜索算法,找到后拖到画布即可;中间是画布,所有算法框和连线都在这里组织;右侧是参数面板,选中某个算法框后,可在此设置各参数的取值来源;顶部是工具栏,包含保存、运行、缩放画布、导出模型等按钮。理解一个关键区别很重要:画布上的算法框参数,既可以填“固定值”,也可以绑定为“模型输入”,后者才是模型能被外部复用的前提。
模型设计器里有两类特殊对象:输入(Input)代表模型运行时由用户提供的图层、数值、字段、坐标系等;输出(Output)代表模型最终要交付的结果。它们不是算法,而是模型对外的“接口”。一个模型如果没有输入,就只能处理写死的数据;如果没有输出,运行结果就无处落地。因此,搭建模型的第一步往往不是拖算法,而是想清楚:我要让用户传进来什么,最后要拿走什么。
二、搭建过程:从空白画布到可运行模型
假设我们有一份“城市公园点/面图层”和一份“行政区边界图层”,想得到每个行政区范围内、公园向外扩展 500 米后的区域。操作顺序如下。
第一步,添加输入。在左侧算法面板搜索“输入”,把“矢量图层”输入拖入画布,双击或选中后在右侧参数面板把名称改为“待缓冲图层”,几何类型设为“面”(若你的数据是点,就选点)。再拖一个“矢量图层”输入,命名为“裁剪范围图层”。两个输入框会以蓝色出现在画布上,它们就是模型对外的入口。
第二步,拖入缓冲区算法。搜索“缓冲区”(Buffer),拖到画布。选中它,在参数面板中把“输入图层”设为“待缓冲图层”(即绑定到模型输入①),距离填 500,单位选米,分段数填 5,末端样式选圆头。这里要注意:距离单位取决于图层坐标系。若图层是地理坐标系(度),500 会被当作 500 度,结果完全错误;因此应确保输入图层为投影坐标系(米),或在模型里先做重投影。这是初学者最常见的坑。
第三步,拖入裁剪算法。搜索“裁剪”(Clip),拖到画布。把它的“输入图层”绑定为缓冲区算法的输出(在参数面板的下拉里选择“缓冲区”的“输出图层”),把“叠加图层”绑定为“裁剪范围图层”。裁剪的含义是:保留输入图层中落在叠加图层范围内的部分。因此顺序不能反——缓冲区结果是“被裁的”,行政区是“裁剪框”。
第四步,声明输出。在参数面板中,把裁剪算法的输出设为“模型输出”,命名如“裁剪结果”。此时画布上应形成一条清晰的链路:输入①→缓冲区→裁剪←输入②,裁剪→输出。
第五步,保存与运行。点击保存,模型会存为 .model3 文件,默认位于用户配置目录的 processing/models 下。随后可直接在模型设计器里点“运行”,在弹出的对话框中分别指定两个输入图层和输出路径,执行后检查结果图层的范围是否落在行政区边界内、面积是否小于缓冲区总面积。若结果为空,优先检查两个图层的坐标系是否一致、裁剪框是否与数据有空间重叠。
三、参数绑定的两种方式与常见错误
画布上每个算法框的参数都有两种来源:固定值与绑定。固定值写死在模型里,适合“距离 500 米”这类稳定参数;绑定则把参数接到模型输入或上游算法输出上,适合随数据变化的图层、字段、范围。判断标准很简单:这个值是否每次运行都可能不同?是则绑定,否则可固定。
常见错误有三类。其一是把图层参数填成固定路径,导致模型换一份数据就失效;其二是连线方向反了,例如把行政区当作被裁图层,结果得到的是行政区被公园缓冲区切割的碎片;其三是忘记声明输出,模型能运行但结果只存在于临时内存,无法被后续工序或批处理引用。排查时可在模型设计器里用“运行”对话框逐项核对输入绑定,再检查输出列表是否为空。
| 检查项 | 正确做法 | 错误表现 |
|---|---|---|
| 输入图层坐标系 | 投影坐标系(米),或模型内先重投影 | 缓冲区距离被当作“度”,结果异常巨大或为空 |
| 裁剪方向 | 缓冲区结果为“输入”,行政区为“叠加” | 得到行政区被切割的碎片 |
| 输出声明 | 裁剪输出设为模型输出并命名 | 运行后无结果图层可引用 |
| 参数来源 | 图层类参数绑定到模型输入 | 写死文件路径,换数据即失效 |
完成这个最小模型后,你已经掌握了模型设计器的核心操作:用输入定义接口、用算法框组织处理、用连线表达数据流、用输出交付结果。后续更复杂的模型,本质上都是在这条骨架上增加分支、循环与条件判断。建议先把本节模型保存好,再用不同行政区数据运行两三次,观察参数绑定带来的复用效果——这比记住界面按钮位置更有价值。