Créer des profils de terrain sous ArcGis ou QGis

Pour ceux qui sont amenés à travailler sur des Modèles Numériques de Terrain, les profils topographiques (ou profils de terrain) sont un outil de base, soit dans la phase de validation , soit dans les phases de traitement. Ils permettent de visualiser le relief en fonction d’une trajet sous forme d’un graphique avec la distance en abscisses et l’altitude en ordonnées.

Si des logiciel spécifiques existent, ici on ne verra que les deux majeurs du SIG : ArcGis et QGis.
Pour les deux exemples, on part de la base que vous avez un MNT affiché dans la fenêtre cartographique. Continuer la lecture de « Créer des profils de terrain sous ArcGis ou QGis »

L’hydrologie avec un SIG, pour les nuls (que nous sommes): calcul de l’écoulement (2)

Cet article fait suite directe de l’article L’hydrologie avec un SIG, pour les nuls (que nous sommes): calcul de l’écoulement(1)

Nous allons voir maintenant le résultat de l’application d’une autre méthode de calcul d’écoulement.

Deuxième méthode : Rho8

Elle est une modification de la méthode précédente. C’est toujours un flux unidimensionnel: toute l’eau de la cellule passe vers une et une seule autre cellule. Si dans la méthode D8, le flux est calculé selon la pente la plus importante entre la cellule considérée et ses 8 cellules contiguës, dans la méthode Rho8 on va introduire un facteur aléatoire, calculé à partir de l’orientation de la cellule centrale et de la direction des deux cellules contiguës qui se situent dans cette direction.

Dans QGis vous utiliserez, dans la fenêtre de traitements-> SAGA -> Terrain analysis-Hydrology -> Catchment area (parallel)
méthode Rho8 pour le calcul de l'écoulement
Le résultat de cette méthode sur le MNT en forme semi-sphérique, pour la couche « catchment area » est le suivant:
résultat de l'écoulement Rho8

Si vous comparez maintenant avec le résultat de la méthode D8:
résultat de la méthode de calcul de l'écoulement D8

Vous pouvez observer que la concentration sur les 8 directions principales (0,45,90,135,…) est nettement moins marquée. Par contre, étant donné que nous sommes sur un sphère parfaite, l’eau devrait s’écouler de manière homogène et non sous forme de « fils ».

Pour mieux comprendre ce commentaire, nous allons passer à une autre méthode de calcul.

Troisième méthode : Multiple Flow Direction (MFD) aussi dénommée FD8

Contrairement aux deux méthodes précédentes, l’écoulement à partir d’une cellule ne se fait pas en direction d’une et une seule cellule. Selon la pente du terrain, toutes les cellules situés plus bas que la cellule concernée recevront une partie de l’écoulement.

La figure suivante est tirée de la publication à l’origine de cette méthode.
écoulement multiple

Vous pouvez consulter cette publication directement :Quinn, P.F.; Beven, K.J.; Chevallier, P.; Planchon, O.; The prediction of hillslope flow paths for distributed hydrological modelling using digital terrain models, Hydrological Processes, 5: 59–79. 1991

Pour mettre en oeuvre cette méthode, avec QGis, vous utiliserez, la fenêtre de traitements-> SAGA -> Terrain analysis-Hydrology -> Catchment area (parallel)

fenêtre de traitement sage : MFD

Le résultat de cette méthode sur le MNT en forme semi-sphérique, pour la couche « catchment area » est le suivant:
résultat de l'écoulement calculé avec la méthode MFD (FD8)

Ici nous avons un écoulement globalement uniforme, sur une semi-sphère uniforme. Si on zoome, on s’aperçoit que la structure en 8 imprime un certain tramage. En effet, même si les flux sont multiples, il sont calculés de centre de la cellule centrale aux centres des cellules contiguës. La trame 0,45,90,… apparaît ici, mais quand on regarde au niveau du détail et disparait quand on regarde le phénomène de plus haut.

Dans le prochain article on abordera les autres méthodes de calculs restantes.

L’hydrologie avec un SIG, pour les nuls (que nous sommes): calcul de l’écoulement(1)

Une citation pour débuter l’article:
« De la même manière que le manuel d’un traitement de texte ne vous apprend pas à écrire une nouvelle ou un poème ou qu’un tutoriel de CAO ne vous montre pas comment calculer la taille d’une poutre pour un bâtiment, ce guide ne vous apprendra rien sur l’analyse spatiale. A la place, il vous montrera comment utiliser l’environnement des Traitements QGIS qui est un outil puissant pour réaliser des analyses spatiales. Il est de votre responsabilité d’apprendre les concepts qui seront indispensables à la compréhension de ce type d’analyses. Sans eux, vous n’arriverez pas à utiliser l’environnement et ses algorithmes même si vous pouvez être tenté de le faire. » (Documentation QGis)

