Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

QGIS Tutorial

Erstes Projekt

Sobald Sie QGIS installiert haben, starten Sie das Programm und gehen Sie durch die folgenden Schritte, um grundlegende Einstellungen vorzunehmen:

Panels, Toolbars und Plugins

Befolgen Sie die unten dargestellten Anweisungen, um die *QGIS * *Toolbox * zu aktivieren.

enable QGIS toolbox

Figure 1:Öffnen Sie das Toolbox-Fenster von QGIS aus dem Hauptmenü.

Zusätzlich ist die Digitizing Toolbar (View > Toolbars > check Digitizing Toolbar) erforderlich, um dieses Tutorial abzuschließen.

Die Konvertierung zwischen Geodatentypen und numerischen (Rechen-)Gittern kann mit Plugins erleichtert werden. Um ein Plugin in QGIS zu installieren, gehen Sie zum Menü Plugins ** > ** Plugins verwalten und installieren... > **Alle ** Registerkarte > Search... für ein relevantes Plugin und installieren Sie es.

Im Rahmen der Flussanalyse werden die folgenden Plugins empfohlen und an mehreren Stellen auf dieser Website verwendet:

BASEmesh ist nur ein (sehr gut funktionierender) Mesh-Generator für QGIS und Tab. 1 Listen anderer Plugins zur Generierung von Rechenmaschen für numerische Modelle zusammen mit Zieldateiformaten und Modellen.

Basemaps für QGIS (Google oder Open Street Maps Worldmap Tiles)

Um eine Basiskarte (z. B. Satellitendaten, Straßen oder Verwaltungsgrenzen) hinzuzufügen, gehen Sie zum Browser, klicken Sie mit der rechten Maustaste auf XYZ Tiles, wählen Sie New Connection..., fügen Sie einen Namen und eine URL einer Online-Basiskarte hinzu. Sobald die neue Verbindung hinzugefügt wurde, kann sie wie jede andere Geodatenschicht per Drag & Drop zu einem QGIS-Projekt hinzugefügt werden. Die folgende Abbildung veranschaulicht den Vorgang des Hinzufügens einer neuen Verbindung und ihrer XYZ-Kacheln als Schicht zum Projekt. Um mehrere Basemaps (oder eine andere Ebene) zu überlagern, klicken Sie mit der rechten Maustaste auf eine Ebene, dann Layer Properties > Transparenz > Ändern der Opacity (z.B. auf 50%).

basemap

Fügen Sie eine Basiskarte zu QGIS hinzu: (1) Suchen Sie den Browser (2) mit der rechten Maustaste auf XYZ-Tiles und wählen Sie Neue Verbindung aus ... (3) Geben Sie einen Namen und eine URL (siehe Tabelle unten) für die neue Verbindung ein, klicken Sie auf OK (4) ziehen Sie die neue Kachel (hier: Google Satellite) in das Layers Panel.

Die folgende URL kann zum Abrufen von Online-XYZ-Kacheln verwendet werden (mehr URLs finden Sie im Internet).

Erstellen Sie ein Shapefile

This section guides through the creation of a point, a line, and a polygon Shapefil (vector data). To read more about such vector data and other spatially explicit data types, read the section on Geodaten.

Erstellen Sie ein Point Shapefile

Beginnen Sie mit dem Laden von Satellitenbildern und einer Straßenbasiskarte (siehe oben) in den Schichten. Zoomen Sie auf Mitteleuropa und finden Sie Stuttgart in Südwestdeutschland. Finden Sie den stark beeinträchtigten Neckar im Norden Stuttgarts und bewegen Sie sich in stromaufwärts gelegene Richtung (d.h. östliche Richtung), passieren Sie die Städte Esslingen und Plochingen, bis Sie zum Zusammenfluss von Neckar und Fils gelangen. Von dort aus folgen Sie dem Fluss Fils in stromaufwärts gerichtet für ein paar hundert Meter und finden Sie den PEGELHAUS (dh eine Messstation am Fluss Fils - klicken Sie auf visit]. Um das Finden der Messstation in Zukunft zu erleichtern, erstellen wir nun eine Punktformdatei, wie im folgenden Video und den analogen Anweisungen unter dem Video erläutert.

Erstellen Sie ein Line Shapefile

