Étant donné un terrain, comment dessiner le chemin d'écoulement du cours d'eau?

23

En supposant que j'ai un terrain, comme d'habitude, le terrain a des crêtes, des ruisseaux et toutes les caractéristiques que vous pouvez trouver sur une carte réelle. L'eau coule du haut de la montagne dans la zone inférieure, le chemin que l'eau coule est appelé chemin d'écoulement du ruisseau.

Le terrain est donné en termes de réseau triangulaire irrégulier (TIN), dont chaque point p (x, y) a une valeur az. Comment utiliser ces informations pour construire le chemin de flux de flux? Quelle est la physique derrière tout ça?

D'après ce que je sais, la méthode de descente la plus abrupte peut être utilisée pour résoudre ce problème . Je pense à écrire mon propre algorithme de flux, donc je suis intéressé par le contexte théorique plutôt que par les outils existants.

Graviton
la source

Réponses:

26

Il existe différentes implémentations possibles, mais la plupart des procédures démarrent à partir d'une grille et non à partir d'un TIN.

La plus simple est probablement la procédure D8: vous calculez la direction où l'eau coulerait. Il y a 8 possibilités, les 8 cellules qui sont à côté d'une cellule de grille centrale. Vous pouvez d'abord calculer ces directions, puis comment les cellules sont connectées, et enfin vous pouvez dessiner les lignes). Une implémentation facile se trouve dans SAGA, il se lit presque comme un pseudocode: http://saga-gis.svn.sourceforge.net/viewvc/saga-gis/trunk/saga-gis/src/modules_terrain_analysis/terrain_analysis/ta_channels/D8_Flow_Analysis. cpp? revision = 911 & view = markup

Bien que très facile, ce n'est pas très réaliste: vous n'aurez pas de flux commençant dans chaque cellule. Des algorithmes plus avancés ferment généralement d'abord les puits (surtout si vous avez un DEM détaillé), puis calculent la zone de captage par cellule, c'est-à-dire le nombre de cellules qui contribuent à l'eau d'une cellule particulière, puis utilisent un seuil pour déterminer si un ruisseau est présent.

SAGA GIS met en œuvre un grand nombre de ces méthodes de zone de chalandise, vous pouvez en trouver une description dans ce manuel http://sourceforge.net/settings/mirror_choices?projectname=saga-gis&filename=SAGA%20-%20Documentation/SAGA%20Documents/ SagaManual.pdf

