Parámetros de superficie (Spatial Analyst)

Resumen

Determina parámetros de una superficie ráster, como la orientación, la pendiente y las curvaturas.

Más información sobre cómo funciona Parámetros de superficie

Uso

  • Los parámetros de salida se calculan celda por celda ajustando una superficie local en torno a una celda de destino. Las opciones de parámetro de superficie disponibles para el parámetro Tipo de parámetro (parameter_type en Python) son Pendiente, Orientación, Curvatura media, Curvatura tangencial (curva de nivel normal), Curvatura de perfil (línea de pendiente normal), Curvatura del plano (curva de nivel proyectada), Torsión geodésica de curvas de nivel, Curvatura gausiana y Curvatura Casorati.

  • Todos los parámetros de salida se calculan utilizando coordenadas geodésicas y ecuaciones.

  • Cuando se especifica la opción Pendiente (SLOPE en Python) para Tipo de parámetro, la salida representa la tasa de cambio de elevación para cada celda del modelo digital de elevación (DEM). Es la primera derivada de un DEM. El rango de valores de la salida de pendiente depende del tipo de unidades de medida.

  • Cuando se especifica la opción Orientación (ASPECT en Python) para Tipo de parámetro, la salida identifica la dirección de la brújula a la que apunta la pendiente descendente en cada ubicación. Se expresa en grados positivos de 0 a 360, medidos en el sentido de las agujas del reloj partiendo del norte.

  • La curvatura se utiliza para describir la forma de una superficie. En ciencias de la Tierra, se utiliza para ayudar a comprender el impacto de la gravedad, la erosión y otros factores de la superficie, y se utiliza junto con otros parámetros de superficie para identificar y clasificar formas de suelo.

    • Curvatura media (MEAN_CURVATURE en Python): curvatura general de la superficie. Se calcula como la media de las curvaturas mínima y máxima. Si se especifica en Tipo de parámetro, la salida equivale al valor medio de las curvaturas de perfil (línea de pendiente normal) y tangencial (curva de nivel normal). Su signo, positivo o negativo, no es un indicador definitivo, excepto en valores extremos. Unos valores positivos altos indican áreas de denudación máxima, y unos valores negativos altos indican áreas de acumulación máxima (Minár et al., 2020).
    • Curvatura de perfil (línea de pendiente normal) (PROFILE_CURVATURE en Python): curvatura normal geométrica a lo largo de la línea de pendiente. Unos valores positivos indican áreas de aceleración del flujo de la superficie y erosión. Una curvatura de perfil negativa indica áreas de deceleración del flujo de la superficie y deposición. Una curvatura de perfil (línea de pendiente normal) positiva indica que la superficie es convexa en esa celda en la dirección de la pendiente. Una curvatura negativa indica que la superficie es cóncava en esa celda y en esa misma dirección. Un valor 0 indica que la superficie es plana.
    • Curvatura tangencial (curva de nivel normal) (TANGENTIAL_CURVATURE en Python): curvatura normal geométrica perpendicular a la línea de pendiente, tangente a la línea de curvas de nivel. Unos valores positivos indican áreas de flujo de superficie divergente. Unas curvaturas tangenciales negativas indican áreas de flujo de superficie convergente. Una curvatura tangencial (curva de nivel normal) positiva indica que la superficie es convexa en esa celda en perpendicular a la dirección de la pendiente. Una curvatura negativa indica que la superficie es cóncava en esa celda y en dirección perpendicular a la pendiente. Un valor 0 indica que la superficie es plana.
    • Curvatura del plano (curva de nivel proyectada) (CONTOUR_CURVATURE en Python): curvatura a lo largo de las líneas de curvas de nivel.
    • Torsión geodésica de curvas de nivel (CONTOUR_GEODESIC_TORSION en Python): tasa de cambio en el ángulo de pendiente a lo largo de las líneas e las curvas de nivel.
    • Curvatura gaussiana (GAUSSIAN_CURVATURE en Python): curvatura general de una superficie. Se calcula como el producto de las curvaturas mínima y máxima y puede tener un valor positivo y negativo. Los valores positivos indican que la superficie es convexa en esa celda, mientras que los valores negativos indican que es cóncava. Un valor 0 indica que la superficie es plana.
    • Curvatura de Casorati (CASORATI_CURVATURE en Python): curvatura general de una superficie. Puede ser cero o un valor positivo. Los valores positivos altos indican áreas de curva pronunciada en varias direcciones.

    Las unidades de todas las salidas de tipo de curvatura serán el recíproco (el cuadrado del recíproco para la curvatura gaussiana) de las unidades x,y del entorno del sistema de coordenadas de salida.

  • La opción Cuadrática del parámetro Tipo de superficie local (local_surface_type = "QUADRATIC" en Python) no ajusta las celdas de vecindad de forma exacta. Esta es la opción predeterminada y la recomendada para la mayoría de aplicaciones y datos.

    • La superficie cuadrática minimiza el efecto de datos de superficie ruidosos, como una superficie LIDAR de alta resolución, lo cual es especialmente importante al calcular la curvatura.
    • Utilice la superficie cuadrática al especificar un tamaño de vecindad mayor que el tamaño de celda, así como al utilizar la opción de vecindad adaptable.
  • La opción Bicuadrática del parámetro Tipo de superficie local (local_surface_type = "BIQUADRATIC" en Python) ajusta los datos de las celdas de vecindad de forma exacta.

    • Esta opción es adecuada para una superficie de entrada altamente precisa.
    • Si la distancia de vecindad es mayor que el tamaño de celda ráster de entrada, se perderán las ventajas de precisión del tipo de superficie Bicuadrática. Deje la distancia de vecindad como predeterminada (igual al tamaño de celda).
  • El parámetro Distancia de vecindad (neighborhood_distance en Python) determina el tamaño de la vecindad y calcula el parámetro de superficie a lo largo de esta distancia desde el centro de la celda de destino.

    • No puede ser menor que el tamaño de celda ráster de entrada.
    • Una distancia de vecindad menor captura más variabilidad local en el paisaje, como las características de las entidades de paisaje más pequeñas. Si se dispone de datos de elevación de alta resolución, es más adecuado utilizar distancias mayores.
  • Si el parámetro Utilizar vecindad adaptable está activado (use_adaptive_neighborhood = "ADAPTIVE_NEIGHBORHOOD" en Python), la distancia de vecindad cambiará con la variabilidad del terreno. La distancia de vecindad se reducirá si existe demasiada variabilidad en la ventana de cálculo.

  • Especificar el valor del parámetro Unidad Z (z_unit en Python) de la superficie garantiza un cálculo correcto de la salida de pendiente.

    Si hay una unidad z disponible en el sistema de coordenadas verticales del ráster de entrada, se aplicará automáticamente. Se recomienda definir una unidad z para el ráster de entrada si falta esta unidad. Puede usar la herramienta Definir proyección para especificar una unidad z. Si no se ha definido, se utilizará el metro de manera predeterminada.

  • El rango de valores de la salida de pendiente depende de las unidades de medición del parámetro Medida de pendiente (output_slope_measurement en Python):

    • Grado (DEGREE en Python): el rango de valores de pendiente es de 0 a 90.
    • Elevación en porcentaje (PERCENT_RISE en Python): el rango va de 0 hasta básicamente el infinito. Una superficie plana es 0 por ciento, una superficie de 45 grados es 100 por ciento y, a medida que la superficie se vuelve más vertical, la elevación en porcentaje es cada vez mayor.
  • Si el parámetro Acimuts geodésicos del proyecto está activado (project_geodesic_azimuths = "PROJECT_GEODESIC_AZIMUTHS" en Python), se cumple lo siguiente:

    • El norte se representa mediante 360 grados.
    • Se proyectan acimuts para corregir la distorsión causada por un valor de entorno de Sistema de coordenadas de salida no conforme. Estos ángulos se pueden utilizar para localizar con precisión puntos a lo largo de la pendiente descendente más pronunciada.

  • Si el parámetro Utilizar orientación ecuatorial está activado (project_geodesic_azimuths = "USE_EQUATORIAL_ASPECT" en Python), la orientación se medirá desde un punto a lo largo del ecuador para corregir el sesgo de la dirección que se produce al aproximarse a los polos. Este parámetro garantiza que los ejes norte-sur y este-oeste sean perpendiculares entre sí.

    Active el parámetro Utilizar orientación ecuatorial si el terreno está cerca de los polos norte o sur.

  • Utilice el parámetro Máscara de análisis de entrada (in_analysis_mask en Python) para limitar el análisis a ubicaciones de interés específicas dentro del ráster de superficie de entrada. Las ubicaciones pueden definirse mediante datos raster o de entidad. El parámetro Máscara de análisis de entrada tendrá prioridad sobre el ajuste de entorno Máscara.

  • Si el valor de Ráster de superficie de entrada (in_raster en Python) y los datos de ráster de Máscara de análisis de entrada (in_analysis_mask en Python) tienen el mismo tamaño de celda, y las celdas están alineadas, se utilizarán directamente en la herramienta. No se remuestrearán internamente durante la ejecución de la herramienta.

    Si el tamaño de celda es diferente, el tamaño de celda de salida será el máximo de las entradas y el valor de Ráster de entrada se utilizará internamente como el ráster de alineación. Si el tamaño de celda es el mismo, pero las celdas no están alineadas, el valor de Ráster de superficie de entrada se utilizará internamente como ráster de alineación. En ambos casos, se desencadenará un remuestreo interno antes de realizar la operación de extracción.

    Para obtener más información, consulte los temas del entorno Tamaño de celda y Ráster de alineación.

  • Referencias:

    • James, D. E., Tomer, M. D. y Porter, S. A. Trans-scalar landform segmentation from high-resolution digital elevation models. Poster presented at: ESRI Annual Users Conference; July 2014; San Diego, California.
    • Minár, J., Evans, I. S. y Jenčo, M. A comprehensive system of definitions of land surface (topographic) curvatures, with implications for their application in geoscience modelling and prediction. Earth-Science Reviews, 103414, 2020. https://doi.org/10.1016/j.earscirev.2020.103414

