Nächster-Nachbar-Analyse (QGIS3)

GIS sind sehr nützlich für die Analyse räumlicher Beziehungen zwischen Objekten. Eine dieser Analysen besteht darin herauszufinden, welche Objekte sich am nächsten zu einem gegebenen Objekt befinden. Es gibt viele Möglichkeiten, diese Analyse in QGIS auszuführen. Man kann eine räumliche Verknüpfung mithilfe des Werkzeugs Attribute nach nächstem verknüpfen ausführen oder die Abstände zu allen Objekten eines anderen Layers mithilfe des Distanzmatrix-Werkzeugs ermitteln. In diesem Tutorial werden wir uns ein Verarbeitungswerkzeug näher anschauen, das sich Abstand zum nächsten Knoten nennt. Dieses Werkzeug ermittelt nicht nur den Abstand zum nächsten Objekt, sondern visualisiert das Ergebnis auch durch eine Linie.

Überblick über die Aufgabe

Gegeben seien die Orte aller bekannten Erdbeben zwischen 1900 und 2000. Gesucht ist die jeweils nächstgelegene Siedlung zu all diesen Orten.

Beschaffung der Daten

  1. Für dieses Tutorial laden wir einen Datensatz von Erdbeben zwischen 1900 und 2000 herunter. Das National Geophysical Data Center der NOAA pflegt einen großen Datensatz aller bedeutenden Erdbeben seit 2150 v. Chr. auf dem NOAA NCEI Portal. Dort geben wir 1900 als Min- und 2000 als Max-Wert ein. Das Ergebnis besteht aus allen Erdbebenereignissen, die in diesem Zeitraum stattfanden und von der NOAA aufgezeichnet wurden. Für spezielle Fragestellungen können die Parameter variiert werden. Wir betätigen die Schaltfläche Search.

../../_images/data011.png
  1. Als Ergebnis werden 2600 Erdbeben-Ereignisse angezeigt. Wir klicken auf das Icon Download TSV File im Spaltenkopf Year.

../../_images/data021.png

Bei Natural Earth findet man einen schönen Datensatz für die Siedlungen: Populated Places. Wir laden folgenden Datensatz herunter: simple (less columns) dataset.

Der Einfachheit halber, können wir eine Kopie beider Datensätze unter folgenden Links herunterladen:

earthquakes_2021_11_25_14_31_59_+0530.tsv

ne_10m_populated_places_simple.zip

Datenquellen: [NCEI] [NATURALEARTH]

Arbeitsablauf

  1. Wir suchen die Datei ne_10m_populated_places_simple.zip im Browser und erweitern sie. Die Datei ne_10m_populated_places_simple.shp ziehen wir in den Arbeitsbereich.

../../_images/017.png
  1. Der neue Layer ne_10m_populated_places_simple wird im Layer-Panel angezeigt. 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, betätigen wir die Schaltfläche Datenquellenverwaltung öffnen in der Datenquellenverwaltungsleiste. Man kann alternativ die Tastenkombination Strg + L verwenden.

../../_images/027.png
  1. Im Dialogfenster Datenquellenverwaltung wechseln wir in den Bereich Getrennte Texte.

../../_images/037.png
  1. Wir betätigen die Schaltfläche neben Dateiname und navigieren zur heruntergeladenen Datei earthquakes-2021-11-25_13-39-30_+0530.tsv. Abhängig vom Betriebssystem wird die Datei in dem Ordner, in den sie heruntergeladen wurde, nicht angezeigt. Wenn dies der Fall sein sollte, wechseln wir im Dialogfenster Zu öffnende getrennte Textdatei wählen zu Alle Dateien (*; .). Nach dem Öffnen wählen wir Benutzerdefiniert im Bereich Dateiformat und wählen die Option Tabulator. Im Abschnitt Geometriedefinition wählen wir Punktkoordinaten. Die Werte im X-Feld und im Y-Feld werden automatisch vorausgefüllt, wenn die Eingabedatei geeignete Felder enthält; in unserem Fall sind dies Longitude und Latitude. Das Geometrie-KBS können wir bei der Voreinstellung EPSG:4326 - WGS 84 belassen. Wenn die Eingabedatei in einem anderen KBS dargestellt sein sollte, kann dieses hier ausgewählt werden. Wir betätigen die Schaltfläche Hinzufügen, anschließend Schließen.

