Routen-Layer erstellen (Network Analyst)

Zusammenfassung

Erstellt einen Netzwerkanalyse-Layer für Routen und legt seine Analyseeigenschaften fest. Ein Routenanalyse-Layer ist nützlich, um die optimale Route zwischen mehreren Netzwerkstandorten auf der Grundlage der angegebenen Netzwerkkosten zu ermitteln.

Verwendung

Syntax

MakeRouteLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {find_best_order}, {ordering_type}, {time_windows}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {hierarchy_settings}, {output_path_shape}, {start_date_time})
ParameterErläuterungDatentyp
in_network_dataset

Das Netzwerk-Dataset, für das die Routenanalyse ausgeführt wird.

Network Dataset Layer
out_network_analysis_layer

Name des zu erstellenden Netzwerkanalyse-Layers für Routen.

String
impedance_attribute

Das Kostenattribut, das in der Analyse als Impedanz verwendet wird.

String
find_best_order
(optional)
  • FIND_BEST_ORDERDie Stopps werden neu angeordnet, um die optimale Route zu finden. Mit dieser Option wird die Routenanalyse vom Problem des kürzesten Wegs in das Handlungsreisenden-Problem geändert.
  • USE_INPUT_ORDERDie Stopps werden in der Eingabereihenfolge besucht. Dies ist die Standardeinstellung.
Boolean
ordering_type
(optional)

Gibt die Anordnung der Stopps an, wenn Sie "FIND_BEST_ORDER" verwenden.

  • PRESERVE_BOTHPreserves the first and last stops by input order as the first and last stops in the route.
  • PRESERVE_FIRSTPreserves the first stop by input order as the first stop in the route, but the last stop is free to be reordered.
  • PRESERVE_LASTPreserves the last stop by input order as the last stop in the route, but the first stop is free to be reordered.
  • PRESERVE_NONEFrees both the first and last stop to be reordered.
String
time_windows
(optional)

Specifies if time windows will be used at the stops.

  • USE_TIMEWINDOWSDie Route berücksichtigt Zeitfenster an den Stopps. Wenn ein Stopp vor dem Zeitfenster erreicht wird, kommt es zu einer Wartezeit, bis das Zeitfenster startet. Wenn ein Stopp nach dem Zeitfenster erreicht wird, kommt es zu einem Fehler. Die Zeitfensterüberschreitung insgesamt wird bei Berechnung der Route mit der Mindestimpedanz ausgeglichen. Diese Option ist nur gültig, wenn die Impedanz in Zeiteinheiten angegeben ist.
  • NO_TIMEWINDOWSDie Route ignoriert Zeitfenster an den Stopps. Dies ist die Standardeinstellung.
Boolean
accumulate_attribute_name
[accumulate_attribute_name,...]
(optional)

Liste der Kostenattribute, die während der Analyse akkumuliert werden sollen. Diese Akkumulationsattribute dienen ausschließlich zu Referenzzwecken. Der Solver verwendet nur das mit dem Parameter "Impedanz-Attribut" angegebene Kostenattribut zum Berechnen der Route.

For each cost attribute that is accumulated, a Total_[Impedance] property is added to the routes that are output by the solver.

String
UTurn_policy
(optional)

Wenden an Knoten, die beim Durchlaufen des Netzwerks zwischen Stopps auftreten, sind zulässig oder nicht.

  • ALLOW_UTURNSWenden sind an Knoten mit einer beliebigen Anzahl angrenzender Kanten erlaubt.
  • NO_UTURNSWenden sind an allen Knoten verboten. Beachten Sie, dass Wenden an Netzwerkstandorten auch dann erlaubt sind, wenn diese Einstellung ausgewählt wurde. Sie können jedoch die Eigenschaft "CurbApproach" der einzelnen Netzwerkstandorte festlegen, um Wenden zu verhindern.
  • ALLOW_DEAD_ENDS_ONLYWenden sind an allen Knoten verboten, außer es ist nur eine angrenzende Kante vorhanden (Sackgasse).
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLYWenden sind an Knoten, an denen genau zwei angrenzende Kanten aufeinander treffen, nicht erlaubt; an Kreuzungen (alle Knoten mit drei oder mehr angrenzenden Kanten) oder in Sackgassen (Knoten mit genau einer angrenzenden Kante) sind sie erlaubt.
String
restriction_attribute_name
[restriction_attribute_name,...]
(optional)

