Calculer les emplacements (Network Analyst)

Résumé

Localise des entités en entrée sur le réseau et ajoute des champs décrivant ces localisations de réseau sur les entités en entrée. 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 d’analyse de réseau.

Pour en savoir plus sur la localisation d’entités sur un réseau

Utilisation

  • Cet outil permet de calculer des champs d'emplacements qui peuvent être entrés dans l'outil Ajouter des localisations. Il doit être utilisé sur les entités qui seront utilisées plusieurs fois comme entrée dans un couche d'analyse de réseau. Une fois que les localisations ont été calculées, le paramètre Use Network Location Fields instead of geometry (Utiliser les champs de localisation du réseau au lieu de la géométrie) sur l’outil Ajouter des localisations permet de charger rapidement les entités en tant que localisations de réseau.

  • Cet outil permet également de recalculer les localisations de réseau non localisées dans votre couche d’analyse de réseau à l’aide d’un ensemble différent d’options de recherche. Par exemple, si les arrêts dans votre couche d’analyse de réseau d’itinéraire ont été ajoutés initialement avec une tolérance de recherche de 500 mètres et si certains de vos arrêts ne sont pas localisés, vous pouvez sélectionner les arrêts non localisés, par exemple, à l’aide de l’outil Select Layer By Attribute (Sélectionner une couche par attributs), puis exécuter cet outil à nouveau en indiquant la sous-couche d’arrêts en tant que valeur du paramètre Input features (Entités en entrée) avec une tolérance de recherche augmentée.

  • Cet outil s'exécute beaucoup plus rapidement si les classes d'entités utilisées en tant que sources de données du réseau dans le jeu de données réseau ont un index spatial valide et à jour.

Syntaxe

arcpy.na.CalculateLocations(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}, {travel_mode})
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 linéaires et surfaciques, puisque les informations de localisation de réseau sont stockées dans un champ BLOB (spécifié dans le paramètre Location Ranges Field (Champ de plages de localisation)), seules les classes d’entités de géodatabase sont prises en charge.

Table View
in_network_dataset

Jeu de données réseau qui sera utilisé pour calculer les localisations.

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
(Facultatif)

Tolérance de recherche utilisée pour la localisation des entités en entrée appartenant au réseau. Les entités qui se trouvent hors de la tolérance de recherche ne sont pas localisées. Le paramètre comprend une valeur et des unités de tolérance.

La valeur par défaut est 5000 mètres.

Ce paramètre n'est pas utilisé lors du calcul de localisations pour les entités linéaires ou surfaciques.

Linear Unit
search_criteria
[[Source, SnapType],...]
(Facultatif)

Sources du jeu de données réseau qui feront partie de la recherche lors du calcul de localisations de réseau et parties de la géométrie (types de capture) qui seront utilisées. Par exemple, si le jeu de données réseau référence des classes d’entités distinctes représentant des rues et des trottoirs, vous pouvez choisir de localiser les entrées sur les rues mais pas sur les trottoirs.

Les choix de type de capture disponibles pour chaque source de réseau sont les suivants :

  • SHAPE : le point se trouve sur le point le plus proche d'un élément dans cette source de données du réseau.
  • MIDDLE : le point se trouve sur le point central le plus proche d'un élément dans cette source de données du réseau.
  • END : le point se trouve sur l'extrémité la plus proche d'un élément dans cette source de données du réseau.
  • NONE : le point ne se trouve sur aucun élément dans cette source de données du réseau.

Les options MIDDLE et END sont conservées en vue de la rétrocompatibilité. Utilisez l’option SHAPE pour localiser vos entrées sur une source de réseau spécifique ; sinon, utilisez l’option NONE.

Lorsque vous calculez des localisations pour des entités linéaires ou surfaciques, seul le type de capture SHAPE est utilisé même si d'autres types de capture sont spécifiés.

La valeur par défaut est SHAPE pour toutes les sources de réseau, sauf les jonctions de débrayage créées en exécutant l’outil Réseau de fusion et les jonctions de système, qui possèdent la valeur par défaut NONE.

