Calculer les localisations (Network Analyst)

Niveau de licence :De baseStandardAvancé

Récapitulatif

Ajoute des champs aux entités en entrée qui contiennent la localisation de réseau des entités. Cet outil permet de stocker les informations de localisation de réseau en tant qu'attributs d'entité pour charger rapidement les entités en tant qu'entrées pour une couche d'analyse de réseau.

Utilisation

Syntaxe

CalculateLocations_na (in_point_features, in_network_dataset, search_tolerance, search_criteria, {match_type}, {source_ID_field}, {source_OID_field}, {position_field}, {side_field}, {snap_X_field}, {snap_Y_field}, {distance_field}, {snap_Z_field}, {location_field}, {exclude_restricted_elements}, {search_query})
ParamètreExplicationType de données
in_point_features

Entités en entrée pour lesquelles les localisations de réseau sont calculées.

Pour les entités lignes et surfaciques, puisque les informations de localisation de réseau sont stockées dans un champ blob (spécifié dans le paramètre de champ de plages de localisations), seules les classes d'entités de géodatabase sont prises en charge.

Table View
in_network_dataset

Jeu de données réseau utilisé pour calculer les emplacements.

Si une sous-couche d'une couche d'analyse de réseau est utilisée en tant qu'entité en entrée, le paramètre doit prendre la valeur du jeu de données réseau référencé par la couche d'analyse de réseau.

Network Dataset Layer
search_tolerance

Tolérance de recherche utilisée pour la localisation des entités en entrée appartenant au réseau. Les entités se trouvant à l'extérieur de la tolérance de recherche restent non localisées. Le paramètre comprend une valeur et des unités de tolérance.

Ce paramètre n'est pas utilisé lors du calcul d'emplacements pour les entités lignes ou surfaciques. Dans ces cas, utilisez "#" comme valeur de paramètre.

Linear unit
search_criteria
[[Source, SnapType],...]

Indique les sources de votre jeu de données réseau qui feront partie de la recherche de localisations et les parties de la géométrie (également appelées types de capture) qui seront utilisées.

La valeur de paramètre est indiquée sous la forme d'une liste avec des listes imbriquées. La liste imbriquée est composée de deux valeurs indiquant le nom et le type de capture pour chaque source de données du réseau. Le type de capture est spécifié à l'aide des mots-clés SHAPE, MIDDLE, END ou NONE. Par exemple, lors de la recherche d'emplacements, la valeur de paramètre [["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]] spécifie que la recherche peut localiser sur la forme de la source de données Streets mais pas sur la source de données Streets_ND_Junctions.

Pour spécifier plusieurs types de capture pour une seule source de données du réseau, utilisez la combinaison des mots-clés de type de capture séparée par un trait de soulignement. Par exemple, MIDDLE_END spécifie que les emplacements peuvent être capturés au milieu ou à la fin de la source de données du réseau.

Pour les jeux de données réseau de géodatabase, les types de capture peuvent être spécifiés pour chaque sous-type de source de données du réseau.

Lors du calcul d'emplacements d'entités lignes ou surfaciques, seul le type de capture de forme est utilisé même si d'autres types de capture sont spécifiés.

Value Table
match_type
(Facultatif)
  • MATCH_TO_CLOSESTApparie les nouvelles localisations réseau à la source de données du réseau la plus proche parmi toutes les sources de données ayant un type de capture spécifié dans les critères de recherche. Il s'agit de l'option par défaut.
  • PRIORITYApparie les nouvelles localisations de réseau à la première source de données du réseau ayant un type de capture spécifié dans les critères de recherche. Les sources font l'objet d'une recherche dans l'ordre de priorité. La recherche s'arrête lorsque l'emplacement est trouvé dans la tolérance de recherche.

Ce paramètre n'est pas utilisé lors du calcul d'emplacements pour les entités lignes ou surfaciques. Dans ces cas, utilisez "#" comme valeur de paramètre.

Boolean
source_ID_field
(Facultatif)

Nom du champ à créer ou à mettre à jour avec l'ID source de la localisation de réseau calculée. Un champ appelé SourceID est créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul d'emplacements pour les entités lignes ou surfaciques. Dans ces cas, utilisez "#" comme valeur de paramètre.

Field
source_OID_field
(Facultatif)