Parámetros

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

Ráster de entrada de superficie.

Raster Layer
Tipo de parámetro
(Opcional)

Especifica el tipo de parámetro de superficie de salida que se calculará.

  • PendienteSe calculará la tasa de cambio en la elevación. Esta es la opción predeterminada.
  • OrientaciónSe calculará la dirección de pendiente descendente de la tasa máxima de cambio de cada celda.
  • Curvatura mediaSe medirá la curvatura general de la superficie. Se calcula como la media de las curvaturas mínima y máxima. Esta curvatura describe la convexidad o concavidad intrínseca de la superficie, independientemente de la dirección o la influencia de la gravedad.
  • Curvatura tangencial (curva de nivel normal)Se medirá la curvatura normal geométrica perpendicular a la línea de pendiente, tangente a la línea de curvas de nivel. Esta curvatura se suele aplicar para caracterizar la convergencia o divergencia del flujo por la superficie.
  • Curvatura de perfil (línea de pendiente normal)Se medirá la curvatura normal geométrica a lo largo de la línea de pendiente. Esta curvatura se suele aplicar para caracterizar la aceleración y deceleración del flujo por la superficie.
  • Curvatura del plano (curva de nivel proyectada)Se medirá la curvatura a lo largo de las líneas de curvas de nivel.
  • Torsión geodésica de curvas de nivelSe medirá la tasa de cambio en el ángulo de pendiente a lo largo de las líneas de las curvas de nivel.
  • Curvatura gaussianaSe medirá la curvatura general de la superficie. Se calcula como el producto de las curvaturas mínima y máxima.
  • Curvatura de CasoratiSe medirá la curvatura general de la superficie. Puede ser cero o cualquier otro número positivo.
