Allocation de distance (Spatial Analyst)

Disponible avec une licence Spatial Analyst.

Résumé

Calcule l’allocation de distance de chaque cellule vers les sources fournies en fonction des facteurs de distance en ligne droite, distance de coût et distance de surface véritable, ainsi que les facteurs horizontaux et verticaux de coût.

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 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, si aucun autre raster n’est spécifié dans l’outil, 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.

  • Si l’entrée Input cost raster (Raster de coût en entrée), Input surface raster (Raster de surface en entrée), Input vertical raster (Raster vertical en entrée) ou Input horizontal raster (Raster horizontal en entrée) contient une valeur NoData, les cellules à ces emplacements dans toutes les entrées sont ignorées dans le calcul. La valeur NoData dans n’importe lequel de ces rasters étant conservée dans tout le calcul, elle l’est également dans toutes les sorties.

  • Si une source tombe sur la valeur NoData dans l’un des rasters en entrée correspondants, elle est ignorée dans l’analyse et aucune distance à partir de cette source n’est donc calculée.

  • Lorsqu’aucun paramètre d’environnement Étendue n’est défini, l’étendue de traitement est déterminée comme suit :

    Si seuls les champs Input raster or feature source data (Données raster ou vecteur source en entrée) et Input barrier raster or feature data (Raster d’interruption ou données d’entités en entrée) sont renseignés, l’union des entrées, étendue par deux largeurs de cellule de chaque côté, est utilisée comme étendue de traitement. Le raster en sortie est étendu de deux lignes et colonnes afin que les sorties soient utilisées dans Chemin optimal comme ligne et Chemin optimal comme raster et que les chemins générés puissent se déplacer entre les interruptions. Pour utiliser l’étendue en tant qu’interruption implicite, vous devez définir explicitement l’étendue dans les paramètres d’environnement.

    Si le jeu de données raster Input surface raster (Raster de surface en entrée), Input cost raster (Raster de coût en entrée), Input vertical raster (Raster vertical en entrée) ou Input horizontal raster (Raster horizontal en entrée) est spécifié, l’étendue de traitement constitue l’intersection de ces rasters.

  • Si les paramètres d’environnement Taille de cellule ou Raster de capture ne sont pas spécifiés et que plusieurs rasters sont spécifiés en tant qu’entrées, la taille de cellule et le raster de capture sont définis en fonction d’un ordre de priorité : Input cost raster (Raster de coût en entrée), Input surface raster (Raster de surface en entrée), Input vertical raster (Raster vertical en entrée), Input horizontal raster (Raster horizontal en entrée), Input raster or feature source data (Données raster ou vecteur source en entrée) et Input barrier raster or feature data (Raster d’interruption ou données d’entités en entrée).

  • 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
  • La sortie de l'outil Aspect peut être utilisée comme entrée pour Raster horizontal en entrée.

  • 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 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 spécifiques.

    • Initial accumulation (Accumulation initiale) définit le coût initial avant le début du mouvement.
    • Maximum accumulation (Accumulation maximale) spécifie le coût qu’une source peut accumuler avant d’atteindre sa limite.
    • Multiplier to apply to costs (Multiplicateur à appliquer aux coûts) spécifie le mode de déplacement ou la magnitude à la source.
    • L’option Travel direction (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 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.

  • Cet outil prend en charge le traitement parallèle. Il est possible d’obtenir de meilleures performances, en particulier sur les jeux de données volumineux, si votre ordinateur est doté de plusieurs processeurs ou de processeurs multicœurs. Pour plus d’informations concernant cette fonctionnalité et sa configuration, consultez la rubrique d’aide Traitement parallèle avec Spatial Analyst.

    Lorsque vous utilisez le traitement parallèle, les données temporaires sont écrites pour gérer les blocs de données en cours de traitement. L’emplacement par défaut du dossier temporaire se trouve sur votre disque C:. Vous pouvez contrôler l’emplacement de ce répertoire en définissant une variable d’environnement système appelée TempFolders et en spécifiant le chemin d’accès du répertoire à utiliser (par exemple, E:\RasterCache). Si vous disposez de privilèges d’administrateur sur votre ordinateur, vous pouvez également utiliser une clé de Registre (par exemple, [HKEY_CURRENT_USER\SOFTWARE\ESRI\ArcGISPro\Raster]).

    Par défaut, cet outil utilise 50 pour cent des cœurs disponibles. Si les données en entrée sont inférieures à 5 000 par 5 000 cellules en taille, le nombre de cœurs utilisés peut être moindre. Vous pouvez contrôler le nombre de cœurs que l’outil utilise à l’aide de l’environnement Facteur de traitement parallèle.

  • 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

DistanceAllocation(in_source_data, {in_barrier_data}, {in_surface_raster}, {in_cost_raster}, {in_vertical_raster}, {vertical_factor}, {in_horizontal_raster}, {horizontal_factor}, {out_distance_accumulation_raster}, {out_back_direction_raster}, {out_source_direction_raster}, {out_source_location_raster}, {source_field}, {source_initial_accumulation}, {source_maximum_accumulation}, {source_cost_multiplier}, {source_direction}, {distance_method})
ParamètreExplicationType 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_barrier_data
(Facultatif)

Jeu de données qui définit les interruptions.

Les interruptions peuvent être définies par un raster d’entiers ou à virgule flottante ou par une couche d’entités.

Pour une interruption de raster, l’interruption doit avoir une valeur valide, y compris zéro, et les surfaces ne constituant pas des interruptions doivent être de type NoData.

Raster Layer; Feature Layer
in_surface_raster
(Facultatif)

Raster définissant les valeurs d’élévation à 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
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_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 associé 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 descriptions 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 :

  • VfBinary({zeroFactor}, {lowCutAngle}, {highCutAngle})

    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.

  • VfLinear({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})

    Le facteur VF est une fonction linéaire de l’angle VRMA.

  • VfInverseLinear({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})

    Le facteur VF est une fonction linéaire inverse de l’angle VRMA.

  • VfSymLinear({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})

    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 ; les deux fonctions linéaires sont symétriques par rapport à l’axe (y) du facteur VF.

  • VfSymInverseLinear({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})

    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 : les deux fonctions linéaires sont symétriques par rapport à l’axe (y) du facteur VF.

  • VfCos({lowCutAngle}, {highCutAngle}, {cosPower})

    Le facteur VF est une fonction cosinusoïdale de l’angle VRMA.

  • VfSec({lowCutAngle}, {highCutAngle}, {secPower})

    Le facteur VF est une fonction sécante de l’angle VRMA.

  • VfCosSec({lowCutAngle}, {highCutAngle}, {cosPower}, {secPower})

    Le facteur VF est une fonction cosinusoïdale de l’angle VRMA lorsque ce dernier est négatif et une fonction sécante de l’angle VRMA lorsque ce dernier n’est pas négatif.

  • VfSecCos({lowCutAngle}, {highCutAngle}, {secPower}, {cos_power})

    Le facteur VF est une fonction sécante de l’angle VRMA lorsque ce dernier est négatif et une fonction cosinusoïdale de l’angle VRMA lorsque ce dernier n’est pas négatif.

  • VfTable(inTable)

    Un fichier de table est utilisé pour définir le diagramme des facteurs verticaux qui permet de déterminer les facteurs VF.

Les modificateurs des paramètres verticaux sont les suivants :

  • zeroFactor : facteur vertical utilisé lorsque la valeur VRMA est égale à zéro. 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.
  • lowCutAngle : angle VRMA en dessous duquel la valeur du facteur VF est définie sur l’infini.
  • highCutAngle : angle VRMA au-dessus duquel la valeur du facteur VF est définie sur l’infini.
  • slope : pente d’une ligne droite utilisée avec les paramètres VfLinear et VfInverseLinear. 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).
  • inTable : nom de la table définissant le facteur VF.
