Allocation euclidienne (Spatial Analyst)
Récapitulatif
Calcule pour chaque cellule la source la plus proche en fonction de la distance euclidienne.
Pour en savoir plus sur l'analyse d'une distance euclidienne
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 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.
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 Polygone vers raster, à 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 tramé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 le tramage 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.
-
Le paramètre Distance maximale est spécifié dans les mêmes unités de carte que les données source en entrée.
-
Le raster de valeurs en entrée est utile lorsqu'un raster en entrée ou des données d'entités sont un raster issu d'une fonction qui engendre la valeur un ou zéro. Ces fonctions perdent leurs valeurs de zone originales associées aux emplacements de cellule source. Le raster de valeurs en entrée peut restaurer ces valeurs ou permettre d'analyser les combinaisons supplémentaires de valeurs de zone dans les cellules sources.
-
Si vous l'utilisez, un raster de valeurs en entrée peut modifier la configuration et les résultats d'une allocation euclidienne en sortie. Il n'a pas d'incidence sur la distance euclidienne facultative ou les résultats relatifs à la direction.
-
Si un masque a été défini dans l'environnement et que les cellules à masquer masqueront une source, les calculs euclidiens 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 les rasters en sortie.
-
Les valeurs NoData créées par les cellules masquées sont ignorées dans les calculs sur les emplacements de cellule non source. La distance euclidienne pour les cellules derrière des valeurs NoData est calculée comme si la valeur NoData n'est pas présente. Tout emplacement de cellule auquel la valeur NoData est attribuée en raison du masque sur la surface en entrée recevra la valeur NoData sur tous les rasters en sortie.
Syntaxe
Paramètre | Explication | Type de données |
in_source_data |
Emplacement des sources en entrée. Un raster ou un jeu de classes d'entités identifie les cellules ou les emplacements par rapport auxquels la distance euclidienne pour chaque emplacement de cellule en sortie est calculée. 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 |
maximum_distance (Facultatif) | Définit le seuil que les valeurs de distance cumulée ne peuvent pas dépasser. Si une valeur de distance euclidienne cumulée dépasse cette valeur, la valeur en sortie de l'emplacement de cellule sera NoData. 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} sera 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 |
cell_size (Facultatif) | Taille des cellules qui sera utilisée pour la création du raster en sortie. Il s'agit de la valeur définie dans l'environnement, si l'environnement est défini de façon explicite. Si elle n'est pas définie dans l'environnement, la taille de cellule par défaut dépend du fait que les données source en entrée correspondent à un raster ou à une entité, comme suit :
| Analysis Cell Size |
source_field (Facultatif) | Champ permettant d'attribuer des valeurs aux emplacements source. Il doit être de type entier. Si {in_value_raster} a été défini, les valeurs dans cette entrée auront priorité sur tout paramètre de {source_field}. | Field |
out_distance_raster (Facultatif) | Raster de distance euclidienne en sortie. Le raster de distance identifie, pour chaque cellule, la distance euclidienne de la cellule source la plus proche, du jeu de cellules source le plus proche ou de l'emplacement source le plus proche. Le raster en sortie est de type virgule flottante. | Raster Dataset |
out_direction_raster (Facultatif) | Raster de direction euclidienne en sortie. Le raster de direction contient la direction calculée, en degrés, de chaque centre de cellule par rapport au centre de cellule source le plus proche. 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 |
Valeur renvoyée
Nom | Explication | Type de données |
out_allocation_raster |
Le raster d'allocation euclidienne en sortie. Les valeurs d'une cellule (zones) désignent l'emplacement source le plus proche. Le raster en sortie est un entier. | Raster |
Exemple de code
Le script dans la fenêtre Python ci-après explique comment utiliser l'outil EuclideanAllocation.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
eucAllocate = EucAllocation("observers", 50000, "elevation", 25, "FID",
"c:/sapyexamples/output/outeucdist",
"c:/sapyexamples/output/outeucdir")
eucAllocate.save("c:/sapyexamples/output/eucalloc")
Calcule pour chaque cellule la zone de l'emplacement source le plus proche compte tenu de la distance euclidienne.
# Name: EucAllocation_Ex_02.py
# Description: Calculates, for each cell, the zone of the closest
# source location in Euclidean distance.
# 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"
maxDist = 50000
valRaster = "elevation"
cellSize = 25
sourceField = "FID"
optOutDist = "c:/sapyexamples/output/outeucdist02"
optOutDir = "c:/sapyexamples/output/outeucdir02"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute EucAllocation
eucAllocate = EucAllocation(inSource, maxDist, valRaster, cellSize,
sourceField, optOutDist, optOutDir)
# Save the output
eucAllocate.save("c:/sapyexamples/output/eucalloc02")