Räumliche Verbindungen erstellen (QGIS3)

Die räumliche Verbindung ist eine klassische GIS Problemstellung: der Transfer von Attributwerten eines Layers auf einen anderen basierend auf der räumlichen Beziehung der Layer zueinander. In QGIS steht diese Funktionalität durch den Algorithmus Attribute nach Position verknüpfen zur Verfügung.

Aufgabenübersicht

Wir werden 2 Layer verwenden: eine Shapedatei der Stadtbezirksgrenzen von New York city und eine Shapedatei mit der Bewertung des Straßenbelages aller Straßen in New York city. Die erste Aufgabe besteht in der Bestimmung des mittleren Zustands der Straßen je Stadtbezirk. Dabei wird der Algorithmus räumliche Verbindung mit Aufsummierung verwendet. Die zweite Aufgabe besteht darin, zu jeder Straße den Namen des Stadtbezirkes hinzuzufügen. Dies wird mit Hilfe einer räumlichen eins-zu-vielen Verbindung erreicht.

Weitere Fähigkeiten, die wir erlernen

  • Erstellung von Filtern, um bestimmte Features zeitweise von der Berechnung auszuschließen

Beschaffung der Daten

NYC Open Data Portal ist eine exzellente Datenquelle für freie Daten zu New York city.

Mit Hilfe der Export Option des Portals laden wir folgende Daten herunter: Borough Boundaries.

../../_images/data19.png

Mit Hilfe der Export Option des Portals laden wir folgende Daten herunter: Street Pavement Rating.

../../_images/data22.png

Der Einfachheit halber können wir eine Kopie der Datensätze unter folgenden links herunterladen:

nybb_19a.zip

V_SSS_SEGMENTRATING_1.zip

Datenquelle [CITYOFNY]

Arbeitsablauf

  1. Gehe im QGIS Browser zur Datei nybb_19a.zip und erweitere sie. Wähle den Layer nybb_19a/nybb.shp und ziehe ihn in den Arbeitsbereich. Es handelt sich um einen Polygonlayer mit den Grenzen der Stadtbezirke New York city’s.

../../_images/1105.png
  1. Finde als nächstes im QGIS Browser die Datei V_SSS_SEGMENTRATING_1.zip und erweitere sie. Wähle den Layer dot_V_SSS_SEGMENTRATING_1_20190129.shp und füge ihn zum Arbeitsbereich hinzu. Dieser Linienlayer enthält alle Straßen der Stadt.

../../_images/2101.png
  1. Wir untersuchen die verfügbaren Attribute der im Layer dot_V_SSS_SEGMENTRATING_1_20190129 enthaltenen Features. Klicke mit der rechten Maustaste auf den Layer und wähle Attributtabelle öffnen.

../../_images/347.png
  1. Wir sehen ein Attribut mit der Bezeichnung Rating_B. Dieses Attribut mit Werten zwischen 0-10 enthält die Bewertung des Zustandes dieses Straßenabschnittes. Das Attribut RatingWord enthält eine beschreibende Bewertung. Wir können das Feld Rating_B nutzen, um die mittlere Bewertung zu bestimmen.

../../_images/419.png
  1. Wir merken, dass für einige Features die Bewertung von NR vergeben ist. Diese Abschnitte sind nicht bewertet. Sie in die Analyse mit einzubeziehen, wäre nicht korrekt. Bevor wir die räumliche Verbindung herstellen, erstellen wir einen Filter, um diese Datensätze auszuschließen. Klicke mit der rechten Maustaste auf den Layer dot_V_SSS_SEGMENTRATING_1_20190129 und wähle Filter….

../../_images/519.png
  1. Im Fenster Abfrageerstellung geben wir folgenden Ausdruck ein, um alle Datensätze mit dem Wert NR zu selektieren. Man kann den Ausdruck auch interaktiv durch Drücken auf Felder, Operatoren und der Auswahl der passenden Werte erzeugen. Klicke auf OK.

"RatingWord" != 'NR'
../../_images/619.png
  1. Wir merken, dass der Layer dot_V_SSS_SEGMENTRATING_1_20190129 nun ein Filtersymbol hat, dass einen aktiven Filter für diesen Layer anzeigt. Jetzt können wir eine räumliche Verbindung zum Layer herstellen. Gehe zu Verarbeitung ‣ Werkzeugkiste.

