Ajouter des localisations (Network Analyst)

Récapitulatif

Ajoute des objets d'analyse de réseau à la couche d’analyse de réseau. Les objets sont ajoutés aux sous-couche spécifiques telles que Arrêts et Interruptions. Les objets sont entrés en tant qu'entités ou enregistrements.

Utilisation

Syntaxe

AddLocations_na (in_network_analysis_layer, sub_layer, in_table, field_mappings, search_tolerance, {sort_field}, {search_criteria}, {match_type}, {append}, {snap_to_position_along_network}, {snap_offset}, {exclude_restricted_elements}, {search_query})
ParamètreExplicationType de données
in_network_analysis_layer

Couche d'analyse de réseau à laquelle les objets d'analyse de réseau seront ajoutés.

Network Analyst Layer
sub_layer

Sous-couche de la couche d'analyse de réseau auquel les objets d'analyse de réseau seront ajoutés.

String
in_table

Classe d'entités ou table source des nouveaux objets d'analyse de réseau.

Table View
field_mappings

Sets the values for the properties of the network analysis objects. Properties can be set to a constant or mapped to a field from the input feature class or table.

La valeur de paramètre est spécifiée sous la forme d'une liste séparée par des points-virgules de trois valeurs, composée du nom de la propriété, du nom du champ et de la valeur par défaut. Vous devez spécifier le nom du champ ou la valeur par défaut pour une propriété. Par exemple, la valeur de paramètre "Nom Adresse #; Attr_Minutes #2", spécifie que la propriété Nom est appariée au champ Adresse et la propriété Attr_Minutes doit avoir une valeur constante de 2 lors de l'ajout de vos entités en entrée.

Si une propriété particulière n'est pas mappée à un champ, possède une valeur par défaut ou n'est pas incluse dans la valeur de paramètre, elle aura le mappage par défaut. Si vous voulez utiliser les mappages par défaut pour toutes les propriétés, faites appel à # comme valeur de paramètre.

If both the Field and the Default Value are not specified for a property, the resulting network analysis objects will have null values for that property.

Si les données que vous chargez contiennent des localisations de réseau ou des plages de localisation basées sur le jeu de données réseau utilisé pour l'analyse, mappez les champs de localisation du réseau de vos entités en entrée aux propriétés de localisation de réseau. Pour les emplacements de points tels qu'Arrêts ou Interruptions, mappez les propriétés SourceID, SourceOID, PosAlong et SideOfEdge et pour les emplacements de lignes et de polygones tels que Barrières polygonales, mappez la propriété Locations. L'ajout des objets d'analyse de réseau à l'aide des champs de localisation du réseau est beaucoup plus rapide que le chargement par géométrie. La spécification des champs de localisation du réseau dans les mappages de champs est similaire à l'utilisation du paramètre Utiliser les champs de localisation du réseau au lieu de la géométrie à partir de la boîte de dialogue de l'outil.

AttentionAttention :

Si vous spécifiez le mappage de champs pour l'une des propriétés de localisation de réseau, vous devez spécifier les mappages de champs pour les propriétés de localisation de réseau restantes afin d'éviter une erreur d'exécution d'un outil.

Network Analyst Field Map
search_tolerance

The search tolerance for locating the input features on the network. Features that are outside the search tolerance are left unlocated. The parameter includes a value and units for the tolerance.

Le paramètre n'est pas utilisé lors de l'ajout d'emplacements aux sous-couches Barrières linéaires ou Barrières polygonales. Dans ces cas, utilisez "#" comme valeur de paramètre.

Linear Unit
sort_field
(Facultatif)

Champ dans lequel les objets d'analyse du réseau sont triés lorsqu'ils sont ajoutés à la couche d'analyse de réseau. La valeur par défaut est le champ ObjectID sur la classe d'entités ou la table en entrée.

Field
search_criteria
[[Source, SnapType],...]
(Facultatif)

Specifies which sources in the network dataset will be searched when finding locations and what portions of geometry (also known as snap types) will be used.

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.

When adding line or polygon network locations, only the Shape snap type is used even if other snap types are specified.

Value Table
match_type
(Facultatif)
  • MATCH_TO_CLOSESTApparie les nouvelles localisations de 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.

The parameter is not used when adding locations to the Line Barriers or Polygon Barriers sublayers. In such cases, use "#" as the parameter value.

Boolean
append
(Facultatif)

Specifies whether or not to append new network analysis objects to existing objects.

  • APPENDAjoute les nouveaux objets d'analyse de réseau au jeu d'objets existant dans la sous-couche sélectionnée.
  • CLEARSupprime les objets d'analyse de réseau existants et les remplace par les nouveaux objets.
Boolean
snap_to_position_along_network
(Facultatif)

Specifies that you want to snap the network locations along the network dataset or at some specified offset from the network dataset.

  • NO_SNAPLes géométries des localisations de réseau sont fonction des géométries des entités en entrée. Cette option est utile si vous voulez utiliser l'approche du trottoir, qui nécessite que les localisations du réseau sachent de quel côté du tronçon elles se trouvent.
  • SNAPSi vous avez des entités ponctuelles, le point sera capturé au réseau et vous ne pourrez pas utiliser l'approche du trottoir. Cette option est utile si la façon dont un véhicule approche un arrêt n'a pas d'importance. Si vos entités en entrée sont des lignes ou des polygones, utilisez cette valeur de paramètre.