Vertical Factor
in_horizontal_raster
(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
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 descriptions 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 à partir 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 de déplacement.

L'objet se présente sous les différentes formes suivantes :

Leurs définitions et paramètres sont indiqués ci-dessous :

  • HfBinary({zeroFactor}, {cutAngle})

    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.

  • HfForward({zeroFactor}, {sideValue})

    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.

  • HfLinear({zeroFactor}, {cutAngle}, {slope})

    Le facteur HF est une fonction linéaire de l’angle HRMA.

  • HfInverseLinear({zeroFactor}, {cutAngle}, {slope})

    Le facteur HF est une fonction linéaire inverse de l’angle HRMA.

  • HfTable(inTable)

    Un fichier de table est utilisé pour définir le diagramme des facteurs horizontaux permettant de déterminer les facteurs HF.

Les modificateurs des mots-clés horizontaux sont les suivants :

  • zeroFactor : le facteur horizontal utilisé lorsque la valeur HRMA est égale à 0. Ce facteur positionne l’intersection avec l’axe des y de toutes les fonctions de facteur horizontal.
  • cutAngle : l’angle HRMA au-delà duquel le facteur HF a une valeur infinie.
  • slope : pente en ligne droite utilisée avec les mots-clés de facteur horizontal HfLinear et HfInverseLinear. 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).
  • sideValue : 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 HfForward est spécifié.
  • inTable : nom de la table définissant le facteur HF.