../../_images/047.png
  1. Wir können nun an verschiedenen Stellen hineinzoomen oder die Karte verschieben, um beide Datensätze zu erkunden. Jeder rote Punkt repräsentiert eine Siedlung und jeder grüne Punkt ein Erdbebenereignis bzw. umgekehrt, abhängig von der Reihenfolge des Ladens der Layer. Unser Ziel ist es, den nächstgelegenen Punkt aus dem Siedlungen-Layer zu jedem Punkt im Erdbeben-Layer herauszufinden. Wir sehen uns zunächst die Attributtabelle des Erdbeben-Layers an. Dazu wählen wir den Layer aus und betätigen die Schaltfläche Attributtabelle öffnen in der Werkzeugleiste.

../../_images/057.png
  1. Es gibt 2601 Objekte, aber die Daten enthalten einige Einträge ohne Längen- und Breitengradangaben. Diese Daten müssen vor der weiteren Verarbeitung entfernt werden; die Attributtabelle schließen wir.

../../_images/067.png
  1. Wir wählen den Algorithmus Verarbeitung ‣ Werkzeugkiste ‣ Vektorgeometrie ‣ Leergeometrien entfernen und öffnen ihn per Doppelklick.

../../_images/077.png
  1. Im Dialogfenster Leergeometrien entfernen wählen wir earthquakes-2021-11-25_13-39-30_+0530 als Eingabelayer und setzen die Option Auch Leergeometrien entfernen. Wir betätigen die Schaltfläche Starte und nach Abschluss der Verarbeitung Schließen.

../../_images/086.png
  1. Ein neuer Layer Nicht leere Geometrien wird dem Layer-Panel hinzugefügt. Für unsere Analysen werden wir diesen Layer anstatt des Original-Layers verwenden. Die Sichtbarkeit des Layers earthquakes-2021-11-25_13-39-30_+0530 schalten wir im Layer-Panel ab. Wir wählen den Layer Nicht leere Geometrien und betätigen die Schaltfläche Attributtabelle öffnen aus der Attributwerkzeugleiste.

../../_images/096.png
  1. Die Anzahl der Objekte hat sich verringert, da die Objekte ohne Längen- oder Breitengradangaben entfernt wurden; die Attributtabelle schließen wir wieder.

../../_images/1025.png
  1. Wir können nun die Nächster-Nachbar-Analyse starten. Wir suchen nach dem Werkzeug Verarbeitung ‣ Werkzeugkiste ‣ Vektoranalyse ‣ Abstand zum nächsten Knoten (Linie zu Knoten), welches wir durch Doppelklick öffnen.

../../_images/1128.png

Bemerkung

Es ist auch möglich, einen Punktlayer als Ausgabe zu generieren, indem wir das Werkzeug 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. Wir wählen ne_10m_populated_places_simple als Zielnabenlayer und name als Nabenlayernamensattribut. Das Werkzeug errechnet den geradlinigen Abstand zwischen einem Erdbebenereignis und der nächstgelegenenen Siedlung. Wir setzen Kilometer als Maßeinheit. Wir betätigen die Schaltfläche ... neben Knotenabstand und wählen In Datei speichern…, um die Datei als earthquakes_with_nearest_city.gpkg zu speichern. Anschließend betätigen wir die Schaltfläche Starte und nach Abschluss der Verarbeitung Schließen.

../../_images/1226.png
  1. Im Hauptfenster von QGIS wird ein neuer Layer earthquakes_with_nearest_city in das Layer-Panel geladen. Dieser Layer enthält Linienobjekte, die jeden Punkt des Erdbeben-Layers mit der jeweils nächstgelegenen Siedlung verbinden. Wir wählen den Layer earthquakes_with_nearest_city und betätigen die Schaltfläche Attributtabelle öffnen in der Werkzeugleiste.

../../_images/1324.png
  1. Wir scrollen ganz nach rechts bis zu den letzten Spalten. Dort wurden 2 neue Attribute, HubName und HubDist zu den Original-Objekten der Erdbeben hinzugefügt. Hier werden der Name der nächstgelegenen Siedlung und der Abstand dazu aufgeführt.

../../_images/1422.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)