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. Les options de paramètre de surface disponibles pour le paramètre Type de paramètre (parameter_type dans Python) sont Pente, Aspect, Courbure moyenne, Courbure (d’isoligne normale) tangentielle, Courbure (de ligne de pente normale) longitudinale, Courbure (d’isoligne projetée) transversale, Torsion géodésique d’isoligne, Courbure gaussienne et Courbure de Casorati.

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

    • Courbure moyenne (MEAN_CURVATURE dans Python) : 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).
    • Courbure (de ligne de pente normale) longitudinale (PROFILE_CURVATURE dans Python) : 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 cette surface est plane.
    • Courbure (d’isoligne normale) tangentielle (TANGENTIAL_CURVATURE dans Python) : courbure normale géométrique perpendiculaire à 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 cette surface est plane.
    • Courbure (d’isoligne projetée) transversale (CONTOUR_CURVATURE dans Python) : courbure le long des isolignes.
    • Torsion géodésique d’isoligne (CONTOUR_GEODESIC_TORSION dans Python) : vitesse de variation de l’angle de pente le long des isolignes.
    • Courbure gaussienne (GAUSSIAN_CURVATURE dans Python) : courbure générale d’une surface. Il est calculé comme le produit de la courbure minimale et de la courbure maximale, et peut prendre des valeurs négatives et positives. Les valeurs positives indiquent que la surface est convexe au niveau de cette cellule, des valeurs négatives indiquant que la surface est concave. Une valeur nulle signifie que cette surface est plane.
    • Courbure de Casorati (CASORATI_CURVATURE dans Python) : courbure générale de la surface. Elle peut être nulle ou toujours positive. Des valeurs positives élevées indiquent des zones de pliure nette dans plusieurs directions.

    Les unités de tous les types de courbure en sortie sont la réciproque (le carré de la réciproque pour la Courbure gaussiene) des unités x,y du système de coordonnées en sortie.

  • L’option Quadratique (QUADRATIC dans Python) de 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.
    • Utilisez la surface quadratique 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) de 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. Conservez la distance du voisinage définie par défaut (égale à la taille de cellule).
  • Le paramètre 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.

  • Il est important de spécifier la valeur du paramètre Unité Z (z-unit dans Python) 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 recommandé 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 des unités de l’option Mesure de pente en sortie (output_slope_measurement dans Python) :

    • Degrés (DEGREE dans Python) : la plage de valeurs de pente s’étend de 0 à 90.
    • 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 Paramètres de surface comme direction arrière en entrée dans le paramètre 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 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. Ce paramètre garantit que les axes nord-sud et est-ouest sont perpendiculaires les uns par rapport aux autres.

    Activez le paramètre 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)

Spécifie le type de paramètre de surface en sortie à calculer.

  • PenteTaux de variation de l’élévation à calculer. Il s’agit de l’option par défaut.
  • ExpositionDirection de pente descendante du taux de variation maximal pour chaque cellule à calculer.
  • Courbure moyenneLa courbure globale de la surface est mesurée. 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) tangentielleLa courbure normale géométrique perpendiculaire à la pente, tangente à l’isoligne est mesurée. 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) longitudinaleLa courbure normale géométrique le long de la pente est mesurée. 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.
  • Courbure (d’isoligne projetée) transversaleLa courbure le long des isolignes est mesurée.
  • Torsion géodésique d’isoligneLe taux de variation de l’angle de pente le long des isolignes est mesuré.
  • Courbure gaussienneLa courbure globale de la surface est mesurée. Elle est calculée comme le produit de la courbure minimale et de la courbure maximale.
  • Courbure de CasoratiLa courbure générale de la surface est mesurée. Elle peut être nulle ou il peut s’agir d’un autre nombre positif.
String
Type de surface locale
(Facultatif)

Spécifie le type de fonction de surface ajustée autour de la cellule cible.

  • QuadratiqueUne fonction de surface quadratique est ajustée aux cellules du voisinage. Il s’agit de l’option par défaut.
  • BiquadratiqueUne fonction de surface biquadratique est ajustée 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)

Spécifie si la distance du voisinage varie selon les modifications du paysage (adaptatif). 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é : une distance du voisinage unique (fixe) est utilisée au niveau de tous les emplacements. Il s’agit de l’option par défaut.
  • Activé : une distance du voisinage adaptative est utilisée 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)

Les unités de mesure (degrés ou pourcentages) utilisées pour le raster de pente en sortie. Ce paramètre est seulement actif si le Type de paramètre est défini sur Pente.

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

Spécifie si l’aspect est mesuré à partir d’un point placé sur l’équateur ou à partir du pôle Nord.

  • Désactivé : l’aspect est mesuré à partir du pôle Nord. Il s’agit de l’option par défaut.
  • Activé : l’aspect est mesuré à 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)

Spécifie le type de paramètre de surface en sortie à calculer.

  • SLOPETaux de variation de l’élévation à calculer. Il s’agit de l’option par défaut.
  • ASPECTDirection de pente descendante du taux de variation maximal pour chaque cellule à calculer.
  • MEAN_CURVATURELa courbure globale de la surface est mesurée. 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_CURVATURELa courbure normale géométrique perpendiculaire à la pente, tangente à l’isoligne est mesurée. Cette courbure est généralement appliquée pour caractériser la convergence ou la divergence de l’écoulement sur la surface.
  • PROFILE_CURVATURELa courbure normale géométrique le long de la pente est mesurée. 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.
  • CONTOUR_CURVATURELa courbure le long des isolignes est mesurée.
  • CONTOUR_GEODESIC_TORSIONLe taux de variation de l’angle de pente le long des isolignes est mesuré.
  • GAUSSIAN_CURVATURELa courbure globale de la surface est mesurée. Elle est calculée comme le produit de la courbure minimale et de la courbure maximale.
  • CASORATI_CURVATURELa courbure générale de la surface est mesurée. Elle peut être nulle ou il peut s’agir d’un autre nombre positif.
String
local_surface_type
(Facultatif)

Spécifie le type de fonction de surface ajustée autour de la cellule cible.

  • QUADRATICUne fonction de surface quadratique est ajustée aux cellules du voisinage. Il s’agit de l’option par défaut.
  • BIQUADRATICUne fonction de surface biquadratique est ajustée 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)

Spécifie si la distance du voisinage varie selon les modifications du paysage (adaptatif). 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_NEIGHBORHOODUne distance du voisinage unique (fixe) est utilisée au niveau de tous les emplacements. Il s’agit de l’option par défaut.
  • ADAPTIVE_NEIGHBORHOODUne distance du voisinage adaptative est utilisée 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)

Les unités de mesure (degrés ou pourcentages) utilisées pour le raster de pente en sortie. Ce paramètre n’est disponible que si parameter_type = "SLOPE".

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

Spécifie si l’aspect est mesuré à partir d’un point placé sur l’équateur ou à partir du pôle Nord.

  • NORTH_POLE_ASPECTL’aspect est mesuré à partir du pôle Nord. Il s’agit de l’option par défaut.
  • EQUATORIAL_ASPECTL’aspect est mesuré à 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 en 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