Générer une couche des ressources les plus proches (ArcGIS Network Analyst)
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é.
Bien que similaires, les outils Rechercher les ressources les plus proches et Générer une couche des ressources les plus proches ont été conçus à des fins différentes. L'utilisation de Rechercher les ressources les plus proches pour configurer un service de géotraitement permettent de simplifier le processus de configuration. Sinon, faites appel à l'outil Générer une couche des ressources les plus proches.
Pour créer un service de géotraitement de ressource la plus proche à l'aide de l'outil Rechercher les ressources les plus proches, 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 l'outil Générer une couche des ressources les plus proches, le connecter correctement à d'autres outils et le publier pour créer un service de géotraitement des ressources les plus proches. Reportez-vous à la rubrique Vue d'ensemble des exemples de services de géotraitement Network Analyst pour apprendre à définir un service de recherche des ressources les plus proches à l'aide des données de didacticiel. Vous pouvez également envisager l'utilisation du Service ArcGIS Online Ressource la plus proche. Ce service fonctionne comme un outil de géotraitement ArcMap et vous pouvez y accéder à partir d'autres applications. Il inclut en outre des données routières de haute qualité pour la majorité des pays du monde.
Utilisation
-
Après avoir créé la couche d'analyse avec cet outil, vous pouvez ajouter des objets d'analyse du réseau à l'aide de l'outil Ajouter des emplacements, résoudre l'analyse à l'aide de l'outil Calculer 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 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.
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 d'accumulation 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 de l'attribut Impédance 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 |
hierarchy (Facultatif) |
Le paramètre n'est pas utilisé si aucun attribut de hiérarchie n'est défini dans le jeu de données réseau utilisé pour effectuer l'analyse. Dans ces cas, utilisez "#" comme valeur de paramètre. | Boolean |
hierarchy_settings (Facultatif) |
Héritage : Avant la version 10, ce paramètre vous permettait de modifier les plages de hiérarchie de votre analyse afin de ne pas utiliser les plages de hiérarchie par défaut établies dans le jeu de données réseau. Ce paramètre n'est plus pris en charge dans la version 10 et doit être spécifié comme une chaîne vide. Si vous souhaitez modifier les plages de hiérarchie de votre analyse, mettez à jour les plages de hiérarchie par défaut du jeu de données réseau. | Network Analyst Hierarchy Settings |
output_path_shape (Facultatif) | Indique le type de forme pour les entités itinéraires générées par l'analyse.
Indépendamment du type de forme en sortie choisi, 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.
| 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.
| String |
Exemple de code
Exécute 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")
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")
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)