Сохранение результатов обработки в файл с использованием QGIS modeler?

9

Из модели я хотел бы сохранить результаты обработки в файл. В моей модели у меня есть несколько Extract by locationалгоритмов (с двумя векторными входами), которые дают приемлемые результаты, но только в качестве временных слоев, которые мне приходится Save as...вручную, что для кучки анализов утомительно и требует много времени.

Лучше всего, я бы хотел указать путь к моей модели, где мои результаты сохраняются в виде шейп-файлов (на первом этапе).

Это модель. Обратите внимание, что выходной вектор (файл) не может соединиться ни с одним из результатов обработки:

введите описание изображения здесь

Как видно на скриншотах a), мы можем передать имя для конечного результата, но не файл, даже в Save selected featuresалгоритме b).

а) введите описание изображения здесь

б) введите описание изображения здесь

У меня есть смутное представление о том, как добиться этого с помощью скрипта Python, но можно ли это сделать с помощью комбинации существующих инструментов?

Йохен Шварце
источник

Ответы:

6

Если вы хотите передать путь в вашей модели, чтобы сохранить ваши шейп-файлы, вместо того, чтобы делать это вручную, возможно, вам подойдет пользовательский скрипт . Вы можете написать скрипт для запуска инструмента « Извлечь по местоположению» и определить путь к выводу. Возможно, что-то вроде этого:

##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)

Замените инструменты извлечения по местоположению в вашей модели этим скриптом, и он сохранит результаты в шейп-файл по указанному вами пути.

Джозеф
источник
5

QGIS modeler рассматривает любой инструмент как промежуточный, который не сохраняет выходные данные, если не указано иное.

Чтобы заставить модель экспортировать результат, вы должны ввести имя вывода слоя в строке Tool.

введите описание изображения здесь

Если я хочу экспортировать приведенный выше результат как слой, я ввожу значение в выводе так: введите описание изображения здесь

Что это делает, это добавляет диалоговое окно, когда вы запускаете инструмент, который вы можете установить выходной файл:

введите описание изображения здесь

Сама модель показывает типы данных с цветами: фиолетовый для входов, голубой для выходов

HDunn
источник
1
Это действительно так, но это то же самое, что оставить выходные векторы как временные файлы и затем выполнить их rightclick > Save As...для каждого из них.
Йохен Шварц