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 zu machen:

Panels, Toolbars und Plugins

Folgen Sie den unten dargestellten Anweisungen, um die QGIS Toolbox zu aktivieren.

enable QGIS toolbox

Figure 1:Öffnen Sie das Fenster Werkzeugkasten QGIS aus dem Hauptmenü.

Darüber hinaus ist die Digitizing Toolbar (Ansicht***** Toolbars** überprüfen Digitizing Toolbar) erforderlich, um dieses Tutorial abzuschließen.

Die Umwandlung zwischen geospatialen Datentypen und numerischen (computationalen) Gittern kann mit Plugins erleichtert werden. Um ein Plugin in QGIS zu installieren, gehen Sie auf das Plugins Menü > Verwalten und Installieren von Plugins...* Tab > Search...* für ein entsprechendes Plugin und installieren Sie es.

Im Rahmen der Flussanalyse werden folgende Plugins empfohlen und an mehreren Orten 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 Rechennetzen für numerische Modelle zusammen mit Zieldateiformaten und -modellen

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

Um eine Basiskarte hinzuzufügen (z.B. Satellitendaten, Straßen oder Verwaltungsgrenzen), gehen Sie zum Browser, Rechtsklicken Sie auf XYZ Tiles, wählen Sie New Connection...*, einen Namen hinzufügen und eine URL einer Online-Basiskarte. Sobald die neue Verbindung hinzugefügt wird, kann sie zu einem QGIS Projekt hinzugefügt werden, indem sie wie jede andere Geodatenschicht ziehen und fallen. Die nachfolgende Figur zeigt die Prozedur des Hinzufügens einer neuen Verbindung und ihrer XYZ-Fliesen als Schicht zum Projekt. Um mehrere Basemaps (oder jede andere Schicht) zu überlagern, klicken Sie auf eine Schicht, dann Layer Properties > Transparenz* die Opacity (z.B. auf 50%) ändern.

basemap

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

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

Erstellen einer Shapefile

Dieser Abschnitt führt durch die Erstellung eines Punktes, einer Zeile und eines Polygons Formblatt (Vektordaten). Um mehr über solche Vektordaten und andere räumlich explizite Datentypen zu erfahren, lesen Sie den Abschnitt unter Geodaten.

Erstellen einer Point Shapefile

Beginnen Sie mit dem Laden von Satellitenbildern und einer Straßenbasiskarte (siehe oben) im Schichtenbereich. Großansicht auf Mitteleuropa und rund um Stuttgart in Südwestdeutschland. Finden Sie den stark beeinträchtigten Neckar-Fluss im Norden von Stuttgart und bewegen Sie sich in die stromaufwärts (d.h. östliche Richtung), durch die Städte Esslingen und Plochingen, bis Sie zum Zusammenfluss des Neckars und der Fils Flüsse gelangen. Von dort aus folgen Sie der Fils-Fluss in der stromaufwärtigen Richtung für ein paar hundert Meter und lokalisieren Sie das PEGELHAUS (d.h. eine gauging-Station an der Fils-Fluss - click to visit). Um das Finden der Messstation in der Zukunft zu erleichtern, erstellen wir nun eine Punktformdatei, wie sie im folgenden Video und den analogen Anweisungen unter dem Video erläutert wird.

Erstellen einer Line Shapefile

Erstellen Sie eine Line Shapefile mit CenterLine.shp, um eine Mittellinie der Fils ± 200 m um die PEGELHAUS-Messe zu zeichnen, ähnlich wie die oben erstellte Punktformdatei. Fügen Sie ein text Feld hinzu und rufen Sie es an RiverName. Dann ziehen Sie eine Linie entlang des Fils River ab 200 m stromaufwärts und enden 200 m stromabwärts des PEGELHAUS, indem Sie dem Fluss auf der *OpenStreetMap-Schicht folgen. Weitere Informationen finden Sie im folgenden Video.

Erstellen einer Polygon Shapefile

Um unterschiedliche Rauheitszonen abzugrenzen (z.B. nach Bedarf für ein zweidimensionales numerisches Modell), erstellen Sie eine Polygon Shapefile FlowAreas.shp*. Die Datei enthält Polygone, die den betrachteten Abschnitt der Fils in das Flut- und Hauptkanalbett zonen. Nennen Sie das erste Feld AreaType (Typ: Text) und das zweite Feld ManningN (Typ: Decimal Number). Weitere Informationen finden Sie im folgenden Video und den Anweisungen unter dem Video.

Um die Polygone zu zeichnen:

Umrechnung: Rasterize (Polygon zu Raster)

Viele numerische Modelle verlangten, dass Rauheit im Gridded Cell (Raster) Daten-Format zur Verfügung gestellt wird. Zu diesem Zweck enthält dieser Abschnitt die Umwandlung der oben erstellten Polygonformdatei (FlowAreas.shp) zu einer Rauhigkeit Gridded Cell (Raster) Daten. Das folgende Video und die Anweisungen unter dem Video beschreiben, wie die Konvertierung funktioniert.

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

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:

Um ein Raster in eine Zeile/Punkt (Vektor)-Shap-Datei umzuwandeln, sind die Optionen die Contourtool (Raster-Menü > Extraction****) oder die Raster-Pixel zu pointsalgorithmus (Processing* Toolbox > geben raster pixels to points) ein. Sehen Sie sich auch die Tutorials an geo file conversion with Python.

