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.

Vorversion:

Dies ist ein veraltetes Werkzeug. Anstatt die Attributparameterwerte des Netzwerkanalyse-Layers zum Zeitpunkt der Analyse zu aktualisieren, sollten Sie Attributparameterwerte im Voraus festlegen, indem Sie Reisemodi für die Netzwerkdatenquelle konfigurieren. Wählen Sie bei der Analyse einfach den richtigen Reisemodus aus.

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.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Netzwerkanalyse-Layer

Netzwerkanalyse-Layer, für den der Attribut-Parameterwert aktualisiert wird.

Network Analyst Layer
Attribute

Das Netzwerkattribut, dessen Attribut-Parameterwert aktualisiert wird.

String
Parameter

Der Parameter des Netzwerkattributs, der aktualisiert wird. Die Parameter des Typs "Objekt" können mit diesem Werkzeug nicht aktualisiert werden.

String
Wert
(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.

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

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Aktualisierter Eingabe-Netzwerkanalyse-Layer

Der aktualisierte Netzwerkanalyse-Layer.

Network Analyst-Layer

arcpy.na.UpdateAnalysisLayerAttributeParameter(in_network_analysis_layer, parameterized_attribute, attribute_parameter_name, {attribute_parameter_value})
NameErlä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.

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

Abgeleitete Ausgabe

NameErläuterungDatentyp
output_layer

Der aktualisierte Netzwerkanalyse-Layer.

Network Analyst-Layer

Codebeispiel

UpdateAnalysisLayerAttributeParameter – Beispiel 1 (Python-Fenster)

Ausführen des Werkzeugs unter Verwendung aller Parameter.

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 UpdateAnalysisLayerAttributeParameter die beste Route für LKWs 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: Use the network dataset's length and height restriction attribute
#               parameters to find a route suitable for transporting a large
#               wind turbine blade. The results are saved to a layer file.
# Requirements: Network Analyst Extension

#Import system modules
import arcpy
from arcpy import env
import os

try:
    #Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
    if arcpy.CheckExtension("network") == "Available":
        arcpy.CheckOutExtension("network")
    else:
        raise arcpy.ExecuteError("Network Analyst Extension license is not available.")
    
    #Set environment settings
    output_dir = "C:/Data"
    #The NA layer's data will be saved to the workspace specified here
    env.workspace = os.path.join(output_dir, "Output.gdb")
    env.overwriteOutput = True

    #Set local variables
    input_gdb = "C:/Data/SanDiego.gdb"
    network = os.path.join(input_gdb, "Transportation", "Streets_ND")
    layer_name = "WindTurbineRoute"
    impedance = "Meters"
    restrictions = ["Driving a Truck", "Height Restriction", "Oneway",
            "Length Restriction", "National STAA and Locally Preferred Routes"]
    seaport = os.path.join(input_gdb, "Analysis", "Port")
    wind_farm = os.path.join(input_gdb, "Analysis", "WindFarm")
    output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")

    #Make a new route layer. Use restriction attributes relevant to trucking
    #oversize loads
    result_object = arcpy.na.MakeRouteLayer(network, layer_name, impedance,
                                        restriction_attribute_name=restrictions)

    #Get the layer object from the result object. The route layer can
    #now be referenced using the layer object.
    layer_object = result_object.getOutput(0)

    #Set the vehicle height and length attribute parameters to the dimensions of
    #the wind turbine transport truck. If these dimensions exceed the limits
    #associated with a street feature, that street will be restricted, and the
    #resulting route will avoid it.
    arcpy.na.UpdateAnalysisLayerAttributeParameter(layer_object,
                        "Height Restriction", "Vehicle Height (feet)", 13.25)
    arcpy.na.UpdateAnalysisLayerAttributeParameter(layer_object,
                        "Length Restriction", "Vehicle Length (feet)", 80)

    #Load the origin and destination points as Stops in the Route
    sublayer_names = arcpy.na.GetNAClassNames(layer_object)
    stops_layer_name = sublayer_names["Stops"]
    arcpy.na.AddLocations(layer_object, stops_layer_name, seaport, "", "")
    arcpy.na.AddLocations(layer_object, stops_layer_name, wind_farm, "", "",
                            append="APPEND")

    #Solve the route layer
    arcpy.na.Solve(layer_object)

    #Save the solved route layer as a layer file on disk
    layer_object.saveACopy(output_layer_file)

    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 occurred on line %i" % tb.tb_lineno))
    print((str(e)))

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja