Nächster Nachbar Analyse (QGIS3)

GIS ist sehr nützlich, um räumliche Beziehungen zwischen Features zu analysieren. Eine solcher Analysen ist die Ermittlung welche Features am nächsten zu einem anderen gegebenen Feature liegen. Es gibt mehrere Wege, solch eine Analyse in QGIS durchzuführen. In dieser Anleitung erkunden wir die Tools Abstand zum nächsten Knoten und Distanzmatrix, um die Nächster Nachbar Analyse durchzuführen.

Aufgabenübersicht

Zur gegebenen Lage aller bekannten signifikanten Erdbeben, finden wir den nächsten bewohnten Ort.

Weitere Fähigkeiten, die wir erlernen.

  • Benutzung des Geometriegenerators um dynamisch Linien aus einem Mehrfachpunktlayer zu erzeugen.

Beschaffung der Daten

Als Layer der bedeutenden Erdbeben verwenden wir die Daten Significant Earthquake Database des nationalen geophysikalischen Datenzentrums der NOAA. Lade folgende Daten herunter: tab-delimited earthquake data.

Bei Natural Earth findet man einen schönen Datensatz der bewohnten Orte: Populated Places. Lade folgenden Datensatz herunter: simple (less columns) dataset.

Der Einfachheit halber können wir beide Datensätze unter folgenden links herunterladen:

signif.txt

ne_10m_populated_places_simple.zip

Datenquelle: [NGDC] [NATURALEARTH]

Arbeitsablauf

  1. Finde die Datei ne_10m_populated_places_simple.zip im Browser Bereich und erweitere sie. Ziehe die Datei ne_10m_populated_places_simple.shp in den Arbeitsbereich.

../../_images/1100.png
  1. Wir sehen den neuen Layer ne_10m_populated_places_simple der im Layer Bereich angezeigt wird. Dieser Layer enthält Punkte für die bewohnten Orte. Jetzt werden wir den Erdbebenlayer laden. Dieser Layer liegt als Tab Serepated Values (TSV) Textdatei vor. Um diese Datei zu laden, klicken wir auf den Knopf Datenquellenverwaltung öffnen in der Datenquellenverwaltungsleiste. Man kann alternativ die Tastenkombination Ctrl + L verwenden.

../../_images/248.png
  1. Klicke auf den Knopf neben File name und gehe zu der heruntergeladenen Datei signif.txt. Nach dem Laden sollten die Felder Dateiformat und Geometriedefinition automatisch mit den richtigen Werten gefüllt sein. Klicke auf Hinzufügen und danach auf Schließen.

../../_images/333.png
  1. Zoome hinein und untersuche beide Datensätze. Jeder gelbe Punkt steht für ein signifikantes Erdbeben und jeder rote Punkt für einen bewohnten Ort. Unser Ziel ist es, für jeden Punkt aus dem Erdbebenlayer den nächsten Punkt aus dem Layer der bewohnten Orte zu finden.

../../_images/417.png
  1. Bevor wir die Analyse beginnen, müssen wir unsere Eingangsdaten vorbereiten. Der Layer signif enthält viele Einträge mit einer ungültigen Geometrie. Diese Einträge wurden mit einer NULL Geometrie importiert. Diese Einträge entfernen wir als Erstes. Wir gehen zu Verarbeitung ‣ Werkzeugkiste.

../../_images/517.png
  1. Wir suchen das Werkzeug Vektorgeometrie ‣ Leergeometrien entfernen und klicken doppelt darauf, um es zu staten.

../../_images/617.png
  1. Wähle signif als Eingabelayer und klicke auf Starte. Nachdem der Prozess abgeschlossen ist, klicken wir auf Schließen.

../../_images/716.png
  1. Wir sehen nun einen neuen Layer Nicht leere Geometrien im Layer Bereich. Wir werden diesen Layer anstelle des originalen signif Layers für die weiteren Analysen verwenden. Entferne den Haken beim Layer signif im Layer Bereich, um ihn auszublenden. Jetzt können wir mit der Nächster Nachbar Analyse beginnen. Suche das Werkzeug Vektoranalyse ‣ Abstand zum nächsten Knoten (Linie zu Knoten) und klicke doppelt darauf, um es zu starten.

../../_images/816.png

Bemerkung

Wenn man einen Punktlayer als Ausgabe benötigt, kann man stattdessen das Tool Abstand zum nächsten Knoten (Punkte) verwenden.

  1. Im Dialogfenster Abstand zum nächsten Knoten (Linie zu Knoten) wählen wir Nicht leere Geometrien als Quellpunktlayer. Wähle ne_10m_populated_places_simple als Zielnabenlayer. Wähle name als Nabenlayernamensattribut. Das Tool wird außerdem die Luftliniendistanz zwischen bewohntem Ort und dem nächsten Erdbeben berechnen. Setze Kilometer als Maßeinheit ein. Klicke auf Starte. Nachdem der Prozess beendet ist , klicke auf Schließen.