Ce paramètre n’est pas utilisé si la source de données du réseau est un service de portail.

La valeur de paramètre est spécifiée sous forme de liste avec des listes imbriquées. Les listes imbriquées se composent de deux valeurs indiquant le nom et le type de capture de chaque source de données du réseau. Par exemple, la valeur de paramètre [["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]] spécifie que la recherche peut porter sur la forme de la source Streets, mais non sur la source Streets_ND_Junctions.

Les sources de données du réseau qui ne sont pas incluses dans cette liste utiliseront ce type de capture par défaut. Il est recommandé d’inclure toutes les sources de données du réseau dans votre liste et de définir explicitement le type de capture de chacune.

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 la source de données du réseau. Par exemple, si le réseau possède une source nommée Streets et que cette source possède un sous-type nommé Local Streets, spécifiez le type de capture des rues locales avec l’option ["Streets : Local Streets", "SHAPE"].

Value Table
match_type
(Facultatif)

Indique le mode d’appariement des nouvelles localisations de réseau avec les sources de réseau.

  • MATCH_TO_CLOSESTLes nouvelles localisations de réseau sont appariées à la source de réseau la plus proche parmi toutes les sources ayant un type de capture spécifié dans les critères de recherche. Il s’agit de l’option par défaut.
  • PRIORITYLes nouvelles localisations de réseau sont appariées à la première source de réseau ayant un type de capture spécifié dans les critères de recherche. La recherche est réalisée dans les sources de données selon l’ordre de priorité et s'arrête lorsque la localisation est trouvée au sein de la tolérance de recherche.

Ce paramètre n'est pas utilisé lors du calcul de localisations pour les entités linéaires ou surfaciques.

Boolean
source_ID_field
(Facultatif)

Nom du champ à calculer ou à mettre à jour avec l’ID source de la localisation de réseau calculée. Un champ nommé SourceID sera créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul de localisations pour les entités linéaires ou surfaciques.

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 nommé SourceOID sera créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul de localisations pour les entités linéaires ou surfaciques.

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 nommé PosAlong sera créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul de localisations pour les entités linéaires ou surfaciques.

Field
side_field
(Facultatif)

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

Ce paramètre n'est pas utilisé lors du calcul de localisations pour les entités linéaires ou surfaciques.

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 nommé SnapX sera créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul de localisations pour les entités linéaires ou surfaciques.

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 nommé SnapY sera créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul de localisations pour les entités linéaires ou surfaciques.

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 nommé Distance est créé ou mis à jour par défaut.

Le champ en sortie est exprimé en mètres.

Ce paramètre n'est pas utilisé lors du calcul de localisations pour les entités linéaires ou surfaciques.

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 nommé SnapZ sera créé ou mis à jour par défaut.

Ce paramètre n'est pas utilisé lors du calcul de localisations pour les entités linéaires ou surfaciques.

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 des localisations de réseau calculées pour les entités linéaires ou surfaciques. Un champ nommé Locations sera 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)

Indique si les portions restreintes du réseau sont exclues lors de la localisation des entrées. Les points ne seront pas localisés sur les éléments limités dans le mode de déplacement spécifié. Si aucun mode de déplacement n'est spécifié, les restrictions du mode de déplacement par défaut du réseau sont utilisées.

  • EXCLUDELes 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 d'interruptions. Avant de relocaliser vos localisations de réseau à l’aide de cette option, assurez-vous que vous avez ajouté toutes les interruptions de restriction à la couche d’analyse de réseau pour obtenir les résultats escomptés. Il s’agit de l’option par défaut.
  • INCLUDELes 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)

Définit une requête visant à 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 pouvant ne pas convenir à votre analyse. Par exemple, vous pouvez utiliser la requête pour exclure toutes les entités avec une classe routière particulière.

