Erstellen des QGIS-Plugins ab Graphical Modeler

Sep 12 2020

Ich möchte wissen, wie ich ein QGIS-Plugin ausgehend von einem Modell erstellen kann, das mit dem grafischen Modellierer erstellt wurde. Ist es möglich oder muss ich unbedingt Skripte verwenden, die Python in der Konsole von QGIS erstellt hat?

Irgendwelche Vorschläge? Ich muss "Plugin Builder" verwenden?

Antworten

3 nr_aus Oct 01 2020 at 12:23

Ja, das kannst du sicher.

Überprüfen Sie hier, ob Sie eine ältere Version von Python verwenden. Modelle von QGIS in Python-Skripte konvertieren?

Ich verwende 3.14 und im Modell-Designer befindet sich oben eine Schaltfläche mit dem Namen "Als Skriptalgorithmus exportieren". Drücken Sie das.

2 LeonPowałka Oct 01 2020 at 13:07

In der Praxis kommt es darauf an, Ihr Modell als Python-Skript zu exportieren, ein Plugin mit PluginBuilder zu erstellen und Ihren Code in den erstellten Plugin-Code zu kopieren. Obwohl dies mit einem einzigen Klick eine gute Idee für ein neues Plugin ist :). Alles wird in diesem Beitrag Konvertieren des Modells in Plug-in in QGIS erklärt

1 DavidGalt Dec 20 2020 at 10:21

Sie können Modelle tatsächlich in Plugins verpacken, ohne sie in Skripte konvertieren zu müssen.

Um dies zu tun:

  1. Verwenden Sie den Plugin Builder (selbst ein QGIS-Plugin), um ein Plugin für die Starterverarbeitung zu erstellen

  2. Öffnen Sie die Provider-Datei (* provider.py) in einem Texteditor

  3. Finden Sie die Linie:

aus qgis.core QgsProcessingProvider importieren

und darunter die Zeilen hinzufügen:

aus qgis.core importiere QgsProcessingModelAlgorithm

os importieren

  1. Fügen Sie unter dem Modul loadAlgorythms (def loadAlgorithms (self) :) die folgenden Codezeilen hinzu:
for dirpath, dirnames, files in os.walk(os.path.dirname(__file__)):
    for file_name in files:
        if file_name.lower().endswith('.model3'):
            alg = QgsProcessingModelAlgorithm()
            alg.fromFile(os.path.join(dirpath, file_name))
            self.addAlgorithm(alg)

Der obige Code durchsucht den Plugin-Ordner und alle Unterordner und verweist auf Modelldateien, wenn er diese findet. Ab diesem Zeitpunkt müssen Sie zum Hinzufügen von Modellen zu diesem Plugin nur noch das Plugin-Verzeichnis ablegen.