Paramètres de surface (Spatial Analyst)

Disponible avec une licence Spatial Analyst.

Disponible avec une licence 3D Analyst.

Résumé

Détermine les paramètres d’une surface raster tels qu’une exposition, une pente et des courbures.

En savoir plus sur le fonctionnement des paramètres de surface.

Utilisation

  • Les paramètres en sortie sont calculés cellule après cellule en ajustant une surface locale autour d’une cellule cible. Il est possible de calculer cinq paramètres de surface : Slope (Pente), Aspect (Exposition), Mean curvature (Courbure moyenne), Tangential (normal contour) curvature (Courbure d’isoligne normale tangentielle) et Profile (normal slope line) curvature (Courbure de ligne de pente normale). Ces options sont disponibles pour le paramètre Parameter type (Type de paramètre) (parameter_type dans Python).

  • Tous les paramètres en sortie sont calculés à l’aide de coordonnées géodésiques et d’équations.

  • Lorsque l’option Slope (Pente) (SLOPE dans Python) est spécifiée pour Parameter type (Type de paramètre), la sortie représente le taux de changement d’élévation pour chaque cellule du modèle numérique d’élévation (MNE). C’est la première dérivée d’un MNE. La plage des valeurs issues de la pente en sortie dépend du type des unités de mesure.

  • Lorsque l’option Aspect (Exposition) (ASPECT dans Python) est spécifiée pour Parameter type (Type de paramètre), la sortie identifie la direction de la boussole à laquelle fait face la pente descendante pour chaque emplacement. L’option est exprimée en degrés positifs compris entre 0 et 360, mesurés dans le sens horaire, à partir du nord.

  • La courbure permet de décrire la forme d’une surface. Dans le cadre des sciences de la Terre, elle aide à comprendre les effets de la gravité, de l’érosion et d’autres forces sur la surface, et avec d’autres paramètres de surface, d’identifier et de classer les reliefs.

    • L’option Mean curvature (Courbure moyenne) (MEAN_CURVATURE dans Python) mesure la courbure globale de la surface. Elle est calculée comme la moyenne de la courbure minimale et la courbure maximale. Lorsqu’elle est spécifiée pour le type de paramètre, la sortie équivaut à la médiane d’une courbure longitudinale (ligne de pente normale) et tangentielle (isoligne normale). Son signe, positif ou négatif, n’est pas un indicateur définitif hormis pour les valeurs extrêmes. Des valeurs positives élevées indiquent des zones de dénudation maximale, et des valeurs négatives élevées indiquent des zones d'accumulation maximale (Minár et al., 2020).
    • L’option Profile (normal slope line) curvature (Courbure (de ligne de pente normale) longitudinale) (PROFILE_CURVATURE dans Python) mesure la courbure normale géométrique le long de la pente. Les valeurs positives élevées indiquent les zones d’accélération de l’écoulement sur la surface et l’érosion. Les valeurs négatives élevées indiquent les zones de décélération de l’écoulement sur la surface et les dépôts. Une courbure longitudinale (ligne de pente normale) positive indique que la surface est convexe par rapport à cette cellule dans la direction de la pente. Une courbure négative indique que la surface est concave par rapport à cette cellule dans cette même direction. Une valeur nulle signifie que la surface est plane.
    • L’option Tangential (normal contour) curvature (Courbure (d’isoligne normale) tangentielle) (TANGENTIAL_CURVATURE dans Python) mesure la courbure normale géométrique perpendiculairement à la pente, tangente à l’isoligne. Les valeurs positives élevées indiquent les zones de divergence de l’écoulement sur la surface. Les valeurs négatives tangentielles indiquent les zones de convergence de l’écoulement sur la surface. Une courbure (d’isoligne normale) tangentielle positive indique que la surface est convexe par rapport à cette cellule perpendiculaire à la direction de la pente. Une courbure négative indique que la surface est concave par rapport à cette cellule dans la direction perpendiculaire à la pente. Une valeur nulle signifie que la surface est plane.
  • L’option Quadratic (Quadratique) (QUADRATIC dans Python) dans Local surface type (Type de surface locale) (local_surface_type dans Python) ne s’ajuste pas exactement aux cellules du voisinage. Il s’agit de l’option par défaut ; elle est recommandée pour la plupart des applications et des données.

    • La surface quadratique minimise l’effet des données de surface comportant du bruit comme la surface lidar haute résolution, ce qui est particulièrement important lors du calcul de la courbure.
    • La surface quadratique doit être utilisée si vous spécifiez une taille de voisinage supérieure à la taille de cellule et si vous utilisez l’option de voisinage adaptatif.
  • L’option Biquadratic (Biquadratique) (BIQUADRATIC dans Python) dans Local surface type (Type de surface locale) ajuste exactement les données des cellules du voisinage.

    • Cette option convient à une surface en entrée très précise.
    • Si la distance du voisinage est supérieure à la taille de cellule raster en entrée, les avantages en termes de précision du type de surface biquadratique sont perdus. La distance du voisinage définie par défaut doit être conservée (égale à la taille de cellule).
  • L’option Neighborhood distance (Distance du voisinage) (neighborhood_distance dans Python) détermine la taille du voisinage et calcule le paramètre de surface sur cette distance à partir du centre de la cellule cible.

    • Elle ne peut pas être inférieure à la taille de cellule raster en entrée.
    • Une distance de voisinage plus courte permet de saisir une plus grande variabilité locale du paysage, caractéristique des petites entités du paysage. Avec des données d’élévation haute résolution, des distances plus importantes sont plus appropriées.
  • Si le paramètre Use adaptive neighborhood (Utiliser le voisinage adaptatif) est activé (use_adaptive_neighborhood est défini sur ADAPTIVE_NEIGHBORHOOD dans Python), la distance de voisinage change en fonction de la variabilité du terrain. La distance de voisinage diminue en cas de forte variabilité dans la fenêtre de calcul.

  • Spécifier la valeur pour Z unit (Unité Z) (z-unit dans Python) est important pour s’assurer de la conformité du calcul de la pente en sortie.

    Si une unité z est disponible dans le système de coordonnées verticales du raster en entrée, elle est automatiquement appliquée. Il est conseillé de définir une unité z pour le raster en entrée s'il n'en existe pas. Vous pouvez utiliser l'outil Définir une projection pour spécifier une unité z. Si vous n'en définissez pas, le mètre est utilisé par défaut.

  • La plage des valeurs issues de la pente en sortie dépend du type des unités du paramètre Output slope measurement (Mesure de pente en sortie) (output_slope_measurement dans Python) :

    • Pour Degrees (Degrés) (DEGREE dans Python), la plage de valeurs de pente s’étend de 0 à 90.
    • Pour Percent rise (Pourcentage d’élévation) (PERCENT_RISE dans Python), la plage s’étend de 0 à l’infini. Une surface plane est à 0 % et une surface à 45 degrés est à 100 %. Plus la surface est verticale, plus le pourcentage d'élévation grandit.
  • Si le paramètre Project geodesic azimuths (Projeter les azimuts géodésiques) est activé (project_geodesic_azimuths est défini sur PROJECT_GEODESIC_AZIMUTHS dans Python), les énoncés suivants sont vrais :

    • Le Nord est toujours représenté par 360 degrés.
    • Les azimuts seront projetés de façon à corriger la distorsion provoquée par un système de coordonnées en sortie non conforme. Ces angles peuvent être utilisés pour situer les points avec précision le long de la pente descendante la plus abrupte.

    Sélectionnez le paramètre Project geodesic azimuths (Projeter les azimuts géodésiques) si vous utilisez la sortie des paramètres de surface comme direction arrière en entrée dans le paramètre Input back direction or flow direction raster (Raster de direction d’antécédence ou de sens de circulation en entrée) (in_back_direction_raster dans Python) pour un outil dans le jeu d’outils Distance.

  • Si le paramètre Use equatorial aspect (Utiliser l’aspect équatorial) est activé (project_geodesic_azimuths est défini sur USE_EQUATORIAL_ASPECT dans Python), l’aspect sera mesuré à partir d’un point placé sur l’équateur pour corriger la déformation oblique de la direction à l’approche des pôles. Cette option garantit que les axes nord-sud et est-ouest sont perpendiculaires les uns par rapport aux autres.

    Activez le paramètre Use equatorial aspect (Utiliser l’aspect équatorial) si votre terrain est proche du pôle Nord ou Sud.

  • Pour plus d’informations sur les environnements de géotraitement qui s’appliquent à cet outil, reportez-vous à la rubrique Environnements d’analyse et Spatial Analyst.

  • Bibliographie :

    • James D.E., M.D. Tomer, S.A. Porter. (2014). Trans-scalar landform segmentation from high-resolution digital elevation models. Poster présenté à la Conférence annuelle des utilisateurs d’ESRI Annual Users Conference, juillet 2014, San Diego, Californie.
    • Minár, J., Evans, I. S., & Jenčo, M. (2020). A comprehensive system of definitions of land surface (topographic) curvatures, with implications for their application in geoscience modelling and prediction. Earth-Science Reviews, 103414. https://doi.org/10.1016/j.earscirev.2020.103414

