Standorte berechnen (Network Analyst)
Zusammenfassung
Fügt den Eingabe-Features, die den Netzwerkstandort der Features enthalten, Felder hinzu. Das Werkzeug wird verwendet, um die Netzwerkstandortinformationen als Feature-Attribute zu speichern, um auf diese Weise die Features als Eingaben für einen Netzwerkanalyse-Layer schnell laden zu können.
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 das Stopps-Sublayer als Eingabe-Features mit einer höheren Suchtoleranz anzugeben.
-
Dieses Werkzeug wird bedeutend schneller ausgeführt, wenn die Feature-Classes, die als Netzwerkquellen im Netzwerk-Dataset verwendet werden, einen gültigen und aktuellen räumlichen Index haben.
Syntax
Parameter | Erläuterung | 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 Standortbereiche-Feldparameter angegeben) werden. | Table View |
in_network_dataset | Das Netzwerk-Dataset, das zur Berechnung der Standorte verwendet wird. 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 | Die Suchtoleranz zur Ermittlung der Eingabe-Features im Netzwerk. Features, die außerhalb der Suchtoleranz liegen, wird kein Standort zugewiesen. Der Parameter umfasst einen Wert und die Einheiten für die Toleranz. Beim Berechnen der Standorte für Linien- oder Polygon-Features wird der Parameter nicht verwendet. In solchen Fällen verwenden Sie "#" als Parameterwert. | Linear unit |
search_criteria [[Source, SnapType],...] | Legt fest, welche Quellen im Netzwerk-Dataset beim Ermitteln von Standorten durchsucht und welche Teile der Geometrie (auch als Fangtypen bezeichnet) verwendet werden. 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 mit den Schlüsselwörtern "SHAPE", "MIDDLE", "END" oder "NONE" angegeben. Bei Suchen von Standorten wird beispielsweise mit dem Parameterwert [["Straßen", "SHAPE"], ["Streets_ND_Junctions", "NONE"]] angegeben, dass durch die Suche das Shape der Quelle "Straße", aber nicht der Quelle "Streets_ND_Junctions" ermittelt werden kann. Wenn Sie mehrere Fangtypen für eine einzelne Netzwerkquelle angeben möchten, verwenden Sie eine Kombination der Fangtypschlüsselwörter, die durch einen Unterstrich getrennt werden. MIDDLE_END gibt z. B. 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 angegeben werden. Beim Berechnen der Standorte für Linien- oder Polygon-Features wird nur der Fangtyp "Shape" verwendet, auch wenn andere Fangtypen angegeben sind. | Value Table |
match_type (optional) |
Beim Berechnen der Standorte für Linien- oder Polygon-Features wird der Parameter nicht verwendet. In solchen Fällen verwenden Sie "#" als Parameterwert. | Boolean |
source_ID_field (optional) | Name des zu erstellenden oder mit der Quellen-ID des berechneten Netzwerkstandorts zu aktualisierenden Feldes. Standardmäßig wird ein Feld mit dem Namen "SourceID" erstellt oder aktualisiert. Beim Berechnen der Standorte für Linien- oder Polygon-Features wird der Parameter nicht verwendet. In solchen Fällen verwenden Sie "#" als Parameterwert. | Field |
source_OID_field (optional) | Name des zu erstellenden oder mit der Quellen-OID des berechneten Netzwerkstandorts zu aktualisierenden Feldes. Standardmäßig wird ein Feld mit dem Namen "SourceOID" erstellt oder aktualisiert. Beim Berechnen der Standorte für Linien- oder Polygon-Features wird der Parameter nicht verwendet. In solchen Fällen verwenden Sie "#" als Parameterwert. | Field |
position_field (optional) | Name des zu erstellenden oder mit dem Prozentsatz (entlang einer Linie) des berechneten Netzwerkstandorts zu aktualisierenden Feldes. Standardmäßig wird ein Feld mit dem Namen "PosAlong" erstellt oder aktualisiert. Beim Berechnen der Standorte für Linien- oder Polygon-Features wird der Parameter nicht verwendet. In solchen Fällen verwenden Sie "#" als Parameterwert. | Field |
side_field (optional) | Name des Feldes, das erstellt oder mit der Kantenseite, auf dem sich das Punkt-Feature im berechneten Netzwerkstandort befindet, aktualisiert werden soll. Standardmäßig wird ein Feld mit dem Namen "SideOfEdge" erstellt oder aktualisiert. Beim Berechnen der Standorte für Linien- oder Polygon-Features wird der Parameter nicht verwendet. In solchen Fällen verwenden Sie "#" als Parameterwert. | Field |
snap_X_field (optional) | Name des zu erstellenden oder mit der X-Koordinate des berechneten Netzwerkstandorts zu aktualisierenden Felds. Standardmäßig wird ein Feld mit dem Namen "SnapX" erstellt oder aktualisiert. Beim Berechnen der Standorte für Linien- oder Polygon-Features wird der Parameter nicht verwendet. In solchen Fällen verwenden Sie "#" als Parameterwert. | Field |
snap_Y_field (optional) | Name des zu erstellenden oder mit der Y-Koordinate des berechneten Netzwerkstandorts zu aktualisierenden Felds. Standardmäßig wird ein Feld mit dem Namen "SnapY" erstellt oder aktualisiert. Beim Berechnen der Standorte für Linien- oder Polygon-Features wird der Parameter nicht verwendet. In solchen Fällen verwenden Sie "#" als Parameterwert. | Field |
distance_field (optional) | Name des zu erstellenden oder mit der Entfernung des Punkt-Features vom berechneten Netzwerkstandort zu aktualisierenden Feldes. Standardmäßig wird ein Feld mit dem Namen "Entfernung" erstellt oder aktualisiert. Beim Berechnen der Standorte für Linien- oder Polygon-Features wird der Parameter nicht verwendet. In solchen Fällen verwenden Sie "#" als Parameterwert. | Field |
snap_Z_field (optional) | Name des zu erstellenden oder mit der Z-Koordinate des berechneten Netzwerkstandorts zu aktualisierenden Felds. Standardmäßig wird ein Feld mit dem Namen "SnapZ" erstellt oder aktualisiert. Beim Berechnen der Standorte für Linien- oder Polygon-Features wird der Parameter nicht verwendet. In solchen Fällen verwenden Sie "#" als Parameterwert. 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) | Name des Felds, das erstellt oder mit den Standortbereichen der berechneten Netzwerkstandorte für die Linien- oder Polygon-Features aktualisiert wird. Standardmäßig wird ein Feld mit dem Namen "Standorte" erstellt oder 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) |
Dieser Parameter ist nur anwendbar, wenn die Eingabe-Features aus dem Sublayer eines Netzwerkanalyse-Layers stammen und keine Barrierenobjekte sind. In allen anderen Fällen müssen Sie "#" als Parameterwert verwenden.
| Boolean |
search_query [[Source, Expression],...] (optional) | Gibt eine Abfrage an, um die Suche auf eine Teilmenge der Features innerhalb einer Quell-Feature-Class zu beschränken. 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 Netzwerk-Quell-Feature-Class ab. Wenn Sie beispielsweise Quell-Feature-Classes abfragen, die in File- oder ArcSDE-Geodatabases, Shapefiles oder SDC gespeichert sind, müssen Sie die Feldnamen in doppelte Anführungszeichen einschließen "CFCC". Wenn Sie in Personal-Geodatabases gespeicherte Quell-Feature-Classes abfragen, müssen Sie die Felder in eckige Klammern einschließen: [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 keine Abfrage für alle Netzwerkquellen angeben möchten, können Sie "#" als Parameterwert verwenden. So wird beispielsweise mit dem Parameterwert [["Straßen","\"CFCC\" = 'A15'"], ["Streets_ND_Junctions",""]] ein SQL-Ausdruck für die Straßen-Quell-Feature-Class und kein Ausdruck für die Streets_ND_Junctions-Quell-Feature-Class angegeben. Beachten Sie, dass die doppelten Anführungszeichen, mit denen der Feldname CFCC eingeschlossen wird, mit umgekehrten Schrägstrichzeichen als Escape-Zeichen versehen sind, um Analysefehler beim Python-Interpreter zu vermeiden. | Value Table |
Codebeispiel
Berechnen von Standorten für Punkt-Features mithilfe der erforderlichen Parameter.
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.CalculateLocations("Analysis/Stores","Transportation/Streets_ND",
"5000 Meters",[["Streets","SHAPE"],
["Streets_ND_Junctions","NONE"]])
Berechnen von Standorten für Punkt-Features in einem Subtype einer Netzwerkquelle.
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb"
arcpy.na.CalculateLocations(
"Analysis/Warehouses","Transportation/ParisNet","5000 Meters",
[["Streets : Highways","NONE"],["Streets : Major Roads","NONE"],
["Streets : Local Streets","SHAPE"],["ParisNet_Junctions", "NONE"]],
"MATCH_TO_CLOSEST","SID","SOID","PA","SOE","SnapX","SnapY","Distance",
"","","","")
Berechnen von Standorten für Polygon-Features
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.CalculateLocations("Basemap/Parks","Transportation/Streets_ND","",
[["Streets","SHAPE"],
["Streets_ND_Junctions","NONE"]],
location_field="Locations")
Im 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
#Check out the Network Analyst extension license
arcpy.CheckOutExtension("Network")
#Set environment settings
env.workspace = "C:/data/SanFrancisco.gdb"
#Set local variables
inFeatures = "Analysis/FireStations"
inNetworkDataset = "Transportation/Streets_ND"
searchTolerance = "2000 Meters"
searchCriteria = [["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]]
searchQuery = [["Streets",'"FREEWAY" = 0'],["Streets_ND_Junctions",""]]
#Calculate network locations and store them in defaut field names
arcpy.na.CalculateLocations(inFeatures,inNetworkDataset,searchTolerance,
searchCriteria,"MATCH_TO_CLOSEST",
exclude_restricted_elements="EXCLUDE",
search_query=searchQuery)
print "Script completed successfully."