Fortgeschrittene Raster-Analyse (QGIS3)

Im vorigen Tutorial Einfache Visualisierung und Analyse von Rasterdaten (QGIS3) haben wir den Umgang mit dem Rasterrechner bei Operationen auf Rasterdaten kennengelernt. Dieses Tutorial baut auf diesen Kenntnissen auf und zeigt, wie die Raster-Analysetools aus den Verarbeitungswerkzeugen verwendet werden. Wir werden lernen, wie Rasterdaten aus Landnutzungskartierungen (engl.: Land Use Land Cover ‒ LULC) in QGIS verarbeitet werden, um verschiedene Klassen der Landbedeckung zu gewinnen und Karten anzupassen.

Überblick über die Aufgabe

Wir werden den Datensatz des South African National Land Cover verwenden, um informelle Siedlungen im Stadtgebiet von Johannesburg in Südafrika zu identifizieren und zu extrahieren. Außerdem werden wir einen Datensatz zur Bewertung des Wandels verwenden, um Muster im urbanen Wachstum der Stadt von 2014 bis 2018 zu identifizieren.

Weitere Fähigkeiten, die wir erlernen:

  • die Abbildung von Rasterdaten in einer anderen Projektion

  • den Import einer Excel-Datei in QGIS

  • die Anpassung der Transparenz eines Raster-Layers in QGIS

Beschaffung der Daten

Wir werden folgende Datensätze zur Verwendung in diesem Tutorial herunterladen:

  1. The South African National Land Cover 2018 dataset: Dieser Datensatz wurde aus den Sentinel-2-Satellitenbildern mehrerer Jahreszeiten mit einer Auflösung von 20 Metern generiert und enthält 73 Klassen der Landbedeckung.

  2. The South African National Land Cover 2018 Change Assessments: Dieser Datensatz vergleicht die Änderungen in 20 Klassen der Landbedeckung von 2014 bis 2018.

  3. COJ Boundary: ein Shapefile für die Grenzen der Stadt Johannesburg in Südafrika

Das Environmental Geographical Information Systems (E-GIS) bietet Zugang zu umweltbezogenen Geodaten für Südafrika. Wir werden die Rasterdaten des South African National Land-Cover (SANLC) aus diesem Portal herunterladen.

  1. Dazu rufen wir die Website GIS Data Download auf und klicken auf I agree, um die Nutzungsbedingungen zu akzeptieren und fortzufahren.

../../_images/data1.png
  1. Um die Daten herunterladen zu können, ist es erforderlich, ein kostenloses Nutzerkonto anzulegen. Wir klicken auf I want to create an account und folgen den Anweisungen zur Anlage eines Nutzerkontos.

../../_images/data2.png
  1. Nach dem Login suchen wir nach South African National Land Cover (SANLC) 2018 Computer Automated Land Cover (CALC). Dieser Datensatz wird mit zwei unterschiedlichen Projektionen ausgeliefert. Für dieses Tutorial laden wir den ALBERS-Datensatz herunter und klicken auf den Link zum Download der Datei SA_NLC_2018_Albers_CALC_data.zip.

../../_images/data3.png
  1. Danach suchen wir nach New South African National Land Cover (SANLC) 2014 and 2018 Change Assessment Datasets Computer Automated Land Cover (CALC) und klicken auf SA_NLC_2014_2018_CLASS_CHANGE_CALC (DATASET AND REPORT), um die Datei SA_NLC_2014_2018_CLASS_CHANGE_ALBERS_CALC.tif.vat.zip herunterzuladen.

../../_images/data4.png

Die City of Johannesburg veröffentlicht räumlich zuordenbare Datensätze als Teil des Spatial Development Framework 2040 (SDF) for Johannesburg. Wir werden das Shapefile mit den Grenzen der Stadt von dieser Website herunterladen.

  1. Dazu klicken wir auf den Download-Link http://bit.ly/joburg-sdf-16.

../../_images/data5.png
  1. Wir wählen das Verzeichnis SDF Shapefiles.