Dans cette série d’articles, on ne va pas essayer de vous apprendre l’hydrologie. Nous allons juste ouvrir quelques portes qui restent, le plus souvent fermées. Si cela ne vous apprend pas l’hydrologie, au moins nous espérons glisser le doute sur ce que vous faites, doute qui vous permettra d’apprendre (si vous le souhaitez).

Dans les articles consacrés au calcul des bassins versants (ArcHydro : détermination des bassins versants d’un territoire (1), ArcHydro : détermination des bassins versants d’un territoire (2)) vous pourrez remarquer que la base de pratiquement tous les calculs que nous avons fait est la couche des directions d’écoulement (Flow direction)

Cette couche constitue l’élément clé de l’analyse hydrologique. De nombreuses alternatives existent, chacune d’elles ayant ses avantages et ses inconvénients. Les expliquer en détail prendrait trop de temps, et nous allons simplement présenter les idées qui sont intéressantes d’un point de vue pratique, afin que vous puissiez avoir une idée de la différence d’utiliser une méthode ou une autre.

Fondamentalement, les méthodes peuvent être divisés en deux groupes: celles qui considèrent le flux comme un déplacement entre les centres des cellules et celles dans lesquelles les flux se déplacent «librement» dans le MNT (algorithmes « Flow tracing »). Celles du premier groupe sont en relation avec la méthode D8 (la plus ancienne et la seule que vous trouverez dans ArcGis), tandis que celles du deuxième sont plus complexe et son utilisation est plutôt restreinte.

Une autre classification peut être faite séparant celles qui considèrent un flux unidimensionnel (communément appelés algorithmes de direction d’écoulement unique) et ceux qui considèrent un écoulement bidimensionnel (algorithmes de direction d’écoulement multiple). En d’autres termes, les premier considèrent que l’écoulement d’une cellule se fait sur une, et une seule, autre cellule, tandis que les deuxièmes considèrent que l’écoulement peut se faire sur plus d’une cellule contiguë de la cellule considérée.

Pour rester sur des logiciels connus, nous allons voir les différentes options proposées par QGis, sachant que sous ArcGis il n’y a pas de choix possible. D’autres méthodes peuvent être utilisées par des logiciels spécifiques au calcul hydrologique.

