Beschriftung | Erläuterung | Datentyp |
Eingabe-Layer | Die Punkte oder Polygone, die in Tracks rekonstruiert werden sollen. Die Eingabe muss ein Layer mit aktivierten Zeiteigenschaften sein, der einen Zeitpunkt darstellt. | Feature Layer |
Ausgabe-Feature-Class | Eine neue Feature-Class mit den resultierenden Tracks. | Feature Class |
Track-Felder | Ein oder mehrere Felder, die zum Identifizieren eindeutiger Tracks verwendet werden. | Field |
Methode | Gibt die Kriterien an, nach denen die Tracks rekonstruiert werden. Wenn ein Puffer verwendet wird, bestimmt der Parameter Methode den Typ des Puffers.
| String |
Puffertyp | Gibt an, wie der Pufferabstand definiert wird.
| String |
Pufferfeld (optional) | Das Feld, das zur Pufferung der Eingabe-Features verwendet wird. Feldwerte werden in den Einheiten des Raumbezugs der Eingabe angewendet, es sei denn, Sie verwenden ein geographisches Koordinatensystem. In diesem Fall werden Meter verwendet. | Field |
Pufferausdruck (optional) | Der Ausdruck, der zur Pufferung der Eingabe-Features verwendet wird. Die Felder müssen numerisch sein, und der Ausdruck kann die Operatoren [+ - * / ] und mehrere Felder enthalten. Berechnete Feldwerte werden in den Einheiten des Raumbezugs der Eingabe angewendet, es sei denn, Sie verwenden ein geographisches Koordinatensystem. In diesem Fall werden Meter verwendet. Verwenden Sie Arcade-Ausdrücke wie as_kilometers($feature.distance) * 2 + as_meters(15). Wenn der Layer der Karte hinzugefügt wird, können die Filter Felder und Helper zum Erstellen eines Ausdrucks verwendet werden. | Calculator Expression |
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 |
Zusammenfassungsfelder (optional) | Die Statistiken, die für bestimmte Felder berechnet werden.
| Value Table |
Teilungsausdruck (optional) | Ein Ausdruck, der Tracks basierend auf Werten, Geometrie oder Zeitwerten teilt. Mit "true" ausgewertete Ausdrücke werden geteilt. | Calculator Expression |
Teilungstyp (optional) | Gibt an, wie das Track-Segment bei der Aufteilung eines Tracks zwischen zwei Features erstellt wird. Der Teilungstyp wird auf Teilungsausdrücke, Entfernungsaufteilungen und Zeitaufteilungen angewendet.
| String |
Zusammenfassung
Erstellt aus Eingabedaten mit aktivierten Zeiteigenschaften Linien- oder Polygon-Tracks.
Abbildung
Verwendung
Tracks rekonstruieren wird für Punkt- oder Polygon-Features ausgeführt. Für den Eingabe-Layer müssen Zeiteigenschaften aktiviert sein, die einen Zeitpunkt darstellen.
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.
Features mit angewandtem Puffer ergeben polygonale Tracks. Eingabe-Punkt-Features ohne angewandtem Puffer ergeben Polylinien-Tracks.
Eingabe-Features bestehen aus Features mit aktivierten Zeiteigenschaften, die einen Zeitpunkt darstellen. Die Ergebnisse sind Linien- oder Flächen-Features, die ein Zeitintervall darstellen. Start und Ende des Intervalls werden durch die Zeit am ersten und letzten Feature in einem Track bestimmt.
Für lineare Ergebnisse werden nur Tracks zurückgegeben, die mehrere Punkte enthalten. Wenn Sie einen Puffer anwenden, werden alle Features zurückgegeben.
Sie können auch einen Puffer auf Ihrer Eingabe-Features anwenden. Wenn Sie einen Puffer anwenden, handelt es sich bei den resultierenden Tracks um Polygon-Features.
Beim Puffern von Eingabe-Features wird jedes Eingabe-Feature gepuffert. Anschließend wird eine konvexe Hülle generiert, um einen Polygon-Track zu erstellen.
Felder, die im Pufferausdruck verwendet werden, müssen numerisch sein und werden zusammen mit den Einheiten des Raumbezugs der Eingabe angewendet. Weitere Informationen finden Sie unter Arcade-Ausdrücke in der Toolbox "GeoAnalytics Desktop". Sie können Tracking-bezogene Gleichungen verwenden.
Standardmäßig wird nur die Anzahl der Punkte oder Polygone eines Tracks berechnet. Eine zusätzliche Statistik kann durch Angabe des Parameterwertes für Summenfelder berechnet werden.
Tracks werden standardmäßig mit einer geodätischen Methode erstellt. Die Methode wird auf die folgenden beiden Komponenten der Analyse angewendet:
- Tracks, die die internationale Datumslinie überqueren: Bei Verwendung der geodätischen Methode überqueren die Tracks der Eingabe-Layer, die die internationale Datumslinie überqueren, die Datumslinie korrekt. Dies ist die Standardeinstellung. Der Eingabe-Layer oder Raumbezug für die Bearbeitung muss auf einen Raumbezug festgelegt sein, der den Umbruch der internationalen Datumsgrenze unterstützt, z. B. eine globale Projektion wie "Weltweite flächentreue Zylinderprojektion".
- Puffer: Eingabe-Features können optional gepuffert werden. Weitere Informationen dazu, wann ein geodätischer bzw. planarer Puffer angewendet werden soll, finden Sie unter Puffer erstellen.
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.
Sie können bis zu vier Teilungsoptionen gleichzeitig anwenden. In allen nachfolgenden Beispielen wird eine Lückenaufteilung verwendet. Bei einer Zeitaufteilung von sechs Stunden, einer Zeitgrenze von einem Tag und einer Entfernungsaufteilung von 16 Kilometern lauten die jeweiligen Ergebnisse wie folgt:
Option beim Teilen eines Features Beschreibung Sechs Eingabepunkte mit Zeit und Position
Eingabepunkte mit der gleichen Kennung. Die Entfernung zwischen den Punkten ist über der gepunkteten Linie angegeben, und die Zeit jeder Punktmessung ist unter den Punkten angegeben. Auf der Zeitachse befinden sich vier Aufteilungen. Die rote Unterteilung stellt die Zeitgrenze von einem Tag dar, die um 00:00 Uhr beginnt. Die blaue Unterteilung stellt die Entfernungsaufteilung dar, wenn die Entfernung zwischen den zwei Punkten größer als 16 Kilometer ist. Die violette Unterteilung stellt die Zeitaufteilung dar, wenn die zeitliche Entfernung zwischen zwei aufeinanderfolgenden Punkten mehr als sechs Stunden beträgt.
Beispiel ohne Zeitaufteilung und ohne Entfernungsaufteilung.
Beispiel mit einer Zeitaufteilung von 6 Stunden. Alle Features mit einem zeitlichen Abstand von mehr als zwei Stunden werden in separaten Tracks abgeteilt.
Beispiel mit einer Zeitgrenze von einem Tag, beginnend um Mitternacht. Ab der angegebenen Zeit (hier 00:00 Uhr) wird in Intervallen von einem Tag jeweils ein Track erstellt.
Beispiel mit einer Entfernungsaufteilung von 16 Kilometern. Alle Features mit einem räumlichen Abstand von mehr als 16 Kilometern (die Features um 05:00 und 06:00 Uhr) werden in separaten Tracks abgeteilt.
Beispiel mit einer Zeitaufteilung von 6 Stunden und einer Zeitgrenze von 1 Tag, beginnend um 0:00 Uhr. Alle Features mit einem zeitlichen Abstand von mehr als 6 Stunden oder mit einer Überschneidung mit der Zeitaufteilung um 0:00 Uhr werden in separaten Tracks abgeteilt.
Beispiel mit einer Zeitaufteilung von sechs Stunden und einer Entfernungsaufteilung von 16 Kilometern. Alle Features mit einem zeitlichen Abstand von mehr als sechs Stunden (die Features um 06:00 und 19:00 Uhr) oder mit einem räumlichen Abstand von mehr als 16 Kilometern werden in separaten Tracks abgeteilt.
Beispiel mit einer Entfernungsaufteilung von 16 Kilometern und einer Zeitgrenze von 1 Tag, beginnend um 00:00 Uhr. Alle Features mit einem räumlichen Abstand von mehr als 16 Kilometern, die sich mit der Zeitaufteilung um 00:00 Uhr überschneiden, werden in separaten Tracks abgeteilt.
Beispiel mit einer Entfernungsaufteilung von 16 Kilometern, einer Zeitaufteilung von 6 Stunden und einer Zeitgrenze von 1 Tag, beginnend um 00:00 Uhr. Alle Features mit einem räumlichen Abstand von mehr als 16 Kilometern oder einem zeitlichen Abstand von 6 Stunden, die sich mit der Zeitaufteilung um 00:00 Uhr überschneiden, werden in separaten Tracks abgeteilt.
Falls Sie einen Track mithilfe einer Zeitaufteilung, einer Entfernungsaufteilung oder eines Teilungsausdrucks teilen, können Sie angeben, wie Segmente zwischen der Teilung erstellt werden. Die folgenden Optionen sind verfügbar:
- Lücke: Zwischen zwei Features, die geteilt wurden, wird eine Lücke erstellt.
- Danach beenden: Ein Segment wird erstellt, das nach der Teilung endet.
- Davor beginnen: Ein Segment wird erstellt, das vor der Teilung endet und beginnt.
Das folgende Diagramm zeigt ein Beispiel der Teilungstypen.
In den drei Beispielen der Zeitaufteilungen werden dieselben (gelben) Eingabepunkte angezeigt. Zeitaufteilungsoption Beschreibung Fünf Eingabepunkte mit Zeit und Position
Fünf Eingabepunkte mit der gleichen Kennung. Die Zeit jedes Punktes ist unter der gepunktete Linie angegeben. Bei allen Beispielen gibt es eine Teilung um 2:00 Uhr und eine um 5:00 Uhr. Jeder Track wird zwischen dem dritten und dem vierten Punkt des Tracks in zwei Segmente geteilt. Der erste Track ist grün, der zweite violett. Der Parameter "Teilungstyp" legt fest, wie die Tracks aufgeteilt werden.
Lücke
Beispiel mit einer Lücke zwischen den zwei Punkten, die geteilt werden. Dies ist die Standardeinstellung.
Danach beenden
Beispiel, in dem der Track nach der Teilung (am vierten Punkt) endet. Der zweite Track beginnt am vierten Punkt.
Davor beginnen
Beispiel, in dem der Track vor der Teilung (am dritten Punkt) geteilt wird. Der zweite Track beginnt am dritten Punkt.
In den folgenden Szenarien wird anhand des Beispiels eines Linienflugs verdeutlicht, warum es sinnvoll ist, Tracks mit den Aufteilungsparametern und dem Feldkennungsparameter zu definieren:
- Ein Flugzeug-Feature verfügt über die Felder aircraft ID, flight ID, pilot name, start time und flight_maneuver. Im Feld flight_maneuver wird angegeben, ob das Flugzeug gelandet ist, sich im Steig- bzw. Sinkflug befindet oder auf einer konstanten Höhe fliegt.
- Verwenden Sie das Feld aircraft ID als Kennung, um die von den einzelnen Flugzeugen zurückgelegte Route zu ermitteln.
- Verwenden Sie die Felder aircraft ID und flight ID als Kennung, um verschiedene Routen miteinander zu vergleichen.
- Verwenden Sie das Feld aircraft ID und die Zeitgrenze von einem Jahr, um die Flüge der einzelnen Flugzeuge während eines Jahres zu vergleichen.
- Verwenden Sie die Felder pilot name, aircraft ID und start time, um die Flüge der einzelnen Piloten anzuzeigen.
- Verwenden Sie das Feld aircraft ID als Kennung, und teilen Sie Entfernungen von mehr als 1.000 Kilometern auf, um neue Tracks zu bestimmen. Dabei gilt die Vorgabe, dass eine Differenz von 1.000 Kilometern in den Messungen nicht zu demselben Track gehören darf.
- Verwenden Sie das Feld aircraft ID als Kennung, und teilen Sie mithilfe eines Ausdrucks, wenn sich der Wert im Feld flight_maneuver ändert. var flight_manuever = TrackFieldWindow("maneuver", -1, 1); flight_maneuver[0] != flight_maneuver[1] prüft beispielsweise, ob der aktuelle Wert in einem Track mit dem vorherigen Wert übereinstimmt. Wenn nicht, wird der Track geteilt.
- Ein Flugzeug-Feature verfügt über die Felder aircraft ID, flight ID, pilot name, start time und flight_maneuver. Im Feld flight_maneuver wird angegeben, ob das Flugzeug gelandet ist, sich im Steig- bzw. Sinkflug befindet oder auf einer konstanten Höhe fliegt.
Ausgabe-Tracks geben die als Track-ID verwendeten Felder, die Anzahl der Features in einem Track (count), die Start- und Endzeit jedes Tracks (start_date und end_date), die Dauer des Tracks in Millisekunden (duration) sowie alle anderen optionalen Statistiken (im Format statisticstype_fieldname)) zurück.
Wenn Sie einen oder mehrere der folgenden Schritte durchführen, können Sie die Performance des Werkzeugs Tracks rekonstruieren verbessern:
- Legen Sie die Ausdehnungsumgebung so fest, dass nur die gewünschten Daten analysiert werden.
- Verwenden Sie anstelle der Methode "Geodätisch" die Methode "Planar".
- Wenden Sie keinen Puffer an.
- Teilen Sie die Tracks mit dem Parameter Zeitaufteilung, Aufteilung nach Zeitgrenze, Entfernungsaufteilung oder Teilungsausdruck. Mit dem Parameter Aufteilung nach Zeitgrenze sind die größten Performance-Steigerungen möglich.
- Verwenden Sie lokale Daten an der Stelle, an der die Analyse ausgeführt wird.
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.
Ähnliche Analysen können auch mit Folgendem durchgeführt werden:
- Mit dem Werkzeug Punkte in Linie in der Toolbox "Data Management".
Parameter
arcpy.gapro.ReconstructTracks(input_layer, out_feature_class, track_fields, method, buffer_type, {buffer_field}, {buffer_expression}, {time_split}, {distance_split}, {time_boundary_split}, {time_boundary_reference}, {summary_fields}, {split_expression}, {split_type})
Name | Erläuterung | Datentyp |
input_layer | Die Punkte oder Polygone, die in Tracks rekonstruiert werden sollen. Die Eingabe muss ein Layer mit aktivierten Zeiteigenschaften sein, der einen Zeitpunkt darstellt. | Feature Layer |
out_feature_class | Eine neue Feature-Class mit den resultierenden Tracks. | Feature Class |
track_fields [track_fields,...] | Ein oder mehrere Felder, die zum Identifizieren eindeutiger Tracks verwendet werden. | Field |
method | Gibt die Kriterien an, nach denen die Tracks rekonstruiert werden. Wenn ein Puffer verwendet wird, bestimmt der Parameter method den Typ des Puffers.
| String |
buffer_type | Gibt an, wie der Pufferabstand definiert wird.
| String |
buffer_field (optional) | Das Feld, das zur Pufferung der Eingabe-Features verwendet wird. Feldwerte werden in den Einheiten des Raumbezugs der Eingabe angewendet, es sei denn, Sie verwenden ein geographisches Koordinatensystem. In diesem Fall werden Meter verwendet. | Field |
buffer_expression (optional) |
Der Ausdruck, der zur Pufferung der Eingabe-Features verwendet wird. Die Felder müssen numerisch sein, und der Ausdruck kann die Operatoren [+ - * / ] und mehrere Felder enthalten. Berechnete Feldwerte werden in den Einheiten des Raumbezugs der Eingabe angewendet, es sei denn, Sie verwenden ein geographisches Koordinatensystem. In diesem Fall werden Meter verwendet. Verwenden Sie Arcade-Ausdrücke wie as_kilometers($feature.distance) * 2 + as_meters(15). | Calculator Expression |
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 |
summary_fields [summary_fields,...] (optional) | Die Statistiken, die für bestimmte Felder berechnet werden.
| Value Table |
split_expression (optional) | Ein Ausdruck, der Tracks basierend auf Werten, Geometrie oder Zeitwerten teilt. Mit "true" ausgewertete Ausdrücke werden geteilt. | Calculator Expression |
split_type (optional) | Gibt an, wie das Track-Segment bei der Aufteilung eines Tracks zwischen zwei Features erstellt wird. Der Teilungstyp wird auf Teilungsausdrücke, Entfernungsaufteilungen und Zeitaufteilungen angewendet.
| String |
Codebeispiel
Das folgende eigenständige Skript veranschaulicht, wie die Funktion ReconstructTracks verwendet wird.
# Name: ReconstructTracks.py
# Description: Reconstruct hurricane points into hurricane tracks, where each
# location is buffered by the wind speed * 100.
# 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\Hurricanes.lyrx'
# MakeFeatureLayer converts the .lyrx to features
hurricanesLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "Hurricanes Layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(hurricanesLayer, inputLyrx)
# Set local variables
trackIdentifier = "EVENTID"
out = "c:/mydata/OutputDatasets.gdb/HurricaneTracks"
bufferExpression = "WINDSPEED * 100"
statistics = [["PRESSURE", "MEAN"]]
# Run Reconstruct Tracks
arcpy.gapro.ReconstructTracks(hurricanesLayer, out, trackIdentifier,
"GEODESIC", "EXPRESSION", None,
bufferExpression, None, statistics)
Umgebungen
Lizenzinformationen
- Basic: Nein
- Standard: Nein
- Advanced: Ja