Arbeiten mit Rastern

QGIS Rasterrechner (Karte Algebra)

Einige Modelle verwenden vorzugsweise (Standard-Nutzung) Manning’s n, andere verwenden den Strickler Rauheitskoeffizienten kstk_{st}, der inverse von Manning’s n ist (d.h. kst=1/nk_{st} = 1/n - Lesen Sie mehr über Rauheitskoeffizienten in der 1d Hydraulik (Manning-Strickler-Formel) Übung). So erfordert die Umwandlung eines Strickler Rauheitsrasters in einen Manning Rauheitsraster eine algebraische Rasterfunktion (Pixel-by-Pixel). Das nächste Video und die Anweisungen unter dem Video enthalten die Verwendung des QGIS Raster Calculators, um solche algebraischen Operationen durchzuführen.

Beginnen Sie mit der Eröffnung Raster-Rechner aus der QGIS-Menüleiste (Raster* > Raster-Rechner...). Dann wandeln Sie den oben erstellten roughness.tif-Raster von Mannings n-Werten in einen Strickler-Raster um:

Raster auf XYZ

Wissenschaftliche Datenformate, wie HDF, arbeiten am besten mit rohen Geospatialdatensätzen wie *.xyzDateien. Eine .*xyz-Datei enthält nur X-, Y- und Z-Koordinaten von Punkten (d.h. Punktwolken) mit oder ohne einfachen Header. Beispielsweise verwendet dieses eBook *.xyz-Daten für die Höheninterpolation eines Rechennetzes für die wissenschaftliche numerische Modellierungssoftware TELEMAC. Um eine *.xyz von einem GeoTIFFRaster zu generieren, verwenden Sie den folgenden 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.

Um die *.xyz-Datei abzuschließen, öffnen Sie sie in einer text editor und fügen Sie einen Header hinzu. Verwenden Sie beispielsweise den folgenden Header, um mit Blue Kenue zu arbeiten:

:FileType xyz  ASCII  EnSim 1.0
:EndHeader

Speichern Sie die Änderungen. Die *.xyz-Datei ist jetzt schlank und bereit, zum Beispiel für die TELEMAC pre-processing.

Layout und PDF / JPG (oder andere) Karten erstellen

Georeferenzierte Bilder in GeoTIFF oder anderen Rasterformaten, möglicherweise mit übergeordneten Formdateien oben, sind handlich und flexibel für den Einsatz mit geospatialer Software, wie QGIS, aber nicht für Präsentationen oder Berichte geeignet. Für Präsentationszwecke sollten Geospatial-Bilder oder Karten vorzugsweise in gemeinsame Formate exportiert werden, wie z.B. die **Portable **Document **Format (PDF) oder JPEG/JPG. Um gemeinsam formatierte Karten mit QGIS zu erstellen, muss zunächst ein neues (Druck-)Layout erstellt werden, das dann in ein gemeinsames Kartenformat exportiert werden kann (z.B. zusammen mit einer Legende, einer Skalenleiste und einem Nordpfeil). Das folgende Video und die Beschreibungen unter dem Videoführer durch den Kartenerstellungsprozess mit QGIS.

Starten Sie mit der Erstellung eines neuen Drucklayouts, indem Sie auf das Projekt Dropdown-Menü klicken, dann wählen Sie Neues Drucklayout*. Im neuen Drucklayout die Karte vorbereiten und die Karte wie folgt exportieren:

QGIS hat viele andere Kapazitäten, aber dieses grundlegende Tutorial sollte Ihnen das notwendige Wissen zur Nutzung der Macht von QGIS für viele Anwendungen zur Verfügung gestellt haben.

PyQGIS: QGIS und Python

Die QGIS grafische Benutzeroberfläche (GUI) bietet eine Python Befehlszeile (Plugins > Python Console), die es ermöglicht, fast jeden Mausklick in der GUI zu automatisieren. Diese Python-Befehlszeile wird als PyQGIS* bezeichnet und der QGIS-Entwickler docs gibt Anweisungen, wie man eigenständige Python-Skripte außerhalb der QGIS GUI importiert und ausgeführt. 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 Anaconda Prompt zum Ausführen eines PyQGIS-Codes öffnen, können Sie bereits auf der ersten Zeile des Codes festhalten: from qgis.core import *r gibt ImportError: No module named qgis.core. Laut dem QGIS-Entwickler docs geschieht dieser Fehler, weil Ihr System Python nicht weiß, wo die PyQGIS-Umgebung lebt. Um Ihr Terminal erkennen PyQGIS, nehmen Sie die folgende Aktion nach Ihrem System:

Linux
Windows

Öffnen Sie Terminal und installieren Sie python-qgis:

sudo apt install python-qgis

Nach der erfolgreichen Installation versuchen Sie, 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.

Am unteren Rand von .bashrc

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 auf (in Terminal):

dpkg-query -L python-qgis

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

/usr/lib/python3/dist-packages/

So fügen Sie in diesem Fall .bashrc:

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

Anschließend melden Sie sich an und melden Sie sich an Ihr System (d.h. reload .bashrc). Der Befehl from qgis.core import * soll nun in Python arbeiten.

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