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
-
Nachdem Sie den Analyse-Layer mit diesem Werkzeug erstellt haben, können Sie diesem mithilfe des Werkzeugs Standorte hinzufügen Netzwerk-Analyseobjekte hinzufügen, die Analyse mithilfe des Werkzeugs Berechnen berechnen und die Ergebnisse mithilfe des Werkzeugs In Layer-Datei speichern auf einem Datenträger speichern.
-
Wenn Sie das Werkzeug in Geoverarbeitungsmodellen verwenden und das Modell als Werkzeug ausgeführt wird, muss der Ausgabenetzwerkanalyse-Layer als Modellparameter festgelegt werden. Andernfalls wird der Ausgabe-Layer nicht dem Inhaltsverzeichnis in ArcMap hinzugefügt.
Syntax
Parameter | Erläuterung | Datentyp |
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) |
| Boolean |
ordering_type (optional) |
Gibt die Anordnung der Stopps an, wenn Sie "FIND_BEST_ORDER" verwenden.
| String |
time_windows (optional) | Gibt an, ob für die Stopps Zeitfenster verwendet werden.
| 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. Für jedes akkumulierte Kostenattribut wird den Routen, die vom Solver ausgegeben werden, eine Eigenschaft "Total_[Impedance]" hinzugefügt. | String |
UTurn_policy (optional) |
Die Wendenregel an Knoten. Das Zulassen von Wenden bedeutet, dass der Solver an einem Knoten wenden und auf der gleichen Straße wieder zurückfahren kann. Bei Knoten kann es sich um Straßenkreuzungen und Sackgassen handeln. Das heißt, manche Fahrzeuge können wenden, manche nicht. Aus diesem Grund gibt der Parameter "Wendenregel" implizit an, wie viele Kanten mit dem Knoten verbunden sind. Dies wird als Knotenvalenz bezeichnet. Die zulässigen Werte für diesen Parameter sind unten aufgelistet, gefolgt von einer Beschreibung ihrer Bedeutung hinsichtlich der Knotenvalenz.
Tipp: Wenn Sie eine genauer definierte Wendenregel benötigen, fügen Sie einen Evaluator für die globale Verzögerung bei Kantenübergängen zu einem Netzwerkkostenattribut hinzu, oder passen Sie dessen Einstellungen an. Gehen Sie bei der Konfiguration von U-förmigen Kantenübergängen besonders sorgfältig vor. Prüfen Sie ferner die Einstellung der CurbApproach-Eigenschaft Ihrer Netzwerkstandorte. | String |
restriction_attribute_name [restriction_attribute_name,...] (optional) |
Liste von Restriktionsattributen, die während der Analyse angewendet werden. | String |
hierarchy (optional) |
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) |
Veraltet: 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.
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.
Nach dem Berechnen werden die Start- und Endzeiten in die Ausgaberoute übernommen. Diese Start- und Endzeiten werden auch beim Erzeugen von Wegbeschreibungen verwendet. | Date |
Codebeispiel
Ausführen des Werkzeugs, wenn nur die erforderlichen Parameter verwendet werden.
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.MakeRouteLayer("Transportation/Streets_ND","WorkRoute","Minutes")
Ausführen des Werkzeugs unter Verwendung aller Parameter.
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.MakeRouteLayer("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")
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"
outNALayerName = "BestRoute"
impedanceAttribute = "TravelTime"
inAddressLocator = "SanFranciscoLocator"
inAddressTable = "C:/data/StopAddresses.csv"
inAddressFields = "Street Address VISIBLE NONE"
outStops = "GeocodedStops"
outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
#Create a new Route layer. For this scenario, the default value for all the
#remaining parameters statisfies the analysis requirements
outNALayer = arcpy.na.MakeRouteLayer(inNetworkDataset, outNALayerName,
impedanceAttribute)
#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"]
#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.geocoding.GeocodeAddresses(inAddressTable, inAddressLocator,
inAddressFields, outStops)
#Load the geocoded address locations as stops mapping the address field from
#geocoded stop features as Name property using field mappings.
fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer, stopsLayerName)
fieldMappings["Name"].mappedFieldName = "Address"
arcpy.na.AddLocations(outNALayer, stopsLayerName, outStops, fieldMappings,
"", exclude_restricted_elements = "EXCLUDE")
#Solve the route layer, ignore any invalid locations such as those that
#can not be geocoded
arcpy.na.Solve(outNALayer,"SKIP")
#Save the solved route layer as a layer file on disk with 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)