String
Tipo de superficie local
(Opcional)

Especifica el tipo de función de superficie que se ajustará alrededor de la celda de destino.

  • CuadráticaSe ajustará una función de superficie cuadrática a las celdas de la vecindad. Esta es la opción predeterminada.
  • BicuadráticaSe ajustará una función de superficie bicuadrática a las celdas de la vecindad.
String
Distancia de vecindad
(Opcional)

La salida se calculará a lo largo de esta distancia desde el centro de la celda de destino. Determina el tamaño de la vecindad.

El valor predeterminado es el tamaño de celda ráster de entrada, que da lugar a una vecindad de 3 por 3.

Linear Unit
Utilizar vecindad adaptable
(Opcional)

Especifica si la distancia de vecindad variará con los cambios del paisaje (adaptable). La distancia máxima viene determinada por la distancia de vecindad. La distancia mínima es el tamaño de celda ráster de entrada.

  • Desactivado: se utilizará una única distancia de vecindad (fija) en todas las ubicaciones. Esta es la opción predeterminada.
  • Activado: se utilizará una distancia de vecindad adaptable en todas las ubicaciones.
Boolean
Unidad Z
(Opcional)

Especifica la unidad lineal que se utilizará para los valores z verticales.

Se define mediante un sistema de coordenadas verticales si existe. Si no existe ningún sistema de coordenadas verticales, defina la unidad z mediante la lista de unidades para garantizar el cómputo geodésico correcto. El valor predeterminado es metros.

  • PulgadaLa unidad lineal será pulgadas.
  • PieLa unidad lineal será pies.
  • YardaLa unidad lineal será yardas.
  • Milla (EE. UU.)La unidad lineal será millas.
  • Milla náuticaLa unidad lineal será millas náuticas.
  • MilímetroLa unidad lineal será milímetros.
  • CentímetroLa unidad lineal será centímetros.
  • ContadorLa unidad lineal será metros.
  • KilómetroLa unidad lineal será kilómetros.
  • DecímetroLa unidad lineal será decímetros.
