Attributparameter für Analyse-Layer aktualisieren (Network Analyst)

Lizenzstufe:BasicStandardAdvanced

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

Syntax

UpdateAnalysisLayerAttributeParameter_na (in_network_analysis_layer, parameterized_attribute, attribute_parameter_name, {attribute_parameter_value})
ParameterErläuterungDatentyp
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:

  • PROHIBITED
  • AVOID_HIGH
  • AVOID_MEDIUM
  • AVOID_LOW
  • PREFER_LOW
  • PREFER_MEDIUM
  • PREFER_HIGH

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.

TippTipp:

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

UpdateAnalysisLayerAttributeParameter – Beispiel 1 (Python-Fenster)

Ausführen des Werkzeugs unter Verwendung aller Parameter.

import arcpy
arcpy.na.UpdateAnalysisLayerAttributeParameter("Route", "Height Restriction",
                                               "Vehicle Height (feet)", 12.0)
UpdateAnalysisLayerAttributeParameter – Beispiel 2 (Workflow)

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)

Umgebung

Verwandte Themen

Lizenzierungsinformationen

ArcGIS for Desktop Basic: Ja
ArcGIS for Desktop Standard: Ja
ArcGIS for Desktop Advanced: Ja
5/9/2014