Ausdrücke für "Feld berechnen"

Im Werkzeug Feld berechnen werden zum Bestimmen von Feldwerten Arcade-Ausdrücke verwendet. Sie können einfache und erweiterte Berechnungen durchführen, die auf alle Datensätze angewendet werden. Die Berechnung wird auf jedes Feature angewendet. Die Abschnitte unten enthalten Beispiele für die Verwendung eines Ausdrucks vom Typ "Feld berechnen". Die Berechnungen erfolgen, wenn die Analyse in ArcGIS GeoAnalytics Server ausgeführt wird. Dabei wird immer ein neuer Layer erstellt.

In ArcGIS Enterprise 10.6 und höher werden Ausdrücke mit Arcade formatiert. In Arcade werden Feldnamen als $feature["field name"] oder $feature.fieldname formatiert. Die erste Option, $feature["field name"], ist erforderlich, wenn ein Feldname ein Leerzeichen enthält. Diese Option wird in allen folgenden Beispielen verwendet.

Weitere Informationen zu Arcade-Ausdrücken

Von den folgenden Werkzeugen werden Arcade-Ausdrücke in GeoAnalytics Server verwendet:

Vorversion:

Die Erweiterung ArcGIS GeoAnalytics Server wird in ArcGIS Enterprise abgekündigt. Die letzte Version von GeoAnalytics Server ist in ArcGIS Enterprise 11.3 enthalten. Diese Werkzeuge stehen in ArcGIS Enterprise 11.3 und früheren Versionen zur Verfügung.

Beispiele für mathematische Operationen und Funktionen

Mit Ausdrücken können Zahlen mathematisch verarbeitet werden. In der folgenden Tabelle werden Beispiele für verfügbare Operationen gezeigt.

Weitere Informationen zu den mathematischen Operationen und Funktionen in Arcade

OperatorErläuterungBeispiel

a + b

Gibt die Summe von a plus b zurück.

fieldname enthält den Wert 1,5

$feature["fieldname"] + 2.5

4,0

a - b

Gibt die Differenz von a minus b zurück.

fieldname enthält den Wert 3,3

$feature["fieldname"]- 2.2

1,1

a * b

Gibt das Produkt von a mal b zurück.

fieldname enthält den Wert 2,0

$feature["fieldname"] * 2.2

4,4

a / b

Gibt den Quotienten von a dividiert durch b zurück.

fieldname enthält den Wert 4,0

$feature["fieldname"] / 1.25

3,2

abs( a )

Gibt den absoluten (positiven) Wert von a zurück.

fieldname enthält den Wert -1,5

abs($feature["fieldname"])

1,5

log( a )

Gibt den natürlichen Logarithmus (Basis e) von a zurück.

fieldname enthält den Wert 1

log($feature["fieldname"])

0

sin( a )

Gibt den trigonometrischen Sinus von a zurück.

Von der Eingabe wird angenommen, dass es sich um einen Winkel in Radiant handelt.

fieldname enthält den Wert 1,5707

sin($feature["fieldname"])

1

cos( a )

Gibt den trigonometrischen Cosinus von a zurück.

Von der Eingabe wird angenommen, dass es sich um einen Winkel in Radiant handelt.

fieldname enthält den Wert 0

cos($feature["fieldname"])

1

tan( a )

Gibt den Tangens von a zurück.

Von der Eingabe wird angenommen, dass es sich um einen Winkel in Radiant handelt.

fieldname enthält den Wert 0

tan($feature["fieldname"])

0

sqrt( a )

Gibt die Quadratwurzel von a zurück.

fieldname enthält den Wert 9

sqrt($feature["fieldname"])

3

min( a, b )

Gibt von a und b die Zahl mit dem niedrigsten Wert zurück.

fieldname enthält den Wert 1,5 und den Wert -3

min($feature["fieldname"], -3)

-3

max( a, b )

Gibt von a und b die Zahl mit dem höchsten Wert zurück.

fieldname1 enthält den Wert 1,5, und fieldname2 enthält den Wert -3

max($feature["fieldname1"], $feature["fieldname2"])

1,5

constrain(<value>,<low>,<high>)

Gibt den Eingabewert zurück, sofern dieser innerhalb der Grenzwerte liegt. Wenn der Wert kleiner als der niedrige Wert ist, wird der niedrige Wert zurückgegeben. Wenn der Wert größer als der hohe Wert ist, wird der hohe Wert zurückgegeben.

Beispiel 1: constrain( $feature["distance"], 0, 10)

Gibt 0 zurück, wenn distance kleiner als 0 ist, 10, wenn distance größer als 10 ist, und ansonsten distance.

Beispiel 2: constrain($feature['Store dist'], 6, distance)

Gibt 6 zurück, wenn Store dist kleiner als 6 ist, distance, wenn Store dist größer als distance ist, und ansonsten Store dist.

Beispiele für Textfunktion