Syntaxe

SurfaceParameters(in_raster, {parameter_type}, {local_surface_type}, {neighborhood_distance}, {use_adaptive_neighborhood}, {z_unit}, {output_slope_measurement}, {project_geodesic_azimuths}, {use_equatorial_aspect})
ParamètreExplicationType de données
in_raster

Raster de surface en entrée.

Raster Layer
parameter_type
(Facultatif)

Détermine le type de paramètre de surface en sortie à calculer.

  • SLOPETaux de variation de l’élévation. Il s’agit de l’option par défaut.
  • ASPECTDirection de pente descendante du taux de variation maximal pour chaque cellule.
  • MEAN_CURVATUREMesure la courbure globale de la surface. Elle est calculée comme la moyenne de la courbure minimale et la courbure maximale. Cette courbure décrit la convexité ou la concavité intrinsèque de la surface, indépendamment de l’influence de la direction ou de la gravité.
  • TANGENTIAL_CURVATUREMesure la courbure normale géométrique perpendiculairement à la pente, tangente à l’isoligne. Cette courbure est généralement appliquée pour caractériser la convergence ou la divergence de l’écoulement sur la surface.
  • PROFILE_CURVATUREMesure la courbure normale géométrique le long de la pente. Cette courbure est généralement appliquée pour caractériser l’accélération et la décélération de l’écoulement sur la surface.
