Générer une couche d'itinéraires (Network Analyst)

Récapitulatif

Crée une couche de calcul de réseau d'itinéraires et définit ses propriétés d'analyse. Une couche d'analyse d'itinéraire est utile pour définir le meilleur itinéraire entre plusieurs localisations de réseau, en fonction d'un coût réseau spécifié.

Utilisation

Syntaxe

MakeRouteLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {find_best_order}, {ordering_type}, {time_windows}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {hierarchy_settings}, {output_path_shape}, {start_date_time})
ParamètreExplicationType de données
in_network_dataset

Jeu d'entités réseau sur lequel le calcul d'itinéraires est effectué.

Network Dataset Layer
out_network_analysis_layer

Nom de la couche de calcul d'analyse de réseau d'itinéraires à créer.

String
impedance_attribute

L'attribut de coût à utiliser comme impédance dans l'analyse.

String
find_best_order
(Facultatif)
  • FIND_BEST_ORDERLes arrêts sont réorganisés pour trouver le meilleur itinéraire. Cette option transforme l'analyse des itinéraires d'un problème de plus court chemin en un problème du voyageur de commerce (TSP).
  • USE_INPUT_ORDERLes arrêts sont visités dans l'ordre de saisie. Il s'agit de l'option par défaut.
Boolean
ordering_type
(Facultatif)

Précise l'ordre des arrêts lorsque FIND_BEST_ORDER est utilisé.

  • PRESERVE_BOTHPreserves the first and last stops by input order as the first and last stops in the route.
  • PRESERVE_FIRSTPreserves the first stop by input order as the first stop in the route, but the last stop is free to be reordered.
  • PRESERVE_LASTPreserves the last stop by input order as the last stop in the route, but the first stop is free to be reordered.
  • PRESERVE_NONEFrees both the first and last stop to be reordered.
String
time_windows
(Facultatif)

Specifies if time windows will be used at the stops.

  • USE_TIMEWINDOWSL'itinéraire tient compte des fenêtres horaires au niveau des arrêts. Si un arrêt survient avant sa fenêtre horaire, un délai d'attente s'écoule avant l'affichage de la fenêtre horaire. Si un arrêt survient après sa fenêtre horaire, aucune infraction de fenêtre horaire ne se produit. L'infraction de fenêtre horaire totale est comparée à l'impédance minimale lors du calcul de l'itinéraire. Cette option s'applique uniquement lorsque l'impédance est exprimée en unités de temps.
  • NO_TIMEWINDOWSL'itinéraire ignore les fenêtres horaires au niveau des arrêts. Il s'agit de l'option par défaut.
Boolean
accumulate_attribute_name
[accumulate_attribute_name,...]
(Facultatif)

Liste des attributs de coût à cumuler lors de l'analyse. Ces attributs de cumul sont destinés à servir à titre de référence uniquement ; le solveur utilise uniquement l'attribut de coût spécifié par le paramètre d'attribut Impédance de la couche d'analyse pour calculer l'itinéraire.

For each cost attribute that is accumulated, a Total_[Impedance] property is added to the routes that are output by the solver.

String
UTurn_policy
(Facultatif)

Restreint ou autorise les demi-tours aux jonctions qui pourraient survenir lors de la traversée du réseau entre des arrêts.

  • ALLOW_UTURNSLes demi-tours sont permis aux jonctions comportant un nombre de tronçons adjacents quelconque.
  • NO_UTURNSLes demi-tours sont interdits au niveau de toutes les jonctions. Notez toutefois que les demi-tours restent autorisés au niveau des localisations réseau lorsque ce paramètre est sélectionné ; en revanche, vous pouvez configurer la propriété CurbApproach des localisations réseau individuelles pour interdire les demi-tours.
  • ALLOW_DEAD_ENDS_ONLYLes demi-tours sont interdits au niveau de toutes les jonctions, sauf celles ayant un seul tronçon adjacent (voie sans issue).
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLYLes demi-tours sont interdits aux jonctions où deux tronçons adjacents se rencontrent, mais sont autorisés aux intersection (jonctions avec au moins trois tronçons adjacents) ou aux voies sans issue (jonctions avec exactement un tronçon adjacent).
String
restriction_attribute_name
[restriction_attribute_name,...]
(Facultatif)

Liste des attributs de restriction à appliquer lors de l'analyse.

String
hierarchy
(Facultatif)
  • USE_HIERARCHY Utilise l'attribut de hiérarchie pour l'analyse. L'utilisation d'une hiérarchie implique une préférence du solveur pour les tronçons d'ordre supérieur par rapport aux tronçons d'ordre inférieur. Les recherches hiérarchiques sont plus rapides et permettent de simuler la préférence d'un chauffeur de circuler sur des autoroutes au lieu de routes locales si possible, même si cela implique un trajet plus long. Cette option est valide uniquement si le jeu de données réseau en entrée a un attribut de hiérarchie.
  • NO_HIERARCHYN'utilise pas l'attribut de hiérarchie pour l'analyse. Un itinéraire exact est alors obtenu pour le jeu de données réseau.

Le paramètre n'est pas utilisé si un attribut de hiérarchie n'est pas défini sur le jeu de données réseau utilisé pour l'analyse. Dans ces cas, utilisez "#" comme valeur de paramètre.

Boolean
hierarchy_settings
(Facultatif)

HéritageHéritage :