Liste von Restriktionsattributen, die während der Analyse angewendet werden.

String
hierarchy
(optional)
  • USE_HIERARCHY Verwenden Sie das Hierarchieattribut für die Analyse. Wenn eine Hierarchie verwendet wird, werden vom Solver Kanten einer höheren Rangstufe gegenüber Kanten niedrigerer Rangstufen bevorzugt. Hierarchische Berechnungen sind schneller und können verwendet werden, um die Präferenzen eines Fahrers auf der Straße zu simulieren, der – wenn möglich – lieber auf Autobahnen statt auf Landstraßen fährt, selbst wenn die Fahrstrecke dann länger ist. Diese Option kann nur angewendet werden, wenn das Eingabe-Netzwerk-Dataset ein Hierarchieattribut aufweist.
  • NO_HIERARCHYVerwenden Sie das Hierarchieattribut nicht für die Analyse. Wird keine Hierarchie verwendet, dann wird eine genaue Route für das Netzwerk-Dataset berechnet.

Der Parameter wird nicht verwenden, wenn für das Netzwerk-Dataset, das zum Ausführen der Analyse verwendet wird, kein Hierarchieattribut definiert wird. In solchen Fällen verwenden Sie "#" als Parameterwert.

Boolean
hierarchy_settings
(optional)

Ältere VersionenÄltere Versionen:

Vor Version 10 konnten mit diesem Parameter die Hierarchiebereiche für die Analyse von den im Netzwerk-Dataset festgelegten Standard-Hierarchiebereichen geändert werden. In Version 10 wird dieser Parameter nicht mehr unterstützt und muss als leere Zeichenfolge angegeben werden. Wenn Sie die Hierarchiebereiche für Ihre Analyse ändern möchten, aktualisieren Sie die Standard-Hierarchiebereiche im Netzwerk-Dataset.

Network Analyst Hierarchy Settings
output_path_shape
(optional)

Gibt den Shape-Typ für die Routen-Features an, die von der Analyse ausgegeben werden.

  • TRUE_LINES_WITH_MEASURESDie Ausgaberouten weisen die exakte Form der zugrunde liegenden Netzwerkquellen auf. Die Ausgabe umfasst zudem Routenmesswerte für die lineare Referenzierung. Die Messwerte nehmen ab dem ersten Halt zu und zeichnen die kumulierte Impedanz zum Erreichen einer definierten Position auf.
  • TRUE_LINES_WITHOUT_MEASURESDie Ausgaberouten weisen die exakte Form der zugrunde liegenden Netzwerkquellen auf.
  • STRAIGHT_LINESDas Ausgaberouten-Shape ist eine einzelne gerade Linie zwischen den Stopps.
  • NO_LINESFür die Ausgaberouten wird kein Shape erstellt.

Unabhängig vom ausgewählten Ausgabe-Shape-Typ wird die optimale Route immer anhand der Netzwerkimpedanz und nie anhand der Euklidischen Entfernung ermittelt. Dies bedeutet, dass sich nur die Routen-Shapes und nicht der zugrunde liegende Durchlauf des Netzwerks unterscheiden.

String
start_date_time
(optional)

Gibt ein Startdatum und eine Zeit für die Route an. Die Routenstartzeit wird i.d.R. verwendet, um Routen auf der Grundlage des Impedanz-Attributs zu suchen, das sich mit der Zeit des Tags ändert. So kann beispielsweise eine Startzeit von 9:00 Uhr verwendet werden, um eine Route zu suchen, für die die Stoßzeiten berücksichtigt werden. Der Standardwert für den Parameter ist "8:00 Uhr". Sie können ein Datum und eine Uhrzeit als "21.10.2005 10:30" angeben. Wenn sich die Route über mehrere Tage erstreckt und nur die Startzeit angegeben wurde, wird das aktuelle Datum verwendet.

