22.5. Die Grafische Modellierung

Der Grafische Modellierer ermöglicht es Ihnen, komplexe Modelle über eine einfache und leicht zu bedienende Schnittstelle zu erstellen. Wenn Sie mit einem GIS arbeiten, sind die meisten Analyseoperationen nicht isoliert, sondern Teil einer Kette von Operationen. Mit dem grafischen Modellierer kann diese Kette von Operationen in einen einzigen Prozess verpackt werden, so dass sie später bequem mit einem anderen Satz von Eingaben ausgeführt werden kann. Unabhängig davon, wie viele Schritte und verschiedene Algorithmen es umfasst, wird ein Modell als ein einziger Algorithmus ausgeführt, was Zeit und Mühe spart.

Der grafische Modellierer kann über das Menü Verarbeitung geöffnet werden (Verarbeitung ▶ Grafische Modellierung).

Der Modellierer hat eine Arbeitsfläche, auf der die Struktur des Modells und der Arbeitsablauf, den es repräsentiert, gezeigt werden. Der linke Teil des Fensters ist ein Bereich mit zwei Registerkarten, die zum Hinzufügen neuer Elemente zum Modell verwendet werden können.

../../../_images/modeler_canvas.png

Abb. 22.18 Modellierung

Das Erstellen eines Modells geht in zwei Schritten:

  1. Definition von erforderlichen Eingaben. Diese Eingaben werden dem Paramterfenster hinzugefügt, so dass der Anwender Ihre Werte einstellen kann wenn er das Modell ausführt. Das Modell selber ist ein Algorithmus, also wird das Parameterfenster automatisch erstellt, so wie es mit allen Algorithmen, die in der Verarbeiten Umgebung zur Verfügung stehen, passiert.

  2. Definition des Arbeitsablaufs. Der Arbeitsablauf wird definiert, indem Algorithmen hinzugefügt werden. In diesen wird festgelegt, wie sie die definierten Eingaben oder die von anderen Algorithmen im Modell erzeugten Ausgaben verwenden.

22.5.1. Definition von Eingaben

Der erste Schritt besteht darin, die Eingaben für das Modell zu definieren. Die folgenden Elemente befinden sich auf der Registerkarte :guilabel: Eingaben auf der linken Seite des Modellierfensters:

  • Authentifikationskonfiguration

  • Boolean

  • KBS

  • Farbe

  • Abstand

  • Aufzählung

  • Ausdruck

  • Ausdehnung

  • Feldabbildung

  • Datei/Ordner

  • Kartenlayer

  • Matrix

  • Mehrfacheingabe

  • Number

  • Punkt

  • Drucklayout

  • Drucklayout Element

  • Bereich

  • Rasterkanal

  • Rasterlayer

  • Maßstab

  • Zeichenkette

  • Vektorobjekte

  • Vektorfeld

  • Vektorlayer

Wenn Sie auf ein Element doppelklicken, wird ein Dialog angezeigt, in dem Sie seine Eigenschaften definieren können. Je nach Parameter enthält der Dialog mindestens ein Grundelement (die Beschreibung, die der Benutzer bei der Ausführung des Modells sieht). Wenn Sie einen numerischen Wert hinzufügen, wie in der nächsten Abbildung zu sehen ist, müssen Sie, zusätzlich zur Beschreibung des Parameters, einen Standardwert und den Bereich der gültigen Werte festlegen.

../../../_images/models_parameters.png

Abb. 22.19 Definition der Modellparameter

Sie können Ihre Eingabe als zwingend für Ihr Modell definieren, indem Sie das Kontrollkästchen checkboxZwingend ankreuzen. Durch Ankreuzen des Kontrollkästchens unchecked:sup: Erweitert können Sie die Eingabe so einstellen, dass sie sich im Abschnitt Erweitert befindet. Dies ist besonders nützlich, wenn das Modell viele Parameter hat und einige davon nicht trivial sind, Sie diese aber dennoch wählen möchten. Für jede hinzugefügte Eingabe wird der Modellierungsebene ein neues Element hinzugefügt.

../../../_images/models_parameters2.png

Abb. 22.20 Modellparameter

Sie können Eingaben auch hinzufügen, indem Sie den Eingabetyp aus der Liste an die gewünschten Stelle im Modellierungsfenster ziehen.

22.5.2. Definition des Arbeitsablaufs