Il a été écrit pour une ancienne version de SAGA GIS, mais la description des algorithmes est encore assez précise, et je vais le copier ici pour référence rapide (c'est autour de la page 120), car il est open source, vous pouvez vérifier le détails d'implémentation en regardant le code.

  • Déterministe 8 (D8): Le classique. Le flux va du centre d'une cellule au centre d'une (et d'une seule) des cellules environnantes. Les directions d'écoulement sont donc limitées à des multiples de 45o, ce qui est la principale raison de la plupart des inconvénients de la méthode. (O'Callaghan et Mark 1984).
  • Rho8: idem que ci-dessus mais avec une composante stochastique qui devrait l'améliorer. La direction du flux est déterminée par un argument aléatoire qui dépend de la différence entre l'aspect et la direction des deux cellules voisines adjacentes. Pas très utile. . . (Fairfield et Leymarie 1991).
  • Infini déterministe (D∞): le flux va d'une cellule à deux cellules contiguës environnantes, considérant ainsi un flux bidimensionnel et surmontant les inconvénients de la méthode D8. (Tarboton 1998).
  • Braunschweiger Digitales Reliefmodell: Un autre algorithme à directions d'écoulement multiples. Le flux est partagé entre la cellule environnante dont l'orientation est la plus proche de l'aspect de la cellule centrale et ses deux cellules adjacentes. (Bauer, Bork et Rohdenburg 1985).
  • FD8 (trouvé dans SAGA simplement sous la forme de directions d'écoulement multiples): algorithme de routage de flux bidimensionnel dérivé de D8 (Quinn et al 1991).
  • Algorithme de routage cinématique (KRA). Un algorithme de traçage de flux unidimensionnel. Flow se comporte comme une balle qui descend le DEM, sans restreindre sa position au centre des cellules. (Lea 1992).
  • Réseau de modèles numériques d'élévation (DEMON): le plus complexe. Un algorithme de traçage de flux bidimensionnel. Plutôt long. (Costa-Cabral et Burgess 1994).

Encore plus de modèles ont été ajoutés récemment:

  • Triangular Multiple Flow Direction - Seibert, J. / McGlynn, B. (2007): «Un nouvel algorithme triangulaire à plusieurs directions d'écoulement pour calculer les zones de pente ascendante à partir de modèles d'élévation numériques maillés», Water Resources Research, Vol. 43, W04501. Cela peut être intéressant pour vous car il peut également fonctionner directement sur un TIN
  • La méthode du flux massique (MFM) pour le calcul basé sur DEM de l'accumulation de flux, comme proposé par Gruber et Peckham (2008). Gruber, S., Peckham, S. (2008): Paramètres et objets terre-surface en hydrologie. Dans: Hengl, T. et Reuter, HI [Eds.]: Geomorphometry: Concepts, Software, Applications. Developments in Soil Science, Elsevier, Bd.33, S.293-308.
  • L'algorithme latéral: http://watershed.montana.edu/Hydrology/Home_files/2010WR009296.pdf et son code est également sur son site Web: http://thomasgrabs.com/side-algorithm/
johanvdw
la source
5

Une approche originale est celle proposée dans cet article :

Fisher, P., J. Wood et T. Cheng (2004). Où est Helvellyn? Flou de la morphométrie du paysage à plusieurs échelles. Transactions de l'Institut des géographes britanniques 29, 106-128.

Il propose une méthode basée sur une représentation floue et multi-échelle. Je ne suis pas sûr mais cette méthode peut être celle implémentée dans LandSerf .

entrez la description de l'image ici

julien
la source
Le lien papier ci-dessus n'est plus accessible
Graviton
@Graviton: Le lien a été corrigé!
julien
4

Si vous avez accès à Spatial Analyst dans ArcGIS, vous disposez d'une série d'outils pour calculer les chemins de flux. Un workflow complet est fourni dans la référence ESRI, mais le workflow typique comprend:

  1. Convertissez votre TIN en raster d'élévation.
  2. Calculez la direction du flux.
  3. Remplissez de petits éviers.
  4. Calculer l'accumulation de flux
  5. À l'aide d'un seuil, choisissez uniquement les cellules avec un débit donné.
  6. Utilisez l'outil Stream to Feature pour exporter les flux vers un fichier de formes vectorielles.

Bien sûr, il existe de nombreux articles universitaires décrivant différentes méthodes, mais cette méthode est facile pour tous ceux qui ont accès à Spatial Analyst.

Patrick
la source
Je devrais écrire le code à partir de zéro, donc je ne peux pas utiliser ce progiciel.
Graviton
Eh bien, cela semble être la procédure utilisée par la plupart des packages SIG. TerraFlow est une option open source, mais je ne l'ai jamais utilisée. Que prévoyez-vous d'utiliser pour gérer le NIF?
Patrick
1
Je pense à écrire mon propre algorithme de flux de flux, c'est pourquoi les progiciels que vous mentionnez ne s'appliquent pas à moi
Graviton
2
D'accord. Lorsque vous avez dit "Je suis moins clair sur la façon de procéder", j'ai supposé que vous vouliez des conseils pratiques sur la façon de procéder. Vraisemblablement, le flux de travail utilisé par ces progiciels pourrait fournir un guide pour la structure globale de votre algorithme. De là, je vous suggère de consulter la littérature académique sur les spécificités. Par exemple, Tarboton, 1997 a été référencé plusieurs fois dans ma recherche d'algorithmes de direction d'écoulement.
Patrick
3

Dans les modèles d'élévation numériques basés sur une grille, des déterminations fiables des lignes de pente sont fournies par la méthode D8-LTD:

Orlandini, S. et G. Moretti (2009), Détermination des voies d'écoulement de surface à partir des données d'élévation maillées, Water Resour. Res., 45 (3), W03417, doi: 10.1029 / 2008WR007099.

Orlandini, S., G.Moretti, M. Franchini, B.Aldighieri et B.Testa (2003), Méthodes basées sur les trajectoires pour la détermination des directions de drainage non dispersives dans les modèles d'élévation numériques basés sur une grille, Water Resour. Res., 39 (6), 1144, doi: 10.1029 / 2002WR001639.

Dans les modèles d'élévation numériques basés sur les contours, les lignes de pente peuvent être déterminées automatiquement en résolvant des structures topographiques complexes en utilisant le modèle (complexe) décrit dans l'article suivant:

Moretti, G. et S. Orlandini (2008), Délimitation automatique des bassins de drainage à partir des données d'élévation des contours à l'aide de techniques de construction de squelettes, Water Resour. Res., 44 (5), W05403, doi: 10.1029 / 2007WR006309.

Stefano Orlandini
la source
1

Semble que ce sera tout à fait le travail d'écrire un outil à partir de zéro. ESRI y est depuis des décennies et ils n'ont toujours pas le droit.

AutoCAD (Civil 3D) peut le faire en utilisant un TIN. Je ne suis pas au courant de ce qui se passe dans les coulisses, mais dans ArcGIS, l'identification des réseaux de flux est gérée via une analyse raster.

En bref une trame de DEM d'entrée (où chaque cellule a X, Y, les valeurs de z) est utilisée comme entrée et un algorithme calcule citant le « débit cumulé (comme le poids accumulé) de toutes les cellules qui se déversent dans chaque cellule de pente descendante dans la trame d'entrée. " Le produit est un raster où chaque cellule a une valeur d'accumulation de flux. Pour identifier le réseau de cours d'eau, vous isolez ensuite les cellules de haut débit qui sont les zones de "flux concentré". Il existe d'autres considérations telles que le facteur de poids facultatif, le DEM d'entrée hydrologiquement correct, etc.

Je vais juste jeter quelques idées: En termes de "mécanique" d'un tel algorithme, je suppose que cela pourrait être assez simple; récursivement et pour chaque cellule, déterminez l'emplacement et l'élévation de toutes les cellules environnantes et, en fonction de son élévation, additionnez le nombre de cellules qui y circulent. Quant au TIN, vous pourriez probablement construire une ligne à partir de deux points sur chaque triangle (sommet le plus haut et le plus bas), puis relier tous ces éléments en un réseau.

Jakub Sisak GeoGraphics
la source
1
Des complications surviennent dans le traitement des éviers et des surfaces planes. À titre d'exemple extrême, considérons un DEM représentant un lac de montagne, de sorte que la majeure partie du DEM soit parfaitement plate. Exactement, comment une mise en œuvre récursive acheminerait-elle tous les apports dans le lac jusqu'à ses points de sortie?
whuber