Erstellen Sie ein Line Shapefile namens CenterLine.shp, um eine Mittellinie der Fils ±200 m um das PEGELHAUS-Messgerät zu zeichnen, ähnlich dem oben erstellten Punkt-Shapefile. Fügen Sie ein *text * Feld hinzu und rufen Sie es RiverName auf. Dann ziehen Sie eine Linie entlang des Fils River, die 200 m stromaufwärts beginnt und 200 m stromabwärts des PEGELHAUS endet, indem Sie dem Fluss auf der OpenStreetMap-Schicht folgen. Mehr dazu im folgenden Video.

Erstellen Sie ein Polygon Shapefile

Um verschiedene Rauhigkeitszonen abzugrenzen (z. B. für ein zweidimensionales numerisches Modell), erstellen Sie ein Polygon Shapefile namens FlowAreas.shp. Die Datei enthält Polygone, die den betrachteten Abschnitt der Fils in die Auen- und Hauptkanalbett zonieren. Benennen Sie das erste Feld AreaType (Typ: Text) und das zweite Feld ManningN (Typ: Dezimalzahl). Sehen Sie mehr im folgenden Video und den Anweisungen unter dem Video.

Um die Polygone zu zeichnen:

Umwandlung: Rasterize (Polygon zu Raster)

Many numerical models required that roughness is provided in Gitterzellendaten (Raster) format. To this end, this section features the conversion of the above-created polygon shapefile (FlowAreas.shp) to a roughness Gitterzellendaten (Raster). The following video and the instructions below the video describe how the conversion works.

Um einen geospatialen Vektordatensatz zu konvertieren, verwenden Sie das Werkzeug Rasterize:

Polygon

The inverse operation of Rasterize is called Raster to Vector, which is documented at https://docs.qgis.org. The creation of a Polygon shapefile from a Raster is described in the video below. The essential steps are:

To convert a Raster to a line/point (vector) shapfile, the options are the Contour tool (Raster menu > Extraction > Contour) or the Raster pixels to points algorithm (Processing toolbox > enter raster pixels to points). Also, have a look at the tutorials on geo file conversion with Python.

Arbeiten mit Rastern

QGIS Rasterrechner (Kartenalgebra)

Einige Modelle verwenden vorzugsweise (Standardverwendung) Mannings n, andere verwenden den Strickler-Rauheitskoeffizienten kstk_{st}, der das Inverse von Mannings n ist (dh kst=1/nk_{st} = 1/n - lesen Sie mehr über Rauheitskoeffizienten in der 1d Hydraulik (Manning-Strickler Formel) Übung). Daher erfordert die Umwandlung eines Strickler-Rauheitsrasters in ein Manning-Rauheitsraster die Durchführung einer algebraischen Rasteroperation (pixelweise). Das nächste Video und die Anweisungen unter dem Video zeigen die Verwendung des QGIS Raster Calculators, um solche algebraischen Operationen durchzuführen.

Beginnen Sie mit dem Öffnen Raster Calculator aus der QGIS-Menüleiste (Raster > Raster Calculator...). Konvertieren Sie dann das oben erstellte roughness.tif-Raster von Mannings n-Werten in ein Strickler-Rauheitsraster:

Raster nach XYZ

Scientific data formats, such as HDF, work best with raw geospatial datasets like *.xyz files. A .*xyz file contains s only X, Y, and Z coordinates of points (i.e., point clouds) with or without a simple header. For instance, this eBook uses *.xyz data for the elevation interpolation of a computational mesh for the scientific numerical modeling software TELEMAC. To generate a *.xyz from a GeoTIFF raster use the following workflow:

The resulting *.xyz file contains also points with No-Data to fill void spaces in the rectangular image of the GeoTIFF (which QGIS did recognize as no-data pixels). The no-data points may make the *.xyz file unnecessarily heavy, in particular, when it is a DEM of a near-census natural river. To eliminate the unnecessary no data points, open the *.xyz file in spreadsheet software, such as Calc in LibreOffice and use the Sort tool (in Calc highlight all points go to Data > Sort...) to sort by Z values (largest to smallest) and then delete all rows that have the above-identified No-Data value (-9999) as Z value. Save the *.xyz file and close the spreadsheet software.

To finalize the *.xyz file, open it in a text editor and add a header. For instance, use the following header to work with Blue Kenue:

:FileType xyz  ASCII  EnSim 1.0
:EndHeader

Rette die Änderungen. Die *.xyz-Datei ist jetzt schlank und zum Beispiel für TELEMAC pre-processing einsatzbereit.

