Tutoriel: Calculer le temps de concentration d’une rivière (équation de Kirpich)

Site: OpenCourseWare for GIS
Cours: Tutoriels avancés de QGIS
Livre: Tutoriel: Calculer le temps de concentration d’une rivière (équation de Kirpich)
Imprimé par: Guest user
Date: dimanche 22 décembre 2024, 10:29

1. Introduction

Dans ce tutoriel, nous allons calculer le temps de concentration d’une rivière. Nous allons utiliser l’équation Kirpich, mais vous pouvez appliquer la méthode à d’autres équations d’une manière similaire.

L’équation Kirpich:

tc = k * (dx ** const1) * (S ** const2)

tc = temps de concentration en minutes
k = 0.0195 pour convertir en unités SI
dx = distance entre le premier et le dernier nœud en mètres
S = la différence d’altitude entre le premier et le dernier nœud en m/m
const1 = 0.77
const2 = -0.385

Après ce tutoriel, vous serez en mesure de :

  1. Sélectionner le plus long chemin d’une rivière.
  2. Dissoudre les segments de ligne.
  3. Trouvez le premier et le dernier nœud sur la rivière.
  4. Fusionner le premier et le dernier nœud en une seule couche vectorielle point.
  5. Echantillonner des élévations du MNT à des points donnés.
  6. Calculer l’équation Kirpich à la main ou à l’aide du script PyQGIS.

2. Sélectionnez le chemin le plus long d’une rivière

The first step is to select the longest path of the river for which you want to calculate the time of concentration. Unfortunately, there's not a simple tool that does that. Here we'll use a manual procedure.

La première étape consiste à sélectionner le chemin le plus long de la rivière pour lequel vous voulez calculer le temps de concentration. Malheureusement, il n’y a pas un outil simple qui fait cela. Ici, nous allons utiliser une procédure manuelle.

1. Lancer QGIS.

2. Ouvrez le projet Kirpich à partir du GeoPackage fourni avec ce tutoriel. Dans le menu principal, choisissez ‘Project | Open from | GeoPackage...’


3. Dans le projet Load de la boîte dialogue GeoPackage, naviger vers Kirpich_data.gpkg et choisir Kirpich comme project.

Le projet a le polygone du bassin versant (catchpoly), canaux (channels), DEM (SRTM 1-Arc Second) et est stylisé en utilisant le mélange avec un ‘hillshade’.

4. Cliquer sur channels.

5. Cliquez sur ‘Sélectionner des fonctionnalités/caractéristiques par zone’

6. Sélectionnez maintenant les segments de canal du chemin le plus long de l’amont à l’aval. Maintenez le bouton <Shift> appuyé pour ajouter les segments. Zoom avant si nécessaire. Vous pouvez utiliser le bouton de défilement de votre souris pour effectuer un zoom avant/arrière et vous pouvez utiliser la barre d’espace en combinaison avec le déplacement de la souris vers le panoramique. Si vous avez accidentellement sélectionné un mauvais segment, cliquez à nouveau dessus pour le désélectionner. Sélectionner le chemin le plus long du canal

Select longest path of channel

Après avoir sélectionné le chemin le plus long, les segments sélectionnés doivent être jaunes comme dans l’image ci-dessus.

Maintenant, nous allons exporter ce chemin le plus long vers une nouvelle couche.

7. Cliquer droit sur les cannaux dans le panneau à couche et choisir ‘Export | Save selected feature as...’


8. Dans la boîte de dialogue, sauvez-le au Kirpich_data GeoPackage, appeler la couche rivière and cliquer sur OK.

9. Copier et attribuer à la rivière le style  des  cannaux: cliquez droit sur les canaux et choisissez ‘Styles | Copy Style | All Style Categories...’ et cliquer droit sur ‘Kirpich_data river’ et choisi ‘Styles | Paste Style | All Style Categories’.

10. Supprimez la couche des canaux.

Maintenant, nous avons le plus long chemin de la rivière.

Longest path of the channel

Dans la prochaine étape, nous allons dissoudre les segments du chemin le plus long en un seul élément.

3. Dissoudre les segments de rivière à une seule caractéristique/élément

Parce que notre couche de rivière se compose encore de nombreux segments stockés comme des caractéristiques distinctes avec leur propre nœud de départ et de fin, nous avons besoin de dissoudre la couche d’abord, de sorte qu’il devient une seule caractéristique.

1. dans le menu principal, choisir ‘ Vector | Geoprocessing tools | Dissolve...’

2. Dans la boîte de dialogue Dissoudre, choisissez la couche ‘Kirpich_data river’ en tant que couche d’entrée, ne choisissez pas un champ de dissolution et enregistrez la couche dans le ‘Kirpich_data GeoPackage’ avec le nom ‘river_dissolved’ et cliquez sur Exécuter (run).

