Erzeugen einer farbigen Karte für ein Einzugsgebiet (QGIS3)

In diesem Tutorial wird der Ablauf in QGIS behandelt, wie Fließgewässer-Karten für das eigene Land / die eigene Region unter Verwendung öffentlich verfügbarer hydrologischer Daten gestaltet werden können.

Bemerkung

Dieses Tutorial wurde von den schönen Karten des Projekts Grasshopper Geography inspiriert. Das Projekt kann durch Kauf seiner Karten im Online-Shop unterstützt werden.

Überblick über die Aufgabe

In diesem Tutorial werden Daten-Layer von einzugsgebieten und Flüssen des HydroSHEDS-Projekts verwendet, um eine Karte der Einzugsgebiete für indische Flüsse zu erzeugen.

../../_images/rivers_of_india.png

Weitere Fähigkeiten, die wir erlernen:

  • Zuweisung einer Projektion zu einem Vektor-Layer mit falscher oder fehlender Projektion

  • Hinzufügen mehrerer Layer zu einem einzelnen GeoPackage

  • Hinzufügen eines Emblems ‚Made with QGIS‘ zu einer Karte

Beschaffung der Daten

HydroSHEDS bietet weltweit verfügbare Datensätze für regionale und globale Anwendungen an. Die Daten-Layer wurden aus hydrologisch aufbereiteten Digitalen Gelände-Modellen (DGM) der SRTM-Daten gewonnen.

Grenzen der Einzugsgebiete

HydroBasins bietet Polygongrenzen von Einzugsgebieten verschiedener Kontinente an. Die Grenzen sind hierarchisch organisiert – jedes Einzugsgebiet auf Ebene N ist unterteilt in kleinere Einzugegebiete auf Ebene N+1. In diesem Tutorial werden wir die Grenzen der Einzugsgebiete von Ebene 6 verwenden. Es steht jedem frei, eine andere Ebene für die eigene Region und die selbst erzeugten Karten zu benutzen. Dazu muss man die Website HydroBASINS aufrufen und die Zip-Datei der eigenen Region herunterladen.

../../_images/download1.png

Bemerkung

Die Einzugsgebietsgrenzen von HydroSHEDS wurden aus den SRTM-Daten gewonnen, die inzwischen mehr als 20 Jahre alt sind. Die Grenzen müssen nicht mehr mit den offiziellen Einzugsgebietsgrenzen der eigenen Region übereinstimmen. Es steht jedem frei. die Daten von HydroBasins durch die offiziellen Quellen zu ersetzen, sofern diese verfügbar sind.

Das Stromsystem

HydroRIVERS bietet ein Shapefile mit Linienobjekten an, welches das Stromsystem repräsentiert. Wir rufen die Website HydroRIVERS auf und laden die Zip-Datei für die betreffende Region herunter.

../../_images/download2.png

Administrative Grenze

Wir verschneiden die HydroSHEDS-Daten mit den Grenzen der ausgewählten Region. In diesem Tutorial wollen wir eine Karte der Einzugsgebiete von Indien erstellen, so dass wir ein Shapefile der Survey of India benötigen. Dazu rufen wir die Website Outline Maps of India auf und laden die Außengrenze Indiens (India International Boundary) im Vektor-Format herunter. Administrative Grenzen anderer Staaten können von den Websites GADM oder geoBoundaries bezogen werden.

../../_images/download3.png

Nach dem Herunterladen sollten die Dateien entpackt und in einem Ordner gespeichert werden. Es sollten nun 3 Shapefiles vorhanden sein: hybas_as_lev06_v1c.shp, HydroRIVERS_v10_as.shp und die administrativen Grenzen `polymap15m_area.shp`. (Anmerkung des Übersetzers: Am 04.04.2024 waren die administrativen Grenzen lediglich als PDF-Datei 1_16(2).pdf erhältlich. Für das Extrahieren der Grenzen als Vektor-Layer sind weitere fortgeschrittene Techniken erforderlich. Alternativ kann die Außengrenze Indiens auch bei GADM bezogen werden.)

../../_images/download4.png

Datenquellen: [HYDROSHEDS], [SOI]

Arbeitsablauf

  1. Wir starten QGIS und suchen die heruntergeladenen Dateien im Browser. Per Drag & Drop können die Shapefiles hybas_as_lev06_v1c.shp und HydroRIVERS_v10_as.shp in den Arbeitsbereich gezogen werden.

../../_images/150.png
  1. Dasselbe tun wir mit den uns verfügbaren Daten zu den Außengrenzen Indiens, z. B. polymap15m_area.shp.

