Mise à jour du paramètre d’attribut d’analyse de la couche (Network Analyst)
Récapitulatif
Met à jour la valeur d'un paramètre d'attribut de réseau dans une couche d'analyse de réseau. Cet outil permet de mettre à jour la valeur d'un paramètre attributaire pour une couche d'analyse de réseau avant l'analyse avec l'outil Rechercher. Il garantit que l'opération d'analyse utilise la valeur spécifiée du paramètre d'attribut pour produire des résultats appropriés.
Utilisation
-
Les attributs de réseau paramétrés permettent de modéliser un aspect dynamique de la valeur d'un attribut. Par exemple, un tunnel avec une restriction de hauteur de 12 pieds peut être modélisé à l'aide d'un paramètre. Dans ce cas, la hauteur du véhicule en pieds doit être spécifiée en tant que valeur de paramètre. Cette restriction est alors égale à "vrai" si la hauteur du véhicule est supérieure à 12 pieds. De la même façon, un pont peut comporter un paramètre pour spécifier une restriction de poids.
-
Cet outil doit être utilisé uniquement avec des couches d'analyse de réseau ayant des attributs de réseau avec des paramètres définis dessus.
-
Cet outil permet de modifier à plusieurs reprises la valeur d'un paramètre existant avant de résoudre une couche d'analyse de réseau.
-
Les nouveaux paramètres attributaires peuvent être créés à partir de la boîte de dialogue des propriétés de jeu de données réseau dans la fenêtre Catalogue ou dans ArcCatalog.
Syntaxe
Paramètre | Explication | Type de données |
in_network_analysis_layer |
Couche d'analyse de réseau pour laquelle la valeur du paramètre attributaire doit être mise à jour. | Network Analyst Layer |
parameterized_attribute |
Attribut de réseau dont le paramètre doit être mis à jour. | String |
attribute_parameter_name |
Paramètre de l'attribut de réseau devant être mis à jour. Les paramètres de type Objet ne peuvent pas être mis à jour à l'aide de l'outil. | String |
attribute_parameter_value (Facultatif) |
Valeur à définir pour le paramètre d'attribut. Il peut s'agir d'une chaîne, d'un nombre, d'une date ou d'une valeur booléenne (vrai, faux). Si la valeur n'est pas spécifiée, la valeur du paramètre d'attribut est définie comme étant Null. Astuce : Si la valeur de paramètre contient un tableau, séparez les éléments du tableau à l'aide de la valeur définie pour le caractère de séparation localisé. Par exemple, aux Etats-Unis, vous utiliseriez très probablement la virgule pour séparer les éléments. Ainsi un tableau de trois nombres pourrait avoir l'aspect suivant : "5,10,15". | String |
Exemple de code
Exécute l'outil avec tous les paramètres.
import arcpy arcpy.UpdateAnalysisLayerAttributeParameter_na("Route","HeightRestriction", "MaxHeight",12.0)
Le script Python autonome suivant illustre l'utilisation de l'outil Mise à jour du paramètre de l'attribut d'analyse de la couche pour trouver le meilleur itinéraire qui évite les passages supérieurs de faible dégagement ou les tunnels pour certains véhicules.
# Name: UpdateAnalysisLayerAttributeParameter_Workflow.py # Description: Find the best route that avoids low clearance overpasses or # tunnels for certain vehicles and save results to a layer file. # 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/RhodeIsland.gdb" env.overwriteOutput = True #Set local variables inNetworkDataset = "Transportation/Streets_ND" outNALayer = "BestTruckRoute" impedanceAttribute = "TravelTime" accumulateAttribute = ['Length'] parameterizedAttribute = "HeightRestriction" restrictions = ["Oneway", parameterizedAttribute, "TurnRestriction"] searchTolerance = "2000 Meters" parameterName = "VehicleHeight" truckHeight = 15 inStops = "Analysis/DeliveryLocations" outLayerFile = "C:/data/output" + "/" + outNALayer + ".lyr" #Make a new route layer. Along with the total travel time, we also want to #find out the total distance. So we accumulate "Length" attribute. We want #to obey the oneway, turn restrictions and since we are routing trucks that #need a particular clearence, we want to use Height restriction. arcpy.MakeRouteLayer_na(inNetworkDataset, outNALayer, impedanceAttribute, "", "", "", accumulateAttribute,"NO_UTURNS", restrictions) #Load the Delivery locations as stops using default field map arcpy.AddLocations_na(outNALayer, "Stops", inStops, "", searchTolerance) #As we wish to route trucks which require a clearance of 15 meters, #we will set the VehicleHeight parameter on HeightRestriction attribute. #This would mean that all streets which have a clearance of less than 15 #meters will be restricted. arcpy.UpdateAnalysisLayerAttributeParameter_na(outNALayer, parameterizedAttribute, parameterName, truckHeight) #Solve the route layer arcpy.Solve_na(outNALayer) #Save the solved route layer as a layer file on disk using 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)