24 votos

Dado un terreno, ¿cómo dibujar la trayectoria de la corriente?

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

El terreno está dado en términos de red irregular triangular ( TIN), en la que cada punto p(x,y) tiene un valor z. ¿Cómo utilizar esta información para construir la trayectoria del flujo de la corriente? ¿Cuál es la base física?

Por lo que sé, se puede utilizar el método de descenso más pronunciado para resolver este problema . Estoy pensando en escribir mi propio algoritmo de flujo de corriente, por lo que estoy interesado en el fondo teórico en lugar de utilizar las herramientas existentes.

26voto

Mohit Jain Puntos 145

Hay diferentes implementaciones posibles, pero la mayoría de los procedimientos partirán de una cuadrícula y no de un NIT.

El más sencillo es probablemente el procedimiento D8: se calcula la dirección en la que fluiría el agua. Hay 8 posibilidades, las 8 celdas que están junto a una celda central de la cuadrícula. Primero puedes calcular estas direcciones, luego cómo están conectadas las celdas y, por último, puedes dibujar las líneas). Una implementación fácil se encuentra 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=markup

Aunque es muy fácil, esto no es muy realista: no tendrás una corriente que comience en cada celda. Los algoritmos más avanzados suelen cerrar primero las fosas (sobre todo si se dispone de un MDE detallado), luego calculan el área de captación por celda, es decir, el número de celdas que aportan agua a una celda concreta, y después utilizan un umbral para determinar si hay un arroyo.

SAGA GIS implementa muchos de estos métodos de cuencas hidrográficas, puede encontrar una descripción de los mismos 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 más antigua de SAGA GIS, pero la descripción de los algoritmos sigue siendo 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 comprobar los 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 sólo una) de las celdas circundantes. Por lo tanto, las direcciones del flujo están restringidas a múltiplos de 45o , lo que constituye la razón principal de la mayoría de los inconvenientes del método. (O'Callaghan & Mark 1984).
  • Rho8: Igual que el anterior pero con un componente estocástico que debería mejorarlo. La dirección del flujo viene determinada por un argumento aleatorio que depende de la diferencia entre el aspecto y la dirección de las dos celdas vecinas adyacentes. No es muy útil. (Fairfield & Leymarie 1991).
  • Infinito determinista (D∞): El flujo va de una celda a dos celdas contiguas circundantes, considerando así un flujo bidimensional y superando los inconvenientes del método D8. (Tarboton 1998).
  • Braunschweiger Digitales Reliefmodell: Another Multiple Flow Direction algo- ritmo. El flujo se divide entre la celda circundante cuya orientación es la más cercana al aspecto de la celda central y sus dos celdas adyacentes. (Bauer, Bork y Rohdenburg 1985).
  • FD8 (se encuentra en SAGA simplemente como Dirección de Flujo Múltiple): Un algoritmo de enrutamiento de flujo bidimensional derivado de D8. (Quinn et al 1991).
  • Algoritmo de enrutamiento cinemático (KRA). Algoritmo unidimensional de trazado de flujos. El flujo se comporta como una pelota que rueda por el DEM, sin restringir su posición al centro de las celdas. (Lea 1992).
  • Red de modelos digitales de elevación (DEMON): La más compleja. Algoritmo bidimensional de trazado de flujos. Requiere bastante tiempo. (Costa-Cabral & Burgess 1994).

Recientemente se han añadido aún más modelos:

  • Dirección de flujo múltiple triangular- Seibert, J. / McGlynn, B. (2007): A new triangular multiple flow direction algorithm for computing upslope areas from gridded digital elevation models', Water Resources Research, Vol. 43, W04501. Esto puede ser interesante para usted porque también podría funcionar directamente en un NIF
  • El método de masa-flujo (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): Land-Surface Parameters and Objects in Hydrology (Parámetros y objetos de la superficie terrestre en hidrología). En: Hengl, T. y Reuter, H.I. [Eds.]: Geomorphometry: Concepts, Software, Applications. Developments in Soil Science, 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 página web: http://thomasgrabs.com/side-algorithm/

5voto

Paul G Puntos 1615

Un planteamiento original es el propuesto en este documento :

Fisher, P., J. Wood y T. Cheng (2004). ¿Dónde está Helvellyn? Fuzziness of multiscale landscape morphometry. 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 que se aplica en LandSerf .

enter image description here

4voto

kenorb Puntos 516

Si tiene acceso a Spatial Analyst en ArcGIS, dispone de una serie de herramientas para calcular los recorridos de los arroyos. A flujo de trabajo completo se proporciona en la referencia ESRI, pero el flujo de trabajo típico incluye:

  1. Convierta su TIN en un ráster de elevación.
  2. Calcular la dirección del flujo.
  3. Llenar fregaderos pequeños.
  4. Calcular la acumulación de caudal
  5. Utilizando un umbral, elija sólo las celdas con una cantidad determinada de flujo.
  6. Utilice la herramienta Stream to Feature para exportar los arroyos a un shapefile vectorial.

Por supuesto, existen 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.

3voto

Senthil Kumaran Puntos 160

En los modelos digitales de elevación basados en cuadrículas, el método D8-LTD proporciona determinaciones fiables de las líneas de pendiente:

Orlandini, S., y G. Moretti (2009), Determination of surface flow paths from gridded elevation data, Water Resour. Res., 45(3), W03417, doi: 10.1029/2008WR007099.

Orlandini, S., G. Moretti, M. Franchini, B. Aldighieri y B. Testa (2003), Path-based methods for the determination of nondispersive drainage directions in grid-based digital elevation models, Water Resour. Res., 39(6), 1144, doi: 10.1029/2002WR001639.

En los modelos digitales de elevación basados en curvas de nivel, las líneas de pendiente pueden determinarse automáticamente resolviendo estructuras topográficas complejas mediante el modelo (complejo) descrito en el siguiente artículo:

Moretti, G., y S. Orlandini (2008), Automatic delineation of drainage basins from contour elevation data using skeleton construction techniques, Water Resour. Res., 44(5), W05403, doi: 10.1029/2007WR006309.

1voto

CodeSlave Puntos 7133

Parece que será todo un trabajo escribir una herramienta desde cero. ESRI lleva décadas en ello y todavía no lo ha hecho bien.

AutoCAD (Civil 3D) puede hacer esto usando un TIN. No soy consciente de lo que está pasando detrás de las escenas allí, pero en ArcGIS identificación de redes de corriente se maneja a través de análisis de trama.

En pocas palabras, se utiliza como entrada un ráster DEM (en el que cada celda tiene valores X,Y,Z) y un algoritmo calcula citando "flujo acumulado (como el peso acumulado) de todas las celdas que fluyen hacia cada celda de pendiente descendente en el ráster de entrada". El producto es una trama en la que cada celda tiene un valor de acumulación de flujo. Para identificar la red de arroyos, se aíslan las celdas de flujo elevado, que son las zonas de "flujo concentrado". Existen otras consideraciones, como el factor de ponderación opcional, el MDE de entrada hidrológicamente correcto, etc.

Sólo aportaré algunas ideas: En cuanto a la "mecánica" de dicho algoritmo, supongo que podría ser bastante sencillo: determinar recursivamente, para cada celda, la ubicación y la elevación de todas las celdas circundantes y, en función de su elevación, sumar el número de celdas que desembocan en ella. En cuanto al TIN, probablemente se podría construir una línea a partir de dos puntos de cada triángulo (el vértice más alto y el más bajo) y luego unirlos en una red.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X