String
local_surface_type
(Facultatif)

Détermine la fonction du type de surface ajustée autour de la cellule cible.

  • QUADRATICAjuste une fonction de surface quadratique aux cellules du voisinage. Il s’agit de l’option par défaut.
  • BIQUADRATICAjuste une fonction de surface biquadratique aux cellules du voisinage.
String
neighborhood_distance
(Facultatif)

La sortie est calculée sur cette distance à partir du centre de la cellule cible. Elle détermine la taille du voisinage.

La valeur par défaut correspond à la taille de la cellule raster en entrée, soit un voisinage 3 x 3.

Linear Unit
use_adaptive_neighborhood
(Facultatif)

Autorise la variation de la distance du voisinage selon les modifications du paysage. La distance maximale est déterminée par la distance du voisinage. La distance minimale est égale à la taille de cellule raster en entrée.

  • FIXED_NEIGHBORHOODUtilisez une distance du voisinage unique (fixe) au niveau de tous les emplacements. Il s’agit de l’option par défaut.
  • ADAPTIVE_NEIGHBORHOODUtilisez une distance du voisinage adaptative au niveau de tous les emplacements.
Boolean
z_unit
(Facultatif)

Unité linéaire des valeurs z verticales.

Elle est définie par un système de coordonnées verticales s'il en existe un. En l'absence d'un système de coordonnées verticales, l'unité z doit être définie à partir de la liste d'unités pour garantir un calcul géodésique correct. Le mètre est la valeur par défaut.

  • INCHLes unités linéaires sont les pouces.
  • FOOTLes unités linéaires sont les pieds.
  • YARDLes unités linéaires sont les yards.
  • MILE_USLes unités linéaires sont les milles.
  • NAUTICAL_MILELes unités linéaires sont les milles nautiques.
  • MILLIMETERLes unités linéaires sont les millimètres.
  • CENTIMETERLes unités linéaires sont les centimètres.
  • METERLes unités linéaires sont les mètres.
  • KILOMETERLes unités linéaires sont les kilomètres.
  • DECIMETERLes unités linéaires sont les décimètres.
