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

Syntaxe

MakeODCostMatrixLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {default_cutoff}, {default_number_destinations_to_find}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {hierarchy_settings}, {output_path_shape})
ParamètreExplicationType 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.

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)
  • NO_LINESAucune forme n'est créée pour les itinéraires en sortie. Cela s'avère utile lorsque vous utilisez un grand nombre d'origines et de destinations et que vous vous intéressez uniquement à la table de la matrice de coût OD (et non aux formes de lignes en sortie).
  • STRAIGHT_LINESLa forme d'itinéraire en sortie est une ligne droite unique entre chacune des paires origine-destination.

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

Exemple de code

Exemple 1 d'utilisation de l'outil Créer une couche de matrice de coût OD (fenêtre Python)

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

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb"
arcpy.MakeODCostMatrixLayer_na("Transportation/ParisNet","DrivetimeCosts",
                               "Drivetime")
Exemple 2 d'utilisation de l'outil Créer une couche de matrice de coût OD (fenêtre Python)

Exécute l'outil avec tous les paramètres

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb"
arcpy.MakeODCostMatrixLayer_na("Transportation/ParisNet","DrivetimeCosts",
                               "Drivetime",10,20,["Meters","Drivetime"],
                               "NO_UTURNS",["Oneway"],"USE_HIERARCHY","",
                               "NO_LINES")
Exemple 3 d'utilisation de l'outil Créer une couche de matrice de coût OD (workflow)

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"
    outNALayer = "WarehouseToStoreDrivetimeMatrix"
    impedanceAttribute = "Drivetime"
    accumulateAttributeName = ["Meters"]
    inOrgins = "Analysis/Warehouses"
    inDestinations = "Analysis/Stores"
    fieldMappings = "Name NOM #"
    outLayerFile = "C:/data/output" + "/" + outNALayer + ".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.
    arcpy.MakeODCostMatrixLayer_na(inNetworkDataset, outNALayer, 
                                   impedanceAttribute, 10, "",
                                   accumulateAttributeName)
    
    #Load the warehouse locations as origins using a default field map that maps
    #the Name property using a name field from warehouse features.
    arcpy.AddLocations_na(outNALayer, "Origins", inOrgins, "","1000 Meters")
    
    #Load the store locations as destinations mapping the NOM field from stores
    #features as Name property
    arcpy.AddLocations_na(outNALayer, "Destinations", inDestinations, 
                          fieldMappings,"1000 Meters")
    
    #Solve the OD cost matrix layer
    arcpy.Solve_na(outNALayer)
    
    #Save the solved OD cost matrix 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