Speichern von Verarbeitungsergebnissen in einer Datei mit QGIS Modeler?

9

Von einem Modell möchte ich Verarbeitungsergebnisse in einer Datei speichern. In meinem Modell habe ich einige Extract by locationAlgorithmen (mit zwei Vektoreingaben), die vernünftige Ergebnisse liefern, aber nur als temporäre Ebenen, die ich Save as...manuell erstellen muss, was für einen Stapel von Analysen störend und zeitaufwändig ist.

Am besten möchte ich einen Pfad zu meinem Modell übergeben, in dem meine Ergebnisse als Shapefiles gespeichert werden (in einem ersten Schritt).

Dies ist das Modell. Beachten Sie, dass der Ausgabevektor (Datei) keine Verbindung zu einem der Verarbeitungsergebnisse herstellen kann:

Geben Sie hier die Bildbeschreibung ein

Wie in den Screenshots a) zu sehen ist, können wir einen Namen für ein Endergebnis übergeben, aber keine Datei, selbst im Save selected featuresAlgorithmus b).

ein) Geben Sie hier die Bildbeschreibung ein

b) Geben Sie hier die Bildbeschreibung ein

Ich habe eine vage Vorstellung davon, wie dies mit einem Python-Skript erreicht werden kann. Kann dies jedoch mit einer Kombination vorhandener Tools erfolgen?

Jochen Schwarze
quelle

Antworten:

6

Wenn Sie einen Pfad in Ihrem Modell übergeben möchten, in dem Ihre Shapefiles gespeichert werden sollen, anstatt dies manuell zu tun, ist wahrscheinlich ein benutzerdefiniertes Skript der richtige Weg. Sie können ein Skript schreiben, um das Tool Nach Ort extrahieren auszuführen und den Pfad der Ausgabe zu definieren. So etwas vielleicht:

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

Ersetzen Sie die Werkzeuge Nach Ort extrahieren in Ihrem Modell durch dieses Skript, und die Ergebnisse werden in einem Shapefile im angegebenen Pfad gespeichert.

Joseph
quelle
5

Der QGIS-Modellierer behandelt jedes Tool als Zwischenprodukt, das keine Ausgabe speichert, sofern nicht anders angegeben.

Um das Modell zum Exportieren eines Ergebnisses zu zwingen, müssen Sie einen Namen für die Ebenenausgabe in die Zeile Werkzeug eingeben.

Geben Sie hier die Bildbeschreibung ein

Wenn ich das obige Ergebnis als Ebene exportieren möchte, gebe ich einen Wert in die Ausgabe wie folgt ein: Geben Sie hier die Bildbeschreibung ein

Fügen Sie dazu ein Dialoge-Feld hinzu, wenn Sie das Tool ausführen, mit dem Sie die Ausgabedatei festlegen können:

Geben Sie hier die Bildbeschreibung ein

Das Modell selbst zeigt die Datentypen mit Farben: lila für Eingaben, cyan für Ausgaben

HDunn
quelle
1
Dies ist zwar richtig, aber es ist der gleiche Aufwand, die Ausgabevektoren als temporäre Dateien zu belassen und dann rightclick > Save As...für jede von ihnen zu tun .
Jochen Schwarze