Calculer le coût de déplacement (Analyse raster)

Résumé

Calcule la distance de plus faible coût cumulé depuis ou vers la source de moindre coût, tout en tenant compte de la distance de surface et des facteurs de coût horizontaux et verticaux.

Illustration

Illustration de l’outil Calcul du coût de déplacement

Utilisation

  • Cet outil du portail d’analyse raster est disponible lorsque vous êtes connecté à un portail ArcGIS Enterprise Lien vers Présentation de l’analyse dans ArcGIS Enterprise comportant un ArcGIS Image Server Lien vers Présentation de ArcGIS Image Server configuré pour Raster Analysis Lien vers Configurer et déployer l’analyse raster. Lorsque cet outil est appelé, ArcGIS Pro est utilisé comme client et le traitement est effectué dans les serveurs fédérés avec ArcGIS Enterprise. Cet outil du portail prend en charge les couches de votre portail en entrée et crée la sortie dans le portail.

    La couche raster en entrée prend en charge les éléments suivants : couche du portail, URI ou URL d’un service d’imagerie ou sortie de l’outil Make Image Server Layer (Créer une couche de serveur d’imagerie). La couche d’entités en entrée peut être une couche du portail, ou une URI ou une URL d’un service d’entités. Cet outil ne prend pas en charge les données raster ou les couches locales. Bien que vous ayez la possibilité d’utiliser des données d’entité et des couches locales en entrée dans cet outil du portail, il est recommandé d’utiliser les couches de votre portail en entrée.

  • Identifier l’itinéraire le moins coûteux pour construire une route vers une école proposée constitue un exemple d’application de cet outil.

  • Lorsque les données source en entrée correspondent à un service d’imagerie, l’ensemble des cellules source englobe toutes les cellules du raster source comprenant des valeurs valides. Les cellules associées à la valeur NoData ne figurent pas dans la source. La valeur 0 est considérée comme une source normale.

  • Lorsque les données source en entrée correspondent à un service d’entités, les emplacements source sont convertis en interne en raster avant l’analyse. La résolution du raster peut être contrôlée à l'aide du paramètre Taille de cellule en sortie ou de l'environnement Taille de cellule. Par défaut, la résolution est déterminée par la valeur la plus petite entre la largeur et la hauteur de l'étendue de l'entité en entrée, dans la référence spatiale en entrée, divisée par 250.

  • Les emplacements de cellule ayant la valeur NoData dans le raster de coût en entrée agissent comme des interruptions. Tout emplacement de cellule auquel la valeur NoData est attribuée sur la surface de coût en entrée recevra la valeur NoData sur tous les rasters en sortie.

  • Pour le service d’imagerie de distance en sortie, la distance de moindre coût (ou distance de coût cumulée minimale) d’une cellule depuis ou vers un ensemble d’emplacements source correspond à la limite inférieure des distances de moindre coût de la cellule à tous les emplacements source.

  • Le raster de coût ne peut pas contenir de valeurs nulles, puisque l'algorithme est un processus multiplicatif. Si le raster de coût contient des valeurs nulles et que ces valeurs représentent des superficies de plus faible coût, choisissez une petite valeur positive (par exemple, 0,01) avant d’exécuter l’outil Calcul du coût de déplacement. Si les surfaces avec une valeur nulle représentent des surfaces à exclure de l’analyse, ces valeurs doivent être remplacées par NoData avant d’exécuter l’outil Calcul du coût de déplacement.

  • Les valeurs par défaut des modificateurs de facteur horizontal sont les suivantes :

    Keywords         Zero factor   Cut angle     Slope   Side value
    --------------   -----------   -----------   -----   ---------
    Binary           1.0            45           ~       ~
    Forward          0.5            45 (fixed)   ~       1.0
    Linear           0.5           181            1/90   ~
    Inverse linear   2.0           180           -1/90   ~
  • Les valeurs par défaut des modificateurs de facteur vertical sont les suivantes :

    Keyword                   Zero    Low    High   Slope  Power  Cos    Sec
                              factor  cut    cut                  power  power
                                      angle  angle                             
    ------------------------  ------  -----  -----  -----  -----  -----  -----
    Binary                    1.0     -30    30     ~      ~      ~      ~
    Linear                    1.0     -90    90      1/90  ~      ~      ~
    Symmetric linear          1.0     -90    90      1/90  ~      ~      ~
    Inverse linear            1.0     -45    45     -1/45  ~      ~      ~
    Symmetric inverse linear  1.0     -45    45     -1/45  ~      ~      ~
    Cos                       ~       -90    90     ~      1.0    ~      ~
    Sec                       ~       -90    90     ~      1.0    ~      ~
    Cos_sec                   ~       -90    90     ~      ~      1.0    1.0
    Sec_cos                   ~       -90    90     ~      ~      1.0    1.0
  • Les caractéristiques de la source, ou les sujets qui se déplacent à partir de ou vers une source, peuvent être contrôlés par des paramètres précis. Le paramètre Source cost multiplier (Multiplicateur de coût à la source) détermine le mode de déplacement ou magnitude à la source, Source start cost (Coût initial à la source) définit le coût initial avant le mouvement, Source resistance rate (Taux de résistance à la source) est un ajustement dynamique tenant compte de l’impact du coût cumulé, simulant par exemple le degré de fatigue d’un randonneur et Source capacity (Capacité de la source) définit le coût pouvant être assimilé par une source avant d’atteindre sa limite. L'option Sens de déplacement identifie si le sujet qui se déplace commence à une source et se déplace vers les emplacements non source ou s'il commence aux emplacements non source et retourne vers une source.

  • Si le coût initial à la source est spécifié et que le sens de déplacement est ;Déplacement depuis la source, les emplacements source sur la distance de surface de coût en sortie sont définis sur la valeur de Coût initial à la source. Sinon, les emplacements source sur la distance de surface de coût en sortie sont définis sur zéro.

  • Si des paramètres des caractéristiques source sont spécifiés à l’aide d’un champ, les caractéristiques source sont appliquées source par source, selon les informations fournies dans le champ donné pour les données source. Lorsqu'un mot-clé ou une valeur constante sont donnés, ils sont appliqués à toutes les sources.