Sobald die Eingaben definiert sind, ist es an der Zeit, die Algorithmen des Modells zu definieren. Die Algorithmen finden Sie auf der Registerkarte Algorithmen, ähnlich gruppiert wie in der Verarbeitungs-Werkzeugkiste.

../../../_images/models_parameters3.png

Abb. 22.21 Modell-Eingaben

Um einen Algorithmus zu einem Modell hinzuzufügen, doppelklicken Sie auf seinen Namen oder ziehen Sie ihn per Drag & Drop, genau wie bei Eingaben. Es erscheint ein Ausführungsdialogfeld mit einem ähnlichen Inhalt wie das Ausführungsfenster, das angezeigt wird, wenn der Algorithmus aus der Werkzeugkiste ausgeführt wird. Die nebenan gezeigten entsprechen dem QGIS-Algorithmus ‚Drapieren (Z-Wert von Raster übernehmen)‘ und dem QGIS-Algorithmus ‚Entlang Linie klettern‘.

../../../_images/models_parameters4.png

Abb. 22.22 Modell-Algorithmus-Parameter

Wie Sie sehen können bestehen einige Unterschiede. Anstelle des Dateiausgabefensters, das für die Einstellung des Dateipfades für Ausgabelayer und -tabellen verwendet wurde, wird hier eine einfaches Textfenster verwendet. Wenn der vom Algorithmus erstellte Layer nur ein vorläufiges Ergebnis ist, das als Eingabe für einen anderen Algorithmus verwendet wird und nicht als endgültiges Ergebnis vorgehalten werden soll, bearbeiten Sie dieses Textfenster nicht. Wenn Sie etwas eingeben heißt das, dass das Ergebnis endgültig ist und dass der Text den Sie vergeben die Beschreibung für die Ausgabe, die die Ausgabe ist, die der Benutzer sieht wenn das Modell ausgeführt wird, ist.

Das Auswählen des Wertes für jeden Parameter ist ebenfalls etwas schwierig, da es wichtige Unterschiede zwischen dem Kontext der Modellierung und der der Werkzeugkiste gibt. Wollen wir sehen wie man die Werte für jeden Typ von Parameter vorstellen.

  • Layer (Raster und Vektor) und Tabellen. Sie werden aus einer Liste ausgewählt, aber in diesem Fall sind die möglichen Werte nicht die Layer oder Tabellen, die momentan in QGIS geladen sind, sondern die Liste der Modelleingaben des entsprechenden Typs oder andere Layer oder Tabellen, die durch Algorithmen bereits erzeugt und zum Modell hinzugefügt wurden.

  • Numerische Werte. Feste Werte können direkt in das Textfeld eingegeben werden. Durch Klicken auf die Schaltfläche neben dem Textfeld können Ausdrücke eingegeben werden. Zu den verfügbaren Variablen für Ausdrücke gehören numerische Eingaben des Modells, Ausgaben von Modellalgorithmen und auch statistische Werte aus verfügbaren Ebenen innerhalb des Modells.

  • Zeichenkette. Feste Zeichenfolgen können in das entsprechende Textfeld eingegeben werden. Durch Klicken auf die Schaltfläche neben dem Textfeld können Ausdrücke wie bei numerischen Werten eingegeben werden.

  • Vektorfeld. Die Feldwerte eines Vektorlayers können bei der Modellierung nicht bekannt sein, da sie bei jeder Ausführung des Modells von der Auswahl des Benutzers abhängen. Um den Wert für diesen Parameter festzulegen, geben Sie den Namen eines Feldes direkt in das Textfeld ein oder verwenden Sie die Liste, um ein Tabellenfeld auszuwählen. Die Gültigkeit des ausgewählten Feldes wird zur Laufzeit überprüft.

Sie werden in jedem Fall einen zusätzlichen Paramter genannt Parent algorithms, der nicht zugänglich ist wenn Sie den Algorithmus aus der Werkzeugkiste aufrufen, finden. Dieser Parameter ermöglicht es Ihnen die Reihenfolge in welcher die Algorithmen ausgeführt werden, indem ein Algorithmus ausdrücklich als Eltern des aktuellen definiert werden, festzulegen. Dies bewirkt, dass der Elternalgorithmus vor dem aktuellen ausgeführt wird.

