Disponible avec une licence Spatial Analyst.
Résumé
Calcule le chemin de moindre coût entre une source et une destination.
Pour en savoir plus sur la création d'un chemin de moindre coût
Utilisation
L'outil Chemin de coût permet d'obtenir un raster en sortie qui enregistre le chemin de plus faible coût ou les chemins correspondant aux emplacements sélectionnés par rapport à la cellule de la source la plus proche que vous avez définie dans la surface de coûts cumulés (nous tenons compte des distances de coût).
Il existe un ou plusieurs outils de calcul de coûts pondérés (notamment Distance de coût, Antécédence de coût ou Allocation de coût) que vous devez généralement activer avant l'outil Chemin de coût pour pouvoir créer une distance de coût en entrée et des rasters d'antécédence. Ces rasters en entrée sont obligatoires si vous souhaitez utiliser l'outil Chemin de coût.
Chaque chemin de plus faible coût est attribué à une valeur issue du processus d'analyse. La dernière cellule dans le raster source initial (celui qui a permis de calculer la distance de coût et l'antécédence) dans un chemin de coût est associée à la valeur un. Le premier chemin est associé à la valeur trois, le deuxième à la valeur quatre, et ainsi de suite. La valeur deux est réservée pour la portion combinée des chemins qui ont des portions d'un chemin de coût en commun.
Lorsque les données de destination en entrée correspondent à un raster, l'ensemble des cellules de destination englobe toutes les cellules du raster en entrée ou les entités de destination comprenant des valeurs autorisées. Les cellules associées à la valeur NoData ne figurent pas dans la source. La valeur zéro est une destination pertinente. Vous pouvez facilement créer un raster de destination à l'aide des outils d'extraction.
Lorsque l’entrée source est une entité, le premier champ disponible valide est utilisé par défaut. Si aucun champ valide n’existe, le champ IdObjet (par exemple, OID ou FID, selon le type de l’entité entrée) est utilisé.
Lorsque vous utilisez des données d’entité surfacique pour les destinations d’entité 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. Dans le processus de tramage interne utilisé par l’outil Polygone vers raster, le paramètre par défaut de la méthode Cell assignment type (Type d’attribution de cellule) est CELL_CENTER. Cela signifie que les données ne figurant pas au centre de la cellule ne seront pas incluses dans la sortie de destination rasterisée intermédiaire ; elles ne seront donc pas représentées dans les calculs de distance. Par exemple, si vos destinations 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 d'entre eux 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 Entité vers raster et définir le paramètre Field (Champ). 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 plusieurs chemins sont combinés et sont conformes à la distance source sur le même trajet, le segment qui comprend les deux chemins est associé à la valeur 2. Vous ne pouvez pas attribuer la partie combinée du chemin à la valeur de l'un de ces chemins, car la partie combinée dépend des deux itinéraires.
L'outil Chemin de coût ne tient pas compte des paramètres d'environnement Taille de cellule. Il utilise la taille de cellule du raster d'antécédence de coût en entrée dans le raster en sortie. Vous risquez de modifier considérablement la configuration du raster d'antécédence en sortie si vous modifiez la résolution. Pour éviter toute confusion, la taille de cellule ne doit pas être définie lors de l'utilisation de cet outil.
L’outil Chemin de coût permet de déterminer le chemin de flux d’après la direction de flux D8. Pour utiliser l’outil Chemin de coût de cette façon, utilisez un raster de direction de flux D8 en entrée pour le paramètre Input cost backlink raster (Raster d’antécédence de coût en entrée). Vous devez également fournir un raster de distance de coût en entrée (Input cost distance raster) ; le raster de distance de coût en entrée (Input cost distance raster) n’est pas utilisé pour déterminer le chemin. Votre chemin sera le même que vous utilisiez un raster constant ou un modèle numérique de terrain (MNT) ; seule une valeur attributaire sur votre chemin sera différente. Reportez-vous à l’outil Direction de flux pour de plus amples informations sur les rasters de direction de flux D8.
Lorsque les données de destination en entrée sont une entité, vous devez pouvoir utiliser au moins un champ.
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
CostPath(in_destination_data, in_cost_distance_raster, in_cost_backlink_raster, {path_type}, {destination_field}, {force_flow_direction_convention})
Paramètre | Explication | Type de données |
in_destination_data | Jeu de données d'entité ou raster identifiant les cellules à partir desquelles le chemin de plus faible coût est déterminé par rapport à la source de plus faible coût. Si l'entrée est un raster, elle comporte des cellules qui ont des valeurs admises (zéro est une valeur autorisée) et les cellules restantes doivent avoir la valeur NoData. | Raster Layer; Feature Layer |
in_cost_distance_raster | Nom du raster de distance de coût à utiliser pour déterminer le chemin de plus faible coût entre les emplacements cibles par rapport aux sources. En général, vous pouvez créer un raster de distance de coût grâce aux outils Distance de coût, Allocation de coût ou Antécédence de coût. Pour chaque cellule, le raster de distance de coût cumulée minimale sur une surface de coût entre chaque cellule et un ensemble de cellules source. | Raster Layer |
in_cost_backlink_raster | Nom du raster d'antécédence de coût utilisé pour déterminer le chemin afin de revenir vers une source via le chemin de plus faible coût. Pour chaque cellule contenue dans le raster d'antécédence, une valeur identifie la voisine, à savoir la cellule sur le chemin de plus faible coût cumulé à partir de la cellule vers une seule cellule ou un jeu de cellules sources. | Raster Layer |
path_type (Facultatif) | Mot-clé définissant la façon dont les valeurs et les zones de l'entrée de destination sont interprétées dans les calculs du chemin de coût.
| String |
destination_field (Facultatif) | Champ permettant d'obtenir des valeurs relatives aux emplacements de destination. Les données d'entité en entrée doivent contenir au moins un champ autorisé. | Field |
force_flow_direction_convention (Facultatif) | Oblige l’outil à traiter le raster d’antécédence en entrée comme un raster de direction de flux. Les rasters de direction de flux peuvent être des entiers compris entre 0 et 255.
| Boolean |
Valeur renvoyée
Nom | Explication | Type de données |
out_raster | Raster de chemin de coût en sortie. Le raster en sortie est un entier. | Raster |
Exemple de code
Premier exemple d'utilisation de l'outil CostPath (fenêtre Python)
Le script dans la fenêtre Python ci-après explique comment utiliser l'outil CostPath.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCostPath = CostPath("observers", "costraster", "backlink2", "EACH_CELL")
outCostPath.save("c:/sapyexamples/output/costpath")
Deuxième exemple d'utilisation de l'outil CostPath (script autonome)
Calcule le chemin de moindre coût entre une source et une destination.
# Name: CostPath_Ex_02.py
# Description: Calculates the least-cost path from a source to
# a destination.
# 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
inDestination = "observers.shp"
costRaster = "costraster"
backLink = "backlink2"
method = "EACH_CELL"
destField = "FID"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute CostPath
outCostPath = CostPath(inDestination, costRaster, backLink, method,
destField)
# Save the output
outCostPath.save("c:/sapyexamples/output/costpath02")
Environnements
Informations de licence
- Basic: Requiert Spatial Analyst
- Standard: Requiert Spatial Analyst
- Advanced: Requiert Spatial Analyst