Créer une couche de matrice de coût OD (Network Analyst)
Récapitulatif
Crée une couche d'analyse réseau de matrice de coût origine-destination (OD) et définit ses propriétés d'analyse. Une couche d'analyse de matrice de coût origine-destination sert à représenter une matrice de coûts partant de localisations d'origine vers un ensemble de localisations de destination.
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 l'analyse de matrice de coût OD est appliquée. | Network Dataset Layer |
out_network_analysis_layer |
Nom de la couche de calcul d'analyse de réseau de matrice de coût OD à créer. | String |
impedance_attribute |
L'attribut de coût à utiliser comme impédance dans l'analyse. | String |
default_cutoff (Facultatif) |
Valeur d'impédance par défaut limitant la recherche de destinations pour une origine donnée. Si l'impédance cumulée dépasse la valeur limite, l'itinéraire est interrompu. Cette valeur peut être remplacée par la valeur limite sur les origines. | Double |
default_number_destinations_to_find (Facultatif) |
Nombre de destinations par défaut à trouver pour chaque origine. Cette valeur peut être remplacée en précisant la valeur de la propriété TargetDestinationCount sur les origines. | 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.
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 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) |
Legacy : 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) |
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) |
Indique l'heure de départ des origines. 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 |
Exemple de code
Exécutez l'outil uniquement avec les paramètres requis.
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb"
arcpy.na.MakeODCostMatrixLayer("Transportation/ParisNet","DrivetimeCosts",
"Drivetime")
Exécutez l'outil avec tous les paramètres.
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb"
arcpy.na.MakeODCostMatrixLayer("Transportation/ParisNet","DrivetimeCosts",
"Drivetime",10,20,["Meters","Drivetime"],
"NO_UTURNS",["Oneway"],"USE_HIERARCHY","",
"NO_LINES")
Le script Python autonome suivant illustre l'utilisation de l'outil Créer une couche de matrice de coût OD pour créer une matrice de coût origine-destination pour la livraison de marchandises à partir des entrepôts à tous les points de vente dans un temps de trajet de 10 minutes.
# Name: MakeODCostMatrixLayer_Workflow.py
# Description: Create an origin-destination cost matrix for delivery of goods
# from the warehouses to all stores within a 10-minute drive time
# and save the results to a layer file on disk. Such a matrix can
# be used as an input for logistics, delivery and routing analyses.
# 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 = "WarehouseToStoreDrivetimeMatrix"
impedanceAttribute = "Drivetime"
searchTolerance = "1000 Meters"
accumulateAttributeName = ["Meters"]
inOrgins = "Analysis/Warehouses"
inDestinations = "Analysis/Stores"
outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
#Create a new OD Cost matrix layer. We wish to find all stores within a 10
#minute cutoff. Apart from finding the drive time to the stores, we also
#want to find the total distance. So we will accumulate the "Meters"
#impedance attribute.
outNALayer = arcpy.na.MakeODCostMatrixLayer(inNetworkDataset, outNALayerName,
impedanceAttribute, 10, "",
accumulateAttributeName)
#Get the layer object from the result object. The OD cost matrix layer can
#now be referenced using the layer object.
outNALayer = outNALayer.getOutput(0)
#Get the names of all the sublayers within the OD cost matrix layer.
subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
#Stores the layer names that we will use later
originsLayerName = subLayerNames["Origins"]
destinationsLayerName = subLayerNames["Destinations"]
#Load the warehouse locations as origins using a default field mappings and
#a search tolerance of 1000 Meters.
arcpy.na.AddLocations(outNALayer, originsLayerName, inOrgins, "",
searchTolerance)
#Load the store locations as destinations and map the NOM field from stores
#features as Name property using field mappings
fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer, destinationsLayerName)
fieldMappings["Name"].mappedFieldName = "NOM"
arcpy.na.AddLocations(outNALayer, destinationsLayerName, inDestinations,
fieldMappings, searchTolerance)
#Solve the OD cost matrix layer
arcpy.na.Solve(outNALayer)
#Save the solved OD cost matrix 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)