The first steps in numerical modeling of a river with BASEMENT consist in the conversion of a Digital Elevation Model (Digitales Oberflächenmodell) into a computational mesh. This tutorial guides through the creation of a QGIS project for converting a Digitales Oberflächenmodell (GeoTIFF) into a computational mesh that can be used with various numerical modeling software featured in this eBook. At the end of this tutorial, GRUNDLAGE users will have generated a computational grid in the SMS 2dm format.
QGIS Setup¶
Koordinatenreferenzsystem (Koordinatenreferenzsystem)¶
Launch QGIS and create a new QGIS project to get started with this tutorial. As featured in the QGIS Tutorial, set up a coordinate reference system (CRS) for the project. This example uses data of a river in Bavaria (Germany zone 4), which requires the following CRS:
Gehen Sie im QGIS-Spitzenmenü zu Project > Properties.
Aktivieren Sie den Koordinatenreferenzsystem-Tab.
Geben Sie
Germany_Zone_4ein und wählen Sie das Koordinatenreferenzsystem aus, das unter Fig. 1 angezeigt wird.Klicken Sie auf Apply und OK.

Figure 1:Definieren Sie Germany Zone 4 als Projekt Koordinatenreferenzsystem.
Holen Sie sich das BASEmesh Plugin¶
Installieren Sie BASEMENTs BASEmesh Plugin (Anleitung aus dem BASEMENT Systemhandbuch):
Laden Sie den QGIS Plugin-Manager: Plugins Menü > ** Plugins verwalten und installieren**.
Gehe zum Tab **Einstellungen **.
Scrollen Sie nach unten (Plugin Repositories listbox in Fig. 2), klicken Sie auf Add....
Im Popup-Fenster geben Sie ein:
ein Name für das neue Repository, zum Beispiel
BASEmesh Plugin Repositorythe repository address: https://
people .ee .ethz .ch / ~basement /qgis _plugins /qgis _plugins .xml alle anderen Ausfälle beibehalten.
Klicken Sie auf OK. Das neue Repository sollte nun in der Liste Plugin Repositories sichtbar sein. Wenn die Verbindung ** OK** ist.

Figure 2:Fügen Sie das BASEMENT-Repository zum QGIS Plugins Manager hinzu.
Still in the Plugins popup window go back to the All tab an enter
basemeshin the search field.Finden Sie das **neueste BASEmesh ** (dh **Verfügbare Version ** >= 2.0.0) Plugin und klicken Sie auf **Install Plugin **.
Nach der erfolgreichen Installation Close das Plugins Popup-Fenster.
Stellen Sie sicher, dass das BASEmesh 2 Plugin jetzt im QGIS Plugins Menü verfügbar ist (siehe Fig. 3).

Figure 3:Das BASEmesh 2-Plugin ist nach der erfolgreichen Installation im Plugin-Menü von QGIS verfügbar.
Belastung Digitales Oberflächenmodell (DOM)¶
This tutorial uses an application-ready Digitales Oberflächenmodell in GeoTIFF Gitterzellendaten (Raster) format that stems from a Lidar point cloud. The Digitales Oberflächenmodell raster provides height (Z) information from a section of a gravel-cobble bed river in South-East Germany, which constitutes the baseline for the computational grids featured in the next sections. To get the provided DEM in the QGIS project:
** Laden Sie das Beispiel Digitales Oberflächenmodell (DOM) GeoTIFF** herunter und speichern Sie es im gleichen Ordner (
/Project Home/oder einem Unterverzeichnis) wie das oben erstellte qgz Projekt.Fügen Sie die heruntergeladene Digitales Oberflächenmodell (DOM) als neue Rasterschicht in QGIS hinzu:
Im QGIS’ Browser-Bereich finden Sie das Project Home-Verzeichnis, in dem Sie das Digitales Oberflächenmodell (DOM) tif heruntergeladen haben.
Ziehen Sie das Digitales Oberflächenmodell (DOM) tif aus dem Ordner Project Home in das Layer-Panel von QGIS.
Um später die Abgrenzung bestimmter Regionen des Flussökosystems zu erleichtern, fügen Sie unter Digitales Oberflächenmodell ein satellite imagery basemap (XYZ-Kachel) hinzu und passen Sie die Ebenensymbologie an.
Die Digitales Oberflächenmodell (DOM) sollte nun auf der Karte angezeigt werden (falls nicht: mit der rechten Maustaste auf der Digitales Oberflächenmodell (DOM)-Ebene und klicken Sie auf Zoom zu Layer(s) im Kontextmenü), wie unter Fig. 4 gezeigt.