Wenn Sie die Ausgabe eines vorherigen Algorithmus als Eingabe Ihres Algorithmus verwenden, wird der vorherige Algorithmus implizit als übergeordneter Algorithmus des aktuellen festgelegt (und der entsprechende Pfeil im Modellierungsfenster platziert). In einigen Fällen kann ein Algorithmus jedoch von einem anderen Algorithmus abhängen, selbst wenn er kein Ausgabeobjekt von diesem verwendet (z.B. ein Algorithmus, der einen SQL-Satz auf einer PostGIS-Datenbank ausführt und ein anderer, der einen Layer in dieselbe Datenbank importiert). In diesem Fall wählen Sie einfach den vorherigen Algorithmus im Parameter Parent algorithms aus und sie werden in der richtigen Reihenfolge ausgeführt.

Sobald allen Parametern gültige Werte zugewiesen wurden, klicken Sie auf OK und der Algorithmus wird der Oberfläche hinzugefügt. Er wird mit den Elementen auf der Oberfläche (Algorithmen oder Eingaben) verknüpft, die Objekte liefern, die als Eingaben für den Algorithmus verwendet werden.

Elemente können an eine andere Position auf der Oberfläche gezogen werden. Dies ist nützlich, um die Struktur des Modells klarer und intuitiver zu gestalten. Verknüpfungen zwischen Elementen werden automatisch aktualisiert. Sie können mit dem Mausrad hinein- und herauszoomen.

../../../_images/models_model.png

Abb. 22.23 Ein komplettes Modell

Sie können Ihren Algorithmus jederzeit ausführen, indem Sie auf die Schaltfläche Run klicken. Um den Algorithmus aus der Toolbox heraus zu verwenden, muss er gespeichert und der Modellierdialog geschlossen werden, damit die Toolbox ihren Inhalt aktualisieren kann.

22.5.3. Speichern und laden von Modellen

Verwenden Sie die Schaltfläche Speichern, um das aktuelle Modell zu speichern, und die Schaltfläche Öffnen, um ein zuvor gespeichertes Modell zu öffnen. Modelle werden mit der Erweiterung .model3 gespeichert. Wenn das Modell bereits vom Modellierer-Fenster aus gespeichert wurde, werden Sie nicht zur Eingabe eines Dateinamens aufgefordert. Da mit dem Modell bereits eine Datei verknüpft ist, wird diese Datei für spätere Speicherungen verwendet.

Bevor Sie ein Modell speichern, müssen Sie in den Textfeldern im oberen Teil des Fensters einen Namen und eine Gruppe für das Modell eingeben.

Modelle, die im Ordner models gespeichert sind (der Standardordner, wenn Sie zur Eingabe eines Dateinamens zum Speichern des Modells aufgefordert werden), erscheinen in der Toolbox in der entsprechenden Rubrik. Wenn die Toolbox aufgerufen wird, durchsucht sie den Ordner models nach Dateien mit der Erweiterung .model3 und lädt die darin enthaltenen Modelle. Da ein Modell selbst ein Algorithmus ist, kann es wie jeder andere Algorithmus zur Toolbox hinzugefügt werden.

