使用QGIS Modeler将处理结果保存到文件中吗?


9

我想从模型中将处理结果保存到文件中。在我的模型中,我有一些Extract by location算法(带有两个矢量输入)可以产生合理的结果,但只能作为临时层,我必须Save as...手动进行,这对于大量的分析来说既麻烦又费时。

最好,我想传递一个路径到我的模型,在这里我的结果保存为shapefile(第一步)。

这就是模型。请注意,输出向量(文件)无法连接到任何处理结果:

在此处输入图片说明

从屏幕快照a)中可以看出,即使在Save selected features算法b)中,我们也可以传递最终结果的名称,而不是文件。

一个) 在此处输入图片说明

b) 在此处输入图片说明

我有一个模糊的想法,如何使用python脚本实现此目标,但是可以结合使用现有工具吗?

Answers:


6

如果您要传递模型中的路径以将shapefile保存到其中,而不是手动进行操作,则可以使用自定义脚本。您可以编写脚本来运行按位置提取工具并定义输出的路径。大概是这样的:

##Extract_by_location=name
##Layer=vector
##Additional_layer=vector

layer = processing.getObject(Layer)
output_path = "C:/Users/You/Desktop/" + layer.name() + ".shp"

processing.runalg("qgis:extractbylocation", Layer, Additional_layer, u'contains', 0.00, output_path)

使用此脚本替换模型中的按位置提取工具,它将把结果保存到指定路径中的shapefile中。


5

除非另有说明,否则QGIS Modeler会将任何工具视为不保存任何输出的中间工具。

要强制模型导出结果,必须在“工具”行中输入图层输出名称。

在此处输入图片说明

如果要将以上结果导出为图层,请在输出中输入一个值,如下所示: 在此处输入图片说明

这是在运行可以设置输出文件的工具时添加一个对话框:

在此处输入图片说明

模型本身使用颜色显示数据类型:紫色表示输入,青色表示输出


1
确实是这样,但是这与将输出向量保留为临时文件然后rightclick > Save As...对它们进行处理的工作量相同。
Jochen Schwarze
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.