Beschriftung | Erläuterung | Datentyp |
Eingabe-Punkt-Layer | Die Punkte, die Linien zugeordnet werden. Die Eingabe muss ein Punkt-Layer mit aktivierten Zeiteigenschaften sein, der einen Zeitpunkt darstellt, und sie muss mindestens ein Feld enthalten, das eindeutige Tracks identifiziert. | Feature Set |
Eingabe-Linien-Layer | Die Linien, denen die Punkte zugeordnet werden. Die Eingabe muss Felder mit Werten enthalten, die die Von- und Zu-Knoten der Linie kennzeichnen. | Feature Set |
Ausgabe-Feature-Class | Die Feature-Class, die die zugeordneten Punkte enthält. | Feature Class |
Track-Felder | Ein oder mehrere Felder, die zum Identifizieren eindeutiger Tracks verwendet werden. | Field |
Suchentfernung | Die maximal zulässige Entfernung zwischen einem Punkt und einer Linie, die noch als Übereinstimmung angesehen wird. Es wird empfohlen, Werte kleiner oder gleich 75 Meter zu verwenden. Größere Entfernungen führen zu einer längeren Verarbeitungszeit und zu weniger genauen Ergebnissen. | Linear Unit |
Konnektivitätsfeldzuordnung | Die Linien-Layer-Felder, die verwendet werden, um die Konnektivität der Eingabe-Linien-Features zu definieren.
| Value Table |
Einzubeziehende Linienfelder (optional) | Mindestens ein Feld aus dem Eingabe-Linien-Layer, das in das Ausgabeergebnis einbezogen wird. | Field |
Entfernungsmethode (optional) | Gibt die Methode an, die zum Berechnen der Entfernung zwischen Punkten und Linien verwendet wird.
| String |
Richtungswertzuordnung (optional) | Das Linien-Layer-Feld und die Attributwerte, mit denen die Richtung der Eingabe-Linien-Features definiert wird. Ein Linien-Layer enthält z. B. das Feld direction mit den Werten T (rückwärts), F (vorwärts), B (beide) und "" (keine). Wenn kein Wert angegeben ist, wird eine bidirektionale Linie angenommen.
| Value Table |
Ausgabemodus (optional) | Gibt an, ob alle Eingabe-Features oder nur die Eingabe-Features, die einem Linien-Feature zugeordnet wurden, zurückgegeben werden.
| String |
Zeitteilung (optional) | Features, die zeitlich weiter voneinander entfernt sind als die Zeitteilungsdauer, werden in zwei separate Tracks geteilt. | Time Unit |
Entfernungsaufteilung (optional) | Features, die weiter voneinander entfernt sind als der Entfernungsaufteilungswert, werden in zwei separate Tracks geteilt. | Linear Unit |
Zeitgrenze – Unterteilung (optional) |
Zeitspanne zur Aufteilung der Eingabedaten für die Analyse. Bei Angabe einer Zeitgrenze können Sie Werte innerhalb einer bestimmten Zeitspanne analysieren. Wenn Sie als Zeitgrenze einen Tag und als Bezug für die Zeitgrenze den 1. Januar 1980 festlegen, werden die Tracks jeweils zu Beginn des Tages geteilt. | Time Unit |
Zeitgrenze – Referenz (optional) |
Bezugszeit zur Aufteilung der Eingabedaten für die Analyse. Zeitgrenzen werden für die gesamte Zeitspanne erstellt, wobei der Bezugszeitpunkt nicht zwangsläufig am Beginn der Zeitspanne liegen muss. Ohne Angabe einer Bezugszeit wird der 1. Januar 1970 verwendet. | Date |
Zusammenfassung
Fängt Eingabe-Track-Punkte an Linien. Die Punktdaten mit aktivierten Zeiteigenschaften müssen Features einbeziehen, die einen Zeitpunkt darstellen. Für die Analyse sind passierbare Linien mit Feldern erforderlich, die die Von- und Zum-Knoten angeben.
Abbildung
Verwendung
In der folgenden Tabelle wird die Terminologie aufgeführt, die im Werkzeug Tracks fangen verwendet wird:
Begriff Beschreibung Track
Eine Sequenz aus Features mit aktivierten Zeiteigenschaften vom Typ "Zeitpunkt". Ob sich Features in einer Sequenz befinden, wird durch ein Track-Kennungsfeld und deren zeitliche Reihenfolge bestimmt. Nehmen wir als Beispiel eine Stadt mit einer Flotte aus Schneepflügen, die alle 30 Sekunden ihre Position aufzeichnen. Die unterschiedlichen Tracks können jeweils durch die Fahrzeug-ID identifiziert werden.
Beobachtung
Ein Punkt in einem Track.
Knoten
Knoten sind die Endstützpunkte von Linien-Features, die zur Angabe der Linienrichtung dienen. Der Linienbeginn ist der Von-Knoten, und das Linienende ist der Zum-Knoten.
Richtung
Die Richtung einer Linie. Richtung bezieht sich darauf, wie einer Linie zwischen Von-Knoten und Zum-Knoten gefolgt werden kann.
Konnektivität
Konnektivität beschreibt, wie Linien verbunden sind, um ein passierbares Netzwerk darzustellen. Linien werden basierend auf deren Werten für "Von Knoten" und "Zum Knoten" verbunden. Linien, die basierend auf der Konnektivität von einem Punkt nicht erreichbar sind, werden nicht als Übereinstimmung angesehen.
Durchlässig
Linien sind passierbar, wenn sie durch gemeinsame Knoten verbunden sind. Wenn der Von-Knoten der Linie A beispielsweise mit dem Zum-Knoten der Linie B identisch ist, sind sie passierbar.
Für das Werkzeug sind die folgenden Parameter-Eingabe-Layer erforderlich:
- Eingabe-Punkt-Layer: Der Eingabe-Layer muss Beobachtungen mit aktivierten Zeiteigenschaften enthalten, die einen Zeitpunkt darstellen. Track-Beobachtungen ohne gültigen Zeitstempel werden aus der Analyse ausgeschlossen.
- Eingabe-Linien-Layer: Der Eingabe-Linien-Layer muss Felder mit den folgenden Konnektivitätsinformationen enthalten und im Parameter Konnektivitätsfeldzuordnung angegeben werden:
- Unique ID: Der eindeutige Identifikator der Linie.
- From node: Der Knoten, von dem sich die Bewegung entlang einer Linie entfernt.
- To node: Der Knoten, zu dem die Bewegung entlang einer Linie erfolgt.
Der Raumbezug des Parameterwertes Eingabe-Punkt-Layer muss mit dem Raumbezug des Parameterwertes Eingabe-Linien-Layer identisch sein. Wenn die Datasets unterschiedliche Raumbezüge aufweisen, geben Sie mithilfe der Umgebung Ausgabe-Koordinatensystem den Raumbezug für die Analyse an, oder projizieren Sie die Datasets vor der Analyse.
Sie können ein oder mehrere Felder zum Identifizieren von Tracks angeben. Tracks werden durch die eindeutige Kombination aus mindestens einem Track-Feld dargestellt. Wenn beispielsweise die Felder flightID und Destination als Track-IDs verwendet werden, befinden sich die Features ID007, Solden und ID007, Tokyo in zwei getrennten Tracks, da sie verschiedene Werte für das Feld Destination aufweisen.
Tracks müssen mehr als eine Beobachtung aufweisen, damit sie in Analysen verwendet werden können. Tracks mit nur einer Beobachtung werden nicht zugeordnet.
Für Zuordnungen zwischen Punkten und Linien gelten die folgenden Überlegungen:
- Die Beobachtung liegt innerhalb der Suchentfernung von einer Linie. Dies ist die Mindestanforderung. Beobachtungen werden nicht zugeordnet, wenn sie die Bedingung der Suchentfernung nicht erfüllen.
- Die Beobachtung kann die Linien basierend auf deren Konnektivität passieren.
- Die Beobachtung bewegt sich in einer von der Linie unterstützten Richtung. Dies ist eine optionale Bedingung, die gilt, wenn Sie Werte für den Parameter Richtungswertzuordnung angeben. Ergebnisse, die diese optionale Bedingung erfüllen, sind genauer.
Verwenden Sie den Parameter Suchentfernung, um die maximal zulässige Entfernung zwischen einer Beobachtung und einer Linie anzugeben. Wenn Sie beispielsweise wissen, dass die Genauigkeit der GPS-Punkte etwa 100 Meter beträgt, geben Sie als Suchentfernung 100 Meter an.
Der Parameter Entfernungsmethode bestimmt, wie Suchentfernungen berechnet werden. Zwei Entfernungsmethoden sind verfügbar:
- Geodätisch: Wenn der Raumbezug kontinuierlich über den Antimeridian geschwenkt werden kann, überqueren Tracks ggf. den Antimeridian. Wenn der Raumbezug nicht kontinuierlich geschwenkt werden kann, sind die Tracks auf die Ausdehnung des Koordinatensystems beschränkt und werden nicht umbrochen. Dies ist die Standardeinstellung.
- Planar: Tracks überqueren den Antimeridian nicht. Verwenden Sie diese Option, wenn die Eingabedaten ein projiziertes Koordinatensystem nutzen.
Um zusätzliche Linienattribute in die Ausgabeergebnisse aufzunehmen, geben Sie die Feldnamen mit dem Parameter Einzubeziehende Linienfelder an. Diese Felder werden nicht für Analysen genutzt und nur für Ihre eigene Verwendung aufgenommen. Sie können in das Ausgabeergebnis keine Geometriefelder aufnehmen.
Definieren Sie mit dem Parameter Richtungswertzuordnung die unterstützten Richtungen für jedes Linien-Feature. Ein Linien-Layer enthält z. B. das Feld direction mit den Werten T (rückwärts), F (vorwärts), B (beide) und "" (keine). Die Richtungszuordnung ist optional, wird aber für genaue Ergebnisse empfohlen. Wenn keine Richtungszuordnung angegeben ist, wird eine bidirektionale Linie angenommen.
Das Werkzeug gibt Punkte zurück, die an der nächstgelegenen Position entlang der zugeordneten Linie gefangen werden. Die Linien-Features werden nicht zurückgegeben. Die eindeutige Kennung des Linien-Datasets ist für zugeordnete Ergebnisse verfügbar. Das eindeutige Kennungsfeld wird mit dem Parameter Konnektivitätsfeldzuordnung angegeben. Sie können die zugeordneten Linien durch Referenzieren dieses Feldes identifizieren.
Sie haben folgende Möglichkeiten, Tracks aufzuteilen:
- Zeitaufteilung: Basierend auf einer Zeit zwischen Eingaben. Durch die Anwendung einer Zeitaufteilung wird ein Track abgeteilt, wenn der Abstand der Eingabedaten größer als die angegebene Zeit ist. Wenn Sie beispielsweise über fünf Features mit derselben Track-ID und den Uhrzeiten [01:00, 02:00, 03:30, 06:00, 06:30] verfügen und eine Zeitaufteilung von 2 Stunden festlegen, werden alle Features geteilt, deren Messung um mehr als 2 Stunden differiert. In diesem Beispiel ist das Ergebnis ein Track mit [01:00, 02:00, 03:30] und [06:00, 06:30], da die Differenz zwischen 03:30 und 6:00 mehr als 2 Stunden beträgt.
- Aufteilung nach Zeitgrenze: Basierend auf definierten Zeitintervallen. Bei Anwendung einer Zeitgrenze werden Tracks in definierten Intervallen aufgeteilt und segmentiert. Wenn Sie die Zeitgrenze beispielsweise auf 1 Tag festlegen, beginnend am 1. Januar 1990 um 9:00 Uhr, werden alle Tracks jeden Tag um 9:00 Uhr abgeschnitten. Durch diese Teilung wird die Rechenzeit beschleunigt, da für die Analyse kleinere Tracks erstellt werden. Wenn die Unterteilung nach einer regelmäßig auftretenden Zeitgrenze sinnvoll für Ihre Analyse ist, empfiehlt sie sich für die Big-Data-Verarbeitung.
- Entfernungsaufteilung: Basierend auf einer Entfernung zwischen Eingaben. Durch die Anwendung einer Entfernungsaufteilung wird ein Track abgeteilt, wenn der Abstand der Eingabedaten größer als die angegebene Entfernung ist. Wenn Sie zum Beispiel eine Entfernungsaufteilung von 5 Kilometern festlegen, werden nachfolgende Features, die mehr als 5 Kilometer entfernt sind, zu einem Teil eines anderen Tracks.
- Teilungsausdruck: Basiert auf einem Arcade-Ausdruck. Durch Anwenden eines Teilungsausdrucks werden Tracks basierend auf Werten, Geometrie oder Zeitwerten geteilt. Beispielsweise können Sie Tracks teilen, wenn ein Feldwert mehr als doppelt so groß ist wie der vorherige Wert im Track. Bei Verwendung eines Beispielfeldes mit dem Namen WindSpeed können Sie hierzu den folgenden Ausdruck verwenden: var speed = TrackFieldWindow("WindSpeed", -1, 1); 2* speed[0] < speed[1]. Tracks werden aufgeteilt, wenn der vorherige Wert (speed[0]) niedriger ist als das Zweifache des aktuellen Wertes.
Neben den Feldern aus dem Parameterwert Eingabe-Punkt-Layer und den mit dem Parameter Einzubeziehende Linienfelder angegebenen Linienfeldern werden die folgenden Felder in die Ausgabe aufgenommen:
Feldname Beschreibung MatchStatus
Gibt an, ob die Beobachtung einer Linie zugeordnet wurde. Die Werte sind M für zugeordnete Features und U für nicht zugeordnete Features.
OrigX
Die Z-Koordinate der Eingabe-Beobachtung. Koordinaten werden in den Einheiten des Ausgabe-Raumbezugs gespeichert.
OrigY
Die Y-Koordinate der Eingabe-Beobachtung. Koordinaten werden in den Einheiten des Ausgabe-Raumbezugs gespeichert.
MatchX
Die X-Koordinate des zugeordneten Ergebnisses auf der Linie. Koordinaten werden in den Einheiten des Ausgabe-Raumbezugs gespeichert.
MatchY
Die Y-Koordinate des zugeordneten Ergebnisses auf der Linie. Koordinaten werden in den Einheiten des Ausgabe-Raumbezugs gespeichert.
MatchDist
Die Entfernung zwischen der ursprünglichen Position und der zugeordneten Position für eine Beobachtung. Entfernungen werden basierend auf der angegebenen Entfernungsmethode (geodätisch oder planar) berechnet. Die Werte werden in Meter aufgezeichnet.
DATE
Der Zeitstempel der Beobachtung.
Wenn der Parameterwert Ausgabemodus als Alle Features angegeben ist, werden zugeordnete und nicht zugeordnete Punkte zurückgegeben. Für nicht zugeordnete Punkte werden die Ausgabe-Ergebnisfelder für numerische Felder als NULL-Werte und für Zeichenfolgefelder als leere Zeichenfolge angehängt. Die Felder, die mit NULL-Werten angehängt werden, sind Felder, die unter Verwendung des Parameters Einzubeziehende Linienfelder und der Felder MatchX, MatchY sowie MatchDist angegeben wurden.
Ähnliche Analysen können auch mit Folgendem durchgeführt werden:
- Rekonstruieren Sie Track-Punkte mit aktivierten Zeiteigenschaften in Linien, indem Sie das Werkzeug Tracks rekonstruieren verwenden.
- Fangen Sie Punkte, Multipoints, Linien oder Polygone mit dem Werkzeug Fangen an anderen Features. Mit diesem Werkzeug werden die Eingabedaten geändert.
Dieses Geoverarbeitungswerkzeug wird unterstützt durch Spark. Bei Analysen auf Ihrem Desktop-Computer werden mehrere Kerne parallel verwendet. Weitere Informationen über die Ausführung der Analyse finden Sie unter Überlegungen zu GeoAnalytics Desktop-Werkzeugen.
Bei der Ausführung von GeoAnalytics Desktop-Werkzeugen wird die Analyse auf Ihrem Desktop-Computer durchgeführt. Für eine optimale Performance sollten die Daten auf Ihrem Desktop verfügbar sein. Wenn Sie einen gehosteten Feature-Layer verwenden, wird empfohlen, ArcGIS GeoAnalytics Server zu verwenden. Wenn Ihre Daten nicht lokal verfügbar sind, dauert die Ausführung eines Werkzeugs bedeutend länger. Informationen zur Verwendung von ArcGIS GeoAnalytics Server für Analysen finden Sie unter GeoAnalytics Tools.
Hinweis:
Lizenzierte StreetMap Premium-Geodatabase-Feature-Layer werden als Eingabe für ArcGIS Pro 3.0 nicht unterstützt
Parameter
arcpy.geoanalytics.SnapTracks(input_points, input_lines, out_feature_class, track_fields, search_distance, connectivity_field_matching, {line_fields_to_include}, {distance_method}, {direction_value_matching}, {output_mode}, {time_split}, {distance_split}, {time_boundary_split}, {time_boundary_reference})
Name | Erläuterung | Datentyp |
input_points | Die Punkte, die Linien zugeordnet werden. Die Eingabe muss ein Punkt-Layer mit aktivierten Zeiteigenschaften sein, der einen Zeitpunkt darstellt, und sie muss mindestens ein Feld enthalten, das eindeutige Tracks identifiziert. | Feature Set |
input_lines | Die Linien, denen die Punkte zugeordnet werden. Die Eingabe muss Felder mit Werten enthalten, die die Von- und Zu-Knoten der Linie kennzeichnen. | Feature Set |
out_feature_class | Die Feature-Class, die die zugeordneten Punkte enthält. | Feature Class |
track_fields [track_fields,...] | Ein oder mehrere Felder, die zum Identifizieren eindeutiger Tracks verwendet werden. | Field |
search_distance | Die maximal zulässige Entfernung zwischen einem Punkt und einer Linie, die noch als Übereinstimmung angesehen wird. Es wird empfohlen, Werte kleiner oder gleich 75 Meter zu verwenden. Größere Entfernungen führen zu einer längeren Verarbeitungszeit und zu weniger genauen Ergebnissen. | Linear Unit |
connectivity_field_matching [connectivity_field_matching,...] | Die Linien-Layer-Felder, die verwendet werden, um die Konnektivität der Eingabe-Linien-Features zu definieren.
| Value Table |
line_fields_to_include [line_fields_to_include,...] (optional) | Mindestens ein Feld aus dem Eingabe-Linien-Layer, das in das Ausgabeergebnis einbezogen wird. | Field |
distance_method (optional) | Gibt die Methode an, die zum Berechnen der Entfernung zwischen Punkten und Linien verwendet wird.
| String |
direction_value_matching [direction_value_matching,...] (optional) | Das Linien-Layer-Feld und die Attributwerte, mit denen die Richtung der Eingabe-Linien-Features definiert wird. Ein Linien-Layer enthält z. B. das Feld direction mit den Werten T (rückwärts), F (vorwärts), B (beide) und "" (keine). Wenn kein Wert angegeben ist, wird eine bidirektionale Linie angenommen.
| Value Table |
output_mode (optional) | Gibt an, ob alle Eingabe-Features oder nur die Eingabe-Features, die einem Linien-Feature zugeordnet wurden, zurückgegeben werden.
| String |
time_split (optional) | Features, die zeitlich weiter voneinander entfernt sind als die Zeitteilungsdauer, werden in zwei separate Tracks geteilt. | Time Unit |
distance_split (optional) | Features, die weiter voneinander entfernt sind als der Entfernungsaufteilungswert, werden in zwei separate Tracks geteilt. | Linear Unit |
time_boundary_split (optional) |
Zeitspanne zur Aufteilung der Eingabedaten für die Analyse. Bei Angabe einer Zeitgrenze können Sie Werte innerhalb einer bestimmten Zeitspanne analysieren. Wenn Sie als Zeitgrenze einen Tag und als Bezug für die Zeitgrenze den 1. Januar 1980 festlegen, werden die Tracks jeweils zu Beginn des Tages geteilt. | Time Unit |
time_boundary_reference (optional) |
Bezugszeit zur Aufteilung der Eingabedaten für die Analyse. Zeitgrenzen werden für die gesamte Zeitspanne erstellt, wobei der Bezugszeitpunkt nicht zwangsläufig am Beginn der Zeitspanne liegen muss. Ohne Angabe einer Bezugszeit wird der 1. Januar 1970 verwendet. | Date |
Codebeispiel
Das folgende eigenständige Skript veranschaulicht, wie die Funktion SnapTracks verwendet wird.
# Name: SnapTracks.py
# Description: Snap snowplow fleet tracks to roads to uncover areas that
# may need more resources for snow removal efforts
# Import system modules
import arcpy
# Enable time on the input features using an .lyrx file.
# To create the .lyrx file, add your layer to a map, open the layer properties
# and enable time. Then right-click the layer and select Share As Layer File.
inputLyrx = r'C:\data\Snowplow.lyrx'
# MakeFeatureLayer converts the .lyrx to features
snowplowsLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "Snowplows Layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(snowplowsLayer, inputLyrx)
# Set local variables
lineLayer = "c:/mydata/Roads.gdb/CityStreets"
trackIdentifier = "vehicle_id"
out = "c:/mydata/OutputDatasets.gdb/Snowplows_snapped_to_streets"
searchDistance = "10 Meters"
connectivityFieldMatching = "unique_ID from_node to_node"
directionValueMatching = "dir_travel F T B #"
# Run Snap Tracks
arcpy.gapro.SnapTracks(snowplowsLayer, lineLayer, out, trackIdentifier,
searchDistance, connectivityFieldMatching, None,
"GEODESIC", directionValueMatching, "MATCHED_FEATURES")