Mit der Network Analyst-Lizenz verfügbar.
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.
Syntax
Solve_na (in_network_analysis_layer, {ignore_invalids}, {terminate_on_solve_error}, {simplification_tolerance})
Parameter | Erläuterung | Datentyp |
in_network_analysis_layer | Der Netzwerkanalyse-Layer, für den die Analyse erstellt wird. | Network Analyst Layer |
ignore_invalids (optional) |
| Boolean |
terminate_on_solve_error (optional) |
| 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 mit nur einem Segment, z. B. geradlinige Routen, Linien in einer Start-Ziel-Kostenmatrix und Linien in einem Location-Allocation-Problem. | Linear unit |
Codebeispiel
Berechnen – Beispiel 1 (Python-Fenster)
Ausführen des Werkzeugs unter Verwendung aller Parameter.
arcpy.na.Solve("Route", "HALT", "TERMINATE", "10 Meters")
Berechnen – Beispiel 2 (Workflow)
Mit dem folgenden eigenständigen Python-Skript wird veranschaulicht, wie das Werkzeug "Berechnen" 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
try:
#Check out the Network Analyst extension license
arcpy.CheckOutExtension("Network")
#Set environment settings
env.workspace = "C:/data/Paris.gdb"
env.overwriteOutput = True
#Set local variables
inNetworkDataset = "Transportation/ParisMultimodal_ND"
outNALayerName = "ClosestWarehouse"
impedanceAttribute = "Drivetime"
accumulateAttributeName = ["Meters"]
inFacilities = "Analysis/Warehouses"
inIncidents = "Analysis/Stores"
outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
#Create a new closest facility analysis layer. Apart from finding the drive
#time to the closest warehouse, we also want to find the total distance. So
#we will accumulate the "Meters" impedance attribute.
outNALayer = arcpy.na.MakeClosestFacilityLayer(inNetworkDataset,outNALayerName,
impedanceAttribute,"TRAVEL_TO",
"",1, accumulateAttributeName,
"NO_UTURNS")
#Get the layer object from the result object. The closest facility layer can
#now be referenced using the layer object.
outNALayer = outNALayer.getOutput(0)
#Get the names of all the sublayers within the closest facility layer.
subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
#Stores the layer names that we will use later
facilitiesLayerName = subLayerNames["Facilities"]
incidentsLayerName = subLayerNames["Incidents"]
#Load the warehouses as Facilities using the default field mappings and
#search tolerance
arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", "")
#Load the Stores as Incidents. Map the Name property from the NOM field
#using field mappings
fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer, incidentsLayerName)
fieldMappings["Name"].mappedFieldName = "NOM"
arcpy.na.AddLocations(outNALayer, incidentsLayerName, inIncidents,
fieldMappings,"")
#Solve the closest facility layer
arcpy.na.Solve(outNALayer)
#Save the solved closest facility 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 occurred on line %i" % tb.tb_lineno
print str(e)
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Erfordert Network Analyst
- ArcGIS Desktop Standard: Erfordert Network Analyst
- ArcGIS Desktop Advanced: Erfordert Network Analyst