Zusammenfassung
Sucht nach Eingabe-Features in einem Netzwerk und fügt Felder hinzu, die die Netzwerkstandorte der Eingabe-Features beschreiben. Das Werkzeug wird verwendet, um die Netzwerkstandortinformationen als Feature-Attribute zu speichern, um auf diese Weise die Features als Eingaben für eine Netzwerkanalyse schnell laden zu können.
Weitere Informationen zur Suche nach Features in einem Netzwerk
Verwendung
Dieses Werkzeug wird verwendet, um Standortfelder zu berechnen, die im Werkzeug Standorte hinzufügen eingegeben werden können. Es sollte für Features verwendet werden, die mehrmals als Eingabe in einen Netzwerkanalyse-Layer verwendet werden. Sobald die Standorte berechnet wurden, kann der Parameter Netzwerkstandortfelder statt Geometrie verwenden im Werkzeug Standorte hinzufügen verwendet werden, um die Features schnell als Netzwerkstandorte zu laden.
Dieses Werkzeug kann auch verwendet werden, um die Netzwerkstandorte, denen im Netzwerkanalyse-Layer kein Standort zugewiesen wurde, mit einem anderen Satz von Suchoptionen neu zu berechnen. Wenn beispielsweise die Stopps im Routennetzwerkanalyse-Layer anfänglich mit einer Suchtoleranz von 500 Metern hinzugefügt wurden und wenigen Stopps kein Standort zugewiesen wurde, können Sie die nicht zugewiesenen Stopps z. B. mit dem Werkzeug Layer nach Attributen auswählen auswählen und anschließend dieses Werkzeug erneut ausführen, um den Stopps-Sublayer als Eingabe-Features mit einer höheren Suchtoleranz anzugeben.
Dieses Werkzeug wird erheblich schneller ausgeführt, wenn die im Netzwerk-Dataset als Netzwerkquellen verwendeten Feature-Classes über einen gültigen und aktuellen räumlichen Index verfügen.
Syntax
CalculateLocations(in_point_features, in_network_dataset, {search_tolerance}, {search_criteria}, {match_type}, {source_ID_field}, {source_OID_field}, {position_field}, {side_field}, {snap_X_field}, {snap_Y_field}, {distance_field}, {snap_Z_field}, {location_field}, {exclude_restricted_elements}, {search_query}, {travel_mode})
Parameter | Erklärung | Datentyp |
in_point_features | Die Eingabe-Features, für die die Netzwerkstandorte berechnet werden. Für Linien- und Polygon-Features werden nur Geodatabase-Feature-Classes unterstützt, da die Netzwerkstandortinformationen in einem BLOB-Feld gespeichert (im Parameter Feld "Standortbereiche" angegeben) werden. | Table View |
in_network_dataset | Das Netzwerk-Dataset, das zum Berechnen der Standorte verwendet werden soll. Wenn ein Sublayer eines Netzwerkanalyse-Layers als Eingabe-Feature verwendet wird, muss der Parameter automatisch auf das Netzwerk-Dataset festgelegt werden, auf das vom Netzwerkanalyse-Layer verwiesen wird. | Network Dataset Layer |
search_tolerance (optional) | Die Suchtoleranz, die zur Ermittlung der Eingabe-Features im Netzwerk verwendet werden soll. Features, die sich außerhalb der Suchtoleranz befinden, bleiben unverortet. Der Parameter umfasst einen Wert und die Einheiten für die Toleranz. Die Standardeinstellung ist 5,000 Meter. Der Parameter wird nicht für die Berechnung der Standorte für Linien- oder Polygon-Features verwendet. | Linear Unit |
search_criteria [[Source, SnapType],...] (optional) | Die Quellen im Netzwerk-Dataset, die beim Ermitteln der Standorte durchsucht werden sollen, und die Teile der Geometrie (auch als Fangtypen bezeichnet), die verwendet werden sollen. Der Parameterwert wird als Liste mit geschachtelten Listen angegeben. Die geschachtelte Liste besteht aus zwei Werten, die den Namen und den Fangtyp für jede Netzwerkquelle angeben. Der Fangtyp wird anhand der Schlüsselwörter SHAPE, MIDDLE, END oder NONE angegeben.
Um mehrere Fangtypen für eine einzelne Netzwerkquelle anzugeben, verwenden Sie eine Kombination der Fangtypen-Schlüsselwörter getrennt durch einen Unterstrich. MIDDLE_END gibt beispielsweise an, dass die Standorte in der Mitte oder am Ende der Netzwerkquelle gefangen werden können. Für Geodatabase-Netzwerk-Datasets können die Fangtypen für jeden Subtype der Netzwerkquelle (["Streets : Local Streets","SHAPE"]) festgelegt werden. Beim Berechnen von Standorten für Linien- oder Polygon-Features wird auch bei Angabe anderer Fangtypen nur der Fangtyp SHAPE verwendet. Alle nicht in dieser Liste aufgeführten Netzwerkquellen verwenden den Standard-Fangtyp. Es ist am sichersten, alle Netzwerkquellen in der Liste einzuschließen und den Fangtyp jeweils explizit festzulegen. Der Standardwert für alle Netzwerkquellen lautet SHAPE. Hiervon ausgenommen sind Systemknoten, für die der Standardwert NONE lautet. | Value Table |
match_type (optional) |
Der Parameter wird nicht für die Berechnung der Standorte für Linien- oder Polygon-Features verwendet. | Boolean |
source_ID_field (optional) | Der Name des zu erstellenden oder mit der Quellen-ID des berechneten Netzwerkstandorts zu aktualisierenden Feldes. Ein Feld namens SourceID wird standardmäßig erstellt bzw. aktualisiert. Der Parameter wird nicht für die Berechnung der Standorte für Linien- oder Polygon-Features verwendet. | Field |
source_OID_field (optional) | Der Name des zu erstellenden oder mit der Quellen-OID des berechneten Netzwerkstandorts zu aktualisierenden Feldes. Ein Feld namens SourceOID wird standardmäßig erstellt bzw. aktualisiert. Der Parameter wird nicht für die Berechnung der Standorte für Linien- oder Polygon-Features verwendet. | Field |
position_field (optional) | Der Name des zu erstellenden oder mit dem Prozentsatz (entlang einer Linie) des berechneten Netzwerkstandorts zu aktualisierenden Feldes. Ein Feld namens PosAlong wird standardmäßig erstellt bzw. aktualisiert. Der Parameter wird nicht für die Berechnung der Standorte für Linien- oder Polygon-Features verwendet. | Field |
side_field (optional) | Der Name des Feldes, das erstellt oder mit der Kantenseite, auf dem sich das Punkt-Feature im berechneten Netzwerkstandort befindet, aktualisiert werden soll. Ein Feld namens SideOfEdge wird standardmäßig erstellt bzw. aktualisiert. Der Parameter wird nicht für die Berechnung der Standorte für Linien- oder Polygon-Features verwendet. | Field |
snap_X_field (optional) | Der Name des zu erstellenden oder mit der X-Koordinate des berechneten Netzwerkstandorts zu aktualisierenden Feldes. Ein Feld namens SnapX wird standardmäßig erstellt bzw. aktualisiert. Der Parameter wird nicht für die Berechnung der Standorte für Linien- oder Polygon-Features verwendet. | Field |
snap_Y_field (optional) | Der Name des zu erstellenden oder mit der Y-Koordinate des berechneten Netzwerkstandorts zu aktualisierenden Feldes. Ein Feld namens SnapY wird standardmäßig erstellt bzw. aktualisiert. Der Parameter wird nicht für die Berechnung der Standorte für Linien- oder Polygon-Features verwendet. | Field |
distance_field (optional) | Der Name des zu erstellenden oder mit der Entfernung des Punkt-Features vom berechneten Netzwerkstandort zu aktualisierenden Feldes. Ein Feld namens Distance wird standardmäßig erstellt bzw. aktualisiert. Das Ausgabefeld ist in Meter. Der Parameter wird nicht für die Berechnung der Standorte für Linien- oder Polygon-Features verwendet. | Field |
snap_Z_field (optional) | Der Name des zu erstellenden oder mit der Z-Koordinate des berechneten Netzwerkstandorts zu aktualisierenden Feldes. Ein Feld namens SnapZ wird standardmäßig erstellt bzw. aktualisiert. Der Parameter wird nicht für die Berechnung der Standorte für Linien- oder Polygon-Features verwendet. Bei der Berechnung von Standorten für Punkt-Features wird der Parameter nur verwendet, wenn das Eingabe-Netzwerk-Dataset eine Konnektivität auf der Grundlage der Z-Koordinaten-Werte der Netzwerkquellen unterstützt. In allen anderen Fällen müssen Sie "#" als Parameterwert verwenden. | Field |
location_field (optional) | Der Name des Feldes, das mit den Standortbereichen der berechneten Netzwerkstandorte für die Linien- oder Polygon-Features erstellt oder aktualisiert werden soll. Ein Feld namens Locations wird standardmäßig erstellt bzw. aktualisiert. Der Parameter wird nur für die Berechnung der Standorte für Linien- oder Polygon-Features verwendet. Für Eingabe-Punkt-Features müssen Sie "#" als Parameterwert verwenden. | Field |
exclude_restricted_elements (optional) | Gibt an, ob nicht passierbare Teile des Netzwerks bei der Suche nach Eingaben ausgeschlossen werden. Punkte befinden sich nicht auf Elementen, die im angegebenen Reisemodus beschränkt sind. Ist kein Reisemodus angegeben, werden die Beschränkungen im Standard-Reisemodus des Netzwerks verwendet.
| Boolean |
search_query [[Source, Expression],...] (optional) | Definiert eine Abfrage, mit der die Suche auf eine Teilmenge der Features innerhalb einer Quell-Feature-Class beschränkt wird. Dies empfiehlt sich, wenn keine Features gesucht werden sollen, die für einen Netzwerkstandort ungeeignet sind. Wenn Sie zum Beispiel Schwerpunkte von Polygonen laden und diese nicht auf Ortsstraßen verorten möchten, können Sie eine Abfrage definieren, die nur nach Hauptstraßen sucht. Der Parameterwert wird als Liste mit geschachtelten Listen angegeben. Die geschachtelte Liste besteht aus zwei Werten, die den Namen und den SQL-Ausdruck für alle Netzwerkquellen angeben. Die Syntax für den SQL-Ausdruck hängt vom Typ der Quell-Feature-Class im Netzwerk ab. Wenn Sie beispielsweise Quell-Feature-Classes abfragen, die in File- oder Enterprise-Geodatabases, Shapefiles oder SDC gespeichert sind, schließen Sie Feldnamen in doppelte Anführungszeichen ein: "CFCC". Wenn Sie Quell-Feature-Classes abfragen, die in Personal-Geodatabases gespeichert sind, schließen Sie Felder in eckige Klammern ein: [CFCC]. Wenn Sie keine Abfrage für eine bestimmte Quelle angeben möchten, verwenden Sie "#" als Wert für den SQL-Ausdruck, oder schließen Sie den Quellennamen und den SQL-Ausdruck aus dem Parameterwert aus. Wenn Sie nicht für alle Netzwerkquellen eine Abfrage angeben möchten, verwenden Sie "#" als Parameterwert. Der Parameterwert [["Streets","\"CFCC\" = 'A15'"], ["Streets_ND_Junctions",""]] gibt beispielsweise einen SQL-Ausdruck für die Quell-Feature-Class Streets und keinen Ausdruck für die Quell-Feature-Class Streets_ND_Junctions an. Beachten Sie, dass die doppelten Anführungszeichen, in die der Feldname CFCC eingeschlossen ist, mit umgekehrten Schrägstrichen als Escape-Zeichen versehen werden, um einen Analysefehler des Python-Interpreters zu vermeiden. Standardmäßig werden keine Abfragen verwendet. | Value Table |
travel_mode (optional) | Name des Reisemodus, der in der Analyse verwendet wird. Wenn Sie einen Reisemodus auswählen, werden die Einstellungen des Reisemodus, wie Beschränkungen und Impedanzattribute, beim Berechnen der Positionsfelder berücksichtigt. Wenn beispielsweise die Netzwerkkante, die am nächsten an einem Ihrer Eingabepunkte liegt, von Lkw nicht befahren werden darf und Ihr Reisemodus für Lkw festgelegt ist, bestimmt Standorte berechnen den Punkt auf der zweitnächsten Netzwerkkante, der nicht für Lkw verboten ist. Die verfügbaren Reisemodi hängen vom Parameterwert in_network_dataset ab. Wenn ein Sublayer eines Netzwerkanalyse-Layers als Eingabe-Features verwendet wird, muss der Reisemodus-Parameter auf den Reisemodus des Netzwerkanalyse-Layers festgelegt werden. | String |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_point_feature_class | Aktualisierte Eingabe-Features. | Tabellensicht |
Codebeispiel
Berechnen von Standorten für Punkt-Features mithilfe der erforderlichen Parameter.
stores = "C:/Data/SanFrancisco.gdb/Analysis/Hospitals/Analysis/Stores"
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.CalculateLocations(stores, network, "5000 Meters",
[["Streets", "SHAPE"],
["Streets_ND_Junctions", "NONE"]])
Berechnen von Standorten für Punkt-Features in Straßen-Features, ausgenommen andere Netzwerkquellen.
warehouses = "C:/Data/Paris.gdb/Analysis/Warehouses"
network = "C:/Data/Paris.gdb/Transportation/ParisMultimodal_ND"
arcpy.na.CalculateLocations(warehouses, network, "5000 Meters",
[["Metro_Lines", "NONE"], ["Streets", "SHAPE"],
["Transfer_Stations", "NONE"], ["Metro_Entrances", "NONE"],
["Metro_Stations", "NONE"], ["ParisMultimodal_ND_Junctions", "NONE"]],
"MATCH_TO_CLOSEST", "SID", "SOID", "PA", "SOE", "SnapX", "SnapY",
"Distance")
Berechnen von Standorten für Polygon-Features
parks = "C:/Data/SanFrancisco.gdb/Analysis/Hospitals/Basemap/Parks"
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.CalculateLocations(parks, network, "", [["Streets", "SHAPE"],
["Streets_ND_Junctions", "NONE"]],
location_field="Locations")
Mit dem folgenden Python-Skript wird veranschaulicht, wie Sie das Werkzeug CalculateLocations in einem eigenständigen Skript verwenden.
# Name: CalculateLocations_ex04.py
# Description: Calculate network locations for fire stations. Make sure that the
# fire stations are not located on the freeways.
# Requirements: Network Analyst Extension
#Import system modules
import arcpy
from arcpy import env
try:
#Set environment settings
env.workspace = "C:/Data/SanFrancisco.gdb"
#Set local variables
in_features = "Analysis/FireStations"
network = "Transportation/Streets_ND"
search_tolerance = "2000 Meters"
search_criteria = [["Streets", "SHAPE"], ["Streets_ND_Junctions", "NONE"]]
search_query = [["Streets", '"FREEWAY" = 0'], ["Streets_ND_Junctions", ""]]
#Calculate network locations and store them in defaut field names
arcpy.na.CalculateLocations(in_features, network, search_tolerance,
search_criteria, "MATCH_TO_CLOSEST",
exclude_restricted_elements="EXCLUDE",
search_query=search_query)
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
- Basic: Ja
- Standard: Ja
- Advanced: Ja