Figure 4:Die importierte Digitales Oberflächenmodell (DOM) auf einer Google Satellite Imagery Basemap (Quelle: Google / GeoBasis-DEBKG 2019). Die Strömungsrichtung verläuft von links nach rechts und folgt dem Pfeil Q.
2dm Mesh erstellen¶
The generation of a SMS 2dm uses the QGIS BASEmesh plugin and requires drawing a
Line Shapefile mit Modellgrenzen und internen Trennlinien zwischen Modellregionen mit unterschiedlichen Eigenschaften (Abschnitt auf Modellgrenzen und Breaklines);
Line Shapefile mit Modellgrenzen für die Zuweisung von Zu- und Abflussbedingungen (Abschnitt Flüssige (hydraulische) Grenzen); und
Point Shapefile mit Markierungen für die Definition von Merkmalen von Modellregionen (Abschnitt unter Regionsmarkierungen).
These shapefiles enable to generate a Quality Mesh. Ultimately, height information is interpolated to the quality mesh and the resulting mesh is saved as SMS 2dm file. The next sections walk through the procedure step by step with detailed explanations. Additional materials and intermediate data products are provided in the supplemental data repository (materials-bm) for this tutorial.
Modellgrenzen und Breaklines¶
The model boundary defines the model extent and can be divided into regions with different characteristics (e.g., roughness values) through breaklines. Breaklines indicate, for instance, channel banks and the riverbed (main channel), and need to be inside the DEM extents. Boundary lines and breaklines are stored in a Line Shapefile that BASEmesh uses to find both model boundaries and internal breaklines between model regions. For this purpose, Erstellen Sie ein Line Shapefile with one Text Field called LineType and call it breaklines.shp (Layer > Create Layer > New Shapefile Layer). Click on QGIS’ Layers menu > Create Layer > New Shapefile Layer... (see Fig. 5). Make sure to select ESRI: 31494 - Germany_Zone_4 as Koordinatenreferenzsystem
.

Figure 5:Erstellen Sie ein neues Shapefile aus dem QGIS Layers-Menü.
Es ist wichtig, dass sich die Linien nicht überschneiden, um mehrdeutige oder fehlende Definitionen von Regionen zu vermeiden und sicherzustellen, dass alle Grenzlinien geschlossene Regionen (Gebiete) bilden. Aktivieren Sie daher Snapping:
Aktivieren Sie die *Snapping Toolbar *: **View * > **Snapping Toolbar *
In der Snapping-Symbolleiste > Snapping aktivieren

