Introduction à PyQGIS
3. Créer un tableau niveau/ volumes avec PyQGIS dans QGIS
Dans la section précédente, nous avons calculé le volume correspondant à une, et une seule élévation donnée.
Dans cette section, nous calculerons itérativement le volume pour une gamme d'élévations et enregistrerons les résultats dans un tableau. Pour cela, nous devons écrire un script PyQGIS bâti sur 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 traitements. Jetons y un coup d’œil et voyons comment nous pouvons l'utiliser pour notre script.
1. Dans la Boîte à outils de traitement, cliquez sur pour ouvrir l'historique.
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 de la fenêtre. Cela signifie que nous pouvons le copier et remplacer des parties du dictionnaire dans un script PyQGIS avec une variable. Ici, nous devons itérer pour différentes valeurs de LEVEL (niveau) du niveau minimal au l'niveau maximal du MNT (DEM).
2. Cliquez fermer pour fermer la fenêtre de l'History.
3. Dans le menu principal, choisir Extension | Console Python pour ouvrir la console de Python.
4. Dans la console de Python cliquez sur pour ouvrir l'éditeur.
5. Allza à 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 en tant que StageVolume.py.
Lisez
les commentaires pour comprendre ce qui se passe dans le code. Plus tard, nous
examinerons plus en détail le script lorsque nous travaillerons avec en dehors
de l'interface graphique (GUI) de QGIS.
7. La
seule chose à changer est de remplacer projectPath
et inputRasterDEM
par
vos noms à vous.
8. Enregistrez le script et cliquez sur pour l'exécuter.
Voici le résultat affiché dans la console Python:
Le script a également ajouté une couche DEM (MNT) et le tableau StageVolume dans le panneau des Couches.
9. Faites un clic droite sur StageVolume et choisissez Ouvrir la table des attributs et l'inspecter.
Nous avons créé le tableau Niveau/Volume avec le champ Level (niveau) en mètres et le champ VolAbsKm3 contenant les volumes en km3.
Dans la section suivante, nous allons créer la courbe Niveau/volume en utilisant l'extension Data Plotly.
Notez que vous pouvez également ajouter StageVolumeTool depuis GitHub à la boîte à outils de traitement. L'outil dispose alors d'une fenêtre. Vous pouvez télécharger l'outil à partir d'ici: https://github.com/jvdkwast/PyQGIS_Hydro/blob/master/scripts/StageVolumeTool.py