Mit Ausdrücken für Feld berechnen kann Text verarbeitet werden. In der folgenden Tabelle werden Beispiele für verfügbare Operationen gezeigt.

Weitere Informationen zu den in Arcade verfügbaren Textfunktionen

OperatorErläuterungBeispielErgebnis

concatenate(<values>, <separator>)

Verbindet Werte und gibt eine Zeichenfolge zurück.

  • values: Eine Reihe zu verkettender Zeichenfolgenwerte.
  • separator (optional): Für die Verbindung zu verwendendes Trennzeichen, wenn der Parameter values ein Array ist, oder eine zu verbindende Zeichenfolge, wenn ein Einzelwert für den ersten Parameter angegeben wird. Wenn nicht angegeben, bleibt er leer.

fieldname enthält einen Wert von GeoAnalytics.

Concatenate ([$features["fieldname"], "is", "great!"], ' ')

GeoAnalytics is great!

find(<searchText>, <text>, <startPos>)

Sucht eine Zeichenfolge in einer Zeichenfolge. Platzhalter werden nicht unterstützt.

  • searchText: Die zu suchende Unterzeichenfolge.
  • text: Der zu durchsuchende Text.
  • startPos (optional): Der nullbasierte Index der Position in der Zeichenfolge, von der aus gesucht werden soll.

fieldname1 enthält den Wert 14NorthStreet, und fieldname2 enthält den Wert North

find($feature["fieldname2"], $feature["fieldname1"])

2

lower(<value>)

Ändert eine Zeichenfolge in Kleinbuchstaben.

  • value: Die Zeichenfolge, die in Kleinbuchstaben erstellt werden soll.

fieldname enthält einen Wert von GEOANALYTICS.

lower($feature["fieldname"])

GeoAnalytics

Textbeispiel mit find und lower.

find(("north"), lower("146NorthStreet"))

Beispiele für Datumsfunktionen

Mit Ausdrücken für Feld berechnen können Datumswerte verarbeitet werden. In der folgenden Tabelle werden Beispiele für verfügbare Operationen gezeigt. In Arcade ist der Wertebereich für Monate 0 (Januar) bis 11 (Dezember), für Tage 1 bis 31, für Stunden 0 (12:00 Uhr) bis 23 (23:00 Uhr), für Minuten und Sekunden 0 bis 59 und für Millisekunden 0 bis 999. Bei Arcade-Datumsangaben entsprechen zurückgegebene Uhrzeitwerte dem Standort von GeoAnalytics Server.

Weitere Informationen zu Datumsfunktionen in Arcade

OperatorErläuterungBeispielErgebnis

date(<value>, <month>, <day>, <hour>, <minute>)

Gibt einen Wert oder einen Satz von Werten als Datumszeichenfolge aus.

  • value (optional): Entweder die Anzahl von Millisekunden seit dem 1. Januar 1970 UTC oder eine Zahl, die ein Jahr darstellt. Wenn ein Jahr angegeben wird, müssen in nachfolgenden Parametern auch der Monat und der Tag angegeben werden. Dieser Wert kann auch eine Datumszeichenfolge oder ISO 8601-Zeichenfolge sein, die in ein Datum konvertiert werden soll.
  • month (optional): Der Monat (0-11), wobei 0 Januar und 11 Dezember ist.
  • day (optional): Der Tag des Monats (1-31).
  • hour (optional): Die Stunde des Tages (0-23).
  • minute (optional): Die Minute der Stunde (0-59).
  • second (optional): Die Sekunde der Minute (0-59).
  • millisecond (optional): Die Millisekunde der Sekunde (0-999).

fieldname enthält einen Wert von 1476987783555.

Beispiel 1: Date($features["fieldname"])

Beispiel 2: Date(2017,0,14,0)

Beispiel 3: Date()

Beispiel 1: 20 Oct 2016 11:23:03 am

Beispiel 2: 14 Jan 2017 12:00:00 am

Beispiel 3: Gibt die aktuelle Uhrzeit zurück.

DateDiff(<date1>, <date2>, <units>)

Subtrahiert zwei Datumsangaben und gibt die Differenz in den angegebenen Einheiten zurück.

  • date1: Der Datumswert, von dem ein zweites Datum subtrahiert werden soll.
  • date2: Der Datumswert, der vom ersten angegebenen Datum subtrahiert werden soll.
  • units (optional): Die Einheiten, in denen die Differenz der beiden angegebenen Datumsangaben zurückgegeben werden soll. Die folgenden Einheitentypen werden unterstützt: milliseconds, seconds, minutes, hours, days, months und years. Der Standardwert ist milliseconds.

Beispiel 1: DateDiff(Date(2017,1,14,0), Date())

Beispiel 2: DateDiff(Date(2017,1,14,0), Date(), "Years")

Das Ergebnis variiert abhängig vom Zeitpunkt, an dem Sie diesen Befehl ausführen.

Beispiel 1: -20532129137

Beispiel 2: -0,6546783768647119