../../_images/916.png
  1. Zurück im QGIS Hauptfenster sehen wir einen neuen Linienlayer Knotenabstand der im Layer Bereich angezeigt wird. Dieser Layer enthält Linienfeatures, die jeden Punkt eines Erdbebens mit der am nächsten gelegenden Ortschaft verbinden. Klicke mit der rechten Maustaste auf den Layer Knotendistanz und wähle Attributtabelle öffnen.

../../_images/1016.png
  1. Wenn man in der Tabelle ganz nach rechts scrollt, sieht man 2 neue Attributspalten: HubName und HubDist. Dabei handelt es sich um den Namen und den Abstand der am nächsten zu einem Erdbeben gelegenen Ortschaft.

../../_images/1120.png
  1. Unsere Analyse ist nun abgeschlossen. Wir schauen uns jetzt ein anderes Tool an, das etwas ähnliches tut. Distanzmatrix ist ein mächtiges Werkzeug, das nicht nur den Abstand zum nächesten Punkt, sondern zu allen Punkten eines anderen Layers bestimmt. Wir können das Tool als Alternative zum Werkzeug Abstand zum nächsten Knoten verwenden. Wir entfernen den Haken beim Layer Knotenabstand um ihn auszublenden. Gehe zum Werkzeug Vektoranalyse ‣ Distanzmatrix.

../../_images/1217.png
  1. Im Dialogfenster Distanzmatrix setzen wir Nicht leere Geometrien als Eingabepunktlayer und I_D als Eindeutiges Schlüsselfeld der Eingabe. Als Zielpunktlayer verwenden wir ne_10m_populated_places_simple und als Eindeutiges Schlüsselfeld des Ziels wählen wir name. Als Typ der Ausgabematrix wählen wir Lineare (N*k x 3) Distanzmatrix. Entscheidend ist es, den Wert für Nur (k) nächste Zielpunkte verwenden auf 1 zu setzen, damit für die Ausgabe nur der nächste Nachbar ermittelt wird. Klicke auf Starte, um die Distanzmatrix zu berechnen. Klicke nach Ende der Berechnung auf Schließen.

../../_images/1316.png
  1. Nachdem die Berechnung abgeschlossen wurde, wird ein neuer Layer Distanzmatrix geladen. Beachte, dass die Ausgabedatei eine sogenannte MultiPoint Geometrie besitzt. Jedes Feature besteht aus 2 Punkten - Quelle und Ziel. Öffne die Attributtabelle des Layers. Wir sehen, dass für jedes Feature eine Zuordnung des nächsten bewohnten Ortes zu einem Erdbeben erfolgt ist. Beachte, dass die Distanz in einer Einheit entsprechend des KBS des Layers (Grad) angegeben ist.

../../_images/1415.png
  1. An dieser Stelle können wir die Ausgabedatei in einem Format unserer Wahl speichern. Klicke mit der rechten Maustaste auf den Layer und wähle Exportieren ‣ Objekt speichern als. Zur besseren Visualisierung des Ergebnisses können wir auf einfache Weise eine Nabe-Speiche-Darstellung erzeugen. Klicke mit rechten Maustaste auf den Layer Distanzmatrix und wähle Eigenschaften.

../../_images/1514.png
  1. Wir gehen im Dialogfenster Layereigenschaften zum Punkt Symbolisierung und klicken auf Einfache Markierung und wählen Geometriegenerator als Symbollayertyp. Wir stellen LineString / MultiLineString als Geometrietyp ein und klicken auf den Ausdruck Knopf.

../../_images/1613.png
  1. Hier können wir einen Ausdruck verwenden, der die 2 Punkte der Multi-point-Features mit einer Linie verbindet. Gebe folgenden Ausdruck ein.

make_line(point_n( $geometry, 1), point_n( $geometry, 2))
../../_images/1714.png
  1. Zurück im Symbolisierungs Bereich können wir den Stil der Linien an unsere Vorstellungen anpassen. Klicke danach auf OK.

../../_images/1812.png
  1. Wir sehen, dass der Layer Distanzmatrix jetzt mit Linien anstelle von Punkten dargestellt wird. Wir brauchten dafür keinen neuen Layer erstellen. Der Layer besteht immer noch aus einer MultiPoint Geometrie. Die Darstellung als Linien erfolgt dynamisch basierend auf dem verwendeten Ausdruck.

../../_images/1911.png
comments powered by Disqus