Générer une couche des ressources les plus proches (Network Analyst)

Niveau de licence :De baseStandardAvancé

Récapitulatif

Crée une couche d'analyse de réseau des ressources les plus proches et définit ses propriétés d'analyse. Une couche d'analyse des ressources les plus proches est utile pour définir la ou les ressources les plus proches d'un incident, en fonction d'un coût réseau spécifié.

Utilisation

Syntaxe

MakeClosestFacilityLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {travel_from_to}, {default_cutoff}, {default_number_facilities_to_find}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {hierarchy_settings}, {output_path_shape}, {time_of_day}, {time_of_day_usage})
ParamètreExplicationType de données
in_network_dataset

Jeu d'entités réseau sur lequel l'analyse de la ressource la plus proche s'effectue.

Network Dataset Layer
out_network_analysis_layer

Nom de la couche d'analyse de réseau des ressources les plus proches à créer.

String
impedance_attribute

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

String
travel_from_to
(Facultatif)

Spécifie la direction de déplacement entre des ressources et des incidents.

  • TRAVEL_FROMLe sens de déplacement va des ressources aux incidents.
  • TRAVEL_TOLe sens de déplacement va des incidents aux ressources.

Cette option permet de trouver différentes ressources sur un réseau avec des restrictions unidirectionnelles et des impédances différentes selon le sens du trajet. Par exemple, une ressource peut être située à 10 minutes en voiture de l'incident si le trajet est effectué de l'incident vers la ressource, mais à 15 minutes si le trajet est effectué de la ressource vers l'incident car la durée du trajet est plus longue dans ce sens.

Les services des pompiers utilisent en général le paramètre TRAVEL_FROM, car ils s'intéressent à la durée du trajet de la caserne (ressource) à l'emplacement de l'urgence (incident). Un point de vente (ressource) s'intéresse plus au temps nécessaire aux acheteurs (incident) pour atteindre le magasin ; par conséquent, les magasins utilisent en général l'option TRAVEL_TO.

String
default_cutoff
(Facultatif)

Valeur d'impédance par défaut à laquelle la recherche de ressources est arrêtée pour un incident donné. La valeur par défaut peut être remplacée en précisant la valeur limite sur les incidents lorsque l'option TRAVEL_TO est utilisée ou en précisant la valeur limite sur les ressources lorsque l'option TRAVEL_FROM est utilisée.

Double
default_number_facilities_to_find
(Facultatif)

Nombre par défaut des ressources les plus proches lors de la recherche par incident. Cette valeur peut être remplacée en précisant la valeur de la propriété TargetFacilityCount des incidents.

Long
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.

Pour chaque attribut de coût accumulé, une propriété Total_[Impédance] est ajoutée aux itinéraires générés en sortie par le solveur.

String
UTurn_policy
(Facultatif)

Règle de demi-tour aux jonctions. L'autorisation des demi-tours implique que le solveur puisse faire demi-tour au niveau d'une jonction et revenir en arrière par la même rue. Dans la mesure où les jonctions représentent des intersections de rues et des voies sans issue, différents véhicules peuvent faire demi-tour à certaines jonctions mais pas à d'autres, selon que la jonction représente une intersection ou une voie sans issue. Pour en tenir compte, le paramètre de règle de demi-tour est spécifié implicitement par le nombre de tronçons connectés à la jonction, également connu sous le nom de "valence de jonction". Les valeurs acceptables pour ce paramètre sont répertoriées ci-dessous ; chacune est suivie d'une description de sa signification en termes de valence de jonction.

  • ALLOW_UTURNSLes demi-tours sont autorisés aux jonctions comportant un nombre quelconque de tronçons connectés. Il s'agit de la valeur par défaut.
  • NO_UTURNSLes demi-tours sont interdits à toutes les jonctions, indépendamment de la valence de jonction. Notez toutefois que les demi-tours restent autorisés aux emplacements réseau même lorsque ce paramètre est sélectionné ; en revanche, vous pouvez configurer la propriété CurbApproach des emplacements réseau individuels pour y interdire les demi-tours également.
  • 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 intersections (jonctions avec au moins trois tronçons adjacents) et aux voies sans issue (jonctions avec exactement un tronçon adjacent). Souvent, les réseaux comportent des jonctions superflues au milieu de segments de route. Cette option empêche des véhicules de faire des demi-tours à ces emplacements.
AstuceAstuce:

Si la définition de votre règle de demi-tour n'est pas suffisamment précise, envisagez d'ajouter un évaluateur de délai de tournant global à un attribut de coût de réseau ou de modifier ses paramètres, le cas échéant, en veillant tout particulièrement à la configuration des tournants inversés. Pensez également à définir la propriété CurbApproach de vos localisations réseau.

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)

