Sauvegarder les résultats de traitement dans un fichier à l'aide de QGIS modeler?

9

A partir d'un modèle, je voudrais enregistrer les résultats du traitement dans un fichier. Dans mon modèle, j'ai quelques Extract by locationalgorithmes (avec deux entrées vectorielles) produisant des résultats raisonnables, mais uniquement en tant que couches temporaires, que je dois Save as...manuellement, ce qui pour une pile d'analyses est gênant et prend du temps.

Mieux, je voudrais passer un chemin vers mon modèle, où mes résultats sont enregistrés sous forme de fichiers de formes (dans un premier temps).

Voici le modèle. Notez que le vecteur de sortie (fichier) ne peut se connecter à aucun des résultats de traitement:

entrez la description de l'image ici

Comme on peut le voir sur les captures d'écran a), nous pouvons passer un nom pour un résultat final, mais pas un fichier, même dans l' Save selected featuresalgorithme b).

une) entrez la description de l'image ici

b) entrez la description de l'image ici

J'ai une vague idée de comment y parvenir avec un script python, mais cela peut-il être fait avec une combinaison d'outils existants?

Jochen Schwarze
la source

Réponses:

6

Si vous souhaitez passer un chemin dans votre modèle dans lequel enregistrer vos fichiers de formes au lieu de le faire manuellement, un script personnalisé est probablement le chemin à parcourir. Vous pouvez écrire un script pour exécuter l' outil Extraire par emplacement et définir le chemin de la sortie. Quelque chose comme ça peut-être:

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

Remplacez les outils d' extraction par emplacement dans votre modèle par ce script et il enregistrera les résultats dans un fichier de formes dans le chemin que vous avez spécifié.

Joseph
la source
5

Le modélisateur QGIS traite tout outil comme intermédiaire qui n'enregistre aucune sortie, sauf indication contraire.

Pour forcer le modèle à exporter un résultat, vous devez saisir un nom de sortie de calque dans la ligne Outil.

entrez la description de l'image ici

Si je veux exporter le résultat ci-dessus en tant que couche, j'entre une valeur dans la sortie comme suit: entrez la description de l'image ici

Ce que cela fait, c'est ajouter une boîte de dialogue lorsque vous exécutez l'outil que vous pouvez définir le fichier de sortie:

entrez la description de l'image ici

Le modèle lui-même montre les types de données avec des couleurs: violet pour les entrées, cyan pour les sorties

HDunn
la source
1
C'est vrai en effet, mais c'est le même effort que de laisser les vecteurs de sortie en tant que fichiers temporaires et de faire ensuite rightclick > Save As...pour chacun d'eux.
Jochen Schwarze