Nom du champ à créer ou à mettre à jour avec l'OID source de la localisation de réseau calculée. Un champ appelé SourceOID est créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul d'emplacements pour les entités lignes ou surfaciques. Dans ces cas, utilisez "#" comme valeur de paramètre.

Field
position_field
(Facultatif)

Nom du champ à créer ou à mettre à jour avec le pourcentage de la localisation de réseau calculée. Un champ appelé PosAlong est créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul d'emplacements pour les entités lignes ou surfaciques. Dans ces cas, utilisez "#" comme valeur de paramètre.

Field
side_field
(Facultatif)

Nom du champ à créer ou à mettre à jour avec le côté d'un tronçon où se situe l'entité ponctuelle sur la localisation de réseau calculée. Un champ appelé SideOfEdge est créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul d'emplacements pour les entités lignes ou surfaciques. Dans ces cas, utilisez "#" comme valeur de paramètre.

Field
snap_X_field
(Facultatif)

Nom du champ à créer ou à mettre à jour avec la coordonnée X de la localisation de réseau calculée. Un champ appelé SnapX est créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul d'emplacements pour les entités lignes ou surfaciques. Dans ces cas, utilisez "#" comme valeur de paramètre.

Field
snap_Y_field
(Facultatif)

Nom du champ à créer ou à mettre à jour avec la coordonnée Y de la localisation de réseau calculée. Un champ appelé SnapY est créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul d'emplacements pour les entités lignes ou surfaciques. Dans ces cas, utilisez "#" comme valeur de paramètre.

Field
distance_field
(Facultatif)

Nom du champ à créer ou à mettre à jour avec la distance de l'entité ponctuelle sur la localisation de réseau calculée. Un champ appelé Distance est créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul d'emplacements pour les entités lignes ou surfaciques. Dans ces cas, utilisez "#" comme valeur de paramètre.

Field
snap_Z_field
(Facultatif)

Nom du champ à créer ou à mettre à jour avec la coordonnée Z de la localisation de réseau calculée. Un champ appelé SnapZ est créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul d'emplacements pour les entités lignes ou surfaciques. Dans ces cas, utilisez "#" comme valeur de paramètre.

Lors du calcul d'emplacements pour des entités ponctuelles, ce paramètre est utilisé uniquement lorsque le jeu de données réseau en entrée prend en charge la connectivité selon les coordonnées Z des sources de données du réseau. Dans tous les autres cas, utilisez "#" comme valeur de paramètre.

Field
location_field
(Facultatif)

Nom du champ à créer ou à mettre à jour avec les plages de localisations de réseau calculées pour les entités ponctuelles ou surfaciques. Un champ appelé Locations est créé ou mis à jour par défaut.

Ce paramètre est utilisé uniquement lors du calcul d'emplacements pour les entités lignes ou surfaciques. Pour les entités ponctuelles en entrée, utilisez "#" comme valeur de paramètre.

Field
exclude_restricted_elements
(Facultatif)

Ce paramètre est applicable uniquement lorsque les entités en entrée proviennent de la sous-couche d'une couche d'analyse de réseau et ne sont pas des objets interruption. Dans tous les autres cas, utilisez "#" comme valeur de paramètre.

  • EXCLUDEPrécise que les localisations de réseau sont placées uniquement sur les parties traversables du réseau. Ainsi, vous ne risquez pas de placer des localisations de réseau sur des éléments impossibles à atteindre du fait de restrictions ou de barrières. Avant de relocaliser vos localisations de réseau à l'aide de cette option, assurez-vous que vous avez déjà ajouté toutes les barrières de restriction à la couche d'analyse de réseau pour obtenir les résultats escomptés.
  • INCLUDEIndique que les localisations de réseau sont placées sur tous les éléments du réseau. Les localisations de réseau relocalisées avec cette option peuvent être inaccessibles pendant le processus de calcul si elles sont placées sur des éléments restreints.
Boolean
search_query
[[Source, Expression],...]
(Facultatif)

Indique une requête destinée à restreindre la recherche à un sous-ensemble d'entités dans une classe d'entités source. Ceci s'avère utile si vous ne voulez pas trouver d'entités ne convenant pas à une localisation de réseau. Par exemple, si vous chargez des centroïdes de polygones et ne souhaitez pas localiser sur les routes secondaires, vous pouvez définir une requête qui recherche des routes principales uniquement.