Syntaxe

arcpy.ra.CalculateTravelCost(inputSourceRasterOrFeatures, outputDistanceName, {inputCostRaster}, {inputSurfaceRaster}, {maximumDistance}, {inputHorizontalRaster}, {horizontalFactor}, {inputVerticalRaster}, {verticalFactor}, {sourceCostMultiplier}, {sourceStartCost}, {sourceResistanceRate}, {sourceCapacity}, {sourceTravelDirection}, {outputBacklinkName}, {outputAllocationName}, {allocationField})
ParamètreExplicationType de données
inputSourceRasterOrFeatures

Couche qui définit les sources sur lesquelles calculer la distance. La couche peut être un raster ou une entité.

Raster Layer; Image Service; Feature Layer; String
outputDistanceName

Nom du service raster de distance en sortie.

Le service d’imagerie de distance de coût identifie, pour chaque cellule, la distance du plus faible coût cumulé sur une surface de coût vers les emplacements source identifiés.

String
inputCostRaster
(Facultatif)

Raster définissant l'impédance ou le coût de déplacement planimétrique à travers chaque cellule.

La valeur de chaque emplacement de cellule représente le coût par unité de distance du déplacement à travers la cellule. Chaque valeur d'emplacement de cellule est multipliée par la résolution de cellule (avec également une compensation simultanée pour mouvement diagonal) afin d'obtenir le coût total du passage à travers la cellule.

Les valeurs du raster de coût peuvent être des entiers ou valeurs à virgule flottante, mais elles ne peuvent pas être négatives ni nulles (un coût ne peut pas être négatif ou nul).

Raster Layer; Image Service; String
inputSurfaceRaster
(Facultatif)

Un raster définissant les valeurs d’altitudes à chaque emplacement de cellule. Ces valeurs permettent de calculer la distance de surface réelle qui est couverte lors du passage d’une cellule à une autre.

Raster Layer; Image Service; String
maximumDistance
(Facultatif)

Définit le seuil que les valeurs de coût cumulé ne peuvent pas dépasser.

Double
inputHorizontalRaster
(Facultatif)

Raster définissant la direction horizontale pour chaque cellule.

Les valeurs du raster doivent être des entiers compris entre 0 et 360, 0 degré correspondant au nord (vers le haut de l’écran). Elles augmentent dans le sens horaire. La valeur -1 doit être attribuée aux surfaces planes.

Les valeurs à chaque emplacement sont utilisées conjointement à {horizontal_factor} afin de déterminer le coût horizontal encouru lors d'un déplacement à partir d'une cellule vers les cellules voisines.