String
Medición de pendiente
(Opcional)

Unidades de medida (grados o porcentajes) que se utilizarán para el ráster de pendiente de salida.

Este parámetro solo está disponible si el parámetro Tipo de parámetro está establecido en Pendiente.

  • GradoLa inclinación de la pendiente se calculará en grados.
  • Elevación en porcentajeLa inclinación de la pendiente se calculará como elevación en porcentaje, que también se conoce como pendiente en porcentaje.
String
Acimuts geodésicos del proyecto
(Opcional)

Especifica si se proyectan acimuts geodésicos para corregir la distorsión de ángulo causada por la referencia espacial de salida.

  • Desactivado: no se proyectan acimuts geodésicos. Esta es la opción predeterminada.
  • Activado: se proyectan acimuts geodésicos.

Este parámetro solo está disponible si el parámetro Tipo de parámetro está establecido en Orientación.

Boolean
Utilizar orientación ecuatorial
(Opcional)

Especifica si la orientación se medirá desde un punto del ecuador o desde el polo norte.

  • Desactivado: la orientación se medirá desde el polo norte. Esta es la opción predeterminada.
  • Activado: la orientación se medirá a partir de un punto en el ecuador.

Este parámetro solo está disponible si el parámetro Tipo de parámetro está establecido en Orientación.

Boolean
Máscara de análisis de entrada
(Opcional)

Datos de entrada que definen los lugares en los que se realizará el análisis.

Puede ser un ráster o un dataset de entidades. Si la entrada es un ráster, puede ser de tipo entero o de punto flotante. Si la entrada son datos de entidad, puede ser de tipo punto, línea o polígono.

Cuando los datos de máscara de entrada son un ráster, el análisis se producirá en las ubicaciones que tengan un valor válido, incluido el cero. Las celdas que son NoData en la entrada de la máscara serán NoData en la salida.

Composite Geodataset

Valor de retorno

EtiquetaExplicaciónTipo de datos
Ráster de salida

El ráster de salida.

Raster

SurfaceParameters(in_raster, {parameter_type}, {local_surface_type}, {neighborhood_distance}, {use_adaptive_neighborhood}, {z_unit}, {output_slope_measurement}, {project_geodesic_azimuths}, {use_equatorial_aspect}, {in_analysis_mask})
NombreExplicaciónTipo de datos
in_raster

Ráster de entrada de superficie.

Raster Layer
parameter_type
(Opcional)

