Calcular curso de agua como línea (Spatial Analyst)

Disponible con una licencia de Spatial Analyst.

Resumen

Genera entidades de línea de curso de agua a partir de un ráster de superficie de entrada sin necesidad de relleno previo de sumidero o depresión.

Uso

  • El ráster de superficie de entrada puede ser un modelo digital de elevación (DEM) sin relleno de sumidero previo o un DEM con condicionamiento hidrológico. La herramienta no es sensible a los errores en el ráster de superficie que pueden actuar como depresiones o sumideros donde termina el flujo; no es necesario rellenar los sumideros o las depresiones.

  • El parámetro Entidades de curso de agua de salida produce una entidad de polilínea de salida que corresponde a líneas de curso de agua que cumplen el umbral de acumulación, especificado mediante el parámetro opcional Umbral de acumulación (accumulation_threshold en Python). Si no se proporciona ningún valor de Umbral de acumulación, la herramienta calcula un umbral de área basado en el tamaño del ráster de superficie de entrada (0,2 por ciento del número total de celdas) de forma predeterminada. Aunque la dirección y la acumulación del flujo se calcularán internamente para obtener cursos de agua, no son una salida. Utilice Obtener flujo continuo para obtener rásteres de acumulación de flujo y dirección de flujo utilizando la misma metodología.

  • Cuando el ráster de superficie de entrada contiene depresiones reales dentro del ráster de superficie, las depresiones deben especificarse en Datos de depresiones de entidad o ráster de entrada (in_depressions_data en Python) para que se consideren celdas donde el agua puede fluir hacia adentro pero no hacia afuera (una salida). La información del área de depresión puede ser un ráster o una clase de entidad. La clase de entidad puede ser un punto, una polilínea o un polígono.

  • Se puede especificar un valor de Ráster de peso de acumulación de entrada (in_weight_raster en Python) para aplicar un peso a cada celda al calcular la acumulación, lo que es un paso intermedio. Si se aplica un ráster de peso, seleccione un umbral de acumulación de flujo apropiado para Umbral de acumulación (accumulation_threshold en Python).

  • Especifique un valor para Umbral de acumulación (accumulation_threshold en Python) que refleje la complejidad del terreno en el área de estudio o que coincida con el tamaño de un área de contribución de su elección. Por ejemplo, si el umbral es igual a 20 hectáreas, solo las celdas con 20 o más hectáreas de flujo ascendente definirán un ráster de curso de agua.

  • Si se utiliza el parámetro Datos de depresiones de entidades o ráster de entrada, el parámetro Ráster de ponderación de acumulación de entrada o datos de estos para aplicar la configuración de entorno, el valor de Umbral de acumulación predeterminado se recalculará basándose en el área de intersección entre las entradas. Sin embargo, una vez que especifique un valor para el parámetro Umbral de acumulación, ya no se recalculará en función de los cambios en la selección de entrada. Puede encontrarse la misma situación al ejecutar la herramienta en modo de lote con el valor de Ráster de superficie de entrada como parámetro de lote, donde el valor de Umbral de acumulación se calculará en función de la primera entrada y no cambiará a medida que se procesen otras capas ráster en el modo de lote.

  • Utilice el parámetro Método de designación de cursos de agua para asignar un valor único de secciones de cursos de agua entre intersecciones o un orden a los segmentos de los cursos de agua. La opción Constante es el valor predeterminado y a todos los cursos de agua se les asigna el mismo valor igual a 1. Cuando se especifica Único, a cada sección de curso de agua entre intersecciones se le asignará un valor único. Otros métodos de ordenación son Strahler, Shreve y Hack. El método Strahler aumenta el orden de un curso de agua cuando intersecan cursos de agua del mismo orden. El método Shreve asigna el orden a los cursos de agua según la magnitud. A todos los vínculos sin afluentes se les asigna una magnitud (un orden) de 1. Las magnitudes son pendientes descendentes aditivas. Cuando dos vínculos intersecan, se suman sus magnitudes y éstas se asignan al vínculo de pendiente descendente. El método Hack aumenta el orden de un curso de agua en uno con respecto al orden de un curso de agua en el que se descarga. Al cauce principal del río se le asigna una magnitud de 1, y a todos los cursos de agua que desembocan en él se les asigna una magnitud de 2, y así sucesivamente.

  • Si el parámetro Simplificar entidades está activado (simplify en Python), las líneas de entidad de curso de agua de salida se simplificarán eliminando vértices con el algoritmo de Douglas-Peucker con una tolerancia de tamaño de celda de sqrt(0.5) *. Este algoritmo retiene los puntos críticos al identificar y eliminar vértices relativamente redundantes.

  • Las celdas NoData se consideran ruido y, por definición, no tienen un valor asociado. La herramienta ignorará estas celdas al identificar la dirección del vecino con pendiente ascendente menos empinada, así como en la determinación de la dirección y acumulación del flujo.

  • Con el parámetro Forzar todas las celdas de eje para que se desplacen hacia fuera desactivado (force_flow = "NORMAL" en Python), la configuración predeterminada, 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.

  • Consulte Entornos de análisis y Spatial Analyst para obtener detalles adicionales sobre los entornos de geoprocesamiento que se aplican a esta herramienta.

  • Referencias:

    • Douglas, David H. y Thomas K. Peucker. 1973. "Algorithms for the Reduction of the Number of Points Required to Represent a Digitised Line or its Caricature". The Canadian Cartographer, 10(2): 112–122.

    • Ehlschlaeger, C. R. 1989. "Using the AT Search Algorithm to Develop Hydrologic Models from Digital Elevation Data." International Geographic Information Systems (IGIS) Symposium 89: 275-281.

    • Hack, J. T. 1957. "Studies of Longitudinal Stream Profiles in Virginia and Maryland." Geological Survey Professional Paper 294: 45–95.

    • Jenson, S. K., and Domingue, J. O. 1988. "Extracting Topographic Structure from Digital Elevation Data for Geographic Information System Analysis". Photogrammetric Engineering and Remote Sensing 54 (11): 1593–1600.

    • Metz, M., Mitasova, H., & Harmon, R. S. 2011. "Efficient extraction of drainage networks from massive, radar-based elevation models with least cost path search." Hydrology and Earth System Sciences 15(2): 667-678.

    • Shreve, R. 1966. "Statistical Law of Stream Numbers" Journal of Geology.74: 17-35

    • Strahler, A. N. 1957. "Quantitative analysis of watershed geomorphology" Transactions of the American Geophysical Union8 (6): 913-920