Statt ein bestimmtes Datum zu verwenden, kann ein Wochentag mithilfe der folgenden Datumsangaben angegeben werden.

  • Heute – 30.12.1899
  • Sonntag – 31.12.1899
  • Montag – 1.1.1900
  • Dienstag – 2.1.1900
  • Mittwoch – 3.1.1900
  • Donnerstag – 4.1.1900
  • Freitag – 5.1.1900
  • Samstag – 6.1.1900
Wenn Sie beispielsweise angeben möchten, dass die Route am Dienstag um 17:00 Uhr starten soll, geben Sie den Parameterwert wie folgt an: 2.1.1900 17:00.

Nach dem Berechnen werden die Start- und Endzeiten in die Ausgaberoute übernommen. Diese Start- und Endzeiten werden auch beim Erzeugen von Wegbeschreibungen verwendet.

Diese Option ist nur gültig, als ein zeitbasiertes Kostenattribut als Impedanz-Attribut angegeben wurde.

Date

Codebeispiel

MakeRouteLayer – Beispiel 1 (Python-Fenster)

Ausführen des Werkzeugs, wenn nur die erforderlichen Parameter verwendet werden

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.MakeRouteLayer_na("Transportation/Streets_ND","WorkRoute","Minutes")
MakeRouteLayer – Beispiel 2 (Python-Fenster)

Ausführen des Werkzeugs unter Verwendung aller Parameter

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.MakeRouteLayer_na("Transportation/Streets_ND","InspectionRoute","Minutes",
                        "FIND_BEST_ORDER","PRESERVE_BOTH","USE_TIMEWINDOWS",
                        ["Meters","Minutes"],
                        "ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY",["Oneway"],
                        "USE_HIERARCHY","","TRUE_LINES_WITH_MEASURES",
                        "1/1/1900 9:00 AM")
MakeRouteLayer – Beispiel 3 (Workflow)

Mit dem folgenden eigenständigen Python-Skript wird veranschaulicht, wie das Werkzeug "MakeRouteLayer" verwendet werden kann, um die optimale Route für Stopps an den geokodierten Stopps zu ermitteln.

# Name: MakeRouteLayer_Workflow.py
# Description: Find a best route to visit the stop locations and save the 
#              route to a layer file. The stop locations are geocoded from a 
#              text file containing the addresses.
# 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/SanFrancisco.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outNALayer = "BestRoute"
    impedanceAttribute = "TravelTime"
    inAddressLocator = "SanFranciscoLocator"
    inAddressTable = "C:/data/StopAddresses.csv"
    inAddressFields = "Street Address VISIBLE NONE"
    fieldMappings = "Name Address #"
    outStops = "GeocodedStops"
    outLayerFile = "C:/data/output" + "/" + outNALayer + ".lyr"
    
    #Create a new Route layer. Once the route layer is created, it can be 
    #referenced using its name.  
    arcpy.MakeRouteLayer_na(inNetworkDataset, outNALayer, impedanceAttribute)
    
    #Geocode the stop locations from a csv file containing the addresses.
    #The Geocode Addresses tool can use a text or csv file as input table
    #as long as the first line in the file contains the field names.
    arcpy.GeocodeAddresses_geocoding(inAddressTable, inAddressLocator, 
                                     inAddressFields, outStops)
    
    #Load the geocoded address locations as stop smapping the address field from
    #geocoded stop features as Name property.
    arcpy.AddLocations_na(outNALayer,"Stops", outStops, fieldMappings, "")
    
    #Solve the route layer, ignore any invalid locations such as those that
    #can not be geocoded
    arcpy.Solve_na(outNALayer,"SKIP")
    
    #Save the solved route layer as a layer file on disk with 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)

Umgebungen

Verwandte Themen

Lizenzinformationen

ArcView: Ja
ArcEditor: Ja
ArcInfo: Ja

7/10/2012