` `
Die grafische Modellierung ermöglicht es, komplexe Modelle mit einer einfachen und leicht zu bedienenden Benutzeroberfläche zu erstellen. Beim Arbeiten mit einem GIS finden die meisten Analyse-Operationen nicht isoliert, sondern als Teil einer Kette von Operationen statt. Der grafische Modeller kann eine Kette von Prozessen in einen einzigen Prozess einpacken. So ist es einfacher und bequemer, als einzelne Prozesse nacheinander auszuführen. Egal, wie viele Schritte und verschiedene Algorithmen es sind, sie können als Modell in einem einzigen Algorithmus ausgeführt werden. Das spart Zeit und Mühe, besonders für größere Modelle.
Die Modellierung kann aus dem Verarbeiten Menü heraus geöffnet werden.
Der Modeller hat einen Arbeitsdialog, wo die Struktur des Modells und der Workflow dargestellt wird. Auf der linken Seite des Fensters kann ein Bereich mit zwei Reitern verwendet werden, um neue Elemente in das Modell zu integrieren.
Das Erstellen eines Modells geht in zwei Schritten:
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.
Definition des Workflows. Während Sie die Eingabedaten des Modells verwenden, wird der Workflow durch Hinzufügen von Algorithmen und Auswählen, wie diese Eingaben und Ausgaben, die von anderen Algorithmen erzeugt werden, benutzt werden, definiert.
Der Erste Schritt ein Modell zu erstellen ist die Eingaben, die es benötigt zu erstellen. Die folgenden Elemente finden Sie im Eingaben Reiter auf der linken Seite des Modellierungsfensters:
Rasterlayer
Vektorlayer
Text
Tabellenspalte
Tabelle
Wenn man einen Doppelklick auf eines dieser Elemente macht wird ein Dialog zum Definieren seiner Eigenschaften gezeigt. Abhängig vom Parameter selber kann der Dialog nur ein grundlegendes Element (die Beschreibung, was der Benutzer sehen wird wenn er das Modell ausführt) oder mehrere beinhalten. Beispielsweise wenn man einen numerischen Wert hinzufügt, wie in der nächsten Abbildung gezeigt, müssen Sie neben der Beschreibung des Parameters einen Standardwert und eine Wertespanne von gültigen Werten einstellen.
Für jede Eingabe wird ein neues Element im Modeller-Fenster erstellt.
Sie können auch Eingaben hinzufügen, indem Sie den Eingabetyp aus der Liste ziehen und es in den Modellierer, in der Position fallen lassen, wo Sie es platzieren haben möchten.
Wenn die Eingaben definiert sind, ist es Zeit die Algorithmen festzulegen. Die Algorithmen können im Reiter Algorithmen ausgewählt werden. Die Gruppierung entspricht der Toolbox.
Um einen Algorithmus einem Modell hinzuzuführen doppelklicken Sie seinen Namen oder ziehen Sie ihn per Drag and Drop hinein. Ein Ausführungsdialog mit einem Inhalt ähnlich dem, der gezeigt wird wenn der Algorithmus aus der Werkzeugkiste ausgeführt wird, erscheint. Der als nächstes gezeigte entspricht dem SAGA ‘Convergence index’ Algorithmus, das gleiche Beispiel, was wir im Kapitel über die Werkzeugkiste gesehen haben.
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.
Table field. Die Felder der Elterntabelle oder -layers können nicht zur Erstellungszeit ermittelt werden, da sie von der Auswahl des Anwenders jedes mal wenn das Modell ausgeführt wird abhängen. Um den Wert für diesen Parameter einzustellen, geben Sie den Namen des Feldes direkt in das Textfenster ein oder verwenden Sie die Liste um eine Tabellenfeldeingabe, die schon dem Modell hinzugefügt wurde, 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 für Ihren Algorithmus benutzen, stellt dies implizit den vorherigen Algorithmus als Eltern des gerade verwendeten ein (und platziert den entsprechenden Pfeil in der Modellierungsoberfläche). In einigen Fällen jedoch kann ein Algorithmus von einem anderen abhängen selbst wenn er keine Ausgabe von diesem verwendet (beispielsweise ein Algorithmus der einen SQL-Satz in einer PostGIS Datenbank ausführt und ein weiterer der einen Layer in die gleiche Datenbank importiert). Wählen Sie in diesem Fall einfach den vorherigen Algorithmus im Parent algorithms Parameter aus und die zwei Schritte werden in der richtigen Reihenfolge ausgeführt.
Once all the parameters have been assigned valid values, click on [OK] and the algorithm will be added to the canvas. It will be linked to all the other elements in the canvas, whether algorithms or inputs, that provide objects that are used as inputs for that algorithm.
Elemente können in eine andere Position innerhalb der Oberfläche gezogen werden, um die Art wie die Modellstruktur dargestellt wird zu ändern und um diese klarer und intuitiver zu machen. Verbindungen zwischen Elementen werden automatisch erneuert. Sie können mit dem Mausrad vergrößern und verkleinern.
You can run your algorithm any time by clicking on the [Run] button. However, in order to use the algorithm from the toolbox, it has to be saved and the modeler dialog closed, to allow the toolbox to refresh its contents.
Use the [Save] button to save the current model and the [Open] button to open any model previously saved. Models are saved with the .model extension. If the model has been previously saved from the modeler window, you will not be prompted for a filename. Since there is already a file associated with that model, the same file will be used for any subsequent saves.
Vor dem Speichern eines Modells müssen Sie einen Namen und eine Gruppe angeben. Nutzen Sie dazu die Textfelder im oberen Teil des Fensters.
Modelle, die im models Ordner (der Standardordner wenn Sie aufgefordert werden einen Dateinamen zum Speichern des Modell einzugeben) gespeichert sind, erscheinen in der Werkzeugkiste im entsprechenden Baum. Wenn die Verarbeitungswerkzeuge aufgerufen werden durchsucht sie den models Ordner nach Dateien mit der .model Erweiterung und lädt die Modelle, die enthalten sind. Da ein Modell ein Algorithmus ist, kann es einfach wie jeder andere Algorithmus zur Werkzeugkiste hinzugefügt werden.
Die Verarbeitungsmodellierung kann im Verarbeitungskonfigurationsdialog in der Models Gruppe eingestellt werden.
Modelle, die aus dem Models Ordner geladen werden, erscheinen nicht nur in der Werkzeugkiste, sondern auch im Algorithmusbaum im Algorithmen Reiter des Modellierungsfensters.
Sie können das Modell, das Sie gerade erstellen editieren, den Workflow neu definieren sowie die Beziehungen zwischen den Algorithmen und den Eingangsdaten, die das Modell ausmachen ändern.
Wenn Sie mit der rechten Maustaste auf einen Algorithmus im Dialog-Fenster klicken, wird ein Kontextmenü geöffnet. wie in der nächsten Abbildung zu sehen:
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:
Auswählen der Bearbeiten Option oder einfaches Doppelklicken auf das Symbol des Algorithmus zeigt den Parameter-Dialog des Algorithmus, um die Ein- und Ausgabe Parameter-Werte zu ändern. Nicht alle Eingabe-Elemente des Modells werden in diesem Fall als verfügbare Eingänge angezeigt. Layer oder Werte, die in einem fortgeschrittenen Schritt im Workflow durch das Modell erzeugt wurden, stehen nicht zur Verfügung, wenn sie zirkuläre Abhängigkeiten verursachen.
Select the new values and then click on the [OK] button as usual. The connections between the model elements will change accordingly in the modeler canvas.
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.
Wenn Sie auf einen deaktivierten Algorithmus doppelklicken, sehen Sie ein Aktiviert Menü, welches Sie nutzen können, um es wieder zu aktivieren.
You can document your models from the modeler itself. Just click on the [Edit model help] button and a dialog like the one shown next will appear.
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.
As we will see in a later chapter, Processing algorithms can be called from the QGIS Python console, and new Processing algorithms can be created as well using Python. A quick way of creating such a Python script is to create a model and then to export is as a Python file.
To do so, click on the Export as Python script button. Select the output file in the file chooser dialog, and Processing will write in it the Python commands that perform the same operations defined in the current model.
Sie haben vielleicht bemerkt, dass einige Algorithmen, die aus der Toolbox ausgeführt werden können, nicht in der Liste der verfügbaren Algorithmen erscheint, wenn Sie ein Modell entwerfen. Um in einem Modell enthalten zu sein, muss der Algorithmus eine korrekte Semantik haben, um im Workflow verknüpft zu werden. Wenn ein Algorithmus keine solche definierte Semantik besitzt (zum Beispiel, wenn die Anzahl der Ausgangskanäle oder Layer nicht im Voraus bekannt ist), dann ist es nicht möglich, diesen in einem Modell zu verwenden, und somit erscheint er auch nicht in der Liste.
Additionally, you will see some algorithms in the modeler that are not found in the toolbox. These algorithms are meant to be used exclusively as part of a model, and they are of no interest in a different context. The ‘Calculator’ algorithm is an example of that. It is just a simple arithmetic calculator that you can use to modify numerical values (entered by the user or generated by some other algorithm). This tool is really useful within a model, but outside of that context, it doesn’t make too much sense.