Ermöglichen Sie Snaping für
Vertex, Segment und Mitte der Segmente
.Snapping on Intersections
.
Next, start to edit breaklines.shp by clicking on the yellow pen
and draw the lines indicated in Fig. 6 by activating Add Line Feature
.
Grenzen des Modells links und rechts Grenzen der Überschwemmungsgebiete:
Begrenzen Sie die äußeren Grenzen der Auen.
Make sure that all points and lines are inside the DEM layer.
Überqueren Sie nicht den Fluss (benetzter Bereich, der durch die Satelliten-Basemap angezeigt wird).
**Beende jede Zeile mit einem Rechtsklick.
Verwenden Sie für das Feld LineType Textwerte wie boundary left/right floodplain.
Siehe die roten Zeilen unter Fig. 6.
Unterbrechungen der linken Bank (LB) und rechten Bank (RB):
Zeichnen Sie Linien entlang des benetzten Hauptkanals, der in der Satellitenbild-Basiskarte angegeben ist.
Stellen Sie sicher, dass die Linienenden perfekt mit den zuvor erstellten Auengrenzlinien übereinstimmen (hier hilft das Schnappen); Daher müssen die harten Bruchlinien des Hauptkanals und die Auengrenzlinien die Auen ohne Lücke zwischen den Linien einschließen.
Verwenden Sie für das Feld LineType Textwerte wie hardline LB/RB.
Beziehen Sie sich auf die gelb-orangenen Linien unter Fig. 6 (beachten Sie die Abgrenzung der kleinen Nebenflüsse oben links am linken Ufer und unten rechts am rechten Ufer).
Breaklines von Kiesbänken:
Zeichnen Sie Linien entlang der Schotterbänke, die in der Satellitenbild-Basiskarte im Hauptkanal sichtbar sind.
Stellen Sie sicher, dass die Leitungsenden perfekt mit den zuvor erstellten Hauptkanalbruchlinien (Hardlines) übereinstimmen; Daher müssen die harten Bruchlinien des Hauptkanals und die Schotterbankbruchlinien die Schotterbänke ohne Lücke zwischen den Linien einschließen.
Für das Feld LineType verwenden Sie Textwerte wie hardline Kiesbank.
Beziehen Sie sich auf die green-ish Linien in Fig. 6.
Optional: Unterbrechungen von Blockrampen:
Finden Sie die rauen Blockrampen (ausblasende Gewässer) in der Satellitenbild-Basiskarte und beschreiben Sie sie, indem Sie Linien über den benetzten Hauptkanal zeichnen.
Stellen Sie sicher, dass die Leitungsenden perfekt mit den Hauptkanaltrennlinien übereinstimmen; Daher müssen die harten Trennlinien des Hauptkanals und die Blockrampentrennlinien die Blockrampen ohne Zwischenraum zwischen den Leitungen einschließen.
Für das Feld LineType verwenden Sie Textwerte wie hardline sss (oder irgendetwas anderes - das Beispiel bezieht sich auf das deutsche Wort Schüttsteinschwelle).
Siehe die blauen Linien unter Fig. 6.
Optional: Breakline einer Sandbank:
Find the sandbank deposit in the upper left corner in Fig. 6 on the satellite imagery basemap and delineate it by drawing a smoothly curved line.
Stellen Sie sicher, dass die Leitungsenden perfekt mit den Hauptkanaltrennlinien übereinstimmen und einen geschlossenen Bereich ohne Lücke zwischen den Leitungen umfassen.
Verwenden Sie für das Feld LineType Textwerte wie hardline sand.
Siehe die lila Linie in der oberen linken Ecke in Fig. 6.
To correct drawing errors use the Vertex Tool
. Finally, save the new lines (edits of breaklines.shp) by clicking on the Save Layer Edits
symbol. Stop (Toggle) Editing by clicking again on the yellow pen
symbol.