Erstellen von Layout und PDF / JPG (oder anderen) Maps

Georeferenced images in GeoTIFF or other raster formats, possibly with super-positioned shapefiles on top, are handy and flexible for use with geospatial software, such as QGIS, but not appropriate for presentations or reports. For presentation purposes, geospatial imagery or maps should preferably be exported to common formats, such as the Portable Document Format (PDF) or JPEG/JPG. To create commonly formatted maps with QGIS, first, a new (print) layout needs to be created, which can then be exported to a common map format (e.g., along with a legend, a scale bar, and a North arrow). The following video and the descriptions below the video guide through the map creation process with QGIS.

Beginnen Sie mit dem Erstellen eines neuen Drucklayouts, indem Sie auf das Dropdown-Menü **Projekt ** klicken und dann **Neues Drucklayout ** auswählen. Im neuen Drucklayout wird die Karte vorbereitet und die Karte wie folgt exportiert:

QGIS hat viele andere Fähigkeiten, aber dieses grundlegende Tutorial sollte Ihnen das notwendige Wissen vermittelt haben, um die Leistungsfähigkeit von QGIS für viele Anwendungen zu nutzen.

PyQGIS: QGIS und Python

Die grafische Benutzeroberfläche (GUI) von QGIS bietet eine Python-Befehlszeile (Plugins > Python Console), mit der nahezu jeder Mausklick in der GUI automatisiert werden kann. Diese Python-Befehlszeile wird als PyQGIS bezeichnet und der QGIS-Entwickler docs bietet Anweisungen zum Importieren und Ausführen von eigenständigen Python-Skripten außerhalb der QGIS-GUI]. Hier ist die grundlegende Python-Vorlage, um ein PyQGIS-Skript auszuführen:

from qgis.core import *

# define qgis installation location
QgsApplication.setPrefixPath("/path/to/qgis/installation", True)


# instantiate a QgsApplication, where the second argument (False) disables the GUI
qgs = QgsApplication([], False)


# load providers
qgs.initQgis()

# HERE GOES YOUR CUSTOM CODE

# exit the QGIS application to remove the provider and layer registries from memory
qgs.exitQgis()

Wenn Sie jedoch das Terminal Ihres Systems oder die Anaconda Prompt öffnen, um einen PyQGIS-Code auszuführen, bleiben Sie möglicherweise bereits in der ersten Codezeile stecken: from qgis.core import * liefert ImportError: No module named qgis.core. Laut QGIS-Entwickler docs] passiert dieser Fehler, weil das Python Ihres Systems nicht weiß, wo sich die PyQGIS-Umgebung befindet. Um Ihr Terminal PyQGIS erkennen zu lassen, ergreifen Sie die folgenden Maßnahmen entsprechend Ihrem System:

Linux
Windows

Öffnen Sie das Terminal und installieren Sie python-qgis:

sudo apt install python-qgis

Versuchen Sie nach der erfolgreichen Installation, ob Sie jetzt qgis.core importieren können:

USER@computer:~$ python
Python 3.8.10 (default, Nov 14 2022, 12:59:47) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from qgis.core import *
>>> exit()

If from qgis.core import * did not throw any error, you are all set and can stop reading. Otherwise, find and open your .bashrc file (Debian/Ubuntu/Mint: /home/USERNAME/.bashrc). Note that files starting with a . name are hidden on Linux and become visible by toggling with simultaneously pressing the CTRL+H keys.

At the bottom of .bashrc add the following

export PYTHONPATH=/<qgispath>/share/qgis/python

Der <qgispath>-Ausdruck sollte durch den Ort ersetzt werden, an dem die PyQGIS-Umgebung lebt. Um herauszufinden, wo das ist, tippen Sie (im Terminal):

dpkg-query -L python-qgis

Dies weist darauf hin, wo PyQGIS lebt, was auf Ubuntu / Mint typischerweise ist:

/usr/lib/python3/dist-packages/

Thus, in this case add to .bashrc:

export PYTHONPATH=/usr/lib/python3/dist-packages/

Afterward, log out and re-login to your system (i.e., reload .bashrc). The command from qgis.core import * should now work in Python.

References
  1. Shewchuk, J. R. (1996). Triangle: Engineering a 2D quality mesh generator and Delaunay triangulator. In M. C. Lin & D. Manocha (Eds.), Applied Computational Geometry Towards Geometric Engineering (pp. 203–222). Springer. 10.1007/BFb0014497