Générer une couche de zones de desserte (Network Analyst)
Récapitulatif
Crée une couche de calcul de réseau de zones de desserte et définit ses propriétés d'analyse. Une couche d'analyse de zones de desserte est utile pour déterminer la zone d'accessibilité à partir de la localisation d'une ressource, au sein d'une valeur limite.
Bien que similaires, les outils Générer des zones de desserte et Générer une couche de zones de desserte ont été conçus à des fins différentes. Faites appel à l'outil Générer des zones de desserte si vous configurez un service de géotraitement. Cela permettra de simplifier le processus de configuration. Sinon, utilisez Générer une couche de zones de desserte. En outre, utilisez Générer une couche de zones de desserte si vous devez générer des lignes de zone de desserte ; l'option Générer des zones de desserte ne permet pas de générer ces lignes.
Pour créer un service de géotraitement de zone de desserte avec Générer des zones de desserte, il vous suffit de configurer un outil et de le publier directement en tant que service. En revanche, vous devez créer un modèle avec Générer une couche de zones de desserte, le connecter à d'autres outils et le publier pour créer un service de géotraitement de zone de desserte.
Utilisation
Après avoir créé la couche d'analyse avec cet outil, vous pouvez y ajouter des objets d'analyse de réseau grâce à l'outil Ajouter des localisations, résoudre l'analyse à l'aide de l'outil Analyser et enregistrer les résultats sur le disque à l'aide de l'outil Enregistrer dans un fichier de couche.
-
Lorsque vous utilisez cet outil dans des modèles de géotraitement, si le modèle est exécuté en tant qu'outil, la couche d'analyse de réseau en sortie doit être convertie en paramètre de modèle. Dans le cas contraire, la couche en sortie n'est pas ajoutée à la table des matières d'ArcMap.
Syntaxe
Paramètre | Explication | Type de données |
in_network_dataset |
Jeu d'entités réseau sur lequel le calcul de zones de dessertes sera effectué. | Network Dataset Layer |
out_network_analysis_layer |
Nom de la couche d'analyse de réseau des zones de desserte à 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 vers les équipements ou à partir des équipements.
Cette option peut engendrer des zones de desserte différentes sur un réseau avec des restrictions unidirectionnelles et des impédances différentes selon le sens du trajet. La zone de desserte d'un vendeur de pizzas, par exemple, doit être créée depuis la ressource, alors que la zone de desserte d'un hôpital doit être créée vers la ressource. | String |
default_break_values (Facultatif) |
Valeurs d'impédance par défaut qui indiquent l'étendue de la zone de desserte à calculer. La valeur par défaut peut être remplacée par la valeur de borne sur les ressources. Plusieurs bornes de polygones peuvent être configurées pour créer des zones de desserte concentriques. Par exemple, pour trouver les zones de desserte de 2, 3 et 5 minutes pour la même ressource, spécifiez "2 3 5" comme valeur pour le paramètre de valeurs de borne Par défaut (les nombres 2, 3 et 5 doivent être séparés par un espace). | String |
polygon_type (Facultatif) |
Spécifie le type de polygone à générer.
Si vos données proviennent d'une zone urbaine avec un réseau de type quadrillage, la différence entre les polygones généralisés et les polygones détaillés est minime. Cependant, les polygones détaillés peuvent afficher des résultats beaucoup plus précis que les polygones généralisés pour les routes de montagne et de campagne. | String |
merge (Facultatif) |
Spécifie les options de fusion des polygones qui partagent des valeurs de bornes similaires. Cette option est applicable uniquement lors de la génération de polygones pour plusieurs ressources.
| String |
nesting_type (Facultatif) |
Précise l'option de création de polygones de zone de desserte concentriques sous forme de disques ou d'anneaux. Cette option s'applique uniquement lorsque plusieurs valeurs de bornes sont spécifiées pour les ressources.
| String |
line_type (Facultatif) |
Spécifie le type de lignes à générer selon l'analyse des zones de desserte. Le fait de sélectionner l'option TRUE_LINES ou TRUE_LINES_WITH_MEASURES pour les grandes zones de desserte augmente la quantité de mémoire consommée par l'analyse.
| String |
overlap (Facultatif) |
Détermine si des lignes superposées sont générées lors du calcul des lignes de zone de desserte.
| Boolean |
split (Facultatif) |
| Boolean |
excluded_source_name [excluded_source_name,...] (Facultatif) |
Spécifie la liste des sources de données du réseau à exclure lors de la génération des polygones. La géométrie des éléments parcourus provenant des sources exclues est omise de tous les polygones. Cette option est utile si vous avez quelques sources de données du réseau que vous ne voulez pas inclure dans la génération de polygones parce qu'elles créent des polygones moins précis ou sont sans importance pour l'analyse des zones de desserte. Par exemple, lors de la création d'une zone de desserte de durée de trajet dans un réseau multimodal de rues et de voies ferrées, vous devez choisir d'exclure les voies ferrées de la génération de polygones afin de modéliser correctement les zones accessibles par un véhicule. L'exclusion d'une source de données de polygones de zone de desserte n'empêche pas ces sources d'être traversées. L'exclusion des sources de polygones de zone de desserte influence uniquement la forme des polygones des zones de desserte. Si vous souhaitez empêcher la traversée d'une source de données précise, vous devez créer une restriction appropriée lors de la définition de votre jeu de données réseau. | String |
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.
Astuce: 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 |
polygon_trim (Facultatif) |
| Boolean |
poly_trim_value (Facultatif) |
Spécifie la distance au sein de laquelle les polygones de zone de desserte sont tronqués. Le paramètre comprend une valeur et des unités de distance. La valeur par défaut est 100 mètres. | Linear unit |
lines_source_fields (Facultatif) |
| Boolean |
hierarchy (Facultatif) |
The parameter is not used if a hierarchy attribute is not defined on the network dataset used to perform the analysis. In such cases, use "#" as the parameter value. | Boolean |
time_of_day (Facultatif) |
Heure de départ ou d'arrivée aux ressources de la couche de zone de desserte. Cette valeur est interprétée comme heure de départ ou heure d'arrivée selon que le trajet s'effectue à partir des ressources ou vers celles-ci.
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.
En répétant la même analyse avec des valeurs différentes du paramètre Heure, vous pouvez voir l'évolution de la portée d'une ressource en fonction de l'heure. Par exemple, la zone de desserte de 5 minutes autour d'une caserne de pompiers peut être grande tôt le matin, diminuer aux heures de pointe matinales, augmenter en fin de matinée, et ainsi de suite tout au long de la journée. | Date |
Exemple de code
Exécutez l'outil uniquement avec les paramètres requis.
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.MakeServiceAreaLayer("Transportation/Streets_ND","FireStationCoverage",
"Minutes")
Exécutez l'outil avec tous les paramètres.
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb"
arcpy.na.MakeServiceAreaLayer("Transportation/ParisNet","WarehouseCoverage",
"Drivetime","TRAVEL_FROM","5 10 15",
"SIMPLE_POLYS", "NO_OVERLAP","RINGS","TRUE_LINES",
"NON_OVERLAP","NO_SPLIT",
["Metro_Lines","Transfer_Stations",
"Transfer_Street_Station"],
["Meters","Drivetime"],"ALLOW_DEAD_ENDS_ONLY",
["Oneway"],"NO_TRIM_POLYS","",
"LINES_SOURCE_FIELDS")
Le script Python autonome suivant illustre l'utilisation de l'outil Générer une couche de zones de desserte pour générer des zones de desserte de 1, 2 et 3 minutes autour de casernes de pompiers.
# Name: MakeServiceAreaLayer_Workflow.py
# Description: Generate 1-,2-,3- minute service area around fire stations and
# save the results to a layer file on disk. The service area
# polygons can be used to visualize the areas that do not have
# adequate coverage from the fire stations
# 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"
outNALayerName = "FireStationCoverage"
impedanceAttribute = "TravelTime"
inFacilities = "Analysis/FireStations"
outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
#Create a new service area layer. We wish to generate the service area
#polygons as rings, so that we can easily visualize the coverage for any
#given location. We also want overlapping polygons as we can determine the
#number of fire stations that cover a given location. We use hierarchy to
#speed up the time taken to create the polygons. We will specify these
#options while creating the new service area layer.
outNALayer = arcpy.na.MakeServiceAreaLayer(inNetworkDataset, outNALayerName,
impedanceAttribute, "TRAVEL_FROM", "1 2 3",
"SIMPLE_POLYS", "NO_MERGE", "RINGS",
hierarchy = "USE_HIERARCHY")
#Get the layer object from the result object. The service layer can now be
#referenced using the layer object.
outNALayer = outNALayer.getOutput(0)
#Get the names of all the sublayers within the service area layer.
subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
#Stores the layer names that we will use later
facilitiesLayerName = subLayerNames["Facilities"]
#Load the fire stations as facilities using default field mappings and
#default search tolerance
arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", "")
#Solve the service area layer
arcpy.na.Solve(outNALayer)
#Save the solved service area 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)