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 Attributwertes 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. Wenn der Attributparameter einen eingeschränkten Verwendungstyp aufweist, kann der textbasiertes Schlüsselwort oder als ein numerischer Wert angegeben werden. Das Schlüsselwort bzw. der numerische Wert bestimmt, ob durch das Restriktionsattribut die damit verknüpften Netzwerkelemente verhindert, vermieden oder bevorzugt werden. Weiterhin kann der Grad, zu dem Netzwerkelemente vermieden oder bevorzugt werden, durch die Schlüsselwörter "HIGH", "MEDIUM" oder "LOW" definiert werden. Die folgenden Schlüsselwörter werden unterstützt:
Bei numerischen Werten über 1 werden die eingeschränkten Elemente vermieden. Je höher der Wert ist, umso mehr Elemente werden vermieden. Bei numerischen Werten zwischen 0 (null) und 1 werden die eingeschränkten Elemente bevorzugt. Je niedriger der Wert ist, umso mehr eingeschränkte Elemente werden bevorzugt. Negative Zahlen verhindern eingeschränkte Elemente. Tipp: Wenn der Parameterwert ein Array enthält, trennen Sie die Array-Elemente mit dem lokalen Trennzeichen. 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 sähe demnach wie folgt aus: "5,10,15". | String |
Codebeispiel
Ausführen des Werkzeugs unter Verwendung aller Parameter.
import arcpy
arcpy.na.UpdateAnalysisLayerAttributeParameter("Route", "Height Restriction",
"Vehicle Height (feet)", 12.0)
Das folgende eigenständige Python-Skript veranschaulicht, wie Sie mit dem Werkzeug " Attributparameter für Analyse-Layer aktualisieren" die beste Route für LKW ermitteln, bei der Überführungen oder Tunnel mit geringer Durchfahrthöhe sowie gebührenpflichtige Straßen vermieden und speziell für LKW ausgewiesene Routen bevorzugt werden.
# Name: UpdateAnalysisLayerAttributeParameter_Workflow.py
# Description: Find the best route for trucks that avoids low clearance
# overpasses or tunnels, avoids toll roads and prefers desginated
# truck routes. The results are saved 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/SanDiego.gdb"
env.overwriteOutput = True
#Set local variables
inNetworkDataset = "Transportation/Streets_ND"
outNALayerName = "BestTruckRoute"
impedanceAttribute = "TravelTime"
accumulateAttribute = ['Meters']
tollRoadRestriction = "Avoid Toll Roads"
preferTruckRouteRestriction = "National STAA Preferred Route"
parameterName = "Restriction Usage"
inStops = "Analysis/Customers"
outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
#Make a new route layer. Along with the total travel time, we also want to
#find out the total distance. So we accumulate "Meters" attribute. We will
#create the route layer with defaultrestrictions and add the additional
#restrictions that we want the routes to honor.
outNALayer = arcpy.na.MakeRouteLayer(inNetworkDataset, outNALayerName,
impedanceAttribute, "", "", "",
accumulateAttribute,"NO_UTURNS")
#Get the layer object from the result object. The route layer can
#now be referenced using the layer object.
outNALayer = outNALayer.getOutput(0)
#Get the names of all the sublayers within the route layer.
subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
#Stores the layer names that we will use later
stopsLayerName = subLayerNames["Stops"]
#Modify the restriction attributes for the route layer. We don't want to use
#Driving an Automobile restriction and wan't to use Driving a Truck,
#Avoid Toll Roads and National STAA Preferred Route restrictions.
solverProperties = arcpy.na.GetSolverProperties(outNALayer)
defaultRestrictions = solverProperties.restrictions
defaultRestrictions.remove("Driving an Automobile")
defaultRestrictions += ["Driving a Truck", tollRoadRestriction,
preferTruckRouteRestriction]
solverProperties.restrictions = defaultRestrictions
#Load the Delivery locations as stops using default field mappings
arcpy.na.AddLocations(outNALayer, stopsLayerName, inStops, "", "")
#As we wish avoid toll roads as much as possible and highly prefer the
#designated turck routes, we set the appropriate parameter values for the
#Restriction Usage parameter for these two restriction attributes.
arcpy.na.UpdateAnalysisLayerAttributeParameter(outNALayer, tollRoadRestriction,
parameterName, "AVOID_HIGH")
arcpy.na.UpdateAnalysisLayerAttributeParameter(outNALayer,
preferTruckRouteRestriction,
parameterName, "PREFER_HIGH")
#Solve the route layer
arcpy.na.Solve(outNALayer)
#Save the solved route layer as a layer file on disk using 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)