Raster Layer; Image Service; String
horizontalFactor
(Facultatif)

L’objet Horizontal Factor (Facteur horizontal) définit la relation entre le facteur de coût horizontal et l’angle de déplacement relatif horizontal.

Vous pouvez choisir parmi plusieurs facteurs, avec modificateurs, qui renvoient à un diagramme de facteurs horizontaux défini. Les diagrammes permettent d'identifier le facteur horizontal utilisé pour le calcul du coût total d'un déplacement vers une cellule voisine.

Dans les explications ci-dessous, deux acronymes sont utilisés. Le facteur HF correspond au facteur horizontal qui représente la difficulté horizontale rencontrée lors d'un déplacement d'une cellule vers la suivante. L'angle HRMA correspond à l'angle de déplacement relatif horizontal, lequel représente l'angle entre la direction horizontale d'une cellule et la direction du déplacement.

Plusieurs types de facteur horizontal sont disponibles :

  • Binaire - Indique que si l'angle HRMA est inférieur à l'angle d'inflexion, le facteur HF a la valeur associée au facteur zéro ; dans le cas contraire, le facteur horizontal est infini.
  • Avant - Précise que seul un mouvement vers l'avant est autorisé. L'angle HRMA doit être supérieur ou égal à 0 et inférieur à 90 degrés (0 <= HRMA < 90). Si l’angle HRMA est compris entre 0 et 45 degrés, le facteur HF de la cellule a la valeur associée au facteur zéro. Si l’angle HRMA est supérieur ou égal à 45 degrés, la valeur du modificateur de la valeur de bord est utilisée. Le facteur HF pour un angle HRMA supérieur ou égal à 90 degrés est infini.
  • Linéaire - Spécifie que le facteur HF est une fonction linéaire de l'angle HRMA.
  • Linéaire inverse - Spécifie que le facteur HF est une fonction linéaire inverse de l'angle HRMA.

Par défaut, la fonction est binaire

Caractéristiques des mots-clés horizontaux :

  • Facteur zéro - Définit le facteur horizontal à utiliser lorsque la valeur HRMA est égale à zéro. Ce facteur positionne l’intersection avec l’axe des y de toutes les fonctions de facteur horizontal.
  • Angle d'inflexion - Définit l'angle HRMA au-delà duquel le facteur HF a une valeur infinie.
  • Slope : définit la pente en ligne droite utilisée avec les mots-clés de facteur horizontal Linéaire et Linéaire inverse. La pente est spécifiée sous forme d’un rapport de la hauteur sur la distance parcourue (par exemple, une pente de 45 pour cent correspond à 1/45, la valeur introduite étant 0,02222).
  • Valeur de bord : définit le facteur HF lorsque l'angle HRMA est supérieur ou égal à 45 degrés et inférieur à 90 degrés lorsque le mot-clé de facteur horizontal Suivant est spécifié.
Horizontal Factor
inputVerticalRaster
(Facultatif)

Raster définissant la direction verticale (z) de chaque cellule.

Raster Layer; Image Service; String
verticalFactor
(Facultatif)

Le facteur vertical définit la relation entre le facteur de coût vertical et l’angle de déplacement relatif vertical (VRMA, vertical relative moving angle).

Vous pouvez choisir parmi plusieurs facteurs, avec modificateurs, qui renvoient à un diagramme de facteurs verticaux défini. Les diagrammes permettent d’identifier le facteur vertical utilisé pour le calcul du coût total d’un déplacement vers une cellule voisine.

Dans les explications ci-dessous, deux acronymes sont utilisés. Le facteur VF correspond au facteur vertical, lequel représente la difficulté verticale rencontrée lors d'un déplacement à partir d'une cellule vers la suivante. L'angle VRMA correspond à l'angle de déplacement relatif vertical, lequel représente l'angle de la pente entre la cellule FROM, ou de traitement, et la cellule TO.

