Tutoriel: Créer une courbe de volume d’étape

Site: OpenCourseWare for GIS
Cours: Tutoriels avancés de QGIS
Livre: Tutoriel: Créer une courbe de volume d’étape
Imprimé par: Guest user
Date: dimanche 22 décembre 2024, 10:17

1. Introduction

Une courbe hauteur-volume du réservoir ou courbe de stockage du réservoir peut être utilisée pour lire quel volume d'un lac ou d'une fosse correspond à un certain niveau d'eau. Il est beaucoup plus facile de mesurer le niveau d'eau que le volume, donc une fois la courbe créée, le volume peut être déterminé plus facilement.

Dans ce tutoriel, nous allons créer une courbe hauteur-volume du réservoir pour une fosse ouverte de mine de lignite, mais la méthode est la même pour les lacs.

Après ce tutoriel, vous serez en mesure :

  1. calculer le volume sous une élévation spécifique dans un MNT
  2. créer une courbe de volume de scène à l'aide de PyQGIS

2. Calculer le volume en dessous d’une élévation spécifique

Nous allons d'abord explorer un outil de traitement pour calculer le volume en dessous d'une élévation spécifique dans un DTM (MNT).

1. Ouvrez QGIS.

2. Dans le menu principal, allez dans Projet | Ouvrir depuis | GeoPackage, Project | Open From | GeoPackage.


3. Dans la boîte de dialogue Charger le projet à partir du GeoPackage - Load project from GeoPackage, accédez au GeoPackage data_stagevolume.gpkg et ouvrez le projet StageVolume.

Ce projet a un SRTM 1-seconde d´arc DEM reprojeté en UTM Zone 32N et délimité sur les bordures de la zone de la fosse de mine. Le DEM a été conçu avec une palette de couleurs et est fusionné avec ombre correspondant.

4. Accédez à Traitement | Toolbox, Processing | Toolbox , pour ouvrir le panneau Processing Toolbox.

5. Dans la boîte à outils de traitement du Processing Toolbox, choisissez Analyse raster | Volume de surface raster, Raster analysis | Raster surface volume.

6. Dans la boîte de dialogue Raster surface volume, choisissez DTM comme couche d'entréeInput Layer. Gardez le numéro de bande Band number tel quel et ici nous gardons le niveau de base Base level à 0 m, car nous voulons calculer le volume qui est inférieur à 0 m. Nous faisons cela en modifiant la méthode Method t en choisissant Method to Count Only Below Base Level pour ne considérer que le dessous du niveau de base. Le rapport de volume de surface Surface volume report  est un fichier html. Donnez-lui le nom volumebelowzero.html. La table des volumes de surface Surface volume table est un fichier dbf. Nous ne pouvons pas choisir un fichier dbf, nous l'enregistrons donc sous un fichier de forme volumebelowzero.shp.

7. Cliquez sur Exécuter.

L'onglet Journal donne le résultat: 'VOLUME': -1155480399.7627096

Il donne également une erreur en rouge. C'est parce qu'il ne crée pas un fichier de forme mais un fichier dbf. Vous pouvez donc ignorer cette erreur.

8. Cliquez sur Fermer Close pour fermer la boîte de dialogue.

Au bas de la boîte à outils de traitement, vous trouverez l´afficheur de résultats.

9. Double-cliquez sur le rapport de volume Surface ou sur le lien html (il renvoie au même). Il s'ouvrira dans votre navigateur. Vérifiez les résultats.

10. Faites glisser le fichier volumebelowzero.dbf du Navigateur vers le panneau d´affichage des couches.

11.Cliquez avec le bouton droit de la souris sur la table du volumebelowzero au niveau du panneau d´affichage des couches et choisissez Ouvrir la table attributaire Open Attribute Table pour vérifier le résultat.

12. Répétez les mêmes activités à partir de l'étape 5 pour d'autres élévations.