Parámetros

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

Ráster de entrada de superficie.

Raster Layer
Entidades de polilíneas de salida

La clase de entidad de salida que contendrá los cursos de agua identificados.

Feature Class
Datos de depresiones de entidad o ráster de entrada
(Opcional)

Un dataset opcional que define las depresiones reales.

Las depresiones se pueden definir mediante un ráster o una capa de entidades.

Si la entrada es un ráster, las celdas de depresión deben tomar un valor válido, incluido cero, y las áreas que no son depresiones deben ser NoData.

Composite Geodataset
Ráster de peso de acumulación de entrada
(Opcional)

Un dataset ráster de entrada opcional que define la fracción de flujo que contribuye a la acumulación de flujo en cada celda.

El peso solo se aplica a la acumulación de flujo.

Si no se especifica ningún ráster de peso de acumulación, se aplica un peso predeterminado de 1 a cada celda.

Raster Layer
Umbral de acumulación
(Opcional)

El umbral para determinar si una celda dada es parte de un curso de agua en términos del área total que fluye hacia dicha celda.

Areal Unit
Método de designación de curso de agua
(Opcional)

Especifica el valor único o el orden de los cursos de agua en la tabla de atributos de salida.

  • ConstanteTodos los segmentos de curso de agua de salida serán iguales a 1. Esta es la opción predeterminada.
  • ÚnicaCada curso de agua tendrá un Id. único entre intersecciones en la salida.
  • StrahlerSe utilizará el método Strahler, en el que el orden de los cursos de agua solo aumenta cuando se intersecan cursos de agua del mismo orden. La intersección de un vínculo de primer orden y de segundo orden mantendrá un vínculo de segundo orden, en lugar de crear un vínculo de tercer orden.
  • ShreveSe utilizará el método Shreve, en el que el orden de los cursos de agua se asigna por magnitud. A todos los vínculos sin afluentes se les asigna una magnitud (un orden) de 1. Las magnitudes son pendientes descendentes aditivas. Cuando dos vínculos intersecan, se suman sus magnitudes y éstas se asignan al vínculo de pendiente descendente.
  • HackSe utilizará el método Hack, en el que a cada segmento de curso de agua se le asigna un orden mayor que el del curso de agua o río en el que desemboca. Por ejemplo, al canal principal de río se le asigna un orden de 1, a todos los segmentos de curso de agua se les asigna un orden de 2, a los cursos de agua que desemboquen en un curso de agua de orden 2 se les asigna un orden de 3, y así sucesivamente.
  • TodasLa tabla de atributos de salida mostrará cada designación de segmento de curso de agua en función de todos los métodos.
String
Simplificar entidades
(Opcional)

Especifica si las líneas de curso de agua de salida se suavizarán a formas más simples.

  • Activado: las líneas de las entidades de curso de agua se simplificarán mediante el algoritmo de Douglas-Peucker con una tolerancia de tamaño de celda de sqrt(0.5) *. Esta es la opción predeterminada.
  • Desactivado: las líneas de entidades de curso de agua no se suavizarán.
Boolean