../../_images/718.png
  1. Suche den Algorithmus Vektoren allgemein ‣ Attribute nach Position verknüpfen (Zusammenfassung). Klicke doppelt darauf, um ihn zu starten.

../../_images/818.png
  1. Wir wählen Im Dialogfenster Attribute nach Position verknüpfen (Zusammenfassung) den Layer nybb als Eingabelayer. Den Layer mit den Straßen dot_V_SSS_SEGMENTRATING_1_20190129 tragen wir unter Layer verknüpfen ein. Die Einstellungen unter Geometrisches Prädikat können wir unverändert bei schneidet sich mit belassen. Klicke auf den Knopf neben Zusammenzufassende Felder.

../../_images/918.png

Bemerkung

Ein Tip, um den korrekten Eingabelayer festzulegen: der Eingabelayer ist derjenige, der durch die räumliche Verbindung durch neue Attribute erweitert wird. Da wir die mittlere Bewertung zum Layer der Stadtbezirke hinzufügen wollen, ist dieser Layer der Eingabelayer.

  1. Wähle Rating_B und klicke auf OK.

../../_images/1025.png
  1. Klicke analog auf den Knopf neben Zu berechnende Zusammenfassungen.

../../_images/1128.png
  1. Wähle Durchschnitt als Operation für die Zusammenfassung und klicke auf OK. Jetzt können wir die Berechnung starten. Klicke auf Starte.

../../_images/1226.png
  1. Der Algorithmus verarbeit die Features und erstellt die räumliche Verbindung. Wir vergewissern uns, dass die Verabeitung erfolgreich abgeschlossen wurde und klicken auf Schließen.

../../_images/1324.png
  1. Zurück im QGIS Fenster sehen wir einen neuen Layer Zusammengefasster Layer der dem Arbeitsbereich hinzugefügt wurde. Wir öffnen die Attributtabelle dieses Layers und bemerken eine neue Spalte Rating_B_mean, die die mittlere Bewertung aller Straßen enthält, die einen Stadtbezirk überschneiden.

../../_images/1422.png
  1. Jetzt wenden wir ein umgekehrtes Verfahren an. Manchmal benötigen wir Attribute eines anderen Layers basierend auf dessen räumlicher Beziehung ohne das eine Summenbildung erfolgen muss. Wir können in diesem Fall den Algorithmus Attribute nach Position zusammenführen verwenden. Die Aufgabe besteht darin, für alle Features im Straßenlayer den zugehörigen Stadtbezirk zu ermitteln. Bevor wir die Berechnung beginnen, entfernen wir den Filter vom Layer dot_V_SSS_SEGMENTRATING_1_20190129. Klicke auf das Filtersymbol und drücke im Fenster Abfrageerstellung auf Löschen. Klicke auf OK.

../../_images/1519.png
  1. Schalte den Layer Zusammengefasster Layer im Layer Bereich ab. Gehe zu Vektoren allgemein ‣ Attribute nach Position zusammenführen in den Verarbeitungswerkzeugen und klicke doppelt darauf, um die Berechnung zu starten.

../../_images/1618.png
  1. Wähle dot_V_SSS_SEGMENTRATING_1_20190129 als Eingabelayer und nybb als Layer verknüpfen. Wir können die Einstellung Geometrische Prädikat auf der Voreinstellung Schneidet sich mit belassen. Klicke auf den Knopf neben Hinzuzufügende Felder und wähle BoroName. Klicke auf OK.

../../_images/1719.png
  1. Ein Linienabschnitt kann u.U. in mehreren Stadtbezirken liegen. Wir wählen daher für Verknüpfungstyp Separates Objekt für jedes lokalisiertes Objekt erzeugen (eins-zu-vielen). Klicke auf Starte.

../../_images/1817.png
  1. Nachdem die Berechnung abgeschlossen wurde, öffenen wir die Attributtabelle des neu hinzugefügten Layers Zusammengefasster Layer. Wir sehen, dass das neue Attribut BoroName zu jedem Straßenfeature hinzugefügt wurde.

../../_images/1915.png

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