Paramètres de surface (Spatial Analyst)

Disponible avec une licence Spatial Analyst.

Disponible avec une licence 3D Analyst.

Synthèse

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 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 Pente (SLOPE dans Python) est spécifiée pour 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 Exposition (ASPECT dans Python) est spécifiée pour 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 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. Les valeurs positives élevées indiquent des zones de dénudation maximale et les valeurs négatives élevées des zones d’accumulation maximale (Minár et al., 2020).
    • La courbure longitudinale (ligne de pente normale) (PROFILE_CURVATURE dans Python) mesure la courbure normale géométrique le long de la ligne de 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.
    • Le paramètre Courbure tangentielle (isoligne normale) (TANGENTIAL_CURVATURE dans Python) mesure la courbure normale géodésique perpendiculaire à la ligne de 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.

    Les unités des trois types de courbure en sortie sont la réciproque des unités xy du système de coordonnées en sortie.

  • L’option Quadratique (QUADRATIC dans Python) du paramètre Type de surface locale (local_surface_type dans Python) ne correspond pas exactement aux cellules de 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 Biquadratique (BIQUADRATIC dans Python) dans 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 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 plus faible distance de voisinage capture davantage de variabilité locale dans le paysage, c’est-à-dire des caractéristiques d’entités de paysage plus petites. Avec des données d’élévation haute résolution, des distances plus importantes sont plus appropriées.
  • Si le paramètre 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 Unité Z de la surface (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 de valeurs de la sortie de pente dépend du type des unités Mesure de la pente en sortie (output_slope_measurement dans Python) :

    • Pour Degrés (DEGREE dans Python), la plage de valeurs de pente s’étend de 0 à 90.
    • Pour 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 Projeter les azimuts géodésiques est sélectionné (project_geodesic_azimuths est défini sur PROJECT_GEODESIC_AZIMUTHS dans Python), les affirmations suivantes sont vraies :

    • 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 localiser précisément les points le long de la pente descendante la plus raide.

    Sélectionnez le paramètre 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 Raster de direction arrière ou de flux en entrée (in_back_direction_raster dans Python) pour un outil dans le jeu d’outils Distance.

  • Si le paramètre Utiliser l’aspect équatorial est sélectionné (project_geodesic_azimuths est défini sur USE_EQUATORIAL_ASPECT dans Python), l’aspect est mesuré à partir d’un point le long de l’Équateur afin de corriger la distorsion de la direction qui se produit à 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

Paramètres

ÉtiquetteExplicationType de données
Raster de surface en entrée

Raster de surface en entrée.

Raster Layer
Type de paramètre
(Facultatif)

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

  • PenteTaux de variation de l’élévation. Il s’agit de l’option par défaut.
  • ExpositionDirection de pente descendante du taux de variation maximal pour chaque cellule.
  • Courbure moyenneMesure 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é.
  • Courbure (d’isoligne normale) tangentielleMesure 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.
  • Courbure (de ligne de pente normale) longitudinaleMesure 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
Type de surface locale
(Facultatif)

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

  • QuadratiqueAjuste une fonction de surface quadratique aux cellules du voisinage. Il s’agit de l’option par défaut.
  • BiquadratiqueAjuste une fonction de surface biquadratique aux cellules du voisinage.
String
Distance du voisinage
(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
Utiliser le voisinage adaptatif
(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.

  • Désactivé : utilisez une distance du voisinage unique (fixe) au niveau de tous les emplacements. Il s’agit de l’option par défaut.
  • Activé : utilisez une distance du voisinage adaptative au niveau de tous les emplacements.
Boolean
Unité Z
(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.

  • PouceLes unités linéaires sont les pouces.
  • PiedLes unités linéaires sont les pieds.
  • YardLes unités linéaires sont les yards.
  • Mile USLes unités linéaires sont les milles.
  • Mille nautiqueLes unités linéaires sont les milles nautiques.
  • MillimètreLes unités linéaires sont les millimètres.
  • CentimètreLes unités linéaires sont les centimètres.
  • MètreLes unités linéaires sont les mètres.
  • KilomètreLes unités linéaires sont les kilomètres.
  • DécimètreLes unités linéaires sont les décimètres.
String
Mesure de pente en sortie
(Facultatif)

Lorsque le type de paramètre est défini sur Slope (Pente), l’option détermine les unités de mesure (degrés ou pourcentage) du raster de pente en sortie.

  • DegréL'inclinaison de la pente est calculée en degrés.
  • Pourcentage d'élévationL'inclinaison de la pente est calculée en pourcentage d'élévation, également désigné sous le nom de pourcentage de pente.
String
Projeter les azimuts géodésiques
(Facultatif)

Spécifie si les azimuts géodésiques sont projetés pour corriger la distorsion d’angle due à la référence spatiale en sortie.

  • Désactivé : les azimuts géodésiques ne sont pas projetés. Il s’agit de l’option par défaut.
  • Activé : les azimuts géodésiques sont projetés.
Boolean
Utiliser l’aspect équatorial
(Facultatif)

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

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

Valeur renvoyée

ÉtiquetteExplicationType de données
Raster en sortie

Raster en sortie.

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})
NomExplicationType 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 sont projetés pour corriger la distorsion d’angle due à la référence spatiale en sortie.

  • GEODESIC_AZIMUTHSLes azimuts géodésiques ne sont pas projetés. Il s’agit de l’option par défaut.
  • PROJECT_GEODESIC_AZIMUTHSLes azimuts géodésiques sont 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 distance de voisinage maximale 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: Nécessite Spatial Analyst ou 3D Analyst
  • Standard: Nécessite Spatial Analyst ou 3D Analyst
  • Advanced: Nécessite Spatial Analyst ou 3D Analyst

Rubriques connexes