Figure 6:Grenze und Bruchlinien, um breaklines.shp zu zeichnen. Links und rechts Ufer und Auen sind in Strömungsrichtung orientiert (Q Pfeil).
Der Standard-Layer-Stil ist Single Symbol. Zur besseren Darstellung doppelklicken Sie auf die Trennlinienebene, gehen Sie auf die Registerkarte Symbology und wählen Sie Categorized (oder Graduated) anstelle von Single Symbol (ganz oben im Fenster Layer Properties). Wählen Sie im Feld Value LineType und klicken Sie dann auf die Schaltfläche classify am unteren Rand des Fensters Layer Properties. In der Liste werden nun die LineType-Werte angezeigt.
Flüssige (hydraulische) Grenzen¶
Die Flüssigkeitsgrenzen definieren, wo hydraulische Bedingungen, wie eine gegebene Entladungs- oder Stufenentladungsbeziehung, an den Modellzufluss- (stromaufwärts) und -abflussgrenzen (stromabwärts) gelten. Daher erfordert ein funktionales Flussmodell mindestens eine Zuflussgrenze (Linie), an der der Massenstrom in das Modell fließt, und eine Abflussgrenze (Linie), an der Massenströme das Modell verlassen. Zu diesem Zweck hat Erstellen Sie ein Line Shapefile liquid-boundaries.shp aufgerufen und definiert zwei Textdatenfelder mit den Namen type und stringdef. Stellen Sie sicher, dass **snapping ** immer noch ** aktiviert ist ** (wie oben im Abschnitt Modellgrenzen und Breaklines erklärt) und **Toggle (Start) Editing **
das neue **liquid-boundaries.shp **. Zeichne dann zwei Linien:
Aktivieren Sie Hinzufügen-Funktion
.Zeichnen Sie eine Zuflussgrenze (siehe auch Fig. 7):
Zoomen Sie auf den Zuflussbereich der Digitales Oberflächenmodell (DOM)-Grenzen, wo es eine Lücke zwischen den oben erstellten Überflutungsgrenzlinien gibt.
Beginnen Sie mit dem Zeichnen einer Linie am linken Ufer (linke Seite der unteren Abbildung) und bewegen Sie sich nach Osten (dh nach rechts), um sieben weitere Punkte über den Fluss zu machen.
Der **siebte Punkt ** muss mit dem Ende der **Überflutungsgrenze der rechten Bank ** zusammenfallen **.
Thus, the upstream flow is coming from the right-hand side of the inflow boundary line (i.e., the upstream flow direction will be
rightfor the numerical model).** Beenden Sie die Zeile mit einem Rechtsklick und geben Sie
Inflowim Typ-Feld undinflowim Stringdef-Feld ein (der Fall ist wichtig).To correct drawing errors use the Vertex Tool
.

Figure 7:Die Einströmbegrenzungslinie ist von links nach rechts gezeichnet (d.h. die stromaufwärtige Strömung kommt von der rechten Seite der Einströmbegrenzungslinie). Die Reihenfolge der zu verwendenden Tasten wird durch die roten Boxen hervorgehoben.
Zeichnen Sie als nächstes eine Outflow-Grenzlinie (siehe auch Fig. 8):
Zoomen Sie auf den Abflussbereich der Digitales Oberflächenmodell (DOM)-Grenzen, wo es eine Lücke zwischen den oben erstellten Überflutungsgrenzlinien gibt.
Beginnen Sie mit dem Zeichnen einer Linie am linken Ufer (oben in der unteren Abbildung) und bewegen Sie sich nach Südwesten (dh nach unten), um sieben weitere Punkte über den Fluss zu machen.
Der **siebte Punkt ** muss mit dem Ende der **Überflutungsgrenze der rechten Bank ** zusammenfallen **.
Thus, the upstream flow is coming from the right-hand side of the outflow boundary line (i.e., the upstream flow direction will be
rightfor the numerical model).** Beenden Sie die Zeile mit einem Rechtsklick und geben Sie
Outflowim Typ-Feld undoutflowim Stringdef-Feld ein (der Fall ist wichtig).To correct drawing errors use the Vertex Tool
.