Dissolve dialogue

3. Cliquez sur Fermer après traitement.

4. Copiez le style à partir de la couche de ‘Kirpich_data river’ et supprimez cette couche.

5. Vérifiez la table d’attribut.


Dissolved river

Dans la section suivante, nous allons trouver le premier et dernier nœud de la rivière.

4. Trouvez le premier et dernier nœud de la rivière

Dans cette étape, nous allons trouver le premier et dernier nœud de la rivière. Pour l’équation de Kirpich, nous avons plus tard besoin de la distance entre ces points et leur différence d’altitude.

1. Ouvrir la boîte d’outils de traitement ‘Processing Toolbox’: Du menu principal choisir ‘Processing | Toolbox’.

2. Cliquer sur l’outils ‘Vector Geometry | Extract specific vertices’


Cet outil peut être utilisé pour extraire des sommets spécifiques. Le premier sommet correspond à un indice de 0, le deuxième vertex a un indice de 1, etc. Les indices négatifs peuvent être utilisés pour trouver des sommets à la fin de la géométrie, par exemple, un indice de -1 correspond au dernier sommet, -2 correspond à l’avant-dernier sommet, etc.

3. Dans la boîte de dialogue ‘Extract Specific Vertices’ choisir ‘river_dissolved’ comme couche d’entrée ‘Input layer’ pour les Vertex de type d'indices 0, -1 et enregistrez-le dans le Kirpich_data GeoPackage avec le nom firstlastnode. Cliquez sur Exécuter.



4. Cliquez sur Fermer après traitement.

5. Cliquer droit sur la couche ‘firstlastnode’ et choisir ‘Open Attribute Table’.

Attributes of first and last node

Vous pouvez voir dans le champ vertex_pos l’index du sommet et dans le champ de distance la distance du premier nœud en mètres. Donc ici, la distance du dernier nœud est de 3745 m. Nous avons besoin de cette valeur dans l’équation. Nous avons également besoin de la différence d’élévation entre le premier et le dernier nœud. Dans l’étape suivante, nous allons échantillonner l’altitude sur les deux nœuds.

5. Sélection d’élévation du premier et dernier nœud

Pour l’équation de Kirpich, nous avons également besoin de la différence d’altitude entre le premier et le dernier nœud de la rivière. Dans cette section, nous allons échantillonner l’altitude aux nœuds du DEM.

1.  Dans la boîte d’outils de traitement ‘Processing Toolbox’ choisir ‘Raster analysis | Sample raster values’


2. Dans la boîte de dialogue ‘échantillonnage de valeurs Raster’ (Sample Raster Values), choisir firstlastnode comme couche de point d’entrée (Input Point Layer), DEM comme couche Raster à échantillonner. Déroulez la section Paramètres avancés et remplacez le préfixe de la colonne des résultas par Z. Enregistrez les points échantillonnés sur le Kirpich_Data GeoPackage avec le nom de couche firstlastz. Cliquez sur Exécuter.

Sample raster values dialogue

3. Cliquez sur Fermer après traitement.

4. Cliquer droit sur la couche firstlastz et choisir Open Attribute Layer.


Maintenant, nous avons la distance et l’élévation au premier et dernier nœud.

Maintenant, nous pouvons remplir l’équation de Kirpich. Dans la section suivante, nous allons développer un script PyQGIS qui peut faire le calcul.

6. Calculer le temps de concentration dans PyQGIS

Comme il n’y a pas de moyen facile de calculer l’équation de Kirpich avec la calculatrice de champ dans la table d’attributs, nous allons développer un script PyQGIS dans cette section pour implémenter l’équation de Kirpich

L’ equation de Kirpich:

tc = k * (dx ** const1) * (S ** const2)

tc = temps de concentration en minutes
k = 0.0195 pour convertir en unités SI
dx = distance entre le premier et le dernier nœud en mètres
S = la différence d’altitude entre le premier et le dernier nœud en m/m
const1 = 0.77
const2 = -0.385

1. Dans le menu principal, aller à ‘Plugins | Python Console’

Maintenant, vous verrez la console Python apparaissant en bas de l’écran.

2. Cliquez sur l’icône Afficher l’éditeur .

Cela ouvre l’éditeur où nous pouvons écrire du code. Un tutoriel gratuit pour commencer à apprendre PyQGIS peut être trouvé ici.

3. Écrivez le code à partir de la capture d’écran ci-dessous. Les lignes avec # donnent une explication. Vous pouvez également télécharger le script à partir de GitHub.

4. Cliquez sur le bouton et enregistrez le script comme Kirpich.py.

5. Cliquez pour exécuter le script.

Vous verrez les résultats dans la console Python :

Le temps de concentration est de 21,8 minutes.