Dirección de flujo (Spatial Analyst)

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).

Más información sobre cómo funciona Dirección del flujo

Ilustración

Ilustración de Dirección de flujo D8
Flow_Dir = FlowDirection(Elev_Ras, #, #, D8)

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:

    Códigos de Dirección de flujo

    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.

  • 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.

    Nota:

    El tipo de dirección de flujo MFD solo admite la creación de un ráster de dirección de flujo de salida en formato de ráster de nube (CRF), como flowdir1.crf, dentro de un espacio de trabajo de carpeta.

    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 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\ArcGISPro\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 que se aplican a 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.

Parámetros

EtiquetaExplicaciónTipo de datos
Ráster de superficie de entrada

Ráster de entrada que representa una superficie continua.

Raster Layer
Forzar todas las celdas de eje para que se desplacen hacia fuera
(Opcional)

Especifica si las celdas del borde se desplazarán siempre hacia fuera o seguirán las reglas de flujo normales.

  • Desactivado: si la caída máxima del interior de la celda de un borde es mayor que cero, la dirección del flujo se determinará de la forma habitual; de lo contrario, la dirección del flujo será hacia el borde. Las celdas que tengan que fluir desde el borde del ráster de la superficie hacia dentro lo harán. Esta es la opción predeterminada.
  • Activado: todas las celdas en el borde del ráster de superficie fluirán hacia fuera del ráster de superficie.
Boolean
Ráster de eliminación de salida
(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
Tipo de dirección de flujo
(Opcional)

Especifica el tipo de método de flujo que se va a utilizar cuando se computen las direcciones de flujo.

  • D8Asignar una dirección del flujo basada en el método de flujo D8. Este método asigna una dirección del flujo al vecino con pendiente descendente más empinada. Esta es la opción predeterminada.
  • MFDAsignar una dirección del flujo basada en el método de flujo MFD. Este método asigna varias direcciones del flujo a todos los vecinos con pendiente descendente.
  • DINFAsignar una dirección del flujo en función del método de flujo D-Infinity, utilizando la pendiente más empinada de una faceta triangular.
String

Valor de retorno

EtiquetaExplicaciónTipo de datos
Ráster de dirección de flujos de salida

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

FlowDirection(in_surface_raster, {force_flow}, {out_drop_raster}, {flow_direction_type})
NombreExplicaciónTipo 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.

  • NORMALSi la caída máxima del interior de la celda de un borde es mayor que cero, la dirección del flujo se determinará de la forma habitual; de lo contrario, la dirección del flujo será hacia el borde. Las celdas que tengan que fluir desde el borde del ráster de la superficie hacia dentro lo harán. Esta es la opción predeterminada.
  • FORCETodas las celdas en el borde del ráster de superficie fluirán hacia fuera del ráster de superficie.
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.

  • D8Asignar una dirección del flujo basada en el método de flujo D8. Este método asigna una dirección del flujo al vecino con pendiente descendente más empinada. Esta es la opción predeterminada.
  • MFDAsignar una dirección del flujo basada en el método de flujo MFD. Este método asigna varias direcciones del flujo a todos los vecinos con pendiente descendente.
  • DINFAsignar una dirección del flujo en función del método de flujo D-Infinity, utilizando la pendiente más empinada de una faceta triangular.
String

Valor de retorno

NombreExplicaciónTipo 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"

# Execute FlowDirection
outFlowDirection = FlowDirection(inSurfaceRaster, "FORCE", outDropRaster)

# Save the output 
outFlowDirection.save("C:/sapyexamples/output/outflowdir02")

Información de licenciamiento

  • Basic: Requiere Spatial Analyst
  • Standard: Requiere Spatial Analyst
  • Advanced: Requiere Spatial Analyst

Temas relacionados