Tutoriel: Délimitation de ligne de flux et de bassin versant à l’aide d’outils GRASS

Site: OpenCourseWare for GIS
Cours: Tutoriels avancés de QGIS
Livre: Tutoriel: Délimitation de ligne de flux et de bassin versant à l’aide d’outils GRASS
Imprimé par: Guest user
Date: vendredi 26 avril 2024, 22:08

1. Introduction

La boîte à outils de traitement QGIS donne accès à de nombreux algorithmes utiles de GRASS.

Dans ce tutoriel, nous allons utiliser les outils GRASS pour délimiter la rivière Rur et son bassin versant.

Après ce tutoriel, vous pourrez:

  1. créer un MNT (DEM) hydrologiquement correct en remplissant les cuvettes
  2. calculer l'accumulation de flux
  3. délimiter les flux à l'aide d'un seuil d'accumulation de flux
  4. délimiter un bassin versant d'un exutoire spécifié

Les données du tutoriel sont un SRTM 1-seconde d´arc MNT (DEM) qui a été découpé et reprojeté vers UTM Zone 32N / WGS-84.

2. Remplir les cuvettes dans le MNT

La première étape consiste à remplir les cuvettes dans le DEM. Les cuvettes sont des dépressions artificielles qui emprisonnent l'eau et empêchent l'écoulement vers l´exutoire.

1. Démarrez QGIS Desktop avec GRASS.

2. Ajoutez dem.tif au panneau d´affichage des couches.

3. Ouvrez le panneau Boîte à outils de traitement: dans le menu principal, allez dans Processing | Toolbox.

4. Dans la boîte à outils de traitement, choisissez GRASS | Raster (r.*) | r.fill.dir.

5. Dans la boîte de dialogue r.fill.dir, choisissez la couche DEM (MNT) comme Élévation. Conservez Output aspect direction format comme grass. Enregistrez le DEM sans cuvette sous DEM_filled.tif (assurez-vous de choisir un GeoTiff) et décochez les autres couches de sortie, car nous n'en avons pas besoin.

6. Cliquez sur Exécuter. Fermez la boîte de dialogue après exécution. Le traitement prendra un certain temps. Ignorez les avertissements rouges dans le journal.

Plus d'informations sur l'algorithme peuvent être trouvées ici.

7. Supprimez la couche DEM du panneau d´affichage des couches afin que nous n'ayons que la couche DEM_filled pour continuer.

filled DEM

3. Calculer l’accumulation et la direction des flux

L'étape suivante consiste à calculer l'accumulation d'eau sur le DEM rempli.

1. Dans la boîte à outils de traitement, choisissez GRASS | Raster (r.*) | r.watershed.

L'outil r.watershed a de nombreux paramètres. Consultez la page de GRASS manual page for this tool pour en savoir plus sur les paramètres des algorithmes.

2. Dans la boîte de dialogue r.watershed, choisissez DEM_filled comme élévation. Définissez la taille minimale du l´extérieur du bassin versant Minimum size of exterior watershed basin sur 500 pixels et cochez sur la case d´activation du flux à direction d'écoulement unique Enable Single Flow Direction (D8). Enregistrez le nombre de cellules qui se drainent à travers chaque cellule Number of cells that drain through each cell dans accumulation.tif et enregistrez la direction de drainage Drainage direction dans flowdir.tif. Décochez les autres outputs, nous n'en avons pas besoin.

r.watershed dialogue

3. Cliquez sur Exécuter. Fermez la boîte de dialogue après le traitement. Ignorez les avertissements en rouge.

La couche de direction d'écoulement est codée en utilisant la définition GRASS: Le drainage est 8 directions numérotées dans le sens anti-horaire à partir de 1 dans la direction nord-est. La valeur 0 indique que la cellule est une zone de dépression. Les valeurs négatives indiquent que le ruissellement de surface quitte les limites de la région géographique actuelle. La valeur absolue de ces cellules négatives indique la direction de l'écoulement. Par conséquent, nous devons convertir la couche flowdir en valeurs absolues.

4. Dans le menu principal, allez dans la la calculatrice raster Raster | Raster Calculator.

5. Dans la calculatrice raster, composez l'équation suivante:

( "flowdir@1" < 0 ) * -1 * "flowdir@1" + ( "flowdir@1" >= 0 ) * "flowdir@1"

Cette équation est une condition qui se lit comme suit: si les valeurs de direction d'écoulement sont inférieures à zéro, le résultat est booléen True (1), sinon booléen False (0). Multipliez cela par -1 et la direction du flux. De cette manière, la première partie de l'équation donne les valeurs absolues des directions d'écoulement négatives. Ensuite, nous ajoutons la condition si les cellules sont plus grandes ou égales à zéro, donnons la valeur booléenne True (1), sinon la valeur booléenne False (0) et multiplions cela par les valeurs de direction d'écoulement. Cela signifie que les valeurs de direction d'écoulement non négatives conserveront leur valeur d'origine.

6. Enregistrez le résultat sous flowdirabs.tif et cliquez sur OK.

Normalement, nous allons appliquer un style au résultat de la direction du flux avec un grid directionnel, mais cela ne fait pas partie de ce tutoriel.

7. Supprimez la couche flowdir d'origine du panneau des couches.

Flow direction GRASS absolute

L'étape suivante consiste à déterminer à quelle accumulation de flux nous pouvons considérer les pixels comme faisant partie d'un canal.

4. Déterminer le seuil d’accumulation de flux pour les canaux