Avec QGis, vous avez les choix entre 8 méthodes de calcul de la direction d’écoulement:

  • Déterministe 8 (D8): La méthode classique, implémentée dans ArcGis. Le flux va du centre d’une cellule jusqu’au centre d’une (et seulement une) des cellules environnantes. Les directions de flux sont donc limitées à des multiples de 45 °, ce qui est la raison principale des inconvénients de la méthode. (O’Callaghan, J. F. y Mark D.M. The extraction of drainage networks from digital elevation data. Computer
    Vision, Graphics and Image Processing 28: 323–44. 1984
    ).
  • Rho8: Comme la précédente, mais avec une composante stochastique qui devrait améliorer les résultats. Le sens de circulation est déterminée par un argument aléatoire qui dépend de la différence entre l’orientation (« aspect ») et la direction des deux cellules voisines adjacentes. (Fairfield, J.; Leymarie P. Drainage networks from grid digital elevation models. Wat. Resour. Res. 27(5):709–717, 1991).
  • Déterministe infinie (D∞): Le flux passe d’une cellule à deux cellules environnantes contiguës, constituant ainsi un écoulement bidimensionnel, ce qui permet de résoudre les inconvénients de la méthode D8. (Tarboton, D.G.; Shankar, U. (1998), The Identification and Mapping of Flow Networks from DigitalElevation Data, Invited Presentation at AGU Fall Meeting, San Francisco, 1998).
  • Braunschweiger Digitales Reliefmodell: Un autre algorithme de direction de flux multiple. L’écoulement est divisé entre la cellule environnante dont l’orientation est la plus proche de l’orientation (« aspect ») de la cellule centrale et de ses deux cellules adjacentes. (Bauer, J.; Rohdenburg, H.; Bork, H.-R. Ein Digitales Reliefmodell als Vorraussetzung fuer ein deterministisches Modell der Wasser- und Stoff-Fluess, Landschaftsgenese und Landschaftsoekologie, H.10, Parameteraufbereitung fuer deterministische Gebiets-Wassermodelle, Grundlagenarbeiten zu Analyse von
    Agrar-Oekosystemen, (Eds.: Bork, H.-R.; Rohdenburg, H.), p.1–15, 1985).
  • FD8 : un algorithme de calcul d’itinéraire d’écoulement bidimensionnel dérivé du D8. (Quinn, P.F.; Beven, K.J.; Chevallier, P.; Planchon, O.; The prediction of hillslope flow paths for distributed hydrological modelling using digital terrain models, Hydrological Processes, 5: 59–79. 1991).
  • algorithme de routage cinématique (KRA). Un algorithme d’écoulement de flux unidimensionnel. L’écoulement se comporte comme une balle qui roulerait sur le MNT, sans restreindre sa position au centre des cellules. (Lea, N. L. An aspect driven kinematic routing algorithm. En Parsons, A. J.; Abrahams, A. D. Overland Flow: Hydraulics and Erosion Mechanics, New York, Chapman & Hill. 1992).
  • Réseau Modèle Numérique de Terrain (Network DEMON): Le plus complexe. Un algorithme de traçage de flux bidimensionnel. Très gourmand en temps de calcul (Costa-Cabral, M. C.; Burges,S. J. Digital elevation model networks (DEMON): A model of flow over hillslopes for computation of contributing and dispersal areas. Wat. Resour. Res. 30: 1681–92. (1994)).
  • Le meilleur moyen de les comparer c’est de les appliquer tour à tour sur le même terrain et voir le résultat du calcul du flux d’écoulement.

    Pour cela, nous allons utiliser QGis et son module de traitements. Pour beaucoup d’utlilisateurs de QGis, ce module est inconnu, car dans les versions précédentes il fallait l’activer pour qu’il soit accessible. A partir de la version 2.6 il est installé par défaut. Voilà comment y accéder.
    ouverture de la fenêtre traitements de QGis
    Et voilà comment ça se présente;
    fenêtre traitements de QGis

    Cette fenêtre permet de lancer des traitement extérieurs à QGis. Nous allons utiliser les traitements disponibles dans SAGA pour illustrer le calcul du flux d’écoulement.

    Pour mieux les comparer, au lieu de les appliquer à un terrain plus ou moins complexe, nous allons les appliquer à un MNT fictif correspondant à une semi-sphère.
    mnt fictif pourt tester les méthodes de calcul de l'écoulement

    Nous allons donc calculer les directions d’écoulement sur ce terrain. Afficher les directions de chaque cellule ne nous apporterait pas grand chose, par contre afficher le résultat de l’accumulation de flux est beaucoup plus parlant. Cette couche découle du calcul des directions d’écoulement et montre le nombre de cellules amont pour chaque cellule du raster.

    Si vous souhaitez faire vous-même les test, vous pouvez télécharger le mnt de test en cliquant ici.

    Première méthode : D8

    C’est la méthode utilisée par ArcGis et ArcHydro. Le flux est calculé selon la pente la plus importante entre la cellule considérée et ses 8 cellules contiguës.
    C’est donc un flux unidimensionnel: toute l’eau de la cellule passe vers une et une seule autre cellule.

    Dans QGis vous utiliserez, dans la fenêtre de traitements-> SAGA -> Terrain analysis-Hydrology -> Catchment area (parallel)

    commande de calcul pour la méthode D8

    Parmi les différentes couches résultat, celle qui nous intéresse c’est la couche « catchment area ». Voici le résultat pour cette méthode:

    flux d'écoulement calculé avec la méthode D8

    Etant donné que nous sommes sur une semi-sphère, le flux d’écoulement devrait être homogène. Par contre on voit bien que le fait de n’avoir que des options séparées par 45° (d’une cellule on ne peut que aller vers une des 8 directions correspondantes aux 8 cellules contiguës) introduit un biais en créant des zones d’accumulation forte dans ces directions (0°,45°,90°,…)

    Dans le prochain article nous verrons les résultats pour les autres méthodes de calcul.

    ArcHydro : détermination des bassins versants d’un territoire (2)

    Dans l’article précédent, ArcHydro : détermination des bassins versants d’un territoire (1), nous nous sommes arrêtés à la définition de notre réseau hydrographique. Nous allons terminer e processus en abordant les trois derniers points:

      4- Segmentation du réseau d’écoulement
      5- Détermination du bassin versant de chaque tronçon du réseau d’écoulement
      6- Fusion des bassins versants de chaque élément pour constituer des bassins versant de la taille souhaitée

    Segmentation du réseau d’écoulement

    Il ne faut pas oublier que nous sommes en train de travailler en mode raster. Chaque pixel (cellule) peut contenir une ou plusieurs valeurs, mais elles sont toutes « indépendantes ». Contrairement au réseau hydrographique de type vecteur, où nous avons des tronçons identifiés, ici rien ne nous permet de dire que deux pixels, mêmes contigus, appartiennent à un même tronçon hydrographique.

    L’étape de segmentation à laquelle nous allons procéder répond à ce besoin: la commande va chercher les pixels contigus entre deux nœuds hydrographiques.
    liens sur un bassin hydrographique
    Les nœuds considérés sont: les sources, les jonctions, les exutoires.
    Les pixels contigus entre deux nœuds auront le même identifiant de tronçon. Et chaque tronçon sera numéroté différemment.

    Pour créer ce réseau, nous utilisons la commande « Terrain Preprocessing » -> « Stream Segmentation »
    commande stream segmentation

    Visuellement, le raster résultant est identique au précédent. Pour voir la différence vous pouvez changer la symbologie en « Valeurs uniques ». Vous verrez alors les pixels appartenant à chaque tronçon avec la même couleur.

    Détermination du bassin versant de chaque tronçon du réseau d’écoulement

    Maintenant que nous avons construit les tronçons du réseau hydrographique nous allons déterminer les bassins versants de chaque tronçon, c’est à dire les cellule qui se déversent sur chacun des tronçons. Contrairement à notre notion classique de bassin versant qui prend en comte le ruissellement des berges di tronçon ainsi que les apports des tronçons en amont de celui qui est considéré, dans cette étape nous allons seulement prendre en compte le ruissellement direct sur chaque tronçon, sans tenir compte des apports qui peuvent arriver par les biais des affluents du tronçon.

    Pour cela nous utiliserons la commande « Terrain Preprocessing » -> « Catchment Grid delineation »
    catchment delineation
    Les entrées sont le raster avec les directions d’écoulement et le raster avec les tronçons hydrographiques.
    La sortie sont les bassins versants de chaque tronçon.
    bassins versants individuels des tronçons hydrographiques

    Maintenant, nous souhaitons voir les bassins versants tels que nous les connaissons, pas tronçon par tronçon, mais bien par cours d’eau principal. C’est ce que nous allons faire dans la prochaine étape.

    Fusion des bassins versants de chaque élément pour constituer des bassins versant de la taille souhaitée

    Pour continuer dans cette étape, nous allons quitter le monde raster pour rejoindre le monde vecteur. Même s’il y a moyen de faire ce que nous souhaitons avec des rasters, il est beaucoup plus simple de travailler en mode vecteur.
    Nous allons donc convertir en vecteur les bassins versants des tronçons et le réseau de tronçons.
    Pour convertir les bassins versants des tronçons, nous utilisons la commande « Terrain Preprocessing » -> « Catchment Polygon Processing »
    bassins versants des tronçons sous forme de polygones

    Pour convertir le réseau de tronçons en polylignes, nous utilisons la commande « Terrain Preprocessing » -> « Drainage Lines Processing »
    réseau hydrographique vecteur

    Vous pouvez voir que les propriétés de chaque tronçon permettent de savoir les nœuds qui le limitent ainsi que le tronçon aval suivant.

    Nous allons maintenant calculer les bassins contigus avec la fonction « Adjoint Catchment Processing ».

    Cette fonction génère le bassin versant agrégé, cumulé et contigu en amont de chaque bassin de tronçon hydrographique. Pour chaque bassin versant généré, le polygone construit délimite toute la zone contigüe amont du tronçon. Si Deux tronçons confluent vers le tronçon en question, le polygone entoure les trois bassins de tronçons. Puis, on cherche quels bassins de tronçons sont contigus à ce polygone et on en génère un nouveau bassin versant contigu. On effectue ce processus jusqu’à ne plus avoir de bassins de tronçons qui s’écoulent vers le bassin versant généré.

    Pour exécuter cette commande on utilise « Terrain Preprocessing » -> « Adjoint Catchment Processing ».

    Les entrés sont les lignes d’écoulement (« DrainageLine ») et la couche de polygones bassins versants (« Catchment”). Le résultat est stocké dans une nouvelle couche vectorielle de type polygone (« AdjointCatchment ») que vous pouvez renommer.

    agrégation des bassin versants

    Cette couche nous permettra de réaliser toute une série de calculs intéressants, mais la commande a aussi ajouté une champ attribut dans la table de « Catchment » avec l’identifiant du bassin aval et un autre champ attributaire dans la table de DrainageLine avec l’identifiant du bassin versant du tronçon.