String
output_slope_measurement
(Facultatif)

Lorsque parameter_type est défini sur SLOPE, l’option détermine les unités de mesure (degrés ou pourcentage) du raster de pente en sortie.

  • DEGREEL'inclinaison de la pente est calculée en degrés.
  • PERCENT_RISEL'inclinaison de la pente est calculée en pourcentage d'élévation, également désigné sous le nom de pourcentage de pente.
String
project_geodesic_azimuths
(Facultatif)

Spécifie si les azimuts géodésiques seront projetés afin de corriger la distorsion de l’angle provoquée par la référence spatiale en sortie.

  • GEODESIC_AZIMUTHSLes azimuts géodésiques ne seront pas projetés. Il s’agit de l’option par défaut.
  • PROJECT_GEODESIC_AZIMUTHSLes azimuts géodésiques seront projetés.
Boolean
use_equatorial_aspect
(Facultatif)

Mesure l’aspect à partir d’un point placé sur l’équateur.

  • NORTH_POLE_ASPECTMesure l’aspect à partir du pôle Nord. Il s’agit de l’option par défaut.
  • EQUATORIAL_ASPECTMesure l’aspect à partir d’un point placé sur l’équateur.
Boolean

Valeur renvoyée

NomExplicationType de données
out_raster

Raster en sortie.

Raster

Exemple de code

Exemple 1 d’utilisation de l’outil SurfaceParameters (fenêtre Python)

L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python.

Cet exemple génère un raster de pente avec des valeurs en sortie exprimées sous forme de pourcentages, à l’aide de la méthode de voisinage adaptatif. La valeur maximale de la distance du voisinage est de 5 mètres.

from arcpy.sa import *
outSurfaceParameters = SurfaceParameters("elevation_1m.tif", "", "", "5 METERS",
                                         "ADAPTIVE_NEIGHBORHOOD", "", "PERCENT_RISE")
outSurfaceParameters.save("C:/sapyexamples/output/outsurfaceparameters01.tif")
Exemple 2 d’utilisation de l’outil SurfaceParameters (script autonome)

L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.

Cet exemple génère un raster de courbure (de ligne de pente normale) longitudinale à l’aide de la méthode de voisinage adaptatif. La valeur maximale de la distance du voisinage est de 10 mètres.

# 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")
Exemple 3 d’utilisation de l’outil SurfaceParameters (script autonome)

L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.

Cet exemple génère un raster d’exposition à l’aide d’une distance de voisinage égale à 5 mètres. Corrigez les distorsions de la direction en cas d’utilisation d’une projection non 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")

Informations de licence

  • Basic: Requiert Spatial Analyst ou 3D Analyst
  • Standard: Requiert Spatial Analyst ou 3D Analyst
  • Advanced: Requiert Spatial Analyst ou 3D Analyst

Rubriques connexes