Especifica el tipo de parámetro de superficie de salida que se calculará.

  • SLOPESe calculará la tasa de cambio en la elevación. Esta es la opción predeterminada.
  • ASPECTSe calculará la dirección de pendiente descendente de la tasa máxima de cambio de cada celda.
  • MEAN_CURVATURESe medirá la curvatura general de la superficie. Se calcula como la media de las curvaturas mínima y máxima. Esta curvatura describe la convexidad o concavidad intrínseca de la superficie, independientemente de la dirección o la influencia de la gravedad.
  • TANGENTIAL_CURVATURESe medirá la curvatura normal geométrica perpendicular a la línea de pendiente, tangente a la línea de curvas de nivel. Esta curvatura se suele aplicar para caracterizar la convergencia o divergencia del flujo por la superficie.
  • PROFILE_CURVATURESe medirá la curvatura normal geométrica a lo largo de la línea de pendiente. Esta curvatura se suele aplicar para caracterizar la aceleración y deceleración del flujo por la superficie.
  • CONTOUR_CURVATURESe medirá la curvatura a lo largo de las líneas de curvas de nivel.
  • CONTOUR_GEODESIC_TORSIONSe medirá la tasa de cambio en el ángulo de pendiente a lo largo de las líneas de las curvas de nivel.
  • GAUSSIAN_CURVATURESe medirá la curvatura general de la superficie. Se calcula como el producto de las curvaturas mínima y máxima.
  • CASORATI_CURVATURESe medirá la curvatura general de la superficie. Puede ser cero o cualquier otro número positivo.
String
local_surface_type
(Opcional)

Especifica el tipo de función de superficie que se ajustará alrededor de la celda de destino.

  • QUADRATICSe ajustará una función de superficie cuadrática a las celdas de la vecindad. Esta es la opción predeterminada.
  • BIQUADRATICSe ajustará una función de superficie bicuadrática a las celdas de la vecindad.
String
neighborhood_distance
(Opcional)

La salida se calculará a lo largo de esta distancia desde el centro de la celda de destino. Determina el tamaño de la vecindad.

El valor predeterminado es el tamaño de celda ráster de entrada, que da lugar a una vecindad de 3 por 3.

Linear Unit
use_adaptive_neighborhood
(Opcional)

Especifica si la distancia de vecindad variará con los cambios del paisaje (adaptable). La distancia máxima viene determinada por la distancia de vecindad. La distancia mínima es el tamaño de celda ráster de entrada.

  • FIXED_NEIGHBORHOODSe utilizará una única distancia de vecindad (fija) en todas las ubicaciones. Esta es la opción predeterminada.
  • ADAPTIVE_NEIGHBORHOODSe utilizará una distancia de vecindad adaptable en todas las ubicaciones.
Boolean
z_unit
(Opcional)

Especifica la unidad lineal que se utilizará para los valores z verticales.

Se define mediante un sistema de coordenadas verticales si existe. Si no existe ningún sistema de coordenadas verticales, defina la unidad z mediante la lista de unidades para garantizar el cómputo geodésico correcto. El valor predeterminado es metros.

  • INCHLa unidad lineal será pulgadas.
  • FOOTLa unidad lineal será pies.
  • YARDLa unidad lineal será yardas.
  • MILE_USLa unidad lineal será millas.
  • NAUTICAL_MILELa unidad lineal será millas náuticas.
  • MILLIMETERLa unidad lineal será milímetros.
  • CENTIMETERLa unidad lineal será centímetros.
  • METERLa unidad lineal será metros.
  • KILOMETERLa unidad lineal será kilómetros.
  • DECIMETERLa unidad lineal será decímetros.
String
output_slope_measurement
(Opcional)

Unidades de medida (grados o porcentajes) que se utilizarán para el ráster de pendiente de salida.

  • DEGREELa inclinación de la pendiente se calculará en grados.
  • PERCENT_RISELa inclinación de la pendiente se calculará como elevación en porcentaje, que también se conoce como pendiente en porcentaje.

Este parámetro solo está disponible si el parámetro parameter_type está establecido en SLOPE.

String
project_geodesic_azimuths
(Opcional)

Especifica si se proyectan acimuts geodésicos para corregir la distorsión de ángulo causada por la referencia espacial de salida.

  • GEODESIC_AZIMUTHSNo se proyectan acimuts geodésicos. Esta es la opción predeterminada.
  • PROJECT_GEODESIC_AZIMUTHSSe proyectan acimuts geodésicos.

