Wichtig

Übersetzen ist eine Gemeinschaftsleistung Sie können mitmachen. Diese Seite ist aktuell zu 100.00% übersetzt.

18.21. Erstellung eines Modells mit modellinternen Werkzeugen

Bemerkung

Diese Lektion zeigt, wie man einige Algorithmen nutzt, die nur in der Verarbeitungsmodellierung verfügbar sind. Sie stellen zusätzliche Funktionalitäten für Modelle bereit.

Das Ziel dieser Lektion ist es, mit Hilfe der Verarbeitungsmodellierung einen Algorithmus zur Interpolation zu erstellen. Er soll dabei die aktuelle Selektion berücksichtigen, d.h. nicht nur die selektierten Objekte sondern auch deren räumliche Ausdehnung. Auf Grundlage der Ausdehnung soll ein interpolierter Rasterlayer erstellt werden.

Der Prozess der Interpolation beinhaltet zwei Prozesse, die schon in vorherigen Lektionen beschrieben wurden: die Rasterung von Punktdaten und das Füllen von Leerwerten in gerasterten Layern. Im Fall von Punkten die eine Auswahl enthalten, werden nur diese Punkte verwendet. Wenn die Ausdehnung so eingestellt ist, dass sie automatisch angepasst wird, wird aber die gesamte Ausdehnung des Layers verwendet und nicht nur die, die sich aus der Selektion ergibt. Wir werden versuchen, das mit Hilfe weiterer Werkzeuge zu beheben.

Öffnen Sie die Verarbeitungsmodellierung und fügen die benötigten Eingabedaten hinzu. Wir benötigen einen Vektorlayer (nur Punkte) und ein Attribut des Layers, das wir für die Rasterung verwenden werden.

../../../_images/inputs.png

Der nächste Schritt besteht darin, die Ausdehnung der ausgewählten Objekte zu berechnen. Hierfür können wir das reine Modellierungswerkzeug Vektorlayerbegrenzung nutzen. Zunächst müssen wir einen Layer erstellen, der die Ausdehnung dieser ausgewählten Objekte enthält. Anschließend können wir dieses Werkzeug auf diesen Layer anwenden.

Eine Möglichkeit, einen Layer mit der Ausdehnung der ausgewählten Objekte zu erstellen, ist es die konvexe Hülle des Eingabepunktlayers zu berechnen. Dabei werden nur die ausgewählten Punkte verwendet, sodass die konvexe Hülle dieselbe Bounding Box wie die Auswahl aufweist. Anschließend können wir den Algorithmus Vektorlayerbegrenzung hinzufügen und den Layer mit der konvexen Hülle als Eingabe verwenden. Im Arbeitsbereich der Modellierung sollte das Ganze so aussehen:

../../../_images/convexhull_and_extent.png

Das Ergebnis von Vektorlayerbegrenzung besteht aus vier numerischen Werten und einem Ausdehnungsobjekt. Für diese Übung werden wir sowohl die numerischen Ausgaben als auch die Ausdehnung verwenden.

../../../_images/extent_outputs.png

Nun können wir den Algorithmus zum Rasterisieren des Vektorlayers hinzufügen und dabei die Ausdehnung aus dem Algorithmus Vector layer bounds als Eingabe verwenden.

Füllen Sie die Paramter des Algorithmus wie folgt:

../../../_images/rasterize3.png

Der Arbeitsbereich sollte jetzt so aussehen:

../../../_images/canvas_rasterize.png

Füllen Sie abschließend die NoData-Werte des Rasterlayers mit dem Algorithmus :guilabel:Close gaps (Lücken schließen)

../../../_images/close_gaps1.png

Der Algorithmus kann nun gespeichert werden und ist dann in der Werkzeugkiste verfügbar. Sie können ihn starten und er wird aus der Interpolation der selektierten Punkte des Eingabelayers ein Raster erstellen. Das Rasterlayer wird dieselbe Ausdehung wie die selektierten Punkte im Eingabelayer haben.

Ein Verbesserung für den Algorithmus: Aktuell ist die cellsize beim Rasterisieren noch fest gehardcoded. Für unseren Test-Input-Layer funktioniert das zwar, bei anderen Use Cases kann das aber auch hinderlich sein. Statt dafür extra einen manuellen Input-Parameter anzulegen, berechnen wir den Wert direkt automatisch.

Wir können den modellinternen Rechner verwenden und den Wert aus den Koordinaten der Ausdehnung berechnen. Um z.B. einen Layer mit einer festen Breite von 100 Pixeln zu erstellen können wir die folgenden Formel im Rechner verwenden.

../../../_images/calculator1.png

Wir müssen nun noch den Rasterungsalgorithmus anpassen, so dass er die Ausgabe des Rechners anstelle eines festen Wertes als Eingabe verwendet.

Der fertige Algorithmus sollte wie folgt aussehen:

../../../_images/final.png