Figure 8:Die Abflussbegrenzungslinie ist von oben nach unten gezeichnet (d.h. die stromaufwärtige Strömung kommt von der rechten Seite der Abflussbegrenzungslinie).
Speichern Sie schließlich die flüssigen Grenzlinien (Bearbeitungen von liquid-boundaries.shp), indem Sie auf das Layer Edits
Symbol klicken. Stop (Toggle) Editing durch erneutes Klicken auf den gelben Stift
Symbol.
Regionsmarkierungen¶
Regionsmarker werden innerhalb von Regionen platziert, die durch Grenzlinien und Bruchlinien definiert sind. Jeder Regionsmarker (d.h. ein Punkt irgendwo im Regionsbereich) weist beispielsweise eine Materialkennung (MATIDs) und eine maximale Mesh-Zellfläche zu. Die letztere Option ermöglicht es, kleine Maschenzellen (Maschenbereiche) im aktiven Kanalbett zu definieren und größere Zellbereiche in den Auenregionen. Erstellen Sie ein Point Shapefile benannt raster-points.shp mit den folgenden Definitionen (siehe auch Fig. 9):
Definieren Sie den ** Dateinamen** als region-points.shp (oder ähnlich)
Stellen Sie sicher, dass der Geometrietyp Point ist
The Koordinatenreferenzsystem
corresponds to Germany Zone 4 (see project CRS)Fügen Sie drei New Fields hinzu (zusätzlich zum Standardfeld Integer Typ ID):
max area = Dezimalzahl (Länge = 10, Präzision = 3)
MATID = Ganzzahl (Länge = 3)
type = Textdaten (Länge = 20)
Klicken Sie auf OK, um das neue Punkt-Shapefile zu erstellen.

Figure 9:Definitionen und Felder, die der Region-Points Shapefile hinzugefügt werden sollen.
Consider to deactivate snapping for drawing the region markers to avoid that region markers coincide with any line. Then, Toggle (Start) Editing
the new region-points.shp file and activate Add Point Feature
. Draw one point in every area section that is enclosed by breaklines and (liquid) boundary lines. Depending on the apparent area type from the satellite imagery basemap, assign one of the five regions listed in Tab. 1 to every point.
Table 1:Region names and their max_area, MATID, and type field values.
Region | Flussbett | Blockrampen | Grasbanken | Überschwemmungsgebiete | Sand |
|---|---|---|---|---|---|
max area | 25,0 | 20.0 | 25,0 | 80,0 | 20.0 |
MATID | 1 | 2 | 3 | 4 | 5 |
Typ | Flussbett | block ramp | gravel bank | Überschwemmungsgebiet | Sand Einlage |
Nachdem Sie in jedem geschlossenen Bereich einen Punkt gezeichnet haben, speichern Sie die Regionspunktmarkierungen (Bearbeitungen von region-points.shp), indem Sie auf das Layer Edits
Symbol klicken. Stop (Toggle) Bearbeiten, indem Sie erneut auf den gelben Stift
klicken. Figure 10 zeigt ein Beispiel für Regionsmarkerpunkte innerhalb der durch die Bruchlinien abgegrenzten Bereiche.

