Mehr

Qgis-processing: wie kann man optionale Ausgaben angeben?

Qgis-processing: wie kann man optionale Ausgaben angeben?


Angenommen, ein Skript hat eine variable Anzahl von Ausgaben, die je nach Einstellungen erzeugt werden können oder nicht:

##Input_layer=vector ##Output_1=Ausgabevektor ##Produce_output_2=boolean ##Output_2=Ausgabevektor von qgis.core import * def create_my_output(path): # was auch immer… create_my_output(Output_1) if Produce_output_2: create_my_output(Output_2)

Wenn dieses Skript mit deaktiviertem "Ausgabe 2 produzieren" ausgeführt wird, zeigt QGIS einen Warndialog an, der besagt, dass Ausgabe 2 nicht korrekt produziert wurde, obwohl das Nicht-Erzeugen von Ausgabe 2 eindeutig beabsichtigtes Verhalten war.

Gibt es eine Möglichkeit QGIS mitzuteilen, dass eine Ausgabe optional ist?


Erste Alternative:

Du könntest das Häkchen entfernen Ausgabedatei öffnen, nachdem der Algorithmus ausgeführt wurde Option, wenn Sie das Häkchen entfernenProduzieren Sie Ausgabe 2.

Wie Sie in Ihrem Kommentar erwähnt haben, kann QGIS diese Ausgabe nicht laden, wenn sie nicht vom Algorithmus verarbeitet wird. Daher sollte das Deaktivieren der Option zum Laden funktionieren, ohne dass eine Fehlermeldung angezeigt wird.


Zweite Alternative:

BenutzenAusgabedateiAnstatt vonAusgabevektorfür "Ausgang_2". QGIS lädt dies nicht sofort, wenn es verarbeitet wird, was bedeutet, dass Sie hinzufügen könnenLaufen und Ladenin den Algorithmus. Und wenn es nicht verarbeitet wird, macht QGIS kein Aufhebens. Ich habe ein einfaches Pufferskript mit Ihren Definitionen erstellt:

##Input_layer=Vektor ##Output_1=Ausgabevektor ##Output_2=Ausgabedatei ##Produce_output_2=boolean processing.runalg("qgis:fixeddistancebuffer", Input_layer, 0.01, 10, False, Output_1) if Produce_output_2 == True: Verarbeitung. runandload("qgis:fixeddistancebuffer", Input_layer, 1.00, 10, False, Output_2) else: pass

Hoffe das hilft etwas!


Schau das Video: QGIS การตดขอมลเวกเตอรในโปรแกรม QGIS How to clip vector layer by QGIS