Disponible con una licencia de Spatial Analyst.
Resumen
Crea un ráster de dirección del flujo desde cada celda hasta su vecina o vecinas con pendiente descendente mediante los métodos D8, Dirección de flujo múltiple (MFD) o D-Infinity (DINF).
Ilustración
Uso
La herramienta Dirección de flujo es compatible con tres algoritmos de modelo de flujo. Estos son: D8, Dirección del flujo múltiple (MFD) y D-Infinity (DINF).
El método D8 modela la dirección del flujo desde cada celda hasta su vecina con la pendiente descendente más empinada.
La salida de la herramienta Dirección de flujo ejecutada con el tipo de dirección del flujo D8 es un ráster de número entero cuyos valores van de 1 a 255. Los valores de cada dirección desde el centro son los siguientes:
Por ejemplo, si la dirección de la caída más empinada fuera hacia la izquierda de la celda de procesamiento actual, la dirección de flujo estaría codificada como 16.
Si una celda es más baja que sus vecinas, a esa celda se le asigna el valor de su vecina más baja y el flujo se define hacia esta celda. Si varias vecinas poseen el valor más bajo, a la celda se le otorga este valor igualmente, pero el flujo se define con uno de los dos métodos que se explican a continuación. Esto se utiliza para filtrar los sumideros de una celda, ya que se consideran ruido.
Si una celda posee el mismo cambio en el valor z en varias direcciones y esa misma celda es parte de un sumidero, la dirección de flujo se conoce como indefinida. En tales casos, el valor de esa celda en el ráster de dirección de flujo de salida será la suma de esas direcciones. Por ejemplo, si el cambio en el valor z es el mismo hacia la derecha (dirección de flujo = 1) y hacia abajo (dirección de flujo = 4), la dirección de flujo de esa celda es 1 + 4 = 5. Las celdas con dirección de flujo sin definir se pueden marcar como sumideros usando la herramienta Sumidero.
Si una celda posee el mismo cambio en el valor z en varias direcciones y no es parte de un sumidero, la dirección de flujo se asigna con una tabla de búsqueda que define la dirección más probable. Consulte Greenlee (1987).
El ráster de caída D8 de salida se calcula como la diferencia en el valor z dividida por la longitud de la ruta entre los centros de celda, y se expresa en porcentajes. Para las celdas adyacentes, esto es análogo a la pendiente en porcentaje entre celdas. En un área plana, la distancia se convierte en la distancia a la celda más cercana de la elevación más baja. El resultado es un mapa de la elevación en porcentaje en la ruta del descenso más empinado de cada celda.
Al calcular el ráster de caída D8 en áreas planas, la distancia hasta las celdas adyacentes diagonales (1.41421 * cell size) se aproxima a 1.5 * cell size para mejorar el rendimiento.
El algoritmo Dirección del flujo múltiple (MFD), descrito por Qin et al. (2007), divide el flujo de una celda entre todos los vecinos con pendiente descendente. Se crea un exponente de partición de flujo a partir de un enfoque adaptable basado en las condiciones del terreno local y se usa para determinar la fracción de drenaje de flujo para todos los vecinos con pendiente descendente.
Cuando la salida de dirección del flujo MFD se agrega a un mapa, solo visualiza las direcciones de flujo D8. Como las direcciones de flujo MFD presentan potencialmente varios valores ligados a cada celda (cada valor se corresponde con una proporción de flujo para cada vecino con pendiente descendente), no se visualiza fácilmente. Sin embargo, un ráster de salida de dirección de flujo MFD es una entrada reconocida por la herramienta Acumulación de flujo, que utilizaría las direcciones de flujo MFD para proporcionar y acumular flujo desde cada celda hasta todos los vecinos con pendiente descendente.
El método de flujo D-Infinity (DINF), descrito por Tarboton (1997), determina la dirección del flujo como la pendiente descendente más empinada en ocho facetas triangulares formadas en una ventana de 3x3 celdas centrada en la celda de interés. La salida de dirección del flujo es un ráster de punto flotante representado como un solo ángulo en grados que van en sentido antihorario, de 0 (rumbo este) a 360 (rumbo este de nuevo).
Con el parámetro Forzar todas las celdas de eje para que se desplacen hacia fuera en el ajuste sin activar predeterminado (NORMAL en Python), una celda del borde del ráster de superficie fluirá hacia la celda interior con la caída más acusada del valor z. Si la caída es menor o igual que cero, la celda fluirá fuera del ráster de superficie.
Esta herramienta admite el procesamiento en paralelo. Si su equipo tiene varios procesadores o procesadores con varios núcleos, puede conseguir un mayor rendimiento, especialmente en los datasets mayores. El tema de ayuda Procesamiento en paralelo con Spatial Analyst contiene más detalles acerca de esta posibilidad y cómo configurarla.
Al utilizar el procesamiento en paralelo, se escriben datos temporales para administrar los lotes de datos a medida que se procesan. La ubicación de la carpeta temporal predeterminada será su unidad C local. Es posible controlar la ubicación de esta carpeta cambiando el valor de una variable de entorno del sistema denominada TempFolders y especificando la ruta de la carpeta que se desea usar (por ejemplo, E:\RasterCache). Si tiene privilegios de administrador en su equipo, también puede usar una clave de registro (por ejemplo, [HKEY_CURRENT_USER\SOFTWARE\ESRI\Desktop10.6\Raster]).
De forma predeterminada, esta herramienta usará el 50 por ciento de los núcleos disponibles. Si los datos de entrada tienen un tamaño inferior a 5.000 x 5.000 celdas, es posible que se utilicen menos núcleos. Es posible controlar el número de núcleos empleados por la herramienta, a través de la configuración de entorno de Factor de procesamiento en paralelo.
Consulte Entornos de análisis y Spatial Analyst para obtener detalles adicionales sobre los entornos de geoprocesamiento válidos para esta herramienta.
Referencias:
Greenlee, D. D. 1987. "Raster and Vector Processing for Scanned Linework". Photogrammetric Engineering and Remote Sensing 53 (10): 1383–1387.
Qin, C., Zhu, A. X., Pei, T., Li, B., Zhou, C., & Yang, L. 2007. "An adaptive approach to selecting a flow partition exponent for a multiple flow direction algorithm". International Journal of Geographical Information Science 21(4): 443-458.
Tarboton, D. G. 1997. "A new method for the determination of flow directions and upslope areas in grid digital elevation models". Water Resources Research 33(2): 309-319.
Sintaxis
FlowDirection (in_surface_raster, {force_flow}, {out_drop_raster}, {flow_direction_type})
Parámetro | Explicación | Tipo de datos |
in_surface_raster | Ráster de entrada que representa una superficie continua. | Raster Layer |
force_flow (Opcional) | Especifica si las celdas del borde se desplazarán siempre hacia fuera o seguirán las reglas de flujo normales.
| Boolean |
out_drop_raster (Opcional) | Un ráster de caída de salida opcional. El ráster de caída devuelve la proporción del cambio máximo en la elevación desde cada celda a lo largo de la dirección del flujo hasta la longitud de la ruta entre centros de celda, expresada en porcentajes. Esta salida es de tipo de punto flotante. | Raster Dataset |
flow_direction_type (Opcional) | Especifica el tipo de método de flujo que se va a utilizar cuando se computen las direcciones de flujo.
| String |
Valor de retorno
Nombre | Explicación | Tipo de datos |
out_flow_direction_raster | El ráster de salida que muestra la dirección de flujo de cada celda hasta su vecina o vecinas con pendiente descendente mediante los métodos D8, Dirección de flujo múltiple (MFD) o D-Infinity (DINF). Esta salida es siempre de tipo entero. | Raster |
Muestra de código
Ejemplo 1 de FlowDirection (ventana de Python)
En este ejemplo se crea un ráster de dirección de flujo D8 a partir de un ráster de superficie de elevación de una cuadrícula de entrada.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outFlowDirection = FlowDirection("elevation", "NORMAL")
outFlowDirection.save("C:/sapyexamples/output/outflowdir01")
Ejemplo 2 de FlowDirection (script independiente)
En este ejemplo se crea un ráster de dirección de flujo D8 a partir de un ráster de superficie de elevación de una cuadrícula de entrada.
# Name: FlowDirection_Example.py
# Description: Creates a raster of flow direction from each cell to its
# steepest downslope neighbor.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inSurfaceRaster = "elevation"
outDropRaster = "C:/sapyexamples/output/dropraster"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute FlowDirection
outFlowDirection = FlowDirection(inSurfaceRaster, "FORCE", outDropRaster)
# Save the output
outFlowDirection.save("C:/sapyexamples/output/outflowdir02")
Entornos
Información sobre licencias
- ArcGIS Desktop Basic: Requiere Spatial Analyst
- ArcGIS Desktop Standard: Requiere Spatial Analyst
- ArcGIS Desktop Advanced: Requiere Spatial Analyst