La valeur de paramètre est indiquée sous la forme d'une liste avec des listes imbriquées. La liste imbriquée est composée de deux valeurs qui indiquent le nom et l'expression SQL pour toutes les sources de données du réseau. La syntaxe de l'expression SQL diffère légèrement selon le type de classe d'entités de source de données du réseau. Par exemple, lorsque vous interrogez des classes d'entités sources stockées dans des géodatabases fichier ou ArcSDE, des fichiers de formes, ou des SDC, placez les noms des champs entre guillemets doubles : "CFCC". Si vous interrogez des classes d'entités source stockées dans les géodatabases personnelles, placez les champs entre crochets : [CFCC].

Si vous ne souhaitez pas spécifier une requête pour une source particulière, utilisez "#" comme valeur pour l'expression SQL ou excluez le nom de la source et l'expression SQL de la valeur de paramètre. Si vous ne souhaitez pas spécifier de requête pour toutes les sources de données du réseau, utilisez "#" comme valeur de paramètre.

Par exemple, la valeur de paramètre [["Streets","\"CFCC\" = 'A15'"], ["Streets_ND_Junctions",""]] spécifie une expression SQL pour la classe d'entités source Streets et aucune expression pour la classe d'entité source Streets_ND_Junctions. Notez que les guillemets utilisés pour joindre le nom de champ CFCC sont désactivés par les barres obliques inverses pour éviter une erreur d'analyse du programme d'interprétation Python.

Value Table

Exemple de code

Exemple 1 d'utilisation de l'outil Calculer les localisations (fenêtre Python)

Calcule des localisations pour les entités ponctuelles uniquement à l'aide des paramètres requis.

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.CalculateLocations("Analysis/Stores","Transportation/Streets_ND",
                            "5000 Meters",[["Streets","SHAPE"],
                                           ["Streets_ND_Junctions","NONE"]])
Exemple 2 d'utilisation de l'outil Calculer les localisations (fenêtre Python)

Calcule des localisations pour les entités ponctuelles sur un sous-type de source de données du réseau.

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb"
arcpy.na.CalculateLocations(
    "Analysis/Warehouses","Transportation/ParisNet","5000 Meters",
    [["Streets : Highways","NONE"],["Streets : Major Roads","NONE"],
     ["Streets : Local Streets","SHAPE"],["ParisNet_Junctions", "NONE"]],
    "MATCH_TO_CLOSEST","SID","SOID","PA","SOE","SnapX","SnapY","Distance",
    "","","","")
Exemple 3 d'utilisation de l'outil Calculer les localisations (fenêtre Python)

Calcule des localisations pour les entités surfaciques

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.CalculateLocations("Basemap/Parks","Transportation/Streets_ND","",
                            [["Streets","SHAPE"],
                             ["Streets_ND_Junctions","NONE"]],
                            location_field="Locations")
Exemple 4 d'utilisation de l'outil Calculer les localisations (script Python autonome)

Le script Python ci-dessous illustre l'utilisation de l'outil Calculer les localisations dans un script autonome.

# Name: CalculateLocations_ex04.py
# Description: Calculate network locations for fire stations. Make sure that the 
#              fire stations are not located on the freeways.
# Requirements: Network Analyst Extension 

#Import system modules
import arcpy
from arcpy import env


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

#Set environment settings
env.workspace = "C:/data/SanFrancisco.gdb"

#Set local variables
inFeatures = "Analysis/FireStations"
inNetworkDataset = "Transportation/Streets_ND"
searchTolerance = "2000 Meters"
searchCriteria = [["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]]
searchQuery = [["Streets",'"FREEWAY" = 0'],["Streets_ND_Junctions",""]]

#Calculate network locations and store them in defaut field names
arcpy.na.CalculateLocations(inFeatures,inNetworkDataset,searchTolerance,
                            searchCriteria,"MATCH_TO_CLOSEST", 
                            exclude_restricted_elements="EXCLUDE",
                            search_query=searchQuery)
print "Script completed successfully."

Environnements

Thèmes connexes

Informations de licence

ArcGIS for Desktop Basic : Oui
ArcGIS for Desktop Standard : Oui
ArcGIS for Desktop Advanced : Oui
9/12/2013