Une expression SQL distincte peut être spécifiée par classe d’entités source du jeu de données réseau. Par défaut, aucune requête n’est utilisée pour une source.

Ce paramètre n’est pas utilisé si la source de données du réseau est un service de portail.

La valeur de paramètre est spécifiée sous forme de liste de listes imbriquées. Les listes imbriquées se composent de deux valeurs indiquant le nom et l’expression SQL de toutes les sources de réseau. Pour plus d'informations sur la syntaxe SQL, reportez-vous à la rubrique Référence SQL pour les expressions de requête utilisées dans ArcGIS.

Aucune requête ne sera appliquée à une source de réseau non incluse dans cette liste. De même, une expression spécifiée comme chaîne vide sera également interprétée comme ne faisant pas l’objet d’une requête.

Par exemple, la valeur de paramètre [["Streets", "\"CFCC\" = 'A15'"], ["Streets_ND_Junctions", ""]] spécifie une requête pour la classe d’entités source Streets afin de localiser uniquement les entrées sur les rues où le champ CFCC possède la valeur A15. Aucune requête n’est appliquée à la classe d’entités source Streets_ND_Junctions.

Value Table
travel_mode
(Facultatif)

Nom du mode de déplacement à utiliser dans l’analyse.

Si vous sélectionnez un mode de déplacement, les paramètres du mode de déplacement, tels que les restrictions et les attributs d'impédance, seront pris en compte lors du calcul des champs d'emplacement. Par exemple, si le segment du réseau le plus proche d’un de vos points en entrée est interdit aux camions et si votre mode de déplacement est défini pour les camions, l’option Calculer les localisations localisera le point sur le segment du réseau suivant le plus proche qui n’est pas interdit aux camions.

Les modes de déplacement disponibles dépendent de la valeur du paramètre in_network_dataset.

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 du mode de déplacement doit être défini par rapport au mode de déplacement de la couche d'analyse de réseau.

String

Sortie dérivée

NomExplicationType de données
out_point_feature_class

Entités en entrée mises à jour.

Vue tabulaire

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.

stores = "C:/Data/SanFrancisco.gdb/Analysis/Hospitals/Analysis/Stores"
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.CalculateLocations(stores, network, "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 des entités rue, à l’exception d’autres sources de données du réseau.

warehouses = "C:/Data/Paris.gdb/Analysis/Warehouses"
network = "C:/Data/Paris.gdb/Transportation/ParisMultimodal_ND"
arcpy.na.CalculateLocations(warehouses, network, "5000 Meters",
    [["Metro_Lines", "NONE"], ["Streets", "SHAPE"],
    ["Transfer_Stations", "NONE"], ["Metro_Entrances", "NONE"],
    ["Metro_Stations", "NONE"], ["ParisMultimodal_ND_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

parks = "C:/Data/SanFrancisco.gdb/Analysis/Hospitals/Basemap/Parks"
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.CalculateLocations(parks, network, "", [["Streets", "SHAPE"],
                            ["Streets_ND_Junctions", "NONE"]],
                            location_field="Locations")
4ème exemple d'utilisation de l'outil Calculer les localisations (script autonome)

Le script Python ci-dessous illustre l'utilisation de l'outil CalculateLocations 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

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

    #Set local variables
    in_features = "Analysis/FireStations"
    network = "Transportation/Streets_ND"
    search_tolerance = "2000 Meters"
    search_criteria = [["Streets", "SHAPE"], ["Streets_ND_Junctions", "NONE"]]
    search_query = [["Streets", '"FREEWAY" = 0'], ["Streets_ND_Junctions", ""]]

    #Calculate network locations and store them in defaut field names
    arcpy.na.CalculateLocations(in_features, network, search_tolerance,
                                search_criteria, "MATCH_TO_CLOSEST",
                                exclude_restricted_elements="EXCLUDE",
                                search_query=search_query)

    print("Script completed successfully.")

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print(("An error occurred on line %i" % tb.tb_lineno))
    print((str(e)))

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes