Berechnen (Network Analyst)

Zusammenfassung

Berechnet das Netzwerkanalyse-Layer-Problem auf der Grundlage der Netzwerkstandorte und Eigenschaften.

Verwendung

  • Falls bei der Berechnung ein Fehler auftritt, finden Sie in den Warn- und Fehlermeldungen hilfreiche Informationen zu den Ursachen des Fehlers.

  • Stellen Sie sicher, dass Sie vor dem Ausführen dieses Werkzeugs alle Parameter im Netzwerkanalyse-Layer angeben, die zur Berechnung des Problems notwendig sind.

  • Das Werkzeug verbraucht Credits, wenn der Netzwerkanalyse-Layer ArcGIS Online als Netzwerkdatenquelle referenziert. Weitere Informationen finden Sie unter Credits.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Netzwerkanalyse-Layer

Der Netzwerkanalyse-Layer, für den die Analyse erstellt wird.

Network Analyst Layer
Ungültige Standorte ignorieren
(optional)

Gibt an, ob ungültige Eingabepositionen ignoriert werden. In der Regel sind Standorte ungültig, wenn sie nicht im Netzwerk verortet werden können. Werden ungültige Standorte ignoriert, überspringt sie der Solver und führt die Analyse mit den verbleibenden Standorten durch.

  • Aktiviert: Ungültige Eingabepositionen werden ignoriert, sodass nur gültige Standorte verwendet werden.
  • Deaktiviert: Alle Eingabepositionen werden verwendet. Bei einem ungültigen Eingabestandort schlägt die Analyse fehl.

Der Standardwert entspricht der Einstellung Ungültige Standorte bei Berechnung ignorieren des unter Eingabe-Netzwerkanalyse-Layer angegebenen Wertes.

Boolean
Bei Berechnungsfehler beenden
(optional)

Gibt an, ob die Ausführung des Werkzeugs angehalten und beendet wird, wenn während der Berechnung ein Fehler auftritt.

  • Aktiviert: Das Werkzeug wird angehalten und beendet, wenn im Solver ein Fehler auftritt. Dies ist die Standardeinstellung.
  • Deaktiviert: Das Werkzeug wird ausgeführt und die Ausführung wird fortgesetzt, selbst wenn im Solver ein Fehler auftritt. Alle vom Solver zurückgegebenen Fehlermeldungen werden in Warnmeldungen konvertiert. Verwenden Sie diese Option, wenn in der Anwendung eine Hintergrundverarbeitung aktiviert ist.
Boolean
Vereinfachungstoleranz
(optional)

Der Grad der Vereinfachung für die Ausgabegeometrie wird durch die Toleranz bestimmt. Wenn die Toleranz angegeben ist, muss die größer als null sein. Sie können eine bevorzugte Einheit auswählen. Standardmäßig werden Dezimalgrad verwendet.

Durch Angabe einer Vereinfachungstoleranz wird im Allgemeinen weniger Zeit zum Rendern von Routen oder Einzugsgebieten benötigt. Ein Nachteil ist jedoch, dass durch die Vereinfachung der Geometrie Stützpunkte entfernt werden, wodurch die räumliche Genauigkeit der Ausgabe bei größeren Maßstäben abnimmt.

Da eine Linie mit nur zwei Stützpunkten nicht weiter vereinfacht werden kann, hat dieser Parameter keine Auswirkungen auf die Darstellungszeit von Ausgaben, die aus nur einem Segment bestehen, z. B. geradlinige Routen, Linien in einer Start-Ziel-Kostenmatrix und Linien einer Location-Allocation-Analyse.

Linear Unit
Overrides
(optional)

Hinweis:

Dieser Parameter ist nur für die interne Verwendung vorgesehen.

String

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Network Analyst-Layer

Der berechnete Netzwerkanalyse-Layer.

Network Analyst Layer
Berechnung erfolgreich

Ein boolescher Wert, der angibt, ob die Berechnung erfolgreich war.

Boolean

arcpy.management.Solve(in_network_analysis_layer, {ignore_invalids}, {terminate_on_solve_error}, {simplification_tolerance}, {overrides})
NameErläuterungDatentyp
in_network_analysis_layer

Der Netzwerkanalyse-Layer, für den die Analyse erstellt wird.

Network Analyst Layer
ignore_invalids
(optional)

Gibt an, ob ungültige Eingabepositionen ignoriert werden. In der Regel sind Standorte ungültig, wenn sie nicht im Netzwerk verortet werden können. Werden ungültige Standorte ignoriert, überspringt sie der Solver und führt die Analyse mit den verbleibenden Standorten durch.

  • SKIPUngültige Eingabepositionen werden ignoriert, sodass nur gültige Standorte verwendet werden.
  • HALTAlle Eingabepositionen werden verwendet. Bei einem ungültigen Eingabestandort schlägt die Analyse fehl.

Der Standardwert entspricht der Eigenschaft ignoreInvalidLocations des unter in_network_analysis_layer angegebenen Wertes.

Boolean
terminate_on_solve_error
(optional)

Gibt an, ob die Ausführung des Werkzeugs angehalten und beendet wird, wenn während der Berechnung ein Fehler auftritt.

  • TERMINATEDas Werkzeug wird angehalten und beendet, wenn im Solver ein Fehler auftritt. Dies ist die Standardeinstellung. Bei Verwendung dieser Option wird das Result-Objekt nicht erstellt, wenn die Ausführung des Werkzeug aufgrund eines Solver-Fehlers beendet wird. Prüfen Sie die Geoverarbeitungsmeldungen zum ArcPy-Objekt.
  • CONTINUEDas Werkzeug wird ausgeführt und die Ausführung wird fortgesetzt, selbst wenn im Solver ein Fehler auftritt. Alle vom Solver zurückgegebenen Fehlermeldungen werden in Warnmeldungen konvertiert. Wenn Sie diese Option verwenden, wird immer ein Result-Objekt erstellt, und die maxSeverity-Eigenschaft des Result-Objekts wird auf 1 festgelegt. Verwenden Sie die getOutput-Methode des Result-Objekts mit dem Indexwert 1, um zu bestimmen, ob die Berechnung erfolgreich war.
Boolean
simplification_tolerance
(optional)

Der Grad der Vereinfachung für die Ausgabegeometrie wird durch die Toleranz bestimmt. Wenn die Toleranz angegeben ist, muss die größer als null sein. Sie können eine bevorzugte Einheit auswählen. Standardmäßig werden Dezimalgrad verwendet.

Durch Angabe einer Vereinfachungstoleranz wird im Allgemeinen weniger Zeit zum Rendern von Routen oder Einzugsgebieten benötigt. Ein Nachteil ist jedoch, dass durch die Vereinfachung der Geometrie Stützpunkte entfernt werden, wodurch die räumliche Genauigkeit der Ausgabe bei größeren Maßstäben abnimmt.

Da eine Linie mit nur zwei Stützpunkten nicht weiter vereinfacht werden kann, hat dieser Parameter keine Auswirkungen auf die Darstellungszeit von Ausgaben, die aus nur einem Segment bestehen, z. B. geradlinige Routen, Linien in einer Start-Ziel-Kostenmatrix und Linien einer Location-Allocation-Analyse.

Linear Unit
overrides
(optional)

Hinweis:

Dieser Parameter ist nur für die interne Verwendung vorgesehen.

String

Abgeleitete Ausgabe

NameErläuterungDatentyp
output_layer

Der berechnete Netzwerkanalyse-Layer.

Network Analyst Layer
solve_succeeded

Ein boolescher Wert, der angibt, ob die Berechnung erfolgreich war.

Boolean

Codebeispiel

Solve – Beispiel 1 (Python-Fenster)

Ausführen des Werkzeugs unter Verwendung aller Parameter.

arcpy.na.Solve("Route", "HALT", "TERMINATE", "10 Meters")
Solve – Beispiel 2 (Workflow)

Mit dem folgenden eigenständigen Python-Skript wird veranschaulicht, wie die Funktion Solve verwendet werden kann, um eine Analyse der nächstgelegenen Einrichtung zu erstellen und die Ergebnisse in einer Layer-Datei zu speichern.

# Name: Solve_Workflow.py
# Description: Solve a closest facility analysis to find the closest warehouse
#              from the store locations and save the results to a layer file on
#              disk.
# 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/Paris.gdb"
    network = os.path.join(input_gdb, "Transportation", "ParisMultimodal_ND")
    layer_name = "ClosestWarehouse"
    travel_mode = "Driving Time"
    facilities = os.path.join(input_gdb, "Analysis", "Warehouses")
    incidents = os.path.join(input_gdb, "Analysis", "Stores")
    output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")

    #Create a new closest facility analysis layer.
    result_object = arcpy.na.MakeClosestFacilityAnalysisLayer(network,
                                            layer_name, travel_mode,
                                            "TO_FACILITIES",
                                            number_of_facilities_to_find=1)

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

    #Get the names of all the sublayers within the closest facility layer.
    sublayer_names = arcpy.na.GetNAClassNames(layer_object)
    #Stores the layer names that we will use later
    facilities_layer_name = sublayer_names["Facilities"]
    incidents_layer_name = sublayer_names["Incidents"]

    #Load the warehouses as Facilities using the default field mappings and
    #search tolerance
    arcpy.na.AddLocations(layer_object, facilities_layer_name,
                            facilities, "", "")

    #Load the stores as Incidents. Map the Name property from the NOM field
    #using field mappings
    field_mappings = arcpy.na.NAClassFieldMappings(layer_object,
                                                    incidents_layer_name)
    field_mappings["Name"].mappedFieldName = "NOM"
    arcpy.na.AddLocations(layer_object, incidents_layer_name, incidents,
                          field_mappings, "")

    #Solve the closest facility layer
    arcpy.na.Solve(layer_object)

    #Save the solved closest facility 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))