7 votos

¿Calcular la acumulación de flujo sólo a partir de la dirección del flujo?

Estoy buscando calcular la acumulación de flujo a partir de un raster de dirección de flujo. En ArcGIS hay Acumulación de flujo ( http://desktop.arcgis.com/en/arcmap/10.3/tools/spatial-analyst-toolbox/flow-accumulation.htm ), que parece hacer el trabajo. Sin embargo, estoy buscando algo en el software de código abierto, pero todo lo que he encontrado requiere el uso de un DEM.

¿Alguna función en GRASS o SAGA?

2 votos

También es posible que desee consultar Caja blanca-GAT Hydrological Tools | Flow Accumulation | D8 and Rho8 Flow Accumulation y otras herramientas. ( Flow direction = Flow Pointer ).

0 votos

Sólo sé que r.salida.de.agua sólo requiere la trama de dirección del flujo, pero su uso para producir un mapa acumulado parece un enfoque de iteración terrible en cada celda

2 votos

Sin duda, recomendaría utilizar las herramientas de análisis geoespacial de Whitebox para ello. Sus herramientas D8 Flow Accumulation y D-infinity Flow Accumulation toman como entrada rásters de dirección de flujo. Tenga en cuenta, sin embargo, que el orden de los punteros de un ráster de dirección de flujo D8 de Whitebox es ligeramente diferente al de ArcGIS, por lo que podría ser necesaria una operación de reclasificación de antemano.

7voto

A continuación se explica paso a paso cómo tomar un ráster de dirección de flujo de ArcGIS D8 y utilizarlo para realizar una operación de acumulación de flujo D8 en Herramientas de análisis geoespacial de caja blanca . Antes de nada, diré que obviamente sería mucho más fácil si tuvieras el MDE original del que se derivó la trama de dirección del flujo. Además, estoy haciendo la suposición de que su raster dirección del flujo se derivó utilizando el algoritmo de flujo D8 y que se derivó utilizando el esquema de puntero de flujo ArcGIS.

  1. El primer paso es obtener su raster de dirección de flujo de ArcGIS en Whitebox GAT. Hay varias maneras de hacer esto, pero recomiendo usar el Raster to Float en ArcGIS para convertir su trama en un archivo .flt. Este es uno de los formatos más eficaces para introducir datos en Whitebox GAT. A continuación, abra Whitebox GAT y añada la capa al mapa. Aparecerá una ventana emergente en la que se le preguntará si desea convertir la trama en formato Whitebox, y sólo tendrá que hacer clic en "sí".

  2. El ráster de dirección de flujo de ArcGIS D8 utiliza el siguiente esquema:

enter image description here

Lo cual es diferente a las TAG de caja blanca:

enter image description here

Por lo tanto, es necesario utilizar el Reclasificar para convertir los valores de los punteros:

enter image description here

  1. Ahora todo lo que tiene que hacer es introducir su nueva trama de dirección de flujo como archivo de trama de puntero de flujo D8 de entrada en el Acumulación de flujo D8 y Rho8 herramienta.

enter image description here

En cuanto a tu pregunta sobre la trama de pesos, tal vez quieras echar un vistazo al D8 Flujo de masa que permite un archivo de peso (carga) y dos tipos de pérdidas (eficiencia, que es una pérdida proporcional, y absorción, que es una cantidad de pérdida).

enter image description here

3voto

user122552 Puntos 31

Un nuevo complemento de GRASS r.accumulate está disponible. Este módulo sólo requiere un mapa de dirección de flujo para calcular la acumulación de flujo ponderada.

Si tiene un mapa de drenaje de r.watershed ,

r.accumulate direction=drain_directions accumulation=flow_accum

o utilizando su interfaz gráfica,

r.accumulate GUI

En este ejemplo, las flechas amarillas y los números codificados por colores muestran las direcciones del flujo y la acumulación, respectivamente.

r.accumulate NC example

Opcionalmente, se puede realizar una acumulación ponderada de flujos mediante la opción de peso.

r.accumulate direction=drain_directions accumulation=flow_accum weight=flow_weight

Si tiene un mapa FDR (FDR.TIF por ejemplo) de ArcHydro o ArcGIS,

# import ArcHydro FDR
r.in.gdal input=FDR.TIF output=fdr

# convert FDR to drainage
r.mapcalc expression="drain_directions=int(8-log(fdr,2))"

# calculate accumulation
r.accumulate direction=drain_directions accumulation=flow_accum

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