Plusieurs types de facteur vertical sont disponibles :

  • Binaire - Spécifie que si l'angle VRMA est supérieur à l'angle d'inflexion inférieur et inférieur à l'angle d'inflexion supérieur, le facteur VF doit correspondre à la valeur associée au facteur zéro ; sinon, il est infini.
  • Linéaire - Indique que le facteur VF est une fonction linéaire de l'angle VRMA.
  • Linéaire symétrique - Spécifie que le facteur VF est une fonction linéaire de l'angle VRMA, à la fois du côté négatif et du côté positif de l'angle VRMA, respectivement, et que les deux fonctions linéaires sont symétriques par rapport à l'axe (y) du facteur VF.
  • Linéaire inverse - Indique que le facteur VF est une fonction linéaire inverse de l'angle VRMA.
  • Linéaire inverse symétrique - Spécifie que le facteur VF est une fonction linéaire inverse de l'angle VRMA, à la fois du côté négatif et du côté positif de l'angle VRMA, respectivement, et que les deux fonctions linéaires sont symétriques par rapport à l'axe (y) du facteur VF.
  • Cos - Identifie le facteur VF comme une fonction cosinusoïdale de l'angle VRMA.
  • Sec - Identifie le facteur VF comme une fonction sécante de l'angle VRMA.
  • Cos-Sec - Indique que le facteur VF est une fonction cosinusoïdale de l'angle VRMA lorsque ce dernier est négatif et qu'il est une fonction sécante de l'angle VRMA lorsque ce dernier n'est pas négatif.
  • Sec-Cos - Indique que le facteur VF est une fonction sécante de l'angle VRMA lorsque ce dernier est négatif et qu'il est une fonction cosinusoïdale de l'angle VRMA lorsque ce dernier n'est pas négatif.

Par défaut, la fonction est binaire

Caractéristiques des mots-clés verticaux :

  • Facteur zéro - Définit le facteur vertical utilisé lorsque l'angle VRMA est nul. Ce facteur positionne l’intersection avec l’axe des y de la fonction spécifiée. Par définition, le facteur zéro ne s’applique à aucune fonction verticale trigonométrique (COS, SEC, COS-SEC ou SEC-COS). Ces fonctions définissent l’intersection avec l’axe des y.
  • Angle d'inflexion inférieur - Définit l'angle VRMA en dessous duquel le facteur VF est défini sur l'infini.
  • Angle d'inflexion supérieur - Définit l'angle VRMA au-dessus duquel le facteur VF est défini sur l'infini.
  • Pente : établit la pente d'une ligne droite utilisée avec les mots-clés de facteur vertical Linéaire et Linéaire inverse. La pente est spécifiée sous forme d’un rapport de la hauteur sur la distance parcourue (par exemple, une pente de 45 pour cent correspond à 1/45, la valeur introduite étant 0,02222).
Vertical Factor
sourceCostMultiplier
(Facultatif)

Multiplicateur à appliquer aux valeurs de coût.

Permet de contrôler le mode de déplacement ou la magnitude à une source. Plus le multiplicateur est élevé, plus le coût de déplacement d’une cellule à une autre est important.

Les valeurs doivent être supérieures à zéro. La valeur par défaut est 1.

Double; Field
sourceStartCost
(Facultatif)

Coût de départ du calcul des coûts.

Permet de spécifier le coût fixe associé à une source. Plutôt que de commencer avec un coût nul, l'algorithme de coût commence avec une valeur définie par le paramètre sourceStartCost.

Les valeurs doivent être égales ou supérieures à zéro. La valeur par défaut est 0.

Double; Field
sourceResistanceRate
(Facultatif)

Ce paramètre simule l’augmentation de l’effort pour surmonter les coûts au fur et à mesure que le coût cumulé augmente. Il permet de modéliser la fatigue du voyageur. Le coût cumulé croissant pour atteindre une cellule est multiplié par le taux de résistance et ajouté au coût engendré par le déplacement vers la cellule suivante.

Il s'agit d'une version modifiée d'une formule de taux d'intérêt composé qui permet de calculer le coût apparent du déplacement à travers une cellule. Avec l’augmentation du taux de résistance, le coût des cellules qui sont visitées ultérieurement s’accroît également. Plus le taux de résistance est important, plus le coût de déplacement vers la cellule suivante augmente, lequel est ajouté pour chaque mouvement suivant. Puisque le taux de résistance est similaire à un taux composé et qu’habituellement les valeurs de coût cumulé sont très importantes, nous suggérons l’utilisation de taux de résistance faibles, tels que 0,02, 0,005 ou encore inférieurs, selon les valeurs de coût cumulé.

Les valeurs doivent être égales ou supérieures à zéro. La valeur par défaut est 0.

Double; Field
sourceCapacity
(Facultatif)