L'étape suivante consiste à calculer l'accumulation d'eau sur le DEM rempli.

Désormais, chaque pixel de la zone d'étude a une valeur d'accumulation de flux, c'est-à-dire la quantité de cellules en amont qui s'écoulent à travers chaque cellule.

Cependant, toutes les cellules ne font pas partie d'un cours d'eau. Nous devons déterminer le seuil d'accumulation de débit au-dessus duquel nous pouvons considérer le pixel comme faisant partie d'un canal fluvial.

1. Installez le plugin QuickMapServices: dans le menu principal allez dans Plugins | Manage and install plugins...


2. Installez le plugin QuickMapServices.

3. Dans le menu principal, accédez à Web | QuickMapServices | OSM |OSM Standard



4. Recherchez la rivière Rur sur OSM Standard et inspectez la couche accumulation avec l'outil Identification de l'aval vers l'amont.

Vous verrez qu'en aval les valeurs montent à 2622554 alors qu'en amont elles sont beaucoup plus basses.

En comparant OSM Standard avec la couche accumulation, vous devez déterminer l'accumulation de débit minimum pour une rivière. Ici, nous prendrons 50000 cellules comme seuil.

5. Dans le menu principal, accédez à Raster | Raster Calculator...

6. Tapez l'équation suivante:

"accumulation@1" > 50000

Ce qui signifie: si l'accumulation de flux est supérieure à 50000 cellules, alors donnez boolean True (1), sinon donnez boolean False (0).


7. Enregistrez le résultat sous le nom channels.tif. Cliquez sur OK.

8. Donnez un style à la couche Channels à l'aide du rendu de valeurs Paletted / Unique avec du bleu pour la valeur 1 et supprimez la valeur 0 pour la rendre transparente.

Flow accumulation threshold calibration

Normalement, vous devriez répéter cette opération pour différentes valeurs de seuil jusqu'à ce que vous obteniez la meilleure correspondance avec les rivières sur une carte de référence ou une image satellite.

Ici, nous allons continuer avec la valeur de 50000 cellules.


5. Délimiter les lignes de rivière

Dans la section précédente, nous avons déterminé le seuil d'accumulation de flux pour déterminer les flux. Ici, nous allons délimiter les flux en utilisant cette valeur de seuil.

1. Dans la boîte à outils de traitement, choisissez GRASS | Raster (r.*) | r.stream.extract.

2. Dans la boîte de dialogue r.stream.extract, choisissez DEM_filled comme Input map: elevation map et accumulation comme input map : accumulation map. Modifiez l'accumulation de débit minimum pour les flux Minimum flow accumulation for streams à 50000 cellules (c'est la valeur que nous avons déterminée dans les sections précédentes). Sous Unique stream ids prenez streams.gpkg comme nom pour l´enregistrement. Nous n'avons pas besoin des autres outputs.

3. Sous Advanced parameters, modifiez le type de sortie v.out.ogr en line.

4. Cliquez sur Exécuter. Fermez la boîte de dialogue après le traitement. Ignorez les avertissements rouges dans le journal.

 

Remarque 1: cela ne fonctionne qu'avec le format de sortie GeoPackage pour le vecteur ligne. Un fichier de formes donnera une couche vide.

Remarque 2: l'entré Input map: accumulation map est facultative. Si vous ne fournissez pas cela, il calculera à nouveau l'accumulation de flux, mais le résultat sera légèrement différent de ce que nous avons calculé dans la section précédente.

Pour plus d'informations sur r.stream.extract, consultez le manuel.

5. Appliquez un style à couche de vecteur Streams le calque vectoriel des flux.

Delineated streams

Maintenant que nous avons délimité les cours d'eau, nous pouvons déterminer le point de sortie du cours d'eau pour lequel nous voulons délimiter le bassin versant.

6. Délimiter le bassin versant

L'étape suivante consiste à rechercher la sortie du bassin versant au niveau du ruisseau délimité puis à calculer le bassin versant de cette sortie.

1. Suivez le ruisseau délimité en aval pour trouver l'emplacement approximatif où le Rur (Roer en néerlandais) pénètre dans la Meuse (Maas en néerlandais). Utilisez la couche vectorielle OSM Standard et streams pour trouver cet emplacement.

outlet

2. Dans la boîte à outils de traitement, accédez à GRASS | Raster (r.*) | r.water.outlet.

3. Dans la boîte de dialogue r.water.outlet, choisissez flowdirabs comme nom du raster à utiliser comme input Name of input raster map. Pour les coordonnées de l´exutoire, Coordinates of outlet point, cliquez sur et choisissez le point sur le flux délimité. Zoomez assez près.

4. Enregistrez le bassin sous le nom catchment.tif.

5. Cliquez sur Exécuter. Fermez la boîte de dialogue après le traitement.

6. Cliquez droit sur la couche du bassin versant dans le panneau d´affichage des couches et choisissez Zoom to layer pour zoomer sur la couche.

Catchment raster

Nous devons maintenant convertir le bassin versant en polygone.

7. Dans la boîte à outils de traitement, choisissez GRASS | Raster (r.*) | r.to.vect.

8. Dans la boîte de dialogue r.to.vect, choisissez catchment pour input raster layer et choisissez area comme type d'entité Feature type. Conservez le reste par défaut. Enregistrez le résultat sous Rur_catchment.shp.

9. Cliquez sur Exécuter. Fermez la boîte de dialogue après le traitement.

10. Appliquer un style aux couches.

Stream and catchment delineated