Year(<dateValue>)

Gibt das Jahr des angegebenen Datums zurück.

  • value: Ein Datumswert zur Angabe des Jahres.

Beispiel 1: fieldname ist ein Feld vom Typ "Date" mit dem Wert 09 Oct 2017 04:30:43 pm

Year($feature["fieldname"])

Beispiel 2: fieldname ist ein als ISO 8601-Zeichenfolge formatiertes Zeichenfolgenfeld mit dem Wert 2012-09-27.

Beispiel 1: 2017

Beispiel 2: 2012

Beispiele für logische Funktionen

Neben einfachen mathematischen Ausdrücken können auch erweiterte Funktionen für die Anwendung von Pufferausdrücken verwendet werden, welche in der nachfolgenden Tabelle aufgeführt sind.

FunktionErläuterungBeispielErgebnis

iif(<condition>,<true value>,<false value>)

Gibt einen Wert zurück, wenn eine Bedingungsauswertung true ergibt, und einen anderen Wert, wenn die Bedingungsauswertung false ergibt.

<true value> und <false value> können Folgendes sein:

  • Ein numerisches Feld. Verwenden Sie eckige Klammern, wenn der Feldname ein Leerzeichen enthält.
  • Eine Zahl.
  • Eine Funktion.

iif($feature["field1"] > $feature["field2"], $feature["field1"], 0)

iif($feature["field1"] > $feature["field2"], iif($feature["field2"] = 0, $feature["field3"], $feature["field4"]), 0)

Gibt field1 zurück, wenn field1 größer als field2 ist, und ansonsten 0.

Gibt das Ergebnis der zweiten iif-Funktion zurück, wenn field1 größer als field2 ist, und ansonsten 0.

when(<expression1> , <result1> , <expression2> , <result2> , ... , <expressionN> , <resultN>, <default>)

Wertet nacheinander eine Reihe von Ausdrücken aus, bis eine Auswertung true ergibt.

  • expression: Ein Ausdruck.
  • result: Das Ergebnis des Ausdrucks. Dabei kann es sich um eine Zahl oder ein Feld handeln.
  • default: Ein optionaler Wert, wenn keiner der Ausdrücke übereinstimmt.

when(($feature["field1"] + 10) > 1, 1,($feature["field2"] + 10) > 2 , 2, $feature["field3"])

Wenn field1 + 10 größer als 1 ist, wird 1 zurückgegeben. Falls nicht, wird überprüft, ob field2 + 10 größer als 2 ist. Falls ja, wird 2 zurückgegeben. Falls nicht, wird field3 zurückgegeben.

decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> )

Wertet einen Ausdruck aus und vergleicht dessen Wert mit nachfolgenden Parametern. Wenn der Ausdruck übereinstimmt, wird der nächste Parameterwert zurückgegeben. Gibt es keine Übereinstimmung, kann der letzte Parameter als Standardrückgabewert verwendet werden.

  • conditional val: Der konditionale Wert. Dabei kann es sich um ein Feld oder einen Ausdruck handeln.
  • case: Ein Wert, der mit conditional val verglichen werden soll.
  • result: Das Ergebnis, wenn der entsprechende Fall mit conditional val übereinstimmt.
  • defaultValue: Ein optionaler Wert, wenn kein anderer Wert true ist.

decode($feature["field1"] + 3 , $feature["field1"], 1, $feature["field2"], 2, 0)

Überprüft den konditionalen Wert field1 + 3 und case1 field1 auf Gleichheit. Bei true wird 1 zurückgegeben. Bei false werden field1 + 3 und field2 auf Gleichheit überprüft. Bei true wird 2 zurückgegeben; ansonsten 0.

Konditionale Operatoren

Konditionale Anweisungen können für die folgenden Operatoren verwendet werden:

OperatorErläuterungBeispielErgebnisse

a > b

a < b

a ist größer als b

a ist kleiner als b

10 > 2

Falsch

a >= b

a <= b

a ist größer als oder gleich b

a ist kleiner als oder gleich b

abs(-10) >= 10

True

a != b

a ist ungleich b

abs(-3) != -3

True

a == b

a ist gleich b

abs(-5) == 5

True

<condition1> || <condition2>

Bedingung 1 oder Bedingung 2 ist erfüllt.

(abs(-5) == 5) || (10 < 2)

True

<condition1> && <condition2>

Bedingung 1 und Bedingung 2 sind erfüllt.

(abs(-5) == 5) && (10 < 2)

Falsch

Tracking-bezogene Beispiele

Sie können Tracking-bezogene Gleichungen in Arcade in einigen GeoAnalytics Tools verwenden, z. B. Ereignisse ermitteln und Feld berechnen. In Feld berechnen können Sie Tracking-Gleichungen verwenden, wenn im Eingabe-Layer Zeiteigenschaften aktiviert sind, der Ausdruck Tracking-bezogen ist und mindestens ein Feld zum Identifizieren von Tracks verwendet wird.

