Dado un terreno, ¿cómo dibujar la ruta del flujo de la corriente?


23

Suponiendo que tengo un terreno, como de costumbre, el terreno tiene crestas, arroyos y todas las características que puedes encontrar en un mapa de la vida real. El agua fluye desde la cima de la montaña hacia el área inferior, la ruta por la que fluye el agua se denomina ruta de flujo de corriente.

El terreno se da en términos de red triangular irregular (TIN), que cada punto p (x, y) tiene un valor az. ¿Cómo usar esta información para construir la ruta del flujo de flujo? ¿Cuál es la física detrás de esto?

Por lo que sé, el método de descenso más pronunciado puede usarse para resolver este problema . Estoy pensando en escribir mi propio algoritmo de flujo de flujo, por lo que estoy interesado en los antecedentes teóricos en lugar de usar las herramientas existentes.

Respuestas:


26

Existen diferentes implementaciones posibles, pero la mayoría de los procedimientos comenzarán desde una cuadrícula y no desde un TIN.

El más simple es el procedimiento D8: se calcula la dirección por la que fluiría el agua. Hay 8 posibilidades, las 8 celdas que están al lado de una celda de cuadrícula central. Primero puede calcular estas direcciones, que cómo están conectadas las celdas, y finalmente puede dibujar las líneas). Se encuentra una implementación fácil en SAGA, casi se lee como pseudocódigo: 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 = marcado

Aunque es muy fácil, esto no es muy realista: no tendrá una transmisión que comience en cada celda. Los algoritmos más avanzados generalmente primero cierran los pozos (especialmente si tiene un DEM detallado), luego calculan el área de captación por celda, es decir, el número de celdas que aportan agua a una celda en particular, y luego usan un umbral para determinar si una corriente está presente.

SAGA GIS implementa muchos de estos métodos de áreas de captación, puede encontrar una descripción de ellos en este manual http://sourceforge.net/settings/mirror_choices?projectname=saga-gis&filename=SAGA%20-%20Documentation/SAGA%20Documents/ SagaManual.pdf

