Disponible avec une licence Spatial Analyst.
Résumé
Calcule pour chaque cellule la distance de plus faible coût cumulé depuis ou vers la source de moindre coût sur une surface de coût.
Pour en savoir plus sur le fonctionnement des outils de distance de coût
Illustration
Utilisation
Les données source en entrée peuvent être une classe d'entités ou un raster.
Lorsque les données source en entrée correspondent à un raster, 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. Vous pouvez facilement créer un raster source à l'aide des outils d'extraction.
Lorsque les données source en entrée correspondent à une classe 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 d'environnement Taille de cellule. Par défaut, la résolution est définie sur la résolution du raster de coût en entrée.
Lorsque vous utilisez des données d'entité surfacique pour les données source en entrée, vous devez traiter la taille de cellule en sortie avec prudence si elle est grossière par rapport au détail dans l'entrée. Le processus de tramage interne utilise la même méthode par défaut Type d'attribution de cellule que l'outil Polygones vers rasters, à savoir la méthode Centre de cellule. Cela signifie que les données ne figurant pas au centre de la cellule ne seront pas incluses dans la sortie source rasterisée intermédiaire ; elles ne seront donc pas représentées dans les calculs de distance. Par exemple, si vos sources sont représentées par une série de petits polygones (tels que des emprises de bâtiments) dont la taille est petite par rapport à la taille de cellule en sortie, il se peut que quelques-uns seulement apparaissent aux centres des cellules raster en sortie et que, vraisemblablement, la plupart des autres polygones soient perdus et exclus de l'analyse.
Pour éviter cette situation, vous pouvez entre-temps effectuer la rasterisation des entités en entrée directement avec l'outil Polygone vers raster et définir un champ Priorité. Ensuite, utilisez la sortie en entrée dans l'outil de distance que vous souhaitez utiliser. Vous pouvez également sélectionner une petite taille de cellule pour capturer le nombre de détails approprié à partir des entités en entrée.
Lorsque l'entrée source est une entité, par défaut, le premier champ disponible valide est utilisé. Si aucun champ valide n'existe, le champ IdObjet (par exemple, OID ou FID, selon le type de l'entité en entrée) est utilisé.
Les emplacements de cellule ayant la valeur NoData dans le raster de coût en entrée agissent comme des barrières dans les outils de surface de coût. 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 (distance de coût, allocation et antécédence).
Si les données source en entrée et le raster de coût sont des étendues différentes, l'étendue en sortie par défaut correspond à l'intersection des deux. Pour obtenir une surface de distance de coût pour l'étendue entière, choisissez l'option Union des entrées sur les paramètres d'environnement Etendue en sortie.
La distance maximale est spécifiée dans les mêmes unités de coût que celles sur le raster de coût.
Pour le raster de distance en sortie, la distance de plus faible 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 plus faible 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 un raster 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'utiliser l'outil Distance de coût. Commencez par utiliser l'outil Con. Si les surfaces dotées d'une valeur nulle représentent des surfaces à exclure de l'analyse, vous devez remplacer ces valeurs par la valeur NoData avant d'utiliser l'outil Distance de coût. Commencez par utiliser l'outil SetNull.
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 Multiplicateur de coût à la source détermine le mode de déplacement ou magnitude à la source, Coût initial à la source définit le coût initial avant le mouvement, 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 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.
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.
Syntaxe
CostDistance (in_source_data, in_cost_raster, {maximum_distance}, {out_backlink_raster}, {source_cost_multiplier}, {source_start_cost}, {source_resistance_rate}, {source_capacity}, {source_direction})
Paramètre | Explication | Type de données |
in_source_data | Emplacement des sources en entrée. Un jeu de données raster ou un jeu de classes d'entités identifie les cellules ou les emplacements depuis ou vers lesquels la distance de plus faible coût cumulé est calculée pour chaque emplacement de cellule en sortie. Pour les rasters, le type d'entrée peut être entier ou à virgule flottante. | Raster Layer; Feature Layer |
in_cost_raster | 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 |
maximum_distance (Facultatif) | Définit le seuil que les valeurs de coût cumulé ne peuvent pas dépasser. Si une valeur de distance de coût cumulé dépasse cette valeur, la valeur en sortie de l'emplacement de cellule est NoData. La distance maximale définit l'étendue pour laquelle les distances de coût cumulé sont calculées. La distance par défaut va jusqu'à la bordure du raster en sortie. | Double |
out_backlink_raster (Facultatif) | Raster d'antécédence de coût en sortie. Le raster d'antécédence contient des valeurs de 0 à 8 qui définissent la direction ou identifient la cellule voisine suivante (la cellule suivante) le long du chemin de plus faible coût cumulé à partir d'une cellule pour atteindre sa source de plus faible coût. Si le chemin doit passer à l'intérieur du voisin de droite, la cellule se voit attribuer la valeur 1, 2 pour la cellule dans la diagonale inférieure droite et ainsi de suite dans le sens des aiguilles d'une montre. La valeur 0 est réservée aux cellules sources. | Raster Dataset |
source_cost_multiplier (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 |
source_start_cost (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 source_start_cost. Les valeurs doivent être égales ou supérieures à zéro. La valeur par défaut est 0. | Double; Field |
source_resistance_rate (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 |
source_capacity (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 tronçon du raster en sortie. | Double; Field |
source_direction (Facultatif) | Définit le sens du voyageur en cas d'application du taux de résistance source et du coût de départ source.
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; Field |
Valeur renvoyée
Nom | Explication | Type de données |
out_distance_raster | Raster de distance de coût en sortie. Le raster de distance de coût identifie, pour chaque cellule, la distance du plus faible coût cumulé sur une surface de coût vers le(s) emplacement(s) source(s) identifié(s). Une source peut être une cellule, un jeu de cellules voire un ou plusieurs emplacements d'entités. Le raster en sortie est de type virgule flottante. | Raster |
Exemple de code
Exemple d'utilisation de l'outil CostDistance (fenêtre Python)
Le script dans la fenêtre Python ci-après explique comment utiliser l'outil CostDistance.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCostDist = CostDistance("source.shp", "elevation", "", "backlink", "Multiplier", "StartCost", "Resistance", 500000)
outCostDist.save("C:/sapyexamples/output/costdist")
Deuxième exemple d'utilisation de l'outil CostDistance (script autonome)
Calculez le raster de distance de plus faible coût cumulé à partir d'emplacements sources du fichier de formes.
# Name: CostDistance_Ex_02.py
# Description: Calculates for each cell the least accumulative cost distance
# to the nearest source over a cost surface.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inSourceData = "source.shp"
inCostRaster = "elevation"
maxDistance = ""
outBkLinkRaster = "C:/sapyexamples/output/outbklink"
multiplier = "Multiplier"
startCost = "StartCost"
resistance = "Resistance"
capacity = 500000
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute CostDistance
outCostDistance = CostDistance(inSourceData, inCostRaster, maxDistance, outBkLinkRaster, multiplier, startCost,
resistance, capacity)
# Save the output
outCostDistance.save("C:/sapyexamples/output/outcostdist")
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert Spatial Analyst
- ArcGIS Desktop Standard: Requiert Spatial Analyst
- ArcGIS Desktop Advanced: Requiert Spatial Analyst