../../_images/data6.png
  1. Wir laden die Datei SDF Shapefiles.zip` herunter und entpacken sie in ein Verzeichnis unserer Wahl.

../../_images/data7.png

Der Einfachheit halber sind die zugeschnittenen Versionen der erforderlichen Layer unter den folgenden Links verfügbar:

SA_NLC_2018_ALBERS_CALC.tif

SA_NLC_2014_2018_CLASS_CHANGE_ALBERS_CALC.tif

COJ_Boundary.zip

Datenquelle: [SANLC] [COJ]

Arbeitsablauf

  1. Wir suchen nach dem heruntergeladenen und extrahierten Ordner im Browser, öffnen ihn und ziehen SA_NLC_2018_ALBERS_CALC.tif in den Arbeitsbereich.

../../_images/011.png
  1. Sobald der Layer geladen wurde, kann man feststellen, dass das KBS als Unbekanntes KBS in der Statusleiste unten rechts deklariert wurde. Wir führen darauf einen Doppelklick aus, um das Dialog-Fenster Projekteeigenschaften - KBS zu öffnen.

../../_images/021.png
  1. Im unteren Teil wird eine Vorschau auf die Ausdehnung der Projektion angezeigt. Dieses Unbekannte KBS verwendet eine benutzerdefinierte Methode Albers Equal Area für Südafrika. Wir werden den Layer später reprojizieren und klicken zunächst auf OK.

../../_images/031.png
  1. Wir laden die anderen beiden Layer SA_NLC_2014_2018_CLASS_CHANGE_ALBERS_CALC.tif und COJ_Boundary. Die Raster-Layer überdecken das gesamte Land. Für unsere Analyse interessiert jedoch nur die Fläche, die vom Layer COJ_Boundary abgedeckt wird. Daher werden wir die Raster-Layer auf diese Region zuschneiden und wählen Verarbeitung ‣ Werkzeugkiste und darin GDAL ‣ Rasterextraktion ‣ Raster auf Layermaske zuschneiden. Wir öffnen das Werkzeug mit einem Doppelklick.

../../_images/041.png
  1. Im Dialog Raster auf Layermaske zuschneiden, wählen wir SA_NLC_2018_ALBERS_CALC als Eingabelayer, danach COJ_Boundary als Maskenlayer. Wir haben hier auch die Möglichkeit, die Daten zu reprojizieren. Es zeugt von guter Praxis, alle Daten-Layer in derselben Projektion vorzuhalten. Wir werden die Raster so reprojizieren, dass sie der Projektion des COJ_Boundary-Layers entsprechen. Dazu wählen wir EPSG:4326 - WGS 84 als Ziel KBS.

../../_images/051.png
  1. Das voreingestellte Ausgabeformat ist GeoTiff. Dateien dieses Typs können sehr groß sein, wenn sie nicht komprimiert werden. Es zeugt von guter Praxis, immer eine verlustfreie Kompressionsmethode zu wählen, wenn neue Raster-Layer erstellt werden. Wir erweitern den Bereich Fortgeschrittene Parameter und wählen Hohe Kompression als Profil. Als nächstes benutzen wir den Button neben dem Eingabefeld von Abgeschnitten (Maske) und wählen In Datei speichern…, um als Namen des Layers SA_NLC_2018_Clipped anzugeben. Wir klicken auf Starte.

../../_images/061.png
  1. Wir schließen das Fenster nicht, wenn der Algorithmus beendet wurde. Stattdessen werden wir dieselbe Operation auf den anderen Raster-Layer anwenden. Dazu wechseln wir in den Bereich Parameter und ändern den Eingabelayer auf SA_NLC_2014_2018_CLASS_CHANGE_ALBERS_CALC. Alle anderen Optionen belassen wir, nur der Name des Ausgabelayers wird auf SA_NLC_2014_2018_CLASS_CHANGE_Clipped geändert. Wir klicken erneut auf Starte.

../../_images/071.png
  1. Die zugeschnittenen Layer werden in den Arbeitsbereich geladen. Wir wählen die Original-Layer und im Kontextmenü Layer löschen…, um sie zu entfernen.

../../_images/081.png
  1. Die drei verbliebenen Layer werden in dasselbe KBS projiziert. Wir können nun das Projekt-KBS auf das der Layer setzen. Wir klicken dazu mit der rechten Maustaste auf einen der Layer und wählen Layer-KBS ‣ Layer-KBS dem Projekt zuweisen.

../../_images/091.png
  1. Das KBS EPSG:4326 wird nun dem Projekt zugewiesen. Wir ziehen den Layer SA_NLC_2018_Clipped ganz nach oben.

../../_images/101.png
  1. Wir wählen den Layer SA_NLC_2018_Clipped aus und benutzen das Werkzeug Objekte abfragen aus der Attributwerkzeugleiste, um über einen Klick auf das Bild die Werte des entsprechenden Pixels prüfen zu können. Es ist ersichtlich, dass die Pixel Werte zwischen 1 und 73 besitzen. Diese Werte repräsentieren jeweils eine Klasse der Landnutzung/Landbedeckung.

../../_images/111.png
  1. Die Klassen in diesem Datensatz sind in SANLC 2018 Presentation beschrieben, was über das EGIS Portal abgerufen werden kann. Für diese Übung interessieren wir uns für die informellen Siedlungen, welche durch die Klassen 51 bis 54 repräsentiert sind.

../../_images/121.png
  1. Wir werden nun die Pixel extrahieren, welche zu diesen Klassen gehören. Wir wählen in den Verarbeitungswerkzeugen das Werkzeug Rasteranalyse –> Rasterrechner und öffnen es per Doppelklick.

../../_images/13.png
  1. Die Bildquelle umfasst lediglich 1 Spektralband. Das Suffix @1 bezieht sich auf die Nummer des Spektralbandes. Wir geben den folgenden Ausdruck ein, um die Pixel der Klassen 51-54 zu extrahieren.

"SA_NLC_2018_Clipped@1" >= 51 AND "SA_NLC_2018_Clipped@1" <= 54
../../_images/14.png
  1. Wir scrollen soweit herunter, dass wir den Button ... neben dem Eingabefeld Referenzlayer wählen können. Im Dialog wählen wir den Layer SA_NLC_2018_Clipped und klicken OK.

../../_images/15.png
  1. Wir klicken auf den Button neben Berechnet und wählen In Datei speichern….

../../_images/16.png
  1. Die Ausgabedatei nennen wir residential_informal.tif und klicken Starte.

../../_images/17.png
  1. Nach Abschluss der Verarbeitung wird ein neuer Layer residential_informal hinzugefügt. Die Pixel dieses Raster-Layers haben nur zwei Werte: 1 für die auf den eingegebenen Ausdruck bezogen mit wahr gekennzeichneten Pixel und 0 für die Pixel, in denen der Ausdruck mit falsch ausgewertet wurde. Die weiß erscheinenden Pixel gehören zu den Klassen der informellen Siedlungen. Wir werden die Darstellung dieses Layers so verändern, dass wir die informellen Siedlungen klar erkennen können. Dazu klicken wir auf den Button Layergestaltungsfenster öffnen.

../../_images/18.png
  1. Wir wählen residential_informal als zu bearbeitenden Layer und ändern die Darstellung auf Paletten-/Eindeutige Werte. Wir klicken auf den Button Werte manuell hinzufügen (+).

../../_images/19.png
  1. Wir ändern den Wert auf 1 und geben Informelle Siedlung als Beschriftung ein. Die Farbe können wir beliebig wählen.

../../_images/20.png
  1. Nun sind alle informellen Siedlungen von Johannesburg dargestellt. Es wäre hilfreich, sie im Zusammenhang mit einer Basiskarte darzustellen. Mithilfe der Erweiterung QuickMapServices haben wir Zugriff auf eine Vielzahl von Basiskarten. Nach der Installation der Erweiterung wählen wir Web ‣ QuickMapServices ‣ OSM ‣ OSM Standard, um den OpenStreetMap-Layer hinzuzufügen.

../../_images/21.png
  1. Nun können wir leicht ermitteln, ob unsere Analyse die informellen Siedlungen korrekt ermittelt hat. Wir wählen den Layer residential_informal und wechseln im Layergestaltungsfenster zum Bereich Transparenz. Wir können die Globale Deckkraft reduzieren, sodass sowhl die extrahierten Pixel als auch die Basis-Karte zu sehen sind.

../../_images/22.png
  1. Der erste Teil des Tutorials ist nun bearbeitet. Im Folgenden werden wir den Raster-Layer SA_NLC_2014_2018_CHANGE_Clipped benutzen, um die Regionen zu identifizieren, die zwischen 2014 und 2018 urbanisiert wurden. Wir schalten die Sichtbarkeit aller Layer außer SA_NLC_2014_2018_CHANGE_Clipped aus und klicken dann auf den Button Layergestaltungsfenster öffnen. Wir wechseln in den Bereich Transparenz und geben 0 bei Zusätzlicher Leerwert ein. Das wird alle Pixel mit dem Wert 0 transparent schalten.

../../_images/23.png
  1. Wir verwenden das Werkzeug Objekte abfragen in der Attributwerkzeugleiste, um an verschiedenen Stellen auf das Bild zu klicken und die Pixelwerte zu erkunden. Die Werte variieren zwischen 21 und 420. Jeder Wert repräsentiert die Veränderung von einer der ursprünglichen 73 Klassen zu einer anderen.

../../_images/24.png
  1. Die aus der Originalquelle heruntergeladenen Daten enthalten eine Datei lcccodes.xlsx. Diese Datei enthält ein Datenblatt 03 urban_change_codes, das mehr Details zu jedem Pixelwert enthält. Wir interessieren uns für alle Pixelwerte, in denen irgendeine 2014 ermittelte Klasse sich 2018 in eine Klasse mit Bebauung gewandelt hat. Im unten gezeigten Bild sind diese Pixel blau hervorgehoben.

../../_images/25.png
  1. Unser Ziel ist die Darstellung der Änderungen in der Klasse für Bebauung. Wir werden eine Transformation auf den Layer SA_NLC_2014_2018_CHANGE_Clipped anwenden, sodass alle Pixelwerte dargestellt werden, die von ihren Originalwerten in einen der folgenden Werte geändert wurden.

1

Alle Pixel, die sowohl 2014 als auch 2018 eine Klasse der Bebauung darstellten

2

Alle Pixel, in denen sich die Klasse von unbebaut in in 2014 zu bebaut in 2018 geändert hat

0

Alle übrigen Pixel

  1. Um dies zu erreichen, müssen wir eine Tabelle erstellen, welche diese Regeln abbildet. Da QGIS Tabellenkalkulationsdateien direkt verarbeiten kann, besteht die günstigste Methode darin, sie direkt zu erstellen. Unsere Tabelle soll 3 Spalten enthalten, MIN, MAX und OUTPUT. Jede Zeile soll den Wertebereich der Eingabedaten enthalten, der auf einen Ausgabewert abgebildet wird. Wir erzeugen die Tabelle wie unten dargestellt und speichern sie als reclass.xlsx im Dateiverzeichnis. Eine sofort nutzbare Tabelle kann auch über den folgenden Link heruntergeladen werden - reclass.xlsx

../../_images/27.png
  1. Wir suchen die Datei reclass.xlsx im Browser und fügen sie per Drag & Drop in den Arbeitsbereich ein.

../../_images/28.png
  1. Im Layer-Bereich wird ein neuer Layer Sheet1 hinzugefügt. Per Rechtsklick öffnen wir das Kontextmenü und wählen Attributtabelle öffnen. Wir prüfen, ob die Tabelle korrekt importiert wurde und die 3 Spalten MIN, MAX und OUTPUT enthält. Wir öffnen das Werkzeug Verarbeitungswerkzeuge ‣ Rasteranalyse ‣ Nach Layer neuklassifizieren.

../../_images/29.png
  1. Im Dialog Nach Layer neuklassifizieren wählen wir SA_NLC_2014_2018_CHANGE_Clipped als Rasterlayer. Wir wählen Sheet1 als Layer mit Klassengrenzen und die Felder MIN, MAX und OUTPUT für die entsprechenden Werte mit minimalem Klassenwert, mit maximalem Klassenwert und als Ausgabewertfeld.

../../_images/30.png
  1. Wir erweitern den Bereich Fortgeschrittene Parameter und ändern die Bereichsgrenzen in min <= Wert <= max. Mithilfe des Buttons neben Neuklassifiziertes Raster geben wir als Namen für die Ausgabedatei builtup_change.tif ein. Wir klicken auf Starte.

../../_images/31.png
  1. Nach Abschluss der Verarbeitung wird ein neuer Layer builtup_change mit Pixelwerten 0-2 zum Arbeitsbereich hinzugefügt. Im Layergestaltungsfenster wählen wir Paletten-/Eindeutige Werte und klicken dann auf Klassifizieren.

../../_images/32.png
  1. Für jede Kategorie kann eine beliebige Farbe gewählt werden. Außerdem sollten wir die Beschriftungen für die Werte 0, 1 und 2 auf Unbebaut, Vorhandene Bebauung und Neue Bebauung ändern.

../../_images/33.png
  1. Schließlich verringern wir im Bereich Transparenz die Globale Deckkraft und schalten die Sichtbarkeit des Layers OSM Standard an, um sowohl die Pixel mit den Änderungen in der Bebauung als auch die Basis-Karte sehen zu können.

../../_images/34.png

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