Einzugsgebiet-Layer erstellen (Network Analyst)
Zusammenfassung
Erstellt einen Netzwerkanalyse-Layer für Einzugsgebiete und legt seine Analyseeigenschaften fest. Ein Einzugsgebiet-Analyse-Layer ist nützlich, wenn Sie die Erreichbarkeitsfläche von einem Einrichtungsstandort aus innerhalb eines gegebenen Grenzkostenwertes bestimmen möchten.
Die Werkzeuge Einzugsgebiete erstellen und Einzugsgebiets-Layer erstellen sind ähnlich, sie wurden jedoch für unterschiedliche Zwecke entwickelt. Verwenden Sie Einzugsgebiete erstellen, wenn Sie einen Geoverarbeitungs-Service einrichten. Dies vereinfacht den Einrichtungsprozess. Verwenden Sie andernfalls Einzugsgebiets-Layer erstellen. Verwenden Sie Einzugsgebiets-Layer erstellen ferner, wenn Sie Einzugsgebietslinien erstellen müssen; Einzugsgebiete erstellen bietet keine Option zum Erstellen von Linien.
Um einen Einzugsgebiet-Geoverarbeitungs-Service mit Einzugsgebiete erstellen zu erstellen, müssen Sie nur ein Werkzeug einrichten. Dann können Sie das Werkzeug direkt als Service veröffentlichen. Dagegen müssen Sie für die Erstellung eines Einzugsgebiet-Geoverarbeitungs-Service mit Einzugsgebiets-Layer erstellen ein Modell erstellen, dieses ordnungsgemäß mit verschiedenen anderen Werkzeugen verbinden und das Modell veröffentlichen.
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 Einzugsgebietanalyse ausgeführt wird. | Network Dataset Layer |
out_network_analysis_layer |
Name des zu erstellenden Netzwerkanalyse-Layers für das Einzugsgebiet. | String |
impedance_attribute |
Das Kostenattribut, das in der Analyse als Impedanz verwendet wird. | String |
travel_from_to (optional) |
Gibt die Fahrtrichtung zu oder von den Einrichtungen an.
Mithilfe dieser Option können in einem Netzwerk mit Beschränkungen für Einbahnstraßen und unterschiedlichen Impedanzen basierend auf der Fahrtrichtung unterschiedliche Einzugsgebiete ermittelt werden. Das Einzugsgebiet für einen Pizza-Lieferservice sollte beispielsweise von der Einrichtung weg erstellt werden, wobei das Einzugsgebiet für ein Krankenhaus zur Einrichtung hin erstellt werden sollte. | String |
default_break_values (optional) |
Standardimpedanzwerte, die die Ausdehnung des Einzugsgebiets angeben, das berechnet werden soll. Der Standardwert kann durch Angabe des Unterbrechungswertes für die Einrichtungen überschrieben werden. Es können mehrere Polygonunterbrechungen festgelegt werden, um konzentrische Einzugsgebiete zu erstellen. Wenn Sie zum Beispiel 2-, 3- und 5-Minuten-Einzugsgebiete für dieselbe Einrichtung ermitteln möchten, geben Sie für den Parameter "Standardunterbrechungswerte" Folgendes ein: "2 3 5". (Die Zahlen 2, 3 und 5 müssen dabei durch Leerzeichen getrennt werden.) | String |
polygon_type (optional) |
Gibt den Polygontyp an, der generiert werden soll.
Wenn sich die verwendeten Daten auf ein Stadtgebiet mit einem gitterähnlichen Netzwerk beziehen, ist der Unterschied zwischen generalisierten und detaillierten Polygonen minimal. Bei Gebirgs- und Landstraßen zeigen detaillierte Polygone jedoch weitaus genauere Ergebnisse als generalisierte Polygone. | String |
merge (optional) |
Gibt die Optionen an, um Polygone zusammenzuführen, für die ähnliche Unterbrechungswerte angegeben sind. Diese Option ist nur beim Generieren von Polygonen für mehrere Einrichtungen anwendbar.
| String |
nesting_type (optional) |
Gibt an, ob konzentrische Einzugsgebiet-Polygone als Scheiben oder als Ringe erstellt werden sollen. Diese Option ist nur anwendbar, wenn mehrere Unterbrechungswerte für die Einrichtungen angegeben werden.
| String |
line_type (optional) |
Gibt den Linientyp an, der auf Grundlage der Einzugsgebiet-Analyse generiert werden soll. Wenn Sie die Option "TRUE_LINES" oder "TRUE_LINES_WITH_MEASURES" für große Einzugsgebiete auswählen, erhöht sich der entsprechende für die Analyse benötigte Arbeitsspeicherbedarf.
| String |
overlap (optional) |
Legt fest, ob bei der Berechnung der Linien für das Einzugsgebiet überlappende Linien generiert werden.
| Boolean |
split (optional) |
| Boolean |
excluded_source_name [excluded_source_name,...] (optional) |
Gibt die Liste der Netzwerkquellen an, die beim Generieren der Polygone ausgeschlossen werden sollen. Die Geometrie der durchlaufenen Elemente von den ausgeschlossenen Quellen wird aus allen Polygonen entfernt. Dies ist nützlich, wenn Sie einige Netzwerkquellen haben, die Sie nicht in die Polygonerstellung einbinden möchten, da auf diese Weise weniger genaue Polygone erstellt werden oder diese Quellen für die Einzugsgebiet-Analyse belanglos sind. Wenn Sie beispielsweise in einem multimodalen Netzwerk mit Straßen- und Bahnstrecken ein Fahrzeit-Einzugsgebiet erstellen, sollten Sie die Bahnstrecken aus der Polygonerstellung ausschließen, um ein genaues Modell für die Fahrtstrecke eines Kraftfahrzeugs erstellen zu können. Das Ausschließen einer Netzwerkquelle aus Einzugsgebiet-Polygonen bedeutet nicht, dass diese Quellen nicht durchlaufen werden. Durch das Ausschließen von Quellen aus Einzugsgebiet-Polygonen wird nur die Polygon-Form der Einzugsgebiete beeinflusst. Wenn Sie das Durchlaufen einer bestimmten Netzwerkquelle verhindern möchten, müssen Sie bei der Definition des Netzwerk-Datasets eine entsprechende Beschränkung anwenden. | String |
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 |
polygon_trim (optional) |
| Boolean |
poly_trim_value (optional) |
Gibt die Entfernung an, innerhalb der die Einzugsgebietspolygone gekürzt werden. Der Parameter umfasst einen Wert und die Einheiten für die Entfernung. Der Standardwert beträgt 100 Meter. | Linear unit |
lines_source_fields (optional) |
| Boolean |
hierarchy (optional) |
The parameter is not used if a hierarchy attribute is not defined on the network dataset used to perform the analysis. In such cases, use "#" as the parameter value. | Boolean |
time_of_day (optional) |
Die Abfahrtszeit von oder die Ankunftszeit bei den Einrichtungen des Einzugsgebiet-Layers. Ob der Wert als Abfahrts- oder Ankunftszeit interpretiert wird, hängt davon ab, ob die Fahrt zu der Einrichtung hin oder von der Einrichtung weg führt.
Wenn Sie ein verkehrsbasiertes Impedanz-Attribut ausgewählt haben, wird die Lösung auf Grundlage des dynamischen Verkehrsaufkommens zu der hier angegeben Tageszeit generiert. Sie können ein Datum und eine Uhrzeit als 5/14/2012 10:30 AM angeben. Statt ein bestimmtes Datum zu verwenden, kann ein Wochentag mithilfe der folgenden Datumsangaben angegeben werden.
Durch wiederholtes Berechnen der gleichen Analyse mit unterschiedlichen Tageszeiten können Sie ermitteln, wie sich die Erreichbarkeit einer Einrichtung über die Zeit verändert. Beispiel: Das Einzugsgebiet von 5 MInuten um eine Feuerwache ist in den frühen Morgenstunden relativ groß, wird während der morgendlichen Hauptverkehrszeit kleiner, nimmt dann am späteren Vormittag wieder zu usw. | 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.MakeServiceAreaLayer("Transportation/Streets_ND","FireStationCoverage",
"Minutes")
Ausführen des Werkzeugs unter Verwendung aller Parameter.
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb"
arcpy.na.MakeServiceAreaLayer("Transportation/ParisNet","WarehouseCoverage",
"Drivetime","TRAVEL_FROM","5 10 15",
"SIMPLE_POLYS", "NO_OVERLAP","RINGS","TRUE_LINES",
"NON_OVERLAP","NO_SPLIT",
["Metro_Lines","Transfer_Stations",
"Transfer_Street_Station"],
["Meters","Drivetime"],"ALLOW_DEAD_ENDS_ONLY",
["Oneway"],"NO_TRIM_POLYS","",
"LINES_SOURCE_FIELDS")
Das folgende eigenständige Python-Skript veranschaulicht, wie Sie mit dem Werkzeug "MakeServiceAreaLayer" Einzugsgebiete von 1, 2 und 3 Minuten um eine Feuerwache generieren.
# Name: MakeServiceAreaLayer_Workflow.py
# Description: Generate 1-,2-,3- minute service area around fire stations and
# save the results to a layer file on disk. The service area
# polygons can be used to visualize the areas that do not have
# adequate coverage from the fire stations
# 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 = "FireStationCoverage"
impedanceAttribute = "TravelTime"
inFacilities = "Analysis/FireStations"
outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
#Create a new service area layer. We wish to generate the service area
#polygons as rings, so that we can easily visualize the coverage for any
#given location. We also want overlapping polygons as we can determine the
#number of fire stations that cover a given location. We use hierarchy to
#speed up the time taken to create the polygons. We will specify these
#options while creating the new service area layer.
outNALayer = arcpy.na.MakeServiceAreaLayer(inNetworkDataset, outNALayerName,
impedanceAttribute, "TRAVEL_FROM", "1 2 3",
"SIMPLE_POLYS", "NO_MERGE", "RINGS",
hierarchy = "USE_HIERARCHY")
#Get the layer object from the result object. The service layer can now be
#referenced using the layer object.
outNALayer = outNALayer.getOutput(0)
#Get the names of all the sublayers within the service area layer.
subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
#Stores the layer names that we will use later
facilitiesLayerName = subLayerNames["Facilities"]
#Load the fire stations as facilities using default field mappings and
#default search tolerance
arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", "")
#Solve the service area layer
arcpy.na.Solve(outNALayer)
#Save the solved service area 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)