Verwenden Sie die folgenden Tracking-Ausdrücke in ArcGIS Enterprise 10.6:

FunktionErläuterungBeispielErgebnis

$track.field["fieldname"].history(<value1>)

Gibt ein Array aus Werten im angegebenen Feld für den angegebenen Zeitindex zurück.

  • Bei einer positiven Zahl wird ein Array beginnend beim angegebenen Index bis zum aktuellen Feature zurückgegeben.
  • Eine negative Zahl gibt den aktuellen Zeitschritt und die vorherigen Zeitschrittwerte von <value1> - 1 zurück.

MyField enthält die sequenziell angeordneten Werte [10, 20, 30, 40, 50, 60, 70, 80]. Der Wert 10 befindet sich bei Index 0 und der Wert 80 bei Index 7. Ausdrücke werden bei jedem Index ausgewertet, und Beispiele veranschaulichen den Index, der für die Beispiele verwendet wird. n steht für die Anzahl der Features in der Sequenz und k steht für den Index, der ausgewertet wird.

Beispiel 1: $track.field["MyField"].history(3))

Beispiel 2: $track.field["MyField"].history(-3)

Beispiel 3: mean($track.field["MyField"].history(-2))

Beispiel 4: $track.field["MyField"].history(-3)[0]

Wenn Beispiel 1 bei Index k ausgewertet wird, wird ein Array mit den Werten bei Index 3 bis k zurückgegeben. Wenn bei Index 6 (70) ausgewertet wird, wird ein Array mit den Werten bei Index [3, 4, 5, 6] zurückgegeben, sodass sich das Array [40, 50, 60, 70] ergibt.

Beispiel 2 gibt ein Array mit den Werten von Index k minus dem angegebenen Wert minus 1 (k-2) zurück. Wenn dies bei Index 6 ausgewertet wird (value = 70), werden die Werte von k-2, k-1 und k zurückgegeben [50, 60, 70].

Beispiel 3 gibt den Mittelwert der Werte bei Index k-1 und k zurück. Wenn Sie dies bei Index 4 auswerten (value = 50), finden Sie den Mittelwert von value 40 (Index 3) und value 50 (Index 4), der gleich 45 ist. Wenn Sie dies bei Index 7 auswerten, ergibt sich der Mittelwert von 70 und 80, der gleich 75 ist.

Beispiel 4 gibt das erste Element (Index 0) des in Beispiel 2 erstellten Arrays zurück: 50.

$track.field["fieldname"].history(<value1>, <value2>)

Gibt ein Array von Werten von index1 (<value1>) bis zu index2 (<value2>) zurück.

MyField verfügt über sequenziell angeordnete Werte von [10, 20, 30, 40, 50, 60, 70, 80]. 10 ist im Index 0 und 80 im Index 7. In diesem Beispiel werden Ausdrücke bei Index 7 (80) ausgewertet.

Beispiel 1: $track.field["MyField"].history(-3, -2))

Beispiel 2: $track.field["MyField"].history(-5, -2))

Beispiel 1: [60]

Beispiel 2: [40, 50, 60]

$track.time.start

Berechnet die Startzeit einer Spur in Millisekunden von der Unixzeit.

Verwendet wird ein Track, der am 2. Januar 2017 startet.

$track.time.start

1483315200000

$track.time.duration

Berechnet die Dauer einer Spur in Millisekunden vom Start bis zum aktuellen Zeitschritt.

Verwendet wird eine Spur, die am 2. Januar 2017 startet; die aktuelle Zeit ist 4. Januar 2017.

$track.time.duration

172800000

$track.time.current

Berechnet die aktuelle Uhrzeit in einer Spur.

Verwendet wird ein Feature, das am 3. Januar 2017 um 9:00 Uhr auftritt.

$track.time.current

1483434000000

$track.index

Gibt den Zeitindex des berechneten Features zurück.

Die Berechnung dieses Wertes für das erste Feature in einer Spur.

$track.index

0

$track.T(<value>, "<units>")

Gibt die Feature-Zeit und die mit dem numerischen <Wert> und den angegebenen <Einheiten> erstellte Zeit zurück.

  • value: Der numerische Wert zum Hinzufügen zur Zeit des Features.
  • units: Die Einheiten des numerischen <Werts>. Unterstützt werden die Einheitentypen Millisekunden, Sekunden, Minuten, Stunden, Tage, Monate und Jahre. Der Standardwert ist Millisekunden.

Verwendet wird ein Feature, das am 2. Januar 2017 um 14:00 Uhr auftritt.

Beispiel 1: $track.T(1, "hours")

Beispiel 2: $track.T(-2, "days")

Beispiel 1: Gibt 2. Januar um 15:00 Uhr zurück: 1483369200000

Beispiel 2: Gibt 31. Dezember um 14:00 Uhr zurück: 1483192800000

$track.field["fieldname"].window(<value1>, <value2>)