The parameter is not used when adding locations to the Line Barriers or Polygon Barriers sublayers. In such cases, use "#" as the parameter value.

Boolean
snap_offset
(Facultatif)

When snapping a point to the network, you can apply an offset distance. An offset distance of zero means the point will be coincident with the network feature (typically a line). To offset the point from the network feature, enter an offset distance. The offset is in relation to the original point location. That is, if the original point was on the left side, its new location will be offset to the left. If it was originally on the right side, its new location will be offset to the right.

The parameter is not used when adding locations to the Line Barriers or Polygon Barriers sublayers. In such cases, use "#" as the parameter value.

Long
exclude_restricted_elements
(Facultatif)
  • 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 d'ajouter 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 en entrée pour obtenir les résultats escomptés. Ce paramètre n'est pas applicable lors de l'ajout d'objets barrière. Dans ces cas, utilisez "#" comme valeur de paramètre.
  • INCLUDEIndique que les localisations de réseau sont placées sur tous les éléments du réseau. Les localisations de réseau ajouté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)

Specifies a query to restrict the search to a subset of the features within a source feature class. This is useful if you don't want to find features that may be unsuited for a network location. For example, if you are loading centroids of polygons and don't want to locate on local roads, you can define a query that searches for major roads only.

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 Ajouter des localisations (fenêtre Python)

Exécute l'outil uniquement avec les paramètres requis

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.AddLocations_na("Route","Stops","Analysis/Hospital","","")
Exemple 2 d'utilisation de l'outil Ajouter des localisations (fenêtre Python)

Exécute l'outil avec tous les paramètres

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.AddLocations_na("Route","Stops","Analysis/Hospital",
                      "Name Name #;Attr_Minutes VisitTime 0;CurbApproach # 0",
                      "2 Miles","FID",
                      [["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]],
                      "MATCH_TO_CLOSEST","CLEAR","SNAP","10 Feet","EXCLUDE",
                      [["Streets",'"FREEWAY" = 0'],["Streets_ND_Junctions",""]])


Exemple 3 d'utilisation de l'outil Ajouter des localisations (workflow)

Le script Python autonome ci-dessous montre comment l'outil Ajouter des localisations permet de charger des origines et des destinations dans une couche de matrice de coût OD.

# Name: AddLocations_Workflow.py
# Description: The scenario shows how to calculate a travel time matrix between 
#              store features. Use the Add Locations tool to load origins and 
#              destinations into an OD Cost Matrix layer.Since the origins and 
#              destinations are same in this case, the origins are first loaded 
#              from the store features using their geometry and the destinations
#              are loaded from the origins using network location fields to 
#              speed up the load times. 
# Requirements: Network Analyst Extension 

#Import system modules
import arcpy
from arcpy import env

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

    #Set environment settings
    env.workspace = "C:/data/SanFrancisco.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outNALayer = "StoreTravelTimeMatrix"
    impedanceAttribute = "TravelTime"
    inFeatures = "Analysis/Stores"
    searchTolerance = "500 Meters"
    searchQuery = [["Streets",'"FREEWAY" = 0'],["Streets_ND_Junctions",""]]
    originsLayer = outNALayer + "/" + "Origins"
    fieldMappings = "Name Name #; SourceID SourceID #;SourceOID SourceOID #;" \
                    + "PosAlong PosAlong #;SideOfEdge SideOfEdge #"
    outLayer = "C:/data/output" + "/" + outNALayer + ".lyr"
    
    #Create a new OD cost matrix analysis layer. For this scenario, the default 
    #value for all the remaining parameters statisfies the analysis requirements
    arcpy.MakeODCostMatrixLayer_na(inNetworkDataset, outNALayer, 
                                   impedanceAttribute)
    
    #Load store features as origins using the geometry of store features.
    #Ensure that the stores are not located on freeways by using a search query.
    #The OD cost matrix layer created previously is referred using its name. 
    arcpy.AddLocations_na(outNALayer,"Origins",inFeatures,"",searchTolerance,
                          search_query = searchQuery)
    
    #Load origins as destinations using the network locations fields from 
    #origins. This is much faster than loading destinations from the store 
    #features using their geometry as their network locations have already been
    #calculated while loading them origins.
    arcpy.AddLocations_na(outNALayer,"Destinations",originsLayer,fieldMappings,
                          "")
    
    #Solve the od cost matrix layer. Halt the execution if there is an 
    #invalid location 
    arcpy.Solve_na(outNALayer,"HALT")
    
    #Save the solved na layer as a layer file on disk with relative paths
    arcpy.SaveToLayerFile_management(outNALayer,outLayer,"RELATIVE")
    
    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 occured on line %i" % tb.tb_lineno
    print str(e)
    

Environnements

Rubriques connexes

Informations de licence

ArcView : Oui
ArcEditor : Oui
ArcInfo : Oui

7/10/2012