../../_images/229.png
  1. In den HydroSHEDS-Daten-Layern sind einige Objekte mit ungültigen Geometrien enthalten. Diese Fehler werden wir jetzt beheben. Dazu öffnen wir die Verarbeitungswerkzeuge über Ansicht -> Bedienfelder -> Verarbeitungswerkzeuge. Wir suchen dort nach Vektorgeometrie -> Geometrien reparieren und starten das Werkzeug durch Doppelklick.

../../_images/320.png

Bemerkung

Um mehr Ursachen ungültiger Geometrien und deren Fehlerbehebung zu erfahren, ist das Tutorial Handling Invalid Geometries (QGIS3) hilfreich.

  1. Wir wählen hybas_as_lev06_v1c als Eingabelayer. Über den Button rechts neben dem Eingabefeld Geometrien reparieren wählen wir Speichere in GeoPackage….

../../_images/49.png
  1. Wir navigieren zu einem geeigneten Verzeichnis für die Ausgabedaten und tragen als Dateiname data.gpkg ein. Wir Speichern die Datei. Die Aufforderung zur Eingabe eines Namens in Layername quittieren wir mit der Eingabe von basins_fixed und OK. Schließlich starten wir die Fehlerbehebung über den Button Starte, um den Ausgabe-Layer zu erzeugen.

../../_images/59.png
  1. Wir wiederholen diesen Schritt für den Layer HydroRIVERS_v10_as. Dabei wählen wir dasselbe GeoPackage data.gpkg, das soeben erzeugt wurde. Keine Sorge, wenn eine Meldung, die Datei würde überschrieben, angezeigt wird: QGIS wird nicht die Datei überschreiben, sondern dem GeoPackage einen neuen Layer hinzufügen. Diesmal verwenden wir rivers_fixed als Layername.

../../_images/69.png
  1. Der Layer polymap15m_area wird mit einer Projektion ausgeliefert, die von QGIS nicht erkannt wird. Wir werden dies jetzt beheben. Dazu suchen wir nach dem Werkzeug Vektoren allgemein ‣ Projektion zuweisen und öffnen es mit einem Doppel-Klick. :Hinweis: Die GADM-Daten werden zwar automatisch in das Projekt projiziert, es empfiehlt sich jedoch, die folgenden Schritte auch an diesem Layer auszuführen.

../../_images/79.png

Bemerkung

Es ist zu beachten, dass das Werkzeug Projektion zuweisen nicht den Layer reprojiziert, sondern einfach einem existierenden georeferenzierten Layer mit fehlender oder falscher Projektionsinformation eine korrekte solche hinzufügt. Um das KBS eines Layers zu ändern, muss das Werkzeug Layer reprojizieren verwendet werden.

  1. Wir wählen polymap15m_area als Eingabelayer und betätigen den Button KBS wählen. Dort suchen wir die Projektion EPSG:7755 - WGS 84 / India NSF LCC und wählen sie aus. Danach betätigen wir den Button rechts neben dem Eingabefeld Zugewiesenes KBS und wählen Speichere in GeoPackage….

../../_images/89.png
  1. Wir wählen erneut das GeoPackage data.gpkg und geben als Layernamen admin_boundary_fixed ein. Die Prozedur lassen wir mit Starte ausführen.

../../_images/99.png
  1. Nun haben wir 3 neue Layer, basins_fixed, rivers_fixed und admin_boundary_fixed im Layer-Panel von QGIS. Wir halten die Shift-Taste gedrückt und wählen die 3 anderen Layer per Mausklick aus. Mit Klick auf die rechte Maustaste können wir Layer löschen… wählen und die Rückfrage mit OK bestätigen.

../../_images/1013.png
  1. Wir werden nun die Layer für die Einzugsgebiete und die Flüsse mit den administrativen Grenzen zuschneiden. Dazu suchen wir das Werkzeug Vektorlayerüberlagerung -> Zuschneiden aus den Verabreitungswerkzeugen und starten es durch einen Doppel-Klick.

../../_images/1116.png
  1. Wir wählen basins_fixed als Eingabelayer und admin_boundary_fixed unter Layer überlagern. Über den Button rechts neben dem Eingabefeld Zugeschnitten wählen wir Speichere in Geopackage…. Wir wählen erneut das GeoPackage data.gpkg und als Layer basins_clipped. Wir klicken auf Starte.

../../_images/1214.png
  1. Sobald der Prozess beendet ist, wiederholen wir ihn mit rivers_fixed als Eingabelayer. Das Ergebnis wird wiederum im GeoPackage data.gpkg als Layer rivers_clipped gespeichert. Wir klicken erneut auf Starte.

../../_images/1312.png
  1. Nun haben wir 2 neue Layer, basins_clipped und rivers_clipped sowie den Layer admin_boundary_fixed im Layer-Panel von QGIS. Wir halten die Shift-Taste gedrückt und wählen die anderen Layer per Mausklick aus. Mit Klick auf die rechte Maustaste können wir Layer löschen… wählen und die Rückfrage mit OK bestätigen.