Horizontal Factor
out_distance_accumulation_raster
(Facultatif)

Le raster de distance en sortie.

Le raster d’accumulation de distance contient la distance cumulée pour chaque cellule depuis ou vers la source de moindre coût.

Raster Dataset
out_back_direction_raster
(Facultatif)

Le raster de direction arrière contient la direction calculée, en degrés. La direction identifie la cellule suivante le long du chemin de retour le plus court vers la source la plus proche tout en évitant les interruptions.

La plage de valeurs s'étend de 0 à 360 degrés, 0 étant réservé pour aux cellules source. La direction plein Est (droite) est de 90 et les valeurs augmentent dans le sens horaire (180, Sud ; 270, Ouest et 360, Nord).

Le raster en sortie est de type entier.

Raster Dataset
out_source_direction_raster
(Facultatif)

Le raster de direction source identifie la direction de la cellule source de plus faible coût cumulé sous la forme d’azimut en degrés.

La plage de valeurs s'étend de 0 à 360 degrés, 0 étant réservé pour aux cellules source. La direction plein Est (droite) est de 90 et les valeurs augmentent dans le sens horaire (180, Sud ; 270, Ouest et 360, Nord).

Le raster en sortie est de type entier.

Raster Dataset
out_source_location_raster
(Facultatif)

Le raster d’emplacement source est une sortie multicanal. Le premier canal contient un index de ligne et le second un index de colonne. Ces index identifient l’emplacement de la cellule source qui est à la distance de plus faible coût cumulé.

Raster Dataset
source_field
(Facultatif)

Champ permettant d’attribuer des valeurs aux emplacements sources. Il doit être de type entier.

Field
source_initial_accumulation
(Facultatif)

Coût cumulé initial pour commencer le calcul du coût.

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

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

Double; Field
source_maximum_accumulation
(Facultatif)

Accumulation maximale pour le voyageur pour une source.

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

Les valeurs doivent être supérieures à zéro. L’accumulation par défaut va jusqu’à la bordure du raster en sortie.

Double; Field
source_cost_multiplier
(Facultatif)

Multiplicateur à appliquer aux valeurs de coût.

Ce paramètre 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_direction
(Facultatif)

Indique le sens de déplacement du voyageur lorsque des facteurs horizontal et vertical sont appliqués.

  • FROM_SOURCELes facteurs horizontal et vertical sont appliqués à partir de la source en entrée et lors du voyage vers les cellules non source. Il s’agit de l’option par défaut.
  • TO_SOURCELes facteurs horizontal et vertical 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 la chaîne FROM_SOURCE ou TO_SOURCE.

String; Field
distance_method
(Facultatif)

Spécifie le calcul de la distance selon une méthode plane (terre plate) ou géodésique (ellipsoïde).

  • PLANARLe calcul de la distance est effectué sur une surface plane projetée à l’aide d’un système de coordonnées cartésiennes 2D. Il s’agit de l’option par défaut.
  • GEODESICLe calcul de la distance est effectué sur l’ellipsoïde. Les résultats ne changent donc pas quelle que soit la projection en entrée ou en sortie.
String

Valeur renvoyée

NomExplicationType de données
out_distance_allocation_raster

Raster d’allocation de distance en sortie.

Raster

Exemple de code

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

Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil DistanceAllocation.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outDistAlloc = DistanceAllocation("insources.shp", "barriers.tif")
outDistAlloc.save("c:/sapyexamples/output/distalloc.tif")
Exemple 2 d’utilisation de l’outil DistanceAllocation (script autonome)

Calcule, pour chaque cellule, la distance de plus faible coût cumulé jusqu’à la source la plus proche, tout en tenant compte de la distance de surface et des facteurs de coût horizontaux et verticaux.

# Name: DistanceAllocation_Ex_02.py
# Description: Calculates the distance allocation.
# 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
inSources = "insources.shp"
inBarrier = "barriers.tif"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute EucDirections
outDistAlloc = DistanceAllocation(inSources, inBarrier)

# Save the output 
outDistAlloc.save("c:/sapyexamples/output/distAllo2.tif")

Informations de licence

  • Basic: Requiert Spatial Analyst
  • Standard: Requiert Spatial Analyst
  • Advanced: Requiert Spatial Analyst

Rubriques connexes