如何在QGIS中创建计算字段后直接覆盖原输入图层的模型
你的需求完全可以实现,QGIS模型构建器支持原地修改输入图层,不需要生成额外临时图层或新图层,同时可以保留图层面板中原有的图层条目。
注意:原地修改数据源存在数据丢失风险,运行模型前请先备份原点图层的源文件。
具体实现步骤
1. 新建模型并配置输入参数
- 打开QGIS顶部菜单栏「处理」→「模型构建器」,创建空白模型
- 在左侧「输入参数」面板选择「矢量图层」,拖拽到模型画布中,参数配置如下:
- 参数名称:
待修改点图层A - 几何类型:仅勾选「点」
- 勾选「必填」选项,确认保存
- 参数名称:
2. 添加原地字段计算节点
- 在右侧算法搜索栏搜索
字段计算器,选择**「字段计算器(原地编辑)」**算法(QGIS 3.14及以上版本内置,专门用于直接修改源图层不生成新输出),拖拽到画布中:- 「输入图层」选择上一步创建的
待修改点图层A参数 - 「字段名称」填
x,字段类型选择浮点型,精度按需设置 - 「表达式」输入
$x,确认配置
- 「输入图层」选择上一步创建的
- 再添加一个相同的
字段计算器(原地编辑)算法节点,参数配置如下:- 「输入图层」选择上一个字段计算器的输出(本质还是原输入图层)
- 「字段名称」填
y,字段类型选择浮点型 - 「表达式」输入
$y,确认配置
- 如果需要新增其他自定义字段,重复上述步骤修改字段名和对应表达式即可
3. 配置模型输出(核心配置,避免生成新图层)
- 选中最后一个字段计算器节点的输出项,右键点击「删除输出」,不要为模型设置任何矢量图层输出项
- 给模型命名、保存后即可运行,运行时选择你需要修改的点图层A,运行完成后原图层会直接新增配置的字段,图层面板的原有图层条目不会发生变化
低版本QGIS兼容方案
如果你的QGIS版本低于3.14找不到字段计算器(原地编辑)算法,可以替换使用修改特征属性算法,表达式配置逻辑和上述步骤完全一致,同样可以实现原地修改图层的效果。
内容的提问来源于stack exchange,提问作者john Dilinller
相关产品推荐
相关产品推荐

