¿Guardar resultados de procesamiento en un archivo usando QGIS modeler?

9

Desde un modelo, me gustaría guardar los resultados de procesamiento en un archivo. En mi modelo, tengo algunos Extract by locationalgoritmos (con dos entradas de vector) que producen resultados razonables, pero solo como capas temporales, lo que tengo que hacer Save as...manualmente, lo que para una pila de análisis es molesto y requiere mucho tiempo.

Lo mejor es que me gustaría pasar una ruta a mi modelo, donde mis resultados se guardan como archivos de forma (en un primer paso).

Este es el modelo. Tenga en cuenta que el vector de salida (archivo) no puede conectarse a ninguno de los resultados de procesamiento:

ingrese la descripción de la imagen aquí

Como se puede ver en las capturas de pantalla a), podemos pasar un nombre para un resultado final, pero no un archivo, incluso en el Save selected featuresalgoritmo b).

una) ingrese la descripción de la imagen aquí

si) ingrese la descripción de la imagen aquí

Tengo una vaga idea de cómo lograr esto con un script de Python, pero ¿se puede hacer esto con una combinación de herramientas existentes?

Jochen Schwarze
fuente

Respuestas:

6

Si desea pasar una ruta en su modelo para guardar sus archivos de forma en lugar de hacerlo manualmente, un guión personalizado es probablemente el camino a seguir. Puede escribir un script para ejecutar la herramienta Extraer por ubicación y definir la ruta de la salida. Algo como esto quizás:

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

Reemplace las herramientas Extraer por ubicación en su modelo con este script y guardará los resultados en un archivo de forma en la ruta que especificó.

José
fuente
5

El modelador QGIS trata cualquier herramienta como intermedia que no guarda ningún resultado, a menos que se indique lo contrario.

Para forzar al modelo a exportar un resultado, debe ingresar un nombre de salida de capa en la fila Herramienta.

ingrese la descripción de la imagen aquí

Si quiero exportar el resultado anterior como una capa, ingreso un valor en la salida de la siguiente manera: ingrese la descripción de la imagen aquí

Lo que esto hace es agregar un cuadro de diálogo cuando ejecuta la herramienta que puede configurar el archivo de salida:

ingrese la descripción de la imagen aquí

El modelo en sí muestra los tipos de datos con colores: púrpura para entradas, cian para salidas

HDunn
fuente
1
Esto es cierto, pero es el mismo esfuerzo que dejar los vectores de salida como archivos temporales y luego hacer rightclick > Save As...para cada uno de ellos.
Jochen Schwarze