Tutoriel: Automatiser la délimitation de ligne de flux et de bassin versant à l’aide du modélisateur graphique
Site: | OpenCourseWare for GIS |
Cours: | Tutoriels avancés de QGIS |
Livre: | Tutoriel: Automatiser la délimitation de ligne de flux et de bassin versant à l’aide du modélisateur graphique |
Imprimé par: | Guest user |
Date: | samedi 23 novembre 2024, 16:20 |
1. Introduction
QGIS a d’excellentes façons d’automatiser vos processus. Vous pouvez utiliser PyQGIS pour créer des scripts. Mais si vous êtes à la recherche d’une manière plus graphique, le Modélisateur graphique ‘Graphical Modeller ‘ est un excellent moyen d’automatiser vos processus à l’aide des outils de la boîte à outils de traitement.
Après ce tutoriel, vous serez en mesure :
- De définir les couches et les variables d’entrée de votre modèle graphique.
- Ajouter des outils de traitement à votre modèle graphique.
- Enregistrer les résultats de votre modèle graphique.
- Enregistrez votre modèle graphique dans la boîte à outils de traitement ‘Processing’.
- Créez un modèle graphique pour la délimitation des cours d’eau.
- Créez un modèle graphique pour la délimitation des bassins versants.
Dans ce tutoriel, nous allons faire deux modèles que vous pouvez appliquer à n’importe quel domaine pour lequel vous avez téléchargé des données SRTM et créé un polygone de délimitation de la zone d’étude. Pour ce tutoriel, les données sont fournies.
Ici, nous utilisons QGIS 3.14 Pi, mais la procédure est similaire dans 3.10 LTR.2. Préparation de données
Nous allons faire deux modèles graphiques:
- Délimitation des cours d’eau.
- Délimitation du bassin versant.
Le modèle de délimitation du flux devrait s’appliquer aux ‘SRTM 1-Arc Second tiles’ (tuiles SRTM 1 seconde d'arc) que vous pouvez télécharger pour de nombreuses régions du monde. Pour ce tutoriel quatre tuiles sont fournies, qui couvrent la zone du bassin versant Rur.
1. Lancer QGIS.
2. Ajouter des tuiles de MNT.
Parce que les quatre tuiles couvrent beaucoup plus que la zone du bassin de Rur, nous avons également besoin de numériser un polygone de délimitation. Vous pouvez numériser un polygone ou zoomer sur la zone d’étude et utiliser l’outil ‘Create layer from extent’ à partir de la boîte à outils de traitement ‘Processing Toolbox’. Assurez-vous que la projection à la volée de votre projet est modifiée en type de projection que vous souhaitez utiliser, qui ne devrait pas être un système de coordonnées géographiques avec des coordonnées lat/lon en degrés!
Pour ce tutoriel, nous avons fourni la boîte de délimitation.
3. Ajoutez la zone de délimitation à la toile de la carte.
4. Cliquer droit sur le polygone de délimitation de la zone d’étude ‘boundingbox’ dans le panneau des couche et choisir ‘Set CRS | Set Project CRS from Layer’.3. Créer le modèle graphique pour la délimitation de réseau hydrographique
Maintenant, nous allons créer le modèle graphique pour la délimitation des cours d’eau.
1. Dans le menu principal choisir Traitement | Modélisateur graphique (Processing | Graphical modeler).
2. Maximiser la fenêtre de concepteur de modèle (Model designer window)
3. Sous Propriétés du modèle, ajouter le Nom Délimitation du cours d’eau (Stream delineation) et l’Hydrologie de Groupe (Group Hydrology).Cela contrôle l’affiche du modèle dans la boîte à outils de traitement (Processing Toolbox). Dans ce cas, vous trouverez le modèle de délimitation du cours d’eau sous le groupe Hydrologie.
4. Avant de continuer à ajouter les différentes étapes de traitement, nous enregistrerons le modèle en cliquant sur. Le modèle sera enregistré dans votre profil. Choisir streamdelineation.model3 comme nom.
Nous sommes maintenant prêts à ajouter différents processus de délimitation des cours d’eau à notre modèle vide.
3.1. Mosaïque de tuiles SRTM
La première étape consiste à créer une mosaïque des tuiles SRTM.
Nous aimerions offrir à l’utilisateur le choix pour sélectionner plusieurs tuiles à la fois comme entrée.
1. Dans le panneau Entrées, double cliquez sur.
2. Dans la définition de paramètre d’entrée multiple ‘Multiple
Input Parameter Definition’, écrire Tuiles MNT ‘DEM Tiles’ en tant que
description et choisir Raster comme type de couche autorisé. Garder obligatoire
vérifié et cliquez sur OK (Mandatory checked and click OK).
De cette façon, l’utilisateur doit sélectionner un ensemble de couches raster avant que le modèle puisse s’exécuter.
3. Passez au panneau Algorithmes en cliquant sur l’onglet.
4. Recherchez construire raster virtuel (Build virtual raster) et double clic sur l’outil.
5. Dans le dialogue Build virtual raster, remplacez le texte à Description par Mosaique de Tuiles MNT (Mosaic DEM tiles).
6. Cliquer sur les couches d’entrée et sélectionnez tuiles MNT (DEM Tiles). Cliquez pour revenir en arrière.7. Changez chaque fichier d’entrée dans une bande
distincte (Place each input file into a separate band) à Non (No), car nous ne voulons
pas empiler les couches. Vérifiez si le dialogue ressemble à la figure
ci-dessous.
8. Cliquez sur OK.
Notez que nous fournissons uniquement les noms de sortie dans ces outils si la sortie est un résultat final. Dans notre cas, la mosaïque est un résultat temporaire.
Maintenant, l’écran doit ressembler à ceci:Ajoutons le processus suivant.
3.2. Reprojeter et couper le MNT
La prochaine étape à mettre en œuvre dans notre modèle graphique est de reprojeter la mosaïque MNT en UTM Zone 32N/WGS-84 et de couper le MNT suivant les limites de la zone de délimitation. Cela peut être fait avec un seul outil.
Nous devons d’abord ajouter le polygone de la zone de délimitation comme couche vectorielle d’entrée.
1. Retournez au panneau Entrée (Input) et double cliquez sur La couche vectorielle.2. Taper la zone de délimitation en Description (Bounding
box at Description) et choisissez ‘Polygon’ comme type de géométrie. Garder la
case Obligatoire (Mandatory box) cochée.
De cette façon, l’utilisateur doit fournir une couche vectorielle de polygone de délimitation.
3. Cliquer sur OK.
4. Passez maintenant à l’onglet Algorithmes et recherchez l’algorithme Warp (reproject) et double clic.
5. Dans le dialogue Warp (reproject), remplacez la Description par Reproject et clip DEM.
6. A la couche d’entrée, cliquer sur le bouton et choisir Sortie/résultat de l’algorithme (Algorithm Output).Parce que nous n’avons qu’un seul autre algorithme, ce sera automatiquement la sortie/résultat du processus ‘Mosaic DEM Tiles’.
Le CRS Source est connu, alors gardez-le vide. Nous devons changer la cible SIR (Target CRS) à celui de la couche du polygone de délimitation fourni.
7. À ‘Target CRS’, cliquez sur le bouton et choisissez Entrée modèle (Model Input).Il sélectionnera automatiquement la couche de zone de délimitation.
8. Garder la méthode de reéchantillonnage (Resampling) à utiliser chez ‘Nearest Neighbo’r afin que les valeurs de pixels d’origine soient conservées autant que possible. Définir la valeur Nodata pour les bandes de sortie à -9999. Définir la résolution du fichier De sortie sur 30 mètres.
Le dialogue doit maintenant ressembler à ceci:
Nous avons encore besoin de couper à la mesure du polygone de délimitation.
9. Cliquez sur le bouton Afficher les paramètres avancés (Show advanced parameters).
10. Choisissez ici pour les étendues géoréférencées du fichier de sortie à créer la couche de zone de délimitation d’entrée modèle (Model input Bounding box layer).11. Cliquez sur OK.
Maintenant, votre écran devrait ressembler à la figure ci-dessous.Nous pouvons procéder en ajoutant l’étape suivante.
3.3. Interpoler les lacunes
Parfois, le MNT a des pixels avec nodata. Ces vides doivent être interpolés.
1. Dans le panneau Algorithmes, double cliquez sur l’outil Remplir les nodata (Fill nodata tool).2. Modifiez la description en interpoler les vides dans
le MNT (Interpolate voids in DEM). Choisissez comme couche d’entrée la sortie
de l’algorithme ‘Reproject and clip DEM’. Augmentez la distance maximale à 100
pixels.
3. Cliquez sur OK.
Votre modèle doit maintenant ressembler à la figure ci-dessous.Nous pouvons passer à l’étape suivante.
3.4. Remplir les puits
Le prochain processus à ajouter est de remplir les puits/éviers dans le MNT
pour se débarrasser des dépressions qui piègent le débit d’eau.
1. Dans le panneau Algorithmes, recherchez l’algorithme ‘SAGA Fill sinks’ (Wang et Liu) et double cliquer.
2. Dans le ‘SAGA Fill sinks’ (wang & liu) dialogue
choisir pour MNT la sortie de l’algorithme de l’étape précédente. Parce que
nous avons besoin d’enregistré MNT rempli sur le disque, nous tapons ‘Filled
DEM’ pour ‘Filled DEM’.
3. Cliquer sur OK.
Le modèle ressemble maintenant à la figure ci-dessous. Notez que la couche de sortie (Filled DEM) se trouve dans une boîte verte. Vous pouvez déplacer la boîte sous le dernier algorithme.
Nous pouvons maintenant procéder à la mise en œuvre de
la prochaine étape.
3.5. Délimiter le réseau de rivière
Maintenant, nous allons délimiter les cours d’eau. Pour cela, nous avons besoin comme entrée le MNT rempli de l’étape précédente et un seuil d’ordre ‘Strahler’ que vous pouvez calibrer. Nous allons ajouter cela comme une entrée entier au modèle.
1. Retournez au panneau Entrée en cliquant sur l’onglet Entrée.
2. Double cliquer sur le numéro.3. Dans le ‘Number Parameter Definition’ taper ‘Strahler
order threshold’ en tant que ‘Description’. Le type de nombre est Entier. Les
commandes de Strahler ont toujours un minimum de 1. Le maximum dépend de la
zone, mais nous pouvons le limiter à 20. Nous pouvons définir une valeur par
défaut de 8. Gardez la case Obligatoire cochée.
4. Cliquez sur OK.
5. Retournez à l’onglet Algorithmes et double cliquer sur l’algorithme SAGA concernant le réseau de cours d’eau et les bassins de drainage.6. Dans la manche de réseau de cours d’eau et les
bassins de drainage, modifier la description en ‘délimiter les cours d’eau’ (Delineate
streams). Choisir pour l’élévation la sortie de l’algorithme MNT rempli. Choisir
pour Seuil limite (Threshold) la valeur d’entrée seuil d’ordre Strahler.
Enregistrer les canaux dans les lignes de cours d’eau.
7. Cliquez sur OK.
Vous pouvez réorganiser un peu les boîtes. Votre modèle doit maintenant être similaire à celui de la figure ci-dessous.
3.6. Aligner l'exutoire sur la sortie de la rivière
L’étape suivante consiste à faire une prise d’un exutoire numérisée à partir d’une carte vers le cours d’eau délimité à partir de l’étape précédente.
1. Accédez au panneau Entrée et double cliquer sur La couche vectorielle.2. Dans le paramètre de définition de couche vectorielle, taper Outlet sur la carte pour la description et définir le type de géométrie sur Point. Gardez la case Obligatoire cochée.
3. Cliquez sur OK.
Nous allons ajouter une autre entrée pour la tolérance de l’emprise.
4. Double-cliquer sur Numéro dans le panneau Entrée.
5. Dans la manche de paramètre de définition de nombre, tape ‘Tolerance’ en tant que description, choisir ‘Float’ comme type de nombre, taper une valeur minimale de 30, une valeur maximale de 500 et une valeur par défaut de 100 mètres. Garder la case Obligatoire cochée.6. Cliquez sur OK.
7. Accédez au panneau Algorithmes, double cliquer sur l’algorithme de géométries ‘Snap to layer’.
8. Dans la boîte de dialogue ‘Snap geometry to layer’,
modifier la description en ‘Snap outlet to delineated stream’, choisir pour la
couche d’entrée l’exutoire sur la carte (Outlet on map), pour la couche de
référence le résultat de canaux de l’étape précédente et pour Tolérance
l’entrée Tolérance (Tolerance). Changer le comportement en ‘préférer le point
le plus proche’ (Prefer closest point), insérer des sommets supplémentaires lorsque
cela est nécessaire (insert extra vertices where required).
Maintenant, nous devons ajouter les coordonnées à la table d’attributs afin que nous puissions les utiliser plus tard pour la délimitation du bassin versant.
10. Dans le panneau Algorithmes, double cliquer sur l’algorithme Ajouter des attributs de géométrie (the Add geometry attributes).
11. Dans la boîte de dialogue ‘Ajouter des attributs géométriques’ (Add geometry attributes), taper enregistrer l’exutoire avec les coordonnées. Choisir le résultat de géométrie ‘Snapped geometry’ comme couche d’entrée et enregistrer la couche en tant que ‘Snapped outlet’.
12. Cliquer sur OK.
Le modèle ressemble maintenant à la figure ci-dessous.
13. Enregistrer le modèle en cliquant sur .
14. Fermez la fenêtre du modélisateur graphique (Graphical Modeler window).
3.7. Tourner le modèle de délimitation
Vous pouvez maintenant trouver votre nouveau modèle dans la boîte à outils de traitement.
Avant d’exécuter le modèle, nous devons d’abord numériser un outlet.
1. Installer le ‘QuickMapServices plugin’ et ajouter ‘OSM Standard’ à la toile de carte.
2. Trouver l’exutoire du bassin versant de Rur (Roer in Dutch) sur la carte, où il entre dans la rivière de la Meuse (Maas).
3. Cliquez sur le bouton ‘créer une nouvelle couche de rayures temporaire’ (New temporary scratch layer).4. Dans la boîte de dialogue, charger la couche ‘Exutoire’ (Outlet) avec une géométrie de type ‘Point’. Définir la projection sur EPSG: 32632.
5. Pas besoin de définir des attributs. Cliquez sur OK.
6. Le couche est automatiquement définie en mode édition. Cliquer pour ajouter une fonction de point à l’exutoire.
7. Interrompre l’édition en cliquant et en cliquant enregistrer.
Nous pouvons maintenant utiliser notre modèle de délimitation des cours d’eau à partir de la boîte à outils de traitement.
8. Dans la boîte à outils de traitement, double cliquer sur Modèles | Hydrologie | Délimitation des cours d’eau.
9. Dans la boîte de dialogue ‘Délimitation des cours d’eau’ (Stream Delineation) choisir la couche du polygone limitant la zone d’étude ‘boundingbox layer’ comme ‘Bounding box’, choisir les 4 tuiles SRTM comme Tuiles MNT, choisir ‘Exutoire’ (Outlet) comme exutoire sur la carte, garder le seuil défaut ‘Strahler order threshold’ et fixer la capture de Tolérance à 500 m. Enregistrer l’exutoire sélectionné en tant que ‘snapped_outlet.shp’, enregistrer les cours d’eau en tant que ‘streams.shp’ et enregistrer le MNT rempli en tant que ‘filled_DEM.tif’.
10. Cliquer sur Exécuter. Fermer le dialogue après traitement.
Le résultat devrait ressembler à la figure ci-dessous.
Maintenant, nous pouvons continuer avec la délimitation du bassin versant de Rur en utilisant un deuxième modèle graphique.
4. Créer un model graphique pour la délimitation de bassin versant
Maintenant, nous avons l’exutoire capturé et le MNT rempli, nous pouvons utiliser ces couches comme entré pour un deuxième modèle graphique pour délimiter le bassin versant de Rur.
1. Dans le menu principal aller à ‘Traitement’ | ‘Modélisateur graphique’...
2. Sous la rubrique ‘Propriétés Modèle’, type Délimitation de bassin versant (Catchment delineation) comme ‘Nom et Hydrologie’ (Name and Hydrology) en tant que Groupe.
3. Enregistrer le modèle comme ‘catchmentdelineation.model3’.
4.1. Définir les entrées
Nous devons d’abord définir les entrées du modèle.
1. Dans le panneau ‘Entrée’ (Input), double cliquez sur la ‘couche Raster’ (Raster layer’).2. Dans la boîte de dialogue de ‘définition des
paramètres de couche Raster’ (Raster Layer Parameter Definition), tape (MNT rempli’ (Filled DEM’ en tant que
description et activer la case ‘Obligatoire’ (Mandatory).
3. Cliquer sur OK.
4. Double-cliquer sur ‘Numéro’ (Number) dans le panneau ‘Entrée’ (Input).
5. Dans la boîte de dialogue de ‘définition des paramètres de nombre’ (Number Parameter Definition), tape ‘X Coordinate Outlet’ en tant que description, conserver ‘Float’ en tant que type de nombre et laissez tout le reste par défaut.6. Cliquer sur OK.
7. Faites de même pour la coordonnée Y. Maintenant que les entrées sont définies, nous pouvons les utiliser dans les algorithmes.4.2. Délimiter le bassin versant en mode raster
Maintenant, nous pouvons ajouter les algorithmes pour dériver le bassin versant.
1. Ajoutez l’algorithme de zone ‘SAGA Upslope area’ du panneau Algorithmes.2. Dans la boîte de dialogue ‘Upslope area’, modifie
la description à ‘délimiter le bassin versant’. Reliez la coordonnée X ‘Target
X coordinate à ‘X coordinate Outlet’ et la coordonnée Y ‘Target Y coordinate à ‘Y
coordonnées Outlet’. Utiliser le MNT rempli ‘Filled DEM’ en tant que ‘Filled
DEM’. Pour la méthode, utilisez D8 et laisser les autres paramètres par défaut.
3. Cliquez sur OK.
Dans la prochaine étape, nous transformer en polygone cette couche de raster de ce bassin versant.
4.3. Transformer la limite du bassin versant en polygone
Maintenant, nous avons besoin de transformer la couche raster avec le bassin versant.
1. Dans le panneau ‘Algorithmes’, choisir ‘Polygonize’
(de raster au vecteur).
2. Dans le dialogue, changer la ‘description’ en ‘Polygonize
catchment’. Choisir la ‘’Upslope area’ comme ‘couche d’entrée’ (Input layer) et
laissez le reste par défaut.
3. Cliquer sur OK.
Maintenant, nous devons sélectionner et enregistrer l’attribut avec la valeur 100, qui est le bassin versant.
4. Dans le panneau Algorithmes, choisissez l’algorithme Extrait par attribut ‘Extract by attribute’.
5. Dans le dialogue Extrait par attribut ‘Extract by
attribute’, remplacez la description par enregistrer le polygone du bassin
versant uniquement ‘Save catchment polygon only’. Comme ‘couche d’entrée’
(Input layer), choisir le résultat de l’algorithme précédent. Taper pour
l’attribut de Sélection DN (Selection attribute DN ) (c’est le champ où avec
les valeurs 0 et 100), conservez l’opérateur comme ‘=’ et taper 100 pour la ‘valeur’,
de sorte que nous sélectionnerons la fonctionnalité avec DN = 100, qui est la
limite du bassin versant. Enregistrez le polygone extrait comme limite du
bassin versant.
6. Cliquer sur OK.
Le modèle doit maintenant ressembler à la figure ci-dessous.7. Enregistrer le modèle en cliquant sur le bouton et fermez la fenêtre Modélisateur graphique ‘Graphical Modeler’.
Ensuite, nous allons exécuter le modèle.
4.4. Tourner le modèle de délimitation du bassin versant
Maintenant, nous sommes prêts à exécuter le modèle de délimitation du bassin versant.
1. Ouvrir la table d’attribut de la couche de résultat ‘Snapped outlet’ afin que nous puissions copier les coordonnées plus tard.
2. Dans la boîte à outils de traitement choisir modèles | Hydrologie | Délimitation du captage ‘Models | Hydrology | Catchment delineation’.3. Dans le dialogue Délimitation du bassin versant ‘Catchment
Delineation’, choisir la couche ‘filled_DEM’ en tant que DEM rempli. Copier les
coordonnée X et Y de l’exutoire à partir de la table d’attribut de la couche ‘snapped_outlet’.
Enregistrer la limite du bassin versant sous le nom ‘Rur_catchment.shp’.
4. Cliquez sur Exécuter. Fermez le dialogue après traitement.
Le résultat devrait ressembler à la figure ci-dessous.