Gibt ein Array aus Werten im angegebenen Feld für den angegebenen Zeitindex zurück. Die Funktion "window" ermöglicht die Vorwärts- oder Rückwärtsbewegung in der Zeit. Der Ausdruck wird bei jedem Feature im Track ausgewertet.

  • Das aktuelle Feature befindet sich bei Index 0.
  • Positive Werte repräsentieren Features, die in der Zukunft nach dem aktuellen Wert auftreten. Zum Beispiel ist Position 1 der nächste Wert im Array.
  • Negative Zahlen repräsentieren Features, die in der Vergangenheit vor dem vorherigen Feature auftreten. Zum Beispiel ist -1 der vorherige Wert im Array.

Die Funktion "window" ist in ArcGIS Enterprise 10.6.1 oder höher verfügbar.

MyField enthält die sequenziell angeordneten Werte [10, 20, 30, 40, 50]. Der Ausdruck wird bei jedem Feature im Track ausgewertet. In den zurückgegebenen Ergebnissen ist das Start-Feature enthalten, das End-Feature aber nicht.

Beispiel 1: $track.field["MyField"].window(-1,2)

Beispiel 2: $track.field["MyField"].window(-2,0)[0]

Beispiel 3: $track.field["MyField"].window(0,3)[2]

Beispiel 1: Nach Auswertung bei jedem Feature enthält die Tabelle die folgenden Ergebnisse.

Ausgewertetes FeatureErgebnis

10

[10,20]

20

[10, 20, 30]

30

[20,30,40]

40

[30,40,50]

50

[40, 50]

Beispiel 2: Nach Auswertung bei Index 2 (Wert: 30) lautet das Ergebnis: 10.

Beispiel 3: Nach Auswertung bei Index 2 (Wert: 30) lautet das Ergebnis: 50.

$track.geometry.window(<value1>, <value2>)

Gibt ein Array aus Werten zur Darstellung der Geometrie für den angegebenen Zeitindex zurück. Die Funktion "window" ermöglicht die Vorwärts- oder Rückwärtsbewegung in der Zeit. Der Ausdruck wird bei jedem Feature im Track ausgewertet.

  • Das aktuelle Feature befindet sich bei Index 0.
  • Positive Werte repräsentieren Features, die in der Zukunft nach dem aktuellen Wert auftreten. Zum Beispiel ist Position 1 der nächste Wert im Array.
  • Negative Zahlen repräsentieren Features, die in der Vergangenheit vor dem vorherigen Feature auftreten. Zum Beispiel ist -1 der vorherige Wert im Array.

Die Funktion "window" ist in ArcGIS Enterprise 10.6.1 oder höher verfügbar.

MyField enthält die sequenziell angeordneten Werte [10, 20, 30, 40, 50]. Die Geometrie der Features lautet [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}] Der Ausdruck wird bei jedem Feature im Track ausgewertet. In den zurückgegebenen Ergebnissen ist das Start-Feature enthalten, das End-Feature aber nicht.

Beispiel 1: $track.geometry.window(-1,2)

Beispiel 2: $track.geometry.window(0,1)[0] für ein Polylinien-Dataset

Beispiel 3: $track.geometry.window(0,1)[0] für ein Polygon-Dataset

Beispiel 4: Finde den X-Wert des vorherigen Punktes $track.geometry.window(-1,0)[0]["x"]

Beispiel 1: Nach Auswertung bei jedem Feature enthält die Tabelle die folgenden Ergebnisse.

Ausgewertetes FeatureErgebnis

10

[{x: 1, y: 1},{x: 2, y: 2}]

20

[{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null}]

30

[{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}]

40

[{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}]

50

[{x: 4, y: 4}, {x: 5, y: 5}]

Beispiel 2: Polylinien werden im folgenden Format zurückgegeben: [{"paths":[[[-180,-22.88],[-177.6,-23.6]],[[180,-18.099999999999994],[179.7,-18.4],[179.4,-18.7],[178.9,-18.9],[178.5,-19.3],[178.2,-19.7],[178.4,-20],[178.8,-20.2],[178.9,-21.8],[179,-22.2],[179.4,-22.7],[180,-22.88]],[[-178,-17],[-178.8,-17.3],[-179.2,-17.5],[-179.6,-17.8],[-179.9,-18],[-180,-18.099999999999994]]]}]

Beispiel 3: Polygone werden im folgenden Format zurückgegeben: [{"rings":[[[-7882559.1197999995,6376090.883500002],[-7893142.474300001,6042715.216800004],[-8544018.775999999,6045361.0554000065],[-8544018.775999999,6376090.883500002],[-7882559.1197999995,6376090.883500002]]]}]

Beispiel 4: Nach Auswertung bei Index 2 (Wert: 30): 2

$track.window(<value1>, <value2>)