Dans la section suivante, nous allons calculer les volumes pour de nombreuses élévations et sauvegarder les valeurs dans une table.

3. Créer une table de volume d’étape

Dans la section précédente, nous avons calculé un par un le volume correspondant à une élévation spécifique.

Dans cette section, nous allons calculer de manière itérative le volume pour une plage d'élévations et stocker les résultats dans une table. Pour cela, nous devons écrire un script PyQGIS autour de l'outil Raster Surface Volume.

Tous les outils de traitement que vous avez exécutés sont stockés dans l'historique de la boîte à outils de traitement. Jetons un coup d'œil et voyons comment nous pouvons utiliser cela pour notre script.

1. Dans la boîte à outils de traitement, cliquez sur pour ouvrir l'historique.

Algorithm history

Vous y trouverez ce que nous avons fait dans la section précédente. Essayez de lire ce qui est écrit après processing.run.

Il contient le nom de l'outil: native: rastersurfacevolume. Il contient un dictionnaire avec toutes les entrées du dialogue. Cela signifie que nous pouvons copier ceci et remplacer des parties du dictionnaire dans un script PyQGIS par une variable. Ici, nous devrions itérer pour différentes valeurs de LEVEL de l'élévation minimale à l'élévation maximale du  MNT.

2. Cliquez sur Close pour fermer la boîte de dialogue Historique.

3. Dans le menu principal, choisissez Plugins | Console Python pour ouvrir la console Python.

4. Dans la console Python, cliquez sur pour ouvrir l'éditeur.

5. Accédez à cette page GitHub: https://github.com/jvdkwast/PyQGIS_Hydro/blob/master/scripts/StageVolume.py

6. Copiez le code Python dans l'éditeur et enregistrez le script sous StageVolume.py.

Lisez les commentaires pour comprendre ce qui se passe dans le code.

7. La seule chose à changer est de remplacer projectPath et inputRasterDEM par vos propres noms.

8. Enregistrez le script et cliquez sur pour exécuter le script.

Voici le résultat imprimé dans la console Python:

Le script a également ajouté une couche DEM et la table StageVolume au panneau des couches.

9. Cliquez droit sur StageVolume et choisissez ouvrir la table attributaire Open Attribute Table et inspectez-la.

Stage Volume Table

Nous avons créé le Stage Volume Table avec le champ Level en mètres et le champ VolAbsKm3 contenant les volumes en km3.

Dans la section suivante, nous allons créer la courbe de volume de la scène à l'aide du plugin DataPlotly.

Notez que vous pouvez également ajouter StageVolumeTool de GitHub à la boîte à outils de traitement. L'outil a alors un dialogue. Vous pouvez télécharger l'outil ici: https://github.com/jvdkwast/PyQGIS_Hydro/blob/master/scripts/StageVolumeTool.py

4. Créer une courbe de volume d’étape avec le plugin ‘Data Plotly’

Maintenant que nous avons créé la table hauteur-volume Stage Volume Table, nous pouvons facilement créer la courbe du Stage Volume avec le plugin Data Plotly.

1. Installez le plugin Data Plotly depuis le référentiel des plugins.

2. Cliquez sur pour ouvrir le panneau Data Plotly.

3. Assurez-vous de choisir le nuage de points Scatter Plot comme type de tracé Plot type et StageVolume comme couche. Le champ X est VolAbsKm3 et le champ Y est Level.

4. Cliquez sur

5. Décochez Afficher la légende Show legend. Définissez le titre du tracé Plot title sur Stage Volume, laissez le titre de la légende vide. Changez l'étiquette X en Volume (km3) et l'étiquette Y en Niveau (m).

6. Cliquez sur

Vous pouvez enregistrer le résultat sous forme d'image à l'aide du bouton .

A partir de la courbe hauteur-volume Stage Volume, nous pouvons voir un changement brusque à 86,4 m. C'est approximativement l'élévation de délimitation de la fosse.