LegacyLegacy :

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 de l'itinéraire en sortie sera une ligne droite unique entre chaque élément de la paire incident-ressource.
  • 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
time_of_day
(Facultatif)

Spécifie l'heure et la date auxquelles les itinéraires doivent commencer ou se terminer. L'interprétation de cette valeur dépend du fait que le paramètre Time of Day Usage ait la valeur START_TIME ou END_TIME.

Si vous avez choisi un attribut d'impédance basé sur la circulation, l'analyse est effectuée selon des conditions de circulation dynamiques correspondant à l'heure du jour spécifiée ici. Une date et une heure peuvent être spécifiées sous la forme 5/14/2012 10:30 AM.

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 le trajet doit commencer mardi à 17h00, spécifiez la valeur de paramètre sous la forme 1/2/1900 5:00 PM.

Date
time_of_day_usage
(Facultatif)

Indique si la valeur du paramètre Heure représente l'heure d'arrivée ou l'heure de départ pour le ou les itinéraires.

  • START_TIMELe paramètre Heure est interprété comme heure de départ à partir de la ressource ou de l'incident.Lorsque START_TIME est choisi, le paramètre Heure indique que le solveur doit trouver le meilleur itinéraire en fonction d'une heure de départ donnée. La valeur NOT_USED peut être choisie si aucune valeur n'est spécifiée pour le paramètre Heure.
  • END_TIMELe paramètre Heure est interprété comme heure d'arrivée à la ressource ou à l'incident. Cette option est utile si vous souhaitez savoir à quelle heure partir d'un emplacement afin d'arriver à destination au moment spécifié par le paramètre Heure.
  • NOT_USEDLorsque le paramètre Heure n'est pas défini, NOT_USED est le seul choix possible. Lorsque le paramètre Heure est défini, NOT_USED n'est pas disponible.
String

Exemple de code

Exemple 1 d'utilisation de l'outil Générer une couche des ressources les plus proches (fenêtre Python)

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

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.MakeClosestFacilityLayer("Transportation/Streets_ND",
                                  "ClosestFireStations","Minutes")
Exemple 2 d'utilisation de l'outil Générer une couche des ressources les plus proches (fenêtre Python)

Exécutez l'outil avec tous les paramètres.

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.MakeClosestFacilityLayer("Transportation/Streets_ND",
                                  "ClosestHospitals","Minutes","TRAVEL_TO",5,3,
                                  ["Meters","Minutes"],"ALLOW_UTURNS",
                                  ["Oneway"],"USE_HIERARCHY","",
                                  "TRUE_LINES_WITH_MEASURES")
Exemple 3 d'utilisation de l'outil Générer une couche des ressources les plus proches (workflow)

Le script Python autonome suivant illustre l'utilisation de l'outil Générer une couche des ressources les plus proches pour trouver l'entrepôt le plus proche des emplacements de magasins.

# Name: MakeClosestFacilityLayer_Workflow.py
# Description: Find the closest warehouse from the store locations and save the 
#              results to a layer file on disk.
# 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/Paris.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/ParisMultimodal_ND"
    outNALayerName = "ClosestWarehouse"
    impedanceAttribute = "Drivetime"
    accumulateAttributeName = ["Meters"]
    inFacilities = "Analysis/Warehouses"
    inIncidents = "Analysis/Stores"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
    
    #Create a new closest facility analysis layer. Apart from finding the drive 
    #time to the closest warehouse, we also want to find the total distance. So
    #we will accumulate the "Meters" impedance attribute.
    outNALayer = arcpy.na.MakeClosestFacilityLayer(inNetworkDataset,outNALayerName,
                                                   impedanceAttribute,"TRAVEL_TO",
                                                   "",1, accumulateAttributeName,
                                                   "NO_UTURNS")
    
    #Get the layer object from the result object. The closest facility layer can 
    #now be referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)
    
    #Get the names of all the sublayers within the closest facility layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    facilitiesLayerName = subLayerNames["Facilities"]
    incidentsLayerName = subLayerNames["Incidents"]
    
    #Load the warehouses as Facilities using the default field mappings and 
    #search tolerance
    arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", "")
    
    #Load the Stores as Incidents. Map the Name property from the NOM field
    #using field mappings
    fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer, incidentsLayerName)
    fieldMappings["Name"].mappedFieldName = "NOM"
    arcpy.na.AddLocations(outNALayer, incidentsLayerName, inIncidents,
                          fieldMappings,"")
    
    #Solve the closest facility layer
    arcpy.na.Solve(outNALayer)
    
    #Save the solved closest facility layer as a layer file on disk with 
    #relative paths
    arcpy.management.SaveToLayerFile(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

Thèmes connexes

Informations de licence

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