17.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 ist die Ermittlung der Ausdehnung der selektierten Objekte. Dafür verwenden wir das modellinterne Werkzeug Layerausdehnung extrahieren. Als Erstes müssen wir einen Layer erstellen, der die Ausdehnung der gewählten Objekte hat. Danach können wir das Werkzeug mit diesem Layer verwenden.

Ein einfacher Weg zur Erstellung eines Layers mit der Ausdehnung der selektierten Objekte ist die Berechnung einer konvexen Hülle für den Punktlayer. Dabei werden nur die gewählten Punkte verwendet, so dass die konvexe Hülle dieselbe Ausdehnung wie der Begrenzungsrahmen der Auswahl hat. Wir nutzen dann den Algorithmus Layerausdehnung extrahieren mit der konvexen Hülle als Eingabe. Unser Arbeitsbereich sollte nun in etwa wie folgt aussehen:

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

Das Ergebnis von Layerausdehnung extrahieren ist eine Menge von vier Zahlen und ein Ausdehnungsobjekt. Wir werden beides in dieser Übung verwenden.

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

Wir können nun den Algorithmus zur Rasterung unter Nutzung der Ausdehung aus dem Algorithmus Layerausdehnung extrahieren einfügen.

Füllen Sie die Paramter des Algorithmus wie folgt:

../../../_images/rasterize2.png

Der Arbeitsbereich sollte jetzt so aussehen:

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

Füllen Sie zum Schluss die Leerwerte des Rasterlayers mit Hilfe des Algorithmus Close gaps.

../../../_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.

Hier ist eine Verbesserung des Algorithmus. Wir haben einen festen Wert für die Zellengröße beim Rastern verwendet. Der Wert ist für unseren Eingabelayer in Ordnung, kann aber für andere Fälle ungünstig sein. Wir könnten einen neuen Paramter einfügen, so dass der Benutzer den gewünschten Wert eingeben kann. Ein besserer Ansatz ist es, den Wert automatisch berechnen zu lassen.

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