../../_images/1411.png
  1. Bevor wir fortfahren, sollten wir das Projekt speichern. In QGIS ist es möglich, das Projekt innerhalb eines GeoPackages zu speichern. Dies ist gut geeignet, die Verwaltung zusätzlicher Dateien zu vermeiden. Wir speichern also über Projekt ‣ Speichern als ‣ GeoPackage….

../../_images/1511.png
  1. Im Dialog In GeoPackage speichern benutzen wir den Button rechts neben dem Eingabefeld Verbindung und suchen nach der bisher verwendeten Datei data.gpkg. Wir geben rivers_basin_map als Namen unter Projekt ein und klicken OK.

../../_images/1610.png
  1. Sobald die Daten gespeichert wurden, können wir den Eintrag data.gpkg im Browser-Panel erweitern und sehen das QGIS-Projekt innerhalb des GeoPackages. Ggf. muss die Ansicht über den Button Aktualisieren neu geladen werden. Die Nutzer des GeoPackages können nun das Projekt direkt aus dieser Quelle heraus öffnen.

../../_images/1711.png
  1. Um nun unsere kolorierte Karte zu erstellen, müssen die Einzugsgebiete so eingefärbt werden, dass benachbarte Gebiete nicht dieselbe Farbe bekommen. QGIS bietet genau dafür ein Werkzeug an. Wir suchen in den Verarbeitungswerkzeugen nach Kartographie ‣ Topologische Einfärbung und öffnen das Werkzeug durch einen Doppel-Klick.

../../_images/189.png
  1. Wir wählen basins_clipped als Eingabelayer und belassen alle anderen Einstellungen bei den Vorgaben. Die Ergebnisse werden erneut im GeoPackage data.gpkg gespeichert, und zwar als Layer basins_with_color. Wir klicken auf Starte.

../../_images/198.png
  1. Nach Abschluss der Verarbeitung wird ein neuer Layer basins_with_color im Layer-Panel angezeigt. Mit einem Rechts-Klick öffnen wir das Kontextmenü und wählen Attributtabelle öffnen. Hier wurde eine neue Spalte color_id hinzugefügt, die einen Ganzzahl-Wert enthält; ggf. muss man nach rechts scrollen, um die Werte zu sehen. Indem wir jedem dieser Werte eine eigene Farbe zuweisen, färben wir die Objekte topologisch ein.

../../_images/208.png
  1. Nun wollen wir die Farb-ID des Einzugsgebietes auf alle darin enthaltenen Flüsse übertragen. Dazu benutzen wir das Werkzeug Vektoren allgemein ‣ Attribute nach Position verknüpfen aus dem Panel der Verarbeitungswerkzeuge; wir starten es durch Doppel-Klick.

../../_images/2113.png
  1. Wir wählen die Layer rivers_clipped als Mit Objekten verknüpfen in und basins_with_color als Durch Vergleich mit. Im Bereich Hinzuzufügende Felder klicken wir auf den Button und wählen das Feld color_id. Das Ergebnis speichern wir im GeoPackage data.gpkg als Layer rivers_with_color. Wir klicken auf Starte.

../../_images/2210.png
  1. Nach Abschluss der Verarbeitung wird ein neuer Layer rivers_with_color im Layer-Panel angezeigt. Es ist nun Zeit, die Symbologie anzuwenden. Wir wählen den Layer admin_boundary_fixed klicken auf den Button Layergestaltungsfenster öffnen im Layer-Panel. Wir ändern die Farbe zu schwarz.

../../_images/237.png
  1. Als nächstes wählen wir den Layer rivers_with_color und wählen in der Layergestaltung Kategorisiert statt Einzelsymbol.

../../_images/248.png
  1. Wir wählen color_id als Wert und klicken auf Klassifizieren. Den Flüssen in unterschiedlichen Einzugsgebieten werden nun unterschiedliche Farben zugeordnet.

../../_images/258.png

Bemerkung

Wenn die zufällige Farbzuordnung nicht zufriedenstellend sein sollte, können wir durch Doppelklick auf das Symbol eigene Farben für jeden Wert zuordnen.

  1. Die vorgeschlagenen Linien sind für unsere Karte zu dick. Wir sollten das ändern, indem wir die Shift-Taste gedrückt halten und alle Symbole in der Liste auswählen. key and select all the symbols in the list. Wir klicken auf die Auswahlliste Symbol und wählen Symbol einstellen….

../../_images/267.png
  1. Wir wählen Einfache Linie aus und ändern die Breite aus 0.1. Die Karte sollte jetzt viel besser aussehen.