Avant la version 10, ce paramètre permettait de modifier les plages de hiérarchies pour l'analyse des plages de hiérarchies par défaut établies dans le jeu de données réseau. Dans la version 10, ce paramètre n'est plus pris en charge et doit être spécifié en tant que chaîne vide. Si vous souhaitez modifier les plages de hiérarchies de votre analyse, mettez à jour les plages de hiérarchies par défaut du jeu de données réseau.

Network Analyst Hierarchy Settings
output_path_shape
(Facultatif)

Spécifie le type de forme pour les entités itinéraire produites en sortie par l'analyse.

  • TRUE_LINES_WITH_MEASURESLes itinéraires en sortie ont la forme exacte des sources de données du réseau sous-jacentes. En outre, la sortie comprend des mesures d'itinéraire pour le référencement linéaire. Les mesures augmentent à partir du premier arrêt et enregistrent l'impédance cumulée pour atteindre une position donnée.
  • TRUE_LINES_WITHOUT_MEASURESLes itinéraires en sortie ont la forme exacte des sources de données du réseau sous-jacentes.
  • STRAIGHT_LINESLa forme d'itinéraire en sortie est une ligne droite unique entre les arrêts.
  • NO_LINESAucune forme n'est créée pour les itinéraires en sortie.

Indépendamment du type de forme en sortie sélectionnée, le meilleur itinéraire est toujours déterminé par l'impédance du réseau, jamais par la distance euclidienne. Cela signifie que seules les formes d'itinéraire sont différentes, pas le parcours du réseau sous-jacent.

String
start_date_time
(Facultatif)

Spécifie une date de début et une durée pour l'itinéraire. L'heure de début de l'itinéraire permet principalement de trouver des itinéraires selon l'attribut d'impédance qui varie avec l'heure du jour. Par exemple, une heure de début égale à 9h00 permet de trouver un itinéraire tenant compte de la circulation à l'heure de pointe. La valeur par défaut de ce paramètre est 8h00. Une date et une heure peuvent être spécifiées sous la forme 10/21/05 10:30 AM. Si l'itinéraire couvre plusieurs jours et que seule l'heure de début est spécifiée, la date courante est utilisée.

Au lieu d'utiliser une date particulière, un jour de la semaine peut être spécifié à l'aide des dates suivantes.

  • Aujourd'hui -- 12/30/1899
  • Dimanche -- 12/31/1899
  • Lundi -- 1/1/1900
  • Mardi -- 1/2/1900
  • Mercredi -- 1/3/1900
  • Jeudi -- 1/4/1900
  • Vendredi -- 1/5/1900
  • Samedi -- 1/6/1900
Par exemple, pour préciser que l'itinéraire doit démarrer à 17h00 mardi, spécifiez la valeur de paramètre sous la forme 1/2/1900 5:00 PM.

Après le calcul, l'heure de début et l'heure de fin de l'itinéraire sont renseignées dans les itinéraires en sortie. Ces heures de début et de fin sont également utilisées lors de la génération de directions.

Cette option est valide uniquement si un attribut de coût basé sur le temps a été spécifié en tant qu'attribut d'impédance.

Date

Exemple de code

Exemple 1 d'utilisation de l'outil Générer une couche d'itinéraires (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.MakeRouteLayer_na("Transportation/Streets_ND","WorkRoute","Minutes")
Exemple 2 d'utilisation de l'outil Générer une couche d'itinéraires (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.MakeRouteLayer_na("Transportation/Streets_ND","InspectionRoute","Minutes",
                        "FIND_BEST_ORDER","PRESERVE_BOTH","USE_TIMEWINDOWS",
                        ["Meters","Minutes"],
                        "ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY",["Oneway"],
                        "USE_HIERARCHY","","TRUE_LINES_WITH_MEASURES",
                        "1/1/1900 9:00 AM")
Exemple 3 d'utilisation de l'outil Générer une couche d'itinéraires (workflow)

Le script Python autonome illustre l'utilisation de l'outil Générer une couche d'itinéraires pour trouver un meilleur itinéraire pour visiter les emplacements d'arrêts géocodés.

# Name: MakeRouteLayer_Workflow.py
# Description: Find a best route to visit the stop locations and save the 
#              route to a layer file. The stop locations are geocoded from a 
#              text file containing the addresses.
# 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 = "BestRoute"
    impedanceAttribute = "TravelTime"
    inAddressLocator = "SanFranciscoLocator"
    inAddressTable = "C:/data/StopAddresses.csv"
    inAddressFields = "Street Address VISIBLE NONE"
    fieldMappings = "Name Address #"
    outStops = "GeocodedStops"
    outLayerFile = "C:/data/output" + "/" + outNALayer + ".lyr"
    
    #Create a new Route layer. Once the route layer is created, it can be 
    #referenced using its name.  
    arcpy.MakeRouteLayer_na(inNetworkDataset, outNALayer, impedanceAttribute)
    
    #Geocode the stop locations from a csv file containing the addresses.
    #The Geocode Addresses tool can use a text or csv file as input table
    #as long as the first line in the file contains the field names.
    arcpy.GeocodeAddresses_geocoding(inAddressTable, inAddressLocator, 
                                     inAddressFields, outStops)
    
    #Load the geocoded address locations as stop smapping the address field from
    #geocoded stop features as Name property.
    arcpy.AddLocations_na(outNALayer,"Stops", outStops, fieldMappings, "")
    
    #Solve the route layer, ignore any invalid locations such as those that
    #can not be geocoded
    arcpy.Solve_na(outNALayer,"SKIP")
    
    #Save the solved route layer as a layer file on disk with relative paths
    arcpy.SaveToLayerFile_management(outNALayer,outLayerFile,"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