Figure 10:Beispiel für Regionspunktmarkierungen in den Projektgrenzen.
Erstellen Sie ein Quality Mesh¶
BASEmesh’s quality mesh tool creates a computationally efficient triangular mesh based on Shewchuk (1996) and within the above-defined model boundaries. The tool associates mesh properties with the regions shapefile ([see above section on Regionsmarkierungen), but it does not include elevation data. Thus, after generating a quality mesh, elevation information needs to be added. This section explains the quality mesh generation and the next section features the interpolation of bottom elevations.
Klicken Sie im Menü von QGIS Plugins auf BASEmesh 2 > QUALITÄTSMESHING, um das Qualitäts-Mesh-Tool zu öffnen. Führen Sie die folgenden Einstellungen im Popup-Fenster aus (siehe auch Fig. 11):
Rahmen für Triangulationsbeschränkungen:
Breaklines = breaklines (siehe Modellgrenzen und Breaklines).
Behalten Sie alle anderen Standardwerte.
Regionsrahmen:
** Aktivieren Sie das Kontrollkästchen Regionen**.
Region marker layer = regions-points (siehe Regionsmarkierungen).
** Aktivieren Sie das Kontrollkästchen MATID-Feld** und wählen Sie das MATID-Feld der Shapefile regions-points aus.
** Aktivieren Sie das Kontrollkästchen Maximalfläche** und wählen Sie das max area-Feld der Shapefile regions-points aus.
Mesh-Domain-Frame: Standard beibehalten.
Stringdefinitionsrahmen:
** Aktivieren Sie das Kontrollkästchen Stringdefinitionen**.
Stringdefinitionsschicht = liquid borders.
Stringdefinitionen ID Feld = stringdef.
** Aktivieren Sie das Kontrollkästchen Include in 2DM Node Strings (BASEMENT 3)**.
Ignorieren Sie alle Optionen von BASEMENT 2.8.
Einstellungsrahmen: Standardeinstellungen beibehalten.
Ausgaberahmen:
Klicken Sie auf die Schaltfläche Browse... und definieren Sie einen 2dm Dateinamen im
/Project Home/Verzeichnis, z. B. prepro-tutorial quality-mesh.2dm.
Klicken Sie auf die Schaltfläche Run, um das Qualitätsnetz zu erstellen.

Figure 11:Definitionen, die in BASEmeshs Quality Meshing Tool gemacht werden müssen.
Qualitätsverzahnung kann Zeit in Anspruch nehmen. Nach einer erfolgreichen Mesh-Generierung wurde die Datei prepro-tutorial quality-mesh-interp.2dm generiert.
Interpolieren Sie Bottom Elevation zu Quality Mesh¶
The BASEmesh plugin’s Interpolation tool projects bottom elevation data onto the quality mesh by interpolation from another mesh or a Digitales Oberflächenmodell Gitterzellendaten (Raster). Here, we use the above-introduced DEM GeoTIFF. To run the interpolation, open BASEmesh’s Interpolation tool (QGIS Plugins menu > BASEmesh 2 > Interpolation) and make the following settings (see also Fig. 12):
Wählen Sie im **Mesh-Layer zum Interpolieren ** Frame **prepro-tutorial quality-mesh **.
In der Registerkarte Basic finden Sie den Elevation Source Frame und aktivieren Sie die Aktivierung über Digitales Oberflächenmodell (DOM) (Raster) Radio-Taste.
Wählen Sie dem.tif GeoTIFF (siehe Belastung Digitales Oberflächenmodell (DOM)) als Raster Layer.
Klicken Sie im Rahmen Output auf die Schaltfläche Browse, um einen Output-Mesh-Namen im Verzeichnis
/Project Home/zu definieren, z. B. prepro-tutorial quality-mesh-interp.2dmKlicken Sie auf Run, um das höheninterpolierte Mesh zu erstellen.

Figure 12:BASEmeshs Z-Wert (Höhe) Interpolationswerkzeug und Setup, um dem Qualitätsnetz untere Höhenwerte zuzuweisen.
Stellen Sie nach der Höheninterpolation sicher, dass die Höhen korrekt zugewiesen sind (dh die Bed Elevation sollte Werte zwischen 367 und 387 m a.s.l. angenommen haben). Um die Layer-Visualisierung (Symbologie) zu ändern, doppelklicken Sie auf das neue prepro-tutorial quality-mesh-interp und gehen Sie zum Symbology-Band. Wählen Sie Graduated ganz oben im Fenster, setzen Sie den Wert auf Z, Methode auf COLOR, wählen Sie eine Farbrampe und klicken Sie auf den classify unten (unterer Teil des Fensters). Klicken Sie auf Apply und OK, um die Symbolisierungseinstellungen zu schließen. Figure 13 zeigt eine Beispielvisualisierung des höheninterpolierten Gitters.

Figure 13:Überprüfen Sie die Höheninterpolation mit Hilfe von abgestuften Farbrampen.
Nutzung mit BASEMENT¶
The 2dm mesh file produced in this tutorial can be directly used with GRUNDLAGE, where only the definition of properties of the geometric (e.g., roughness coefficients) and liquid (e.g., discharges) are required as explained later.
- 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