../../_images/278.png
  1. Wir können die Karte weiter verbessern, indem wir abhängig von ihrer Größe die Flüsse mit unterschiedlichen Strichbreiten darstellen. Im Layer rivers_with_color gibt es ein Feld ORD_STRA, welches Werte für die Flussordnungszahl nach Strahler enthält: je größer die Zahl, desto größer der Fluss. Wir werden den Assistenten benutzen, um der Flussordnungszahl eine angemessene Strichbreite zuzuordnen. Wir klicken in den Symboleinstellungen auf den Button Datendefinierte Übersteuerung neben der Einheiten-Liste von Breite und wählen Assistent….

../../_images/288.png
  1. Im Bereich Eingabe wählen wir das Feld ORD_STRA als Quelle mit 1 als Werte von und 6 als bis. Unter Ausgabe wählen wir 0.05 als Größe von und 0.2 als bis. Die Karte wird dynamisch aktualisiert, sobald Werte einegegeben werden. In den Karten zur eigenen Region können diese Werte gern angepasst werden. Sobald die Darstellung zufriedenstellend erscheint, benutzen wir den Zurück-Button.

../../_images/297.png
  1. Es ist zu beachten, dass der Button Datendefinierte Übersteuerung nun gelb dargestellt wird. Das signalisiert eine aktive Übersteuerung zu dieser Einstellung.

../../_images/306.png
  1. Unsere gefärbte Karte der Einzugsgebiete ist nun fertig. Wir sollten diese Karte jetzt in ein Layout einfügen, um eine hochaufgelöste Version mit weiteren Karteelementen zu exportieren. Wer gehen zu Projekt ‣ Neues Drucklayout…. Wenn wir aufgefordert werden, einen Namen einzugeben, lassen wir diesen leer und klicken OK.

../../_images/3110.png
  1. Im Dialogfenster Layout 1 klicken wir mit der rechten Maustaste in den leeren Arbeitsbereich und wählen Seiteneigenschaften….

../../_images/324.png
  1. Wir wählen als Größe```A4` und schwarz als Farbe für den Hintergrund.

../../_images/332.png
  1. Wir wählen Element hinzufügen -> Karte hinzufügen.

../../_images/342.png
  1. Mit gedrückter linker Maustaste wählen wir eine Region auf dem Arbeitsbereich, in der die Karte gedruckt werden soll.

../../_images/352.png
  1. Sobald die Karte angezeigt wird, scrollen wir im Bereich Elementeigenschaften nach unten und entfernen den Haken bei Hintergrund.

../../_images/361.png

Bemerkung

Sollte der Bereich Elementeigenschaften nicht sichtbar oder zufällig geschlossen worden sein, können wir ihn im Menü über Ansicht ‣ Bedienfelder ‣ Elementeigenschaften wieder sichtbar machen.

  1. Dort sollten wir noch die Ausdehnung der Karte anpassen. Dazu klicken wir auf den Button Kartenausdehnung interaktiv bearbeiten und benutzen die Maus, um die Karte zu verschieben. Außerdem kann das Scroll-Rad der Maus benutzt werden, um die Vergrößerung anzupassen. Für eine genauere Steuerung der Vergrößerung müssen die Werte im Bereich Ausdehnung manuell angepasst werden. Wir wiederholen die Schritte so lange, bis die Darstellung zufriedenstellend ist.

../../_images/371.png
  1. Als nächstes werden wir das QGIS-Logo zur Karte hinzufügen. Wir wählen Element hinzufügen ‣ Bild hinzufügen.

../../_images/381.png
  1. Wir spannen mit der Maus ein Rechteck auf der Arbeitsfläche auf, in dem das Bild platziert werden soll. Im Dielog für die Elementeigenschaften dialog suchen wir im SVG-Browser nach der Icon-Gruppe Anw.-symbole -> logos und wählen das Logo Made with QGIS.

../../_images/391.png
  1. Als nächstes werden wir eine Beschriftung mit den Daten-Referenzen einfügen. Wir wählen Element hinzufügen ‣ Beschriftung hinzufügen und geben den Text für die Daten-Referenzen ein. Schriftart und Ausrichtung des Textes können wir anpassen.

../../_images/40.png
  1. Sobald die Anpassungen vorgenommen sind, wählen wir Layout ‣ Als Bild exportieren…. Wir navigieren zu einem Ordner im Dateisystem, in dem wir das PNG-Bild ablegen wollen und geben den Namen river_basins.png ein.

../../_images/411.png
  1. Wir wählen 300 dpi als Export-Auflösung und dann Speichern.

../../_images/421.png
  1. Nach Abschluss des Exports ist die finale Version der Karte am gewählten Ort verfügbar.

../../_images/431.png
  1. Das PNG-Bild haben wir mit QGIS und frei verfügbaren Daten erzeugt.

../../_images/441.png

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