Modelle können auch innerhalb der Projektdatei mit der Schaltfläche addToProjectModell im Projekt speichern gespeichert werden. Modelle, die mit dieser Methode gespeichert werden, werden nicht als :file:``.model3` Dateien auf die Platte geschrieben, sondern in die Projektdatei eingebettet.

Projektmodelle sind im Menü qgsProjectFileProjektmodelle der Toolbox verfügbar.

Die Verarbeitungsmodellierung kann im Verarbeitungskonfigurationsdialog in der Models Gruppe eingestellt werden.

Modelle, die aus dem Ordner models geladen wurden, erscheinen nicht nur in der Toolbox, sondern auch in der Algorithmenliste im Reiter Algorithms des Modellierfensters. Das bedeutet, dass Sie ein Modell als Teil eines größeren Modells einbinden können, genau wie andere Algorithmen.

Die Modelle werden im Panel Browser angezeigt und können von dort aus gestartet werden.

22.5.3.1. Exportieren eines Modells als Bild, PDF oder SVG

Ein Modell kann auch als Bild, SVG oder PDF (zur Darstellung) exportiert werden.

22.5.4. Ein Modell editieren

Sie können das Modell, das Sie gerade erstellen, bearbeiten und dabei den Workflow und die Beziehungen zwischen den Algorithmen und Eingaben, die das Modell definieren, ändern.

Wenn Sie mit der rechten Maustaste auf einen Algorithmus in der Leinwand klicken, sehen Sie ein Kontextmenü wie das folgende:

../../../_images/modeler_right_click.png

Abb. 22.24 Rechtsklick auf den Modeler

Wird die Remove Option gewählt, bewirkt dies, dass der ausgewählte Algorithmus entfernt wird. Ein Algorithmus kann nur entfernt werden wenn keine weiteren Algorithmen von ihm abhängen. Das heißt, wenn keine Ausgabe des Algorithmus in einem anderen als Eingabe verwendet wird. Wenn Sie versuchen einen Algorithmus, von dem andere abhängen, zu entfernen, wird eine Warnmeldung wie die, die Sie unten sehen können, gezeigt:

../../../_images/cannot_delete_alg.png

Abb. 22.25 Kann Algorithmus nicht entfernen

Wenn Sie die Option :guilabel: Bearbeiten wählen, wird der Parameterdialog des Algorithmus angezeigt, so dass Sie die Eingaben und Parameterwerte ändern können. Es werden nicht alle im Modell verfügbaren Eingabeelemente als verfügbare Eingaben angezeigt. Layer oder Werte, die bei einem weiter entwickelten Schritt des Arbeitsablaufes erzeugt wurden, sind nicht verfügbar, wenn sie zirkuläre Abhängigkeiten verursachen.

Wählen Sie die neuen Werte aus und klicken Sie wie gewohnt auf die Schaltfläche OK. Die Verbindungen zwischen den Modellelementen ändern sich in der Modellierungsarbeitsfläche entsprechend.

Ein Modell kann teilweise ausgeführt werden, indem einige der Algorithmen deaktiviert werden. Um dies zu machen, rechtsklicken Sie auf ein Algorithmus Element und wählen Sie Deaktivieren. Der ausgewählte Algorithmus und alle diejenigen, die in dem Modell von ihm abhängen werden in grau angezeigt und nicht als Teil des Modells ausgeführt.

../../../_images/deactivated.png

Abb. 22.26 Modell mit deaktivierten Algorithmen

Wenn Sie mit der rechten Maustaste auf einen Algorithmus klicken, der nicht aktiv ist, sehen Sie die Menüoption :guilabel: Aktivieren, mit der Sie den Algorithmus reaktivieren können.

22.5.5. Editieren der Modell-Hilfe Datei und der Metainformationen

Sie können Ihre Modelle im Modellierer selbst dokumentieren. Klicken Sie einfach auf die Schaltfläche Modellhilfe bearbeiten, und es erscheint ein Dialog wie der folgende.

../../../_images/help_edition.png

Abb. 22.27 Hilfe bearbeiten

Auf der rechten Seite finden Sie eine einfache HTML-Seite, die anhand der Eingabeparameter und Ausgaben des Algorithmus erstellt wurde, zusammen mit einigen zusätzlichen Einträgen wie eine allgemeine Beschreibung des Modells und seines Autors. Wenn Sie den Hilfeeditor das erste Mal öffnen, sind alle diese Beschreibungen leer, Sie können Sie aber mit Hilfe der Elemente auf der linken Seite des Dialogs bearbeiten. Wählen Sie ein Element im oberen Teil aus und schreiben Sie seine Beschreibung in das Textfeld unten.

Modell-Hilfe wird als Teil des Modells selbst gespeichert.

22.5.6. Exportieren eines Modells als Python Skript

Wie wir in einem späteren Kapitel sehen werden, können Verarbeitungsalgorithmen von der QGIS-Python-Konsole aufgerufen werden, und neue Verarbeitungsalgorithmen können mit Python erstellt werden. Ein schneller Weg, ein solches Python-Skript zu erstellen, ist die Erstellung eines Modells und der anschließende Export als Python-Datei.

Klicken Sie dazu mit der rechten Maustaste auf den Namen des Modells in der Processing Toolbox und wählen Sie Modell als Python-Algorithmus exportieren….

22.5.7. Zu den verfügbaren Algorithmen

Möglicherweise stellen Sie fest, dass einige Algorithmen, die über die Toolbox ausgeführt werden können, beim Entwurf eines Modells nicht in der Liste der verfügbaren Algorithmen erscheinen. Um in ein Modell aufgenommen zu werden, muss ein Algorithmus die richtige Semantik haben. Wenn ein Algorithmus nicht über eine so gut definierte Semantik verfügt (z. B. wenn die Anzahl der Ausgabelayer nicht im Voraus bekannt ist), kann er nicht in einem Modell verwendet werden, und er erscheint nicht in der Liste der Algorithmen, die Sie im Modellierungsdialog finden.