Définit la capacité de coût pour le voyageur pour une source.

Les calculs de coût continuent pour chaque source jusqu’à ce que la capacité spécifiée soit atteinte.

Les valeurs doivent être supérieures à zéro. La capacité par défaut est limitée par le segment du raster en sortie.

Double; Field
sourceTravelDirection
(Facultatif)

Définit le sens du voyageur en cas d’application des facteurs horizontaux et verticaux, du taux de résistance source et du coût de départ source.

  • FROM_SOURCELe facteur horizontal, le facteur vertical, le taux de résistance source et le coût de départ source sont appliqués à partir de la source en entrée et lors du déplacement vers les cellules non source. Il s’agit de l’option par défaut.
  • TO_SOURCELe facteur horizontal, le facteur vertical, le taux de résistance source et le coût de départ source sont appliqués à partir de chaque cellule non source et lors du retour à la source en entrée.

Spécifiez le mot-clé FROM_SOURCE ou TO_SOURCE, qui est appliqué à toutes les sources, ou spécifiez un champ dans les données source qui contient les mots-clés permettant d’identifier le sens de déplacement pour chaque source. Ce champ doit contenir les chaînes FROM_SOURCE ou TO_SOURCE.

String
outputBacklinkName
(Facultatif)

Nom du service raster d’antécédence en sortie.

Le raster d’antécédence contient des valeurs comprises entre 0 et 360, qui définissent la direction le long du chemin de plus faible coût cumulé à partir d’une cellule pour atteindre sa source de plus faible coût, tout en tenant compte de la distance de surface, ainsi que des facteurs de surface horizontaux et verticaux.

String
outputAllocationName
(Facultatif)

Nom du service raster de l’allocation en sortie.

Raster identifiant la zone de chaque emplacement source (cellule ou entité) ayant pu être atteint avec le plus faible coût cumulé.

Le raster en sortie est un entier.

String
allocationField
(Facultatif)

Champ dans l’entrée source qui contient les valeurs définissant chaque source.

String

Sortie dérivée

NomExplicationType de données
outputDistanceRaster

Le raster de distance en sortie.

Couche raster
outputBacklinkRaster

Le raster d’antécédence en sortie.

Couche raster
outputAllocationRaster

Le raster d’allocation en sortie.

Couche raster

Exemple de code

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

Cet exemple calcule le coût de déplacement à partir d’une seule source.

import arcpy
arcpy.CalculateTravelCost_ra('https://MyPortal.esri.com/server/rest/services/Hosted/reccenter/ImageServer',
                             "outDist", "inCostRas", "inSurfaceRas", "200000")
Exemple 2 d’utilisation de l’outil CalculateTravelCost (script autonome)

Cet exemple calcule le coût de déplacement à partir d’un ensemble de sources.

# Name: CalculateTravelCost_Ex_02.py
# Description: Calculates for each cell the least accumulative cost distance
#    to the nearest source over a cost  surface. 
# Requirements: ArcGIS Image Server

# Import system modules
import arcpy

# Set local variables
inSource = 'https://MyPortal.esri.com/server/rest/services/Hosted/landuse/ImageServer'
outDistName = 
inCostRast = "costraster"
inElev = "elevation"
maxDist = "50000"

inHoriz = "backlink2"
horizFactor = "FORWARD 0.5 1.0"
inVertical = "focalcost.tif"
verticalFactor = "Binary 1.0 -30 30"

sourceCostMultiplier =
sourceStartCost =
sourceResistanceRate =
sourceCapacity = 
sourceTravelDirection =

optBacklinkName = "c:/sapyexamples/output/pathbacklink"
optAlloName =
allocField = 

# Execute CalculateTravelCost
arcpy.CalculateTravelCost_ra(inSource, outDistName, inCostRast, inElev, maxDist, inHoriz, horizFactor,
                           inVertical, verticalFactor, sourceCostMultiplier, sourceStartCost,
                           sourceResistanceRate, sourceCapacity, sourceTravelDirection, optBacklinkName,
                           optAlloName, allocField)

# Execute CostDistance
outTravelCost = CalculateTravelCost(inSourceData, inCostRaster, maxDistance, outBkLinkRaster)

Informations de licence

  • Basic: Requiert ArcGIS Image Server
  • Standard: Requiert ArcGIS Image Server
  • Advanced: Requiert ArcGIS Image Server

Rubriques connexes