Gibt ein Array aus Werten zur Darstellung der Geometrie und allen Attributen für den angegebenen Zeitindex zurück. Die Funktion "window" ermöglicht die Vorwärts- oder Rückwärtsbewegung in der Zeit.

  • Das aktuelle Feature befindet sich bei Index 0.
  • Positive Werte repräsentieren Features, die in der Zukunft nach dem aktuellen Wert auftreten. Zum Beispiel ist Position 1 der nächste Wert im Array.
  • Negative Zahlen repräsentieren Features, die in der Vergangenheit vor dem vorherigen Feature auftreten. Zum Beispiel ist -1 der vorherige Wert im Array.

Die Funktion "window" ist in ArcGIS Enterprise 10.6.1 oder höher verfügbar.

MyField enthält die sequenziell angeordneten Werte [10, 20, 30, 40, 50] zusätzlich zu den Feldern objectID, globalID und instant_datetime. Die Geometrie der Features lautet [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}]. Der Ausdruck wird bei jedem Feature im Track ausgewertet. In den zurückgegebenen Ergebnissen ist das Start-Feature enthalten, das End-Feature aber nicht.

Beispiel 1: $track.window(-1,0)[0]

Beispiel 2: geometry($track.window(-1,0)[0]["x"]

Beispiel 1: Nach Auswertung bei jedem Feature enthält die Tabelle die folgenden Ergebnisse.

Ausgewertetes FeatureErgebnis

10

20

[{"geometry": {x: 1, y: 1}},{"attributes": {"MyField" : 10, "trackName":"ExampleTrack1"}}]

30

[{"geometry": {x: 2, y: 2}},{"attributes": {"MyField" : 20, "trackName":"ExampleTrack1"}}]

40

[{"geometry": {x: null, y: null}},{"attributes": {"MyField" : 30, "trackName":"ExampleTrack1"}}]

50

[{"geometry": {x: 4, y: 4}},{"attributes": {"MyField" : 40, "trackName":"ExampleTrack1"}}]

Beispiel 2: Nach Auswertung bei Index 2 (Wert: 30): 2

Verwenden Sie die folgenden Tracking-Ausdrücke in ArcGIS Enterprise 10.6.1 oder höher:

FunktionErläuterungBeispielErgebnis

TrackStartTime()

Berechnet die Startzeit einer Spur in Millisekunden von der Unixzeit.

Verwendet wird ein Track, der am 2. Januar 2017 startet.

TrackStartTime()

1483315200000

TrackDuration()

Berechnet die Dauer einer Spur in Millisekunden vom Start bis zum aktuellen Zeitschritt.

Verwendet wird eine Spur, die am 2. Januar 2017 startet; die aktuelle Zeit ist 4. Januar 2017.

TrackDuration()

172800000

TrackCurrentTime()

Berechnet die aktuelle Uhrzeit in einer Spur.

Verwendet wird ein Feature, das am 3. Januar 2017 um 9:00 Uhr auftritt.

TrackCurrentTime()

1483434000000

TrackIndex

Gibt den Zeitindex des berechneten Features zurück.

Die Berechnung dieses Wertes für das erste Feature in einer Spur.

TrackIndex

0

TrackFieldWindow(<fieldName>, <startIndex>, <endIndex>)

Gibt ein Array aus Werten im angegebenen Feld für den angegebenen Zeitindex zurück. Die Funktion "window" ermöglicht die Vorwärts- oder Rückwärtsbewegung in der Zeit. Der Ausdruck wird bei jedem Feature im Track ausgewertet.

  • Das aktuelle Feature befindet sich bei Index 0.
  • Positive Werte repräsentieren Features, die in der Zukunft nach dem aktuellen Wert auftreten. Zum Beispiel ist Position 1 der nächste Wert im Array.
  • Negative Zahlen repräsentieren Features, die in der Vergangenheit vor dem vorherigen Feature auftreten. Zum Beispiel ist -1 der vorherige Wert im Array.

MyField enthält die sequenziell angeordneten Werte [10, 20, 30, 40, 50]. Der Ausdruck wird bei jedem Feature im Track ausgewertet. In den zurückgegebenen Ergebnissen ist das Start-Feature enthalten, das End-Feature aber nicht.

Beispiel 1: TrackFieldWindow("MyField,-1,2)

Beispiel 2: TrackFieldWindow("MyField,-2,0)[0]

Beispiel 3: TrackFieldWindow("MyField,0,3)[2]

Beispiel 1: Nach Auswertung bei jedem Feature enthält die Tabelle die folgenden Ergebnisse.

Ausgewertetes FeatureErgebnis

10

[10,20]

20

[10, 20, 30]

30

[20,30,40]

40

[30,40,50]

50

[40, 50]

Beispiel 2: Nach Auswertung bei Index 2 (Wert: 30) lautet das Ergebnis: 10.

Beispiel 3: Nach Auswertung bei Index 2 (Wert: 30) lautet das Ergebnis: 50.

TrackGeometryWindow(<startIndex>, <endIndex>)

Gibt ein Array aus Werten zur Darstellung der Geometrie für den angegebenen Zeitindex zurück. Die Funktion "window" ermöglicht die Vorwärts- oder Rückwärtsbewegung in der Zeit. Der Ausdruck wird bei jedem Feature im Track ausgewertet.

  • Das aktuelle Feature befindet sich bei Index 0.
  • Positive Werte repräsentieren Features, die in der Zukunft nach dem aktuellen Wert auftreten. Zum Beispiel ist Position 1 der nächste Wert im Array.
  • Negative Zahlen repräsentieren Features, die in der Vergangenheit vor dem vorherigen Feature auftreten. Zum Beispiel ist -1 der vorherige Wert im Array.

MyField enthält die sequenziell angeordneten Werte [10, 20, 30, 40, 50]. Die Geometrie der Features lautet [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}] Der Ausdruck wird bei jedem Feature im Track ausgewertet. In den zurückgegebenen Ergebnissen ist das Start-Feature enthalten, das End-Feature aber nicht.

Beispiel 1: TrackGeometryWindow(-1,2)

Beispiel 2: TrackGeometryWindow(0,1)[0] für ein Polylinien-Dataset

Beispiel 3: TrackGeometryWindow(0,1)[0] für ein Polygon-Dataset

Beispiel 4: Finde den X-Wert des vorherigen Punktes TrackGeometryWindow(-1,0)[0]["x"]

Beispiel 1: Nach Auswertung bei jedem Feature enthält die Tabelle die folgenden Ergebnisse.

Ausgewertetes FeatureErgebnis

10

[{x: 1, y: 1},{x: 2, y: 2}]

20

[{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null}]

30

[{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}]

40

[{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}]

50

[{x: 4, y: 4}, {x: 5, y: 5}]

Beispiel 2: Polylinien werden im folgenden Format zurückgegeben: [{"paths":[[[-180,-22.88],[-177.6,-23.6]],[[180,-18.099999999999994],[179.7,-18.4],[179.4,-18.7],[178.9,-18.9],[178.5,-19.3],[178.2,-19.7],[178.4,-20],[178.8,-20.2],[178.9,-21.8],[179,-22.2],[179.4,-22.7],[180,-22.88]],[[-178,-17],[-178.8,-17.3],[-179.2,-17.5],[-179.6,-17.8],[-179.9,-18],[-180,-18.099999999999994]]]}]

Beispiel 3: Polygone werden im folgenden Format zurückgegeben: [{"rings":[[[-7882559.1197999995,6376090.883500002],[-7893142.474300001,6042715.216800004],[-8544018.775999999,6045361.0554000065],[-8544018.775999999,6376090.883500002],[-7882559.1197999995,6376090.883500002]]]}]

Beispiel 4: Nach Auswertung bei Index 2 (Wert: 30): 2

TrackWindow(<value1>, <value2>)

Gibt ein Array aus Werten zur Darstellung der Geometrie und allen Attributen für den angegebenen Zeitindex zurück. Die Funktion "window" ermöglicht die Vorwärts- oder Rückwärtsbewegung in der Zeit.

  • Das aktuelle Feature befindet sich bei Index 0.
  • Positive Werte repräsentieren Features, die in der Zukunft nach dem aktuellen Wert auftreten. Zum Beispiel ist Position 1 der nächste Wert im Array.
  • Negative Zahlen repräsentieren Features, die in der Vergangenheit vor dem vorherigen Feature auftreten. Zum Beispiel ist -1 der vorherige Wert im Array.

MyField enthält die sequenziell angeordneten Werte [10, 20, 30, 40, 50] zusätzlich zu den Feldern objectID, globalID und instant_datetime. Die Geometrie der Features lautet [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}]. Der Ausdruck wird bei jedem Feature im Track ausgewertet. In den zurückgegebenen Ergebnissen ist das Start-Feature enthalten, das End-Feature aber nicht.

Beispiel 1: TrackWindow(-1,0)[0]

Beispiel 2: geometry(TrackWindow(-1,0)[0]["x"]

Beispiel 1: Nach Auswertung bei jedem Feature enthält die Tabelle die folgenden Ergebnisse.

Ausgewertetes FeatureErgebnis

10

20

[{"geometry": {x: 1, y: 1}},{"attributes": {"MyField" : 10, "trackName":"ExampleTrack1"}}]

30

[{"geometry": {x: 2, y: 2}},{"attributes": {"MyField" : 20, "trackName":"ExampleTrack1"}}]

40

[{"geometry": {x: null, y: null}},{"attributes": {"MyField" : 30, "trackName":"ExampleTrack1"}}]

50

[{"geometry": {x: 4, y: 4}},{"attributes": {"MyField" : 40, "trackName":"ExampleTrack1"}}]

Beispiel 2: Nach Auswertung bei Index 2 (Wert: 30): 2

Verwenden Sie die folgenden Tracking-Ausdrücke, um in ArcGIS Enterprise 10.9 oder höher Entfernung, Geschwindigkeit und Beschleunigung für Tracks zu berechnen.

Entfernungsberechnungen werden in Metern, Geschwindigkeiten in Metern pro Sekunde und Beschleunigungen in Meter pro Sekundenquadrat angegeben. Entfernungen werden mit geodätischen Entfernungen gemessen.

FunktionErläuterung

TrackCurrentDistance()

Die Summe der zwischen den Beobachtungen zurückgelegten Entfernungen, von der ersten bis zur aktuellen Beobachtung.

TrackDistanceAt(value)

Die Summe der zwischen den Beobachtungen zurückgelegten Entfernungen, von der ersten bis zur aktuellen Beobachtung zuzüglich des gegebenen Werts.

TrackDistanceWindow(value1, value2)

Die Entfernungen zwischen dem ersten Wert (einschließlich) und dem letzten Wert (ausschließlich) in einem Fenster nahe der aktuellen Beobachtung (0).

TrackCurrentSpeed()

Die Geschwindigkeit zwischen der vorherigen und der aktuellen Beobachtung.

TrackSpeedAt(value1)

Die Geschwindigkeit bei der Beobachtung im Verhältnis zur aktuellen Beobachtung. Beispiel: Beim Wert 2 handelt es sich um die Geschwindigkeit bei der Beobachtung, die sich zwei Beobachtungen hinter der aktuellen Beobachtung befindet.

TrackSpeedWindow(value1, value2)

Die Geschwindigkeitswerte zwischen dem ersten Wert (einschließlich) und dem letzten Wert (ausschließlich) in einem Fenster nahe der aktuellen Beobachtung (0).

TrackCurrentAcceleration()

Die Beschleunigung zwischen der vorherigen und der aktuellen Beobachtung.

TrackAccelerationAt(value1)

Die Beschleunigung bei der Beobachtung im Verhältnis zur aktuellen Beobachtung.

TrackAccelerationWindow(value1, value2)

Die Beschleunigungswerte zwischen dem ersten Wert (einschließlich) und dem letzten Wert (ausschließlich) in einem Fenster nahe der aktuellen Beobachtung (0).

Die für die Berechnungen von Entfernung, Geschwindigkeit und Beschleunigung verwendeten Beispiele stammen aus der folgenden Abbildung.

Abbildung: Beispiel für einen Track mit sechs Punkten

FunktionBeispielergebnis

TrackCurrentDistance()

Punkt-IDErgebnis (Meter)

P1

0

P2

60

P3

80 + 60 = 140

P4

30 + 80 + 60 = 170

P5

35 + 30 + 80 + 60 = 205

P6

25 + 35 + 30 + 80 + 60 = 230

TrackDistanceAt(2)

Punkt-IDErgebnis (Meter)

P1

0 + 80 + 60 = 140

P2

30 + 80 + 60 = 170

P3

35 + 30 + 80 + 60 = 205

P4

25 + 35 + 30 + 80 + 60 = 230

P5

NULL

P6

NULL

TrackDistanceWindow(-1, 2)

Punkt-IDErgebnis (Meter)

P1

[0,60]

P2

[0, 60, 140]

P3

[60, 140, 170]

P4

[140, 170, 205]

P5

[170, 205, 230]

P6

[205, 230]

TrackCurrentSpeed()

Punkt-IDErgebnis (Meter/Sekunde)

P1

0

P2

60/60

1

P3

80/60

1.33

P4

30/60

0,5

P5

35/60

0.5833

P6

25/60

0.4167

TrackSpeedAt(2)

Punkt-IDErgebnis (Meter/Sekunde)

P1

80/60

1.33

P2

30/60

0,5

P3

35/60

0.5833

P4

25/60

0.4167

P5

NULL

P6

NULL

TrackSpeedWindow(-1, 2)

Punkt-IDErgebnis (Meter/Sekunde)

P1

[0, 1]

P2

[0, 1, 1,3]

P3

[1, 1,3, 0,5]

P4

[1,3, 0,5, 0,583]

P5

[0,5, 0,583, -0,4167]

P6

[0,583, -0,4167]

TrackCurrentAcceleration()

Punkt-IDErgebnis (Meter/Sekunde²)

P1

0

P2

0.0167

P3

0.0056

P4

-0.0014

P5

0.0014

P6

-0.0028

TrackAccelerationAt(2)

Punkt-IDErgebnis (Meter/Sekunde²)

P1

0.0056

P2

-0.0014

P3

0.0014

P4

-0.0028

P5

NULL

P6

NULL

TrackAccelerationWindow(-1, 2)

Punkt-IDErgebnis (Meter/Sekunde²)

P1

[0, 0,0167]

P2

[0, 0,0167, 0,0056 ]

P3

[0,0167, 0,0056, -0,0014]

P4

[0,0056, -0,0014, 0,0014]

P5

[-0,0014, 0,0014, -0,0028]

P6

[0,0014, -0,0028]

Verwandte Themen