Fue escrito para una versión anterior de SAGA GIS, pero la descripción de los algoritmos aún es bastante precisa, y la copiaré aquí para una referencia rápida (esto es alrededor de la página 120), ya que es de código abierto, puede verificar el detalles de implementación mirando el código.

  • Determinista 8 (D8): El clásico. El flujo va del centro de una celda al centro de una (y solo una) de las celdas circundantes. Las direcciones de flujo están, por lo tanto, restringidas a múltiplos de 45o, que es la razón principal de la mayoría de los inconvenientes del método. (O'Callaghan y Mark 1984).
  • Rho8: Igual que el anterior pero con un componente estocástico que debería mejorarlo. La dirección del flujo está determinada por un argumento aleatorio que depende de la diferencia entre el aspecto y la dirección de las dos celdas vecinas adyacentes. No muy útil . . (Fairfield y Leymarie 1991).
  • Infinito determinista (D∞): el flujo va de una celda a dos celdas adyacentes contiguas, considerando así un flujo bidimensional y superando los inconvenientes del método D8. (Tarboton 1998).
  • Braunschweiger Digitales Reliefmodell: otro algoritmo de dirección de flujo múltiple. El flujo se divide entre la celda circundante cuya orientación es más cercana al aspecto de la celda central y sus dos celdas adyacentes. (Bauer, Bork y Rohdenburg 1985).
  • FD8 (que se encuentra en SAGA simplemente como Dirección de flujo múltiple): un algoritmo de enrutamiento de flujo bidimensional derivado de D8. (Quinn y cols. 1991).
  • Algoritmo de enrutamiento cinemático (KRA). Un algoritmo de rastreo de flujo unidimensional. El flujo se comporta como una bola rodando por el DEM, sin restringir su posición al centro de las celdas. (Lea 1992).
  • Red de modelo de elevación digital (DEMON): la más compleja. Un algoritmo de seguimiento de flujo bidimensional. Bastante tiempo. (Costa-Cabral y Burgess 1994).

Incluso se han agregado más modelos recientemente:

  • Dirección de flujo múltiple triangular: Seibert, J. / McGlynn, B. (2007): 'Un nuevo algoritmo de dirección de flujo múltiple triangular para calcular áreas de pendiente ascendente a partir de modelos de elevación digital en cuadrícula', Water Resources Research, vol. 43, W04501. Esto puede ser interesante para usted porque también podría funcionar directamente en un TIN
  • El método de flujo de masa (MFM) para el cálculo basado en DEM de la acumulación de flujo propuesto por Gruber y Peckham (2008). Gruber, S., Peckham, S. (2008): Parámetros y objetos de superficie terrestre en hidrología. En: Hengl, T. y Reuter, HI [Eds.]: Geomorfometría: Conceptos, Software, Aplicaciones. Desarrollos en la ciencia del suelo, Elsevier, Bd.33, S.293-308.
  • El algoritmo lateral: http://watershed.montana.edu/Hydrology/Home_files/2010WR009296.pdf y su código también está en su sitio web: http://thomasgrabs.com/side-algorithm/

5

Un enfoque original es el propuesto en este documento :

Fisher, P., J. Wood y T. Cheng (2004). ¿Dónde está Helvellyn? Borrosidad de la morfometría del paisaje a múltiples escalas. Transacciones del Instituto de Geógrafos Británicos 29, 106-128.

Propone un método basado en la representación difusa y multiescala. No estoy seguro, pero este método puede ser el implementado en LandSerf .

ingrese la descripción de la imagen aquí


El enlace de papel anterior ya no es accesible
Graviton

@ Graviton: ¡El enlace ha sido corregido!
julien

4

Si tiene acceso a Spatial Analyst en ArcGIS, entonces tiene una serie de herramientas para calcular rutas de ruta. Se proporciona un flujo de trabajo completo en la referencia de ESRI, pero el flujo de trabajo típico incluye:

  1. Convierta su TIN en un ráster de elevación.
  2. Calcule la dirección del flujo.
  3. Llenar fregaderos pequeños.
  4. Calcular acumulación de flujo
  5. Usando un umbral, elija solo las celdas con una cantidad dada de flujo.
  6. Use la herramienta Stream to Feature para exportar las secuencias a un archivo de forma vectorial.

Por supuesto, hay numerosos trabajos académicos que describen diferentes métodos, pero este método es fácil para todos los que tienen acceso a Spatial Analyst.


Tendría que escribir el código desde cero, por lo que no puedo usar este paquete de software.
Graviton

Bueno, este parece ser el procedimiento utilizado por la mayoría de los paquetes SIG. TerraFlow es una opción de código abierto, pero nunca la he usado. ¿Qué planeas usar para manejar el TIN?
Patrick

1
Estoy pensando en escribir mi propio algoritmo de flujo de flujo, por lo que los paquetes de software que mencionas no son aplicables para mí
Graviton

2
Bueno. Cuando dijiste "Tengo menos claridad sobre cómo ejecutar esto", supuse que querías consejos prácticos sobre cómo hacerlo. Presumiblemente, el flujo de trabajo utilizado por estos paquetes de software podría proporcionar una guía para la estructura general de su algoritmo. Desde allí le sugiero que consulte la literatura académica sobre detalles. Por ejemplo, Tarboton, 1997 fue mencionado varias veces en mi búsqueda de algoritmos de dirección de flujo.
Patrick

3

En los modelos de elevación digital basados ​​en cuadrícula, el método D8-LTD proporciona determinaciones confiables de las líneas de pendiente:

Orlandini, S. y G. Moretti (2009), Determinación de rutas de flujo de superficie a partir de datos de elevación cuadriculados, Water Resour. Res., 45 (3), W03417, doi: 10.1029 / 2008WR007099.

Orlandini, S., G. Moretti, M. Franchini, B. Aldighieri y B. Testa (2003), Métodos basados ​​en caminos para la determinación de direcciones de drenaje no dispersivas en modelos de elevación digital basados ​​en cuadrículas, Water Resour. Res., 39 (6), 1144, doi: 10.1029 / 2002WR001639.

En los modelos de elevación digital basados ​​en contornos, las líneas de pendiente se pueden determinar automáticamente resolviendo estructuras topográficas complejas utilizando el modelo (complejo) descrito en el siguiente documento:

Moretti, G. y S. Orlandini (2008), Delineación automática de cuencas de drenaje a partir de datos de elevación de contorno utilizando técnicas de construcción de esqueleto, Water Resour. Res., 44 (5), W05403, doi: 10.1029 / 2007WR006309.


1

Parece que este será un buen trabajo para escribir una herramienta desde cero. ESRI ha estado en eso durante décadas y todavía no tienen derecho.

AutoCAD (Civil 3D) puede hacer esto usando un TIN. No estoy al tanto de lo que está sucediendo detrás de escena, pero en ArcGIS la identificación de las redes de transmisión se maneja a través del análisis de ráster.

En pocas palabras, se utiliza un ráster DEM de entrada (donde cada celda tiene valores X, Y, Z) como entrada y un algoritmo calcula la cotización del "flujo acumulado (como el peso acumulado) de todas las celdas que fluyen hacia cada celda descendente en el ráster de entrada. " El producto es un ráster donde cada celda tiene un valor de acumulación de flujo. Para identificar la red de flujo, aísle las celdas de alto flujo que son las áreas de "flujo concentrado". Hay otras consideraciones como el factor de peso opcional, el DEM de entrada hidrológicamente correcto, etc.

Solo agregaré algunas ideas: en términos de la "mecánica" de dicho algoritmo, supongo que podría ser bastante sencillo; de forma recursiva y para cada celda, determine la ubicación y la elevación de todas las celdas circundantes y, en función de su elevación, sume el número de celdas que fluyen hacia ella. En cuanto a TIN, probablemente podría construir una línea a partir de dos puntos en cada triángulo (vértice más alto y más bajo) y luego unir todos estos en una red.


1
Surgen complicaciones al tratar con sumideros y áreas planas. Como ejemplo extremo, considere un DEM que representa un lago de montaña, de modo que la mayor parte del DEM sea perfectamente plano. Exactamente, ¿cómo encaminaría una implementación recursiva todo el flujo de entrada al lago a su (s) punto (s) de salida?
whuber
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.