DeriveStreamAsLine(in_surface_raster, out_stream_features, {in_depressions_data}, {in_weight_raster}, {accumulation_threshold}, {stream_designation_method}, {simplify})
NombreExplicaciónTipo de datos
in_surface_raster

Ráster de entrada de superficie.

Raster Layer
out_stream_features

La clase de entidad de salida que contendrá los cursos de agua identificados.

Feature Class
in_depressions_data
(Opcional)

Un dataset opcional que define las depresiones reales.

Las depresiones se pueden definir mediante un ráster o una capa de entidades.

Si la entrada es un ráster, las celdas de depresión deben tomar un valor válido, incluido cero, y las áreas que no son depresiones deben ser NoData.

Composite Geodataset
in_weight_raster
(Opcional)

Un dataset ráster de entrada opcional que define la fracción de flujo que contribuye a la acumulación de flujo en cada celda.

El peso solo se aplica a la acumulación de flujo.

Si no se especifica ningún ráster de peso de acumulación, se aplica un peso predeterminado de 1 a cada celda.

Raster Layer
accumulation_threshold
(Opcional)

El umbral para determinar si una celda dada es parte de un curso de agua en términos del área total que fluye hacia dicha celda.

Areal Unit
stream_designation_method
(Opcional)

Especifica el valor único o el orden de los cursos de agua en la tabla de atributos de salida.

  • CONSTANTTodos los segmentos de curso de agua de salida serán iguales a 1. Esta es la opción predeterminada.
  • UNIQUECada curso de agua tendrá un Id. único entre intersecciones en la salida.
  • STRAHLERSe utilizará el método Strahler, en el que el orden de los cursos de agua solo aumenta cuando se intersecan cursos de agua del mismo orden. La intersección de un vínculo de primer orden y de segundo orden mantendrá un vínculo de segundo orden, en lugar de crear un vínculo de tercer orden.
  • SHREVESe utilizará el método Shreve, en el que el orden de los cursos de agua se asigna por magnitud. A todos los vínculos sin afluentes se les asigna una magnitud (un orden) de 1. Las magnitudes son pendientes descendentes aditivas. Cuando dos vínculos intersecan, se suman sus magnitudes y éstas se asignan al vínculo de pendiente descendente.
  • HACKSe utilizará el método Hack, en el que a cada segmento de curso de agua se le asigna un orden mayor que el del curso de agua o río en el que desemboca. Por ejemplo, al canal principal de río se le asigna un orden de 1, a todos los segmentos de curso de agua se les asigna un orden de 2, a los cursos de agua que desemboquen en un curso de agua de orden 2 se les asigna un orden de 3, y así sucesivamente.
  • ALLLa tabla de atributos de salida mostrará cada designación de segmento de curso de agua en función de todos los métodos.
String
simplify
(Opcional)

Especifica si las líneas de curso de agua de salida se suavizarán a formas más simples.

  • NO_SIMPLIFYLas líneas de entidades de curso de agua no se suavizarán.
  • SIMPLIFYLas líneas de las entidades de curso de agua se simplificarán mediante el algoritmo de Douglas-Peucker con una tolerancia de tamaño de celda de sqrt(0.5) *. Esta es la opción predeterminada.
Boolean

Muestra de código

Ejemplo 1 de DeriveStreamAsLine (ventana de Python)

En este ejemplo, se muestra cómo utilizar DeriveStreamAsLine para generar entidades de línea de curso de agua desde un ráster de superficie de entrada sin necesidad de rellenar de antemano los sumideros.

from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapy/examples/data" 
DeriveStreamAsLine("surface.tif", "C:/sapyexamples/output/streams.shp", "", "", "", "")
Ejemplo 2 de DeriveStreamAsLine (script independiente)

En este ejemplo, se generan entidades de línea de curso de agua desde una superficie de entrada sin necesidad de rellenar de antemano los sumideros o depresiones reales. Los cursos de agua comienzan en ubicaciones donde el flujo acumulado se adquiere de un área mayor o igual que 2 hectáreas.

# Name: DeriveStreamAsLine_standalone.py
# Description: Generates stream lines from an input surface raster without prior sink filling. 
#              The streams start from locations where the accumulated flow is collected from an area 
#              larger or equal to 2 Hectares considering depressions (polygons).
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Set the analysis environments
env.workspace = "C:/sapyexamples/data"

# Set the local variables
in_surface_raster = "surface.tif"
in_depressions_data = "depressions.shp"
in_weight_raster = ""
out_streams = "C:/sapyexamples/output/streams.shp"
area_threshold = "2 Hectares"
stream_designation_method = "CONSTANT"

# Execute
DeriveStreamAsLine(in_surface_raster, out_streams, in_depressions_data, 
                   in_weight_raster, area_threshold, stream_designation_method)

Información de licenciamiento

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

Temas relacionados