Attributparameter für Analyse-Layer aktualisieren (Network Analyst)
Zusammenfassung
Aktualisiert den Netzwerkattribut-Parameterwert für einen Netzwerkanalyse-Layer. Das Werkzeug sollte verwendet werden, um den Wert eines Attributparameters für einen Netzwerkanalyse-Layer vor der Berechnung durch das Werkzeug Berechnen zu aktualisieren. Damit wird sichergestellt, dass für die Berechnung der angegebene Wert des Attributparameters verwendet und das entsprechende Ergebnis erzeugt wird.
Verwendung
-
Mithilfe der parametrierten Netzwerkattribute können dynamische Aspekte eines Attributwerts modelliert werden. So kann beispielsweise ein Tunnel mit einer Höhenbeschränkung von 12 Fuß mit einem Parameter modelliert werden. In diesem Fall sollte die Höhe des Fahrzeugs (in Fuß) als angegebener Parameterwert verwendet werden. Diese Einschränkung wird dann als "Wahr" bewertet, wenn das Fahrzeug höher als 12 Fuß ist. Entsprechend kann eine Brücke einen Parameter zur Angabe einer Gewichtsbeschränkung aufweisen.
-
Dieses Werkzeug sollte nur für Netzwerkanalyse-Layer verwendet werden, die Netzwerkattribute mit definierten Parametern aufweisen.
-
Dieses Werkzeug kann verwendet werden, um wiederholt den Wert eines vorhandenen Parameters zu ändern, bevor ein Netzwerkanalyse-Layer berechnet wird.
-
Neue Attributparameter können im Dialogfeld mit Netzwerk-Dataset-Eigenschaften im Fenster Katalog oder in ArcCatalog erstellt werden.
Syntax
Parameter | Erläuterung | Datentyp |
in_network_analysis_layer |
Netzwerkanalyse-Layer, für den der Attribut-Parameterwert aktualisiert wird. | Network Analyst Layer |
parameterized_attribute |
Das Netzwerkattribut, dessen Attribut-Parameterwert aktualisiert wird. | String |
attribute_parameter_name |
Der Parameter des Netzwerkattributs, der aktualisiert wird. Die Parameter des Typs "Objekt" können mit diesem Werkzeug nicht aktualisiert werden. | String |
attribute_parameter_value (optional) |
Der Wert, der für den Attributparameter festgelegt wird. Dies kann eine Zeichenfolge, eine Zahl, ein Datum oder ein boolescher Wert (True, False) sein. Wenn der Wert nicht angegeben ist, wird der Attributparameterwert auf Null festgelegt. Tipp: Wenn der Parameterwert ein Array umfasst, müssen die Elemente im Array durch das Zeichen getrennt werden, das derzeit als Trennzeichen festgelegt ist. In den USA würde beispielsweise sehr wahrscheinlich ein Kommazeichen als Trennzeichen für die Elemente verwendet werden. Die Darstellung eines Arrays mit drei Zahlen würde also wie folgt aussehen: "5,10,15". | String |
Codebeispiel
Ausführen des Werkzeugs unter Verwendung aller Parameter.
import arcpy arcpy.UpdateAnalysisLayerAttributeParameter_na("Route","HeightRestriction", "MaxHeight",12.0)
Im folgenden eigenständigen Python-Skript wird veranschaulicht, wie das Werkzeug "UpdateAnalysisLayerAttributeParameter" verwendet werden kann, um die optimale Route zu ermitteln, bei der Überführungen oder Tunnel mit geringer Durchfahrtshöhe für bestimmte Fahrzeuge vermieden werden.
# 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)