Este parámetro solo está disponible si el parámetro parameter_type está establecido en ASPECT.

Boolean
use_equatorial_aspect
(Opcional)

Especifica si la orientación se medirá desde un punto del ecuador o desde el polo norte.

  • NORTH_POLE_ASPECTLa orientación se medirá desde el polo norte. Esta es la opción predeterminada.
  • EQUATORIAL_ASPECTLa orientación se medirá a partir de un punto en el ecuador.

Este parámetro solo está disponible si el parámetro parameter_type está establecido en ASPECT.

Boolean
in_analysis_mask
(Opcional)

Datos de entrada que definen los lugares en los que se realizará el análisis.

Puede ser un ráster o un dataset de entidades. Si la entrada es un ráster, puede ser de tipo entero o de punto flotante. Si la entrada son datos de entidad, puede ser de tipo punto, línea o polígono.

Cuando los datos de máscara de entrada son un ráster, el análisis se producirá en las ubicaciones que tengan un valor válido, incluido el cero. Las celdas que son NoData en la entrada de la máscara serán NoData en la salida.

Composite Geodataset

Valor de retorno

NombreExplicaciónTipo de datos
out_raster

El ráster de salida.

Raster

Muestra de código

Ejemplo 1 de SurfaceParameters (ventana de Python)

En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.

Este ejemplo genera un ráster de pendiente con valores de salida en porcentajes utilizando un método de vecindad adaptable. La distancia de vecindad máxima es 5 metros.

from arcpy.sa import *
outSurfaceParameters = SurfaceParameters("elevation_1m.tif", "", "", "5 METERS",
                                         "ADAPTIVE_NEIGHBORHOOD", "", "PERCENT_RISE")
outSurfaceParameters.save("C:/sapyexamples/output/outsurfaceparameters01.tif")
Ejemplo 2 de SurfaceParameters (script independiente)

En el siguiente ejemplo se muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python.

Este ejemplo genera un ráster de curvatura de perfil (línea de pendiente normal) utilizando un método de vecindad adaptable. La distancia de vecindad máxima es 10 metros.

# Name: SurfaceParameters_Ex_02.py
# Description: Derive profile (normal slope line) curvature for a 1m resolution
# elevation raster over an adaptive neighborhood distance of maximum 10m. 
# Requirements: Spatial Analyst Extension

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

# Set environment settings
arcpy.env.workspace = "C:/sapyexamples/data"

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

# Set local variables
inRaster = "elevation_1m.tif"
inParameterType = "PROFILE_CURVATURE"
inNeighborhoodDistance = "10 METERS"
inUseAdaptiveNeighborhood = "ADAPTIVE_NEIGHBORHOOD"

# Execute the tool
outSurfaceParameters = SurfaceParameters(inRaster, inParameterType, "",
                                         inNeighborhoodDistance, inUseAdaptiveNeighborhood)

# Save the output 
outSurfaceParameters.save("C:/sapyexamples/output/outsurfaceparameters02.tif")
Ejemplo 3 de SurfaceParameters (script independiente)

En el siguiente ejemplo se muestra cómo usar esta herramienta en una secuencia de comandos independiente de Python.

Este ejemplo genera un ráster de orientación utilizando una distancia de vecindad de 5 metros. Corregir las distorsiones de dirección derivadas del uso de una proyección no conforme.

# Name: SurfaceParameters_Ex_03.py
# Description: Derive aspect for an elevation surface over a distance of 5m, correct
# for direction distortion from non-conformal projection system. 
# Requirements: Spatial Analyst Extension

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

# Set environment settings
arcpy.env.workspace = "C:/sapyexamples/data"

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

# Set local variables
inRaster = "elevation_1m.tif"
inParameterType = "ASPECT"
inNeighborhoodDistance = "5 METERS"
inProjectGeodesicAzimuths = "PROJECT_GEODESIC_AZIMUTHS"

# Execute the tool
outSurfaceParameters = SurfaceParameters(inRaster, inParameterType, "",
                                         inNeighborhoodDistance, "", "", "",
                                         inProjectGeodesicAzimuths)

# Save the output 
outSurfaceParameters.save("C:/sapyexamples/output/outsurfaceparameters03.tif")