Disponible avec une licence Spatial Analyst.
Résumé
Calcule pour chaque cellule la source la plus proche en fonction du plus faible coût cumulé sur une surface de coût, tout en prenant en compte la distance à la surface et les facteurs de coût horizontaux et verticaux.
Pour en savoir plus sur le fonctionnement des outils de distance de chemin
Utilisation
Les outils de distance de chemin sont comparables aux outils de distance de coût dans la mesure où les deux déterminent le coût de déplacement cumulé minimal entre une source et chacun des emplacements sur une surface raster. Toutefois, les outils de distance de chemin ajoutent une complexité supplémentaire à l'analyse en prenant en charge la distance de surface réelle, ainsi que d'autres facteurs horizontaux et verticaux.
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éterminée par la taille de cellule maximale entre les rasters en entrée de coût, de surface, de facteur horizontal et de facteur vertical. Si aucune de ces entrées facultatives n'est spécifiée, une valeur précise doit être définie pour le paramètre d'environnement de taille de cellule.
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 CELL_CENTER. 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 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 Polygone vers raster et définir un champ Priorité, puis utiliser le résultat obtenu en entrée dans l'outil Distance. Vous pouvez également sélectionner une taille de cellule suffisamment petite pour capturer le nombre de détails approprié à partir des entités en entrée.
Pour calculer l'allocation, les emplacements source peuvent avoir une valeur associée, qui peut être spécifiée par le paramètre Champ source. Si la source en entrée est un raster d'entiers, le champ par défaut est VALEUR. S'il s'agit d'une entité, ce sera le premier champ d'entier dans la table attributaire. Si les données source en entrée correspondent à un raster à virgule flottante, un paramètre de raster à valeurs entières doit être spécifié.
Les cellules ayant une valeur NoData jouent le rôle de barrières dans les outils de distance de chemin. La distance de coût pour les cellules derrière des valeurs NoData est calculée par le coût cumulé nécessaire pour contourner la barrière NoData. Tout emplacement de cellule auquel la valeur NoData est attribuée sur l'un quelconque des rasters en entrée recevra la valeur NoData sur tous les rasters en sortie.
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.
Si un masque a été défini dans l'environnement, toutes les cellules masquées sont traitées en tant que valeurs NoData.
Lorsqu'un masque a été défini dans la fenêtre Analyseur raster et que les cellules à masquer masqueront une source, les calculs surviendront sur les cellules source restantes. Les cellules source qui sont masquées ne seront pas prises en compte dans les calculs. Ces emplacements de cellule se verront attribuer la valeur NoData sur tous les rasters en sortie (distance, allocation et antécédence).
La sortie de l'outil Aspect peut être utilisée comme entrée pour Raster horizontal en entrée.
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 à un ensemble d'emplacements source correspond à la limite inférieure des distances de plus faible coût de la cellule à tous les emplacements source.
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 factor Low cut Height cut Slope Power Cos Sec angle angle power power ------------------------ ----------- ------- ---------- ----- ----- ----- ----- 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 moyens de déplacement à partir d'une source, peuvent être contrôlés par les paramètres Multiplicateur de coût à la source (mode de déplacement ou magnitude à la source), Coût initial à la source (coût initial avant le mouvement), Taux de résistance à la source (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 (calcul du coût pouvant être assimilé par une source avant d'atteindre sa limite).
Si des paramètre de caractéristiques de la source sont spécifiés à l'aide d'une valeur, celle-ci est appliquée à toutes les sources. Si les paramètre sont spécifiés via des champs associés à la source, les valeurs de la table seront appliquées uniquement aux sources correspondantes.
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
PathAllocation (in_source_data, {source_field}, {in_cost_raster}, {in_surface_raster}, {in_horizontal_raster}, {horizontal_factor}, {in_vertical_raster}, {vertical_factor}, {maximum_distance}, {in_value_raster}, {out_distance_raster}, {out_backlink_raster}, {source_cost_multiplier}, {source_start_cost}, {source_resistance_rate}, {source_capacity})
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 par rapport auxquels 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. Si le raster source en entrée est à virgule flottante, le paramètre {in_value_raster} doit être défini et il doit être de type entier. Le raster de valeurs est prioritaire sur tout paramètre de {source_field}. | Raster Layer | Feature Layer |
source_field (Facultatif) | Champ permettant d'attribuer des valeurs aux emplacements source. Il doit être de type entier. Si le paramètre {in_value_raster} a été défini, les valeurs dans cette sortie ont la priorité sur tout paramètre de {source_field}. | Field |
in_cost_raster (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 |
in_surface_raster (Facultatif) | Un raster définissant les valeurs d'altitudes à chaque emplacement de cellule. Ces valeurs permettent de calculer la distance à la surface réelle qui est couverte lors du passage d'une cellule à une autre. | Raster Layer |
in_horizontal_raster (Facultatif) | Un 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) et 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 |
horizontal_factor (Facultatif) | L'objet Horizontal Factor 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. En outre, vous pouvez utiliser une table pour créer un diagramme personnalisé. 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. L'objet se présente sous les différentes formes suivantes : Leurs définitions et paramètres sont indiqués ci-dessous :
Les modificateurs des mots-clés de facteur horizontal sont les suivants :
| Horizontal factor |
in_vertical_raster (Facultatif) | Un raster définissant les valeurs z pour chaque emplacement de cellule Ces valeurs permettent de calculer la pente utilisée pour identifier le facteur vertical relatif au déplacement d'une cellule à une autre. | Raster Layer |
vertical_factor (Facultatif) | L'objet Vertical factor 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. En outre, vous pouvez utiliser une table pour créer un diagramme personnalisé. 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. L'objet se présente sous les différentes formes suivantes :
Leurs définitions et paramètres sont indiqués ci-dessous :
Les modificateurs des paramètres verticaux sont les suivants :
| Vertical factor |
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 |
in_value_raster (Facultatif) | Raster d'entiers en entrée qui identifie les valeurs de zone à utiliser pour chaque emplacement source en entrée. Pour chaque emplacement source (cellule ou entité), la valeur définie par {in_value_raster} est attribuée à toutes les cellules allouées à l'emplacement source pour le calcul. Le raster de valeurs est prioritaire sur tout paramètre de {source_field}. | Raster Layer |
out_distance_raster (Facultatif) | Raster de distance de chemin en sortie. Le raster de distance de chemin en sortie identifie, pour chaque cellule, la distance de plus faible coût cumulé, sur une surface de coût vers les emplacements source identifiés, tout en tenant compte de la distance de surface, ainsi que des facteurs de surface horizontaux et verticaux. 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 Dataset |
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 (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, tout en tenant compte de la distance de surface, ainsi que des facteurs de surface horizontaux et verticaux. 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) | Taux de multiplication du coût cumulé pour déterminer l'ajustement de la résistance. 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. 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 à partir d'une source. Chaque source augmente jusqu'à la capacité spécifiée. 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 |
Valeur renvoyée
Nom | Explication | Type de données |
out_allocation_raster | Raster d'allocation de distance de chemin en sortie. Ce raster identifie la zone de chaque emplacement source (cellule ou entité) qu'il est possible d'atteindre avec le plus faible coût cumulé, tout en prenant en compte la distance à la surface et les facteurs de coût horizontaux et verticaux. Le raster en sortie est un entier. | Raster |
Exemple de code
Exemple 1 d'utilisation de l'outil PathAllocation (fenêtre Python)
Le script de fenêtre Python ci-dessous illustre comment utiliser l'outil PathDistanceAllocation.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
pathAlloc = PathAllocation("observers.shp", "costraster", "elevation", "hfraster",
HfForward(0.5, 1.0), "elevation", VfBinary(1.0, -30, 30),
"", "valueraster", "FID", "c:/sapyexamples/output/optpathdist",
"c:/sapyexamples/output/optpathbl", "Multiplier", "StartCost", "Resistance", 500000)
pathAlloc.save("c:/sapyexamples/output/allocpath")
Exemple de script PathAllocation
Calcule pour chaque cellule la source la plus proche en fonction du plus faible coût cumulé sur une surface de coût, tout en prenant en compte la distance à la surface et les facteurs de coût horizontaux et verticaux.
# Name: PathAllocation_Ex_02.py
# Description: Calculates, for each cell, its nearest source based
# on the least accumulative cost over a cost surface,
# while accounting for surface distance and horizontal
# and vertical cost factors.
# 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
inSource = "observers.shp"
costRast = "costraster"
surfaceRast = "elevation"
# The horizontal factor
inHoriz = "hfraster"
# Create the HfForward Object
zeroFactor = 0.5
sideValue = 1.0
myHorizFactor = HfForward(zeroFactor, sideValue)
#The vertical factor
inVertical = "elevation"
# Create the VfBinary Object
zeroFactor = 1.0
lowCutAngle = -30
highCutAngle = 30
myVerticalFactor = VfBinary(zeroFactor, lowCutAngle, highCutAngle)
maxDist = ""
valRaster = "valueraster"
sourceField = "FID"
optPathDistOut = "c:/sapyexamples/output/optdistpath"
optPathBLOut = "c:/sapyexamples/output/pathblinkout"
multiplier = "Multiplier"
startCost = "StartCost"
resistance = "Resistance"
capacity = 500000
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute PathAllocation
pathAlloc = PathAllocation(inSource, costRast, surfaceRast,
inHoriz, myHorizFactor, inVertical, myVerticalFactor,
maxDist, valRaster, sourceField,
optPathDistOut, optPathBLOut, multiplier, startCost,
resistance, capacity)
# Save the output
pathAlloc.save("c:/sapyexamples/output/allocpath02")
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert Spatial Analyst
- ArcGIS Desktop Standard: Requiert Spatial Analyst
- ArcGIS Desktop Advanced: Requiert Spatial Analyst