トラック関数の使用

トラック関数を使用すると、特定の ArcGIS Velocity ツール内でトラック入力を使用した Arcade 条件式を作成して評価することができます。 トラックは、トラック識別子 (Track ID) として指定されたフィールドおよび Start Time フィールドを持つ順番に並んだフィーチャです。 Arcade トラック関数は、特定のトラック対応ツール条件式 (フィールド演算およびフィールドの割り当て) 内で Velocity を使用する場合のみ使用できます。

個々のトラック関数の詳細については、ArcGIS Arcade ドキュメントの「トラック関数」をご参照ください。

ArcGIS Velocity では、次のトラック機能を使用できます。

  • トラックの原点から現在の観測対象までの移動距離にアクセスします。
    • これを行うには、最初の観測データから現在の観測データまでの観測データ間の距離の合計を返す TrackCurrentDistance トラック関数を使用します。
    • この関数は、TrackCurrentDistance(x) のように使用され、x は検査対象のフィーチャを示しています。
    • シナリオ例:
      • トラックには 6 つのフィーチャが存在し、式はトラックの現在のフィーチャの値を返します。
        • フィーチャ 1 からフィーチャ 2 までの距離は 60 メートルです。
        • フィーチャ 2 からフィーチャ 3 までの距離は 80 メートルです。
        • フィーチャ 3 からフィーチャ 4 までの距離は 30 メートルです。
        • フィーチャ 4 からフィーチャ 5 までの距離は 35 メートルです。
        • フィーチャ 5 からフィーチャ 6 までの距離は 25 メートルです。
      • フィーチャ 3 を処理した結果は、140 (80 + 60) になります。
  • 現在より 2 つ前の観測データから特定のフィールド値にアクセスします。
    • これを行うには、指定した期間の指定したフィールドから属性値の配列を返す TrackFieldWindow トラック関数を使用します。
    • この関数は TrackFieldWindow('fieldName', startIndex, endIndex)[x] のように使用されます。
      • [フィールド名]: テキスト - 値を返すフィールド名です。
      • [開始インデックス]: - 開始フィーチャのインデックスです。 現在のフィーチャはインデックス 0 です。 正の値は、将来発生する (現在の値の後にある) フィーチャを表します。 たとえば、位置 1 は配列内の次の値です。 負の数字は、過去に発生した (現在のフィーチャの前にある) フィーチャを表します。 たとえば、-1 は配列の前の値です。
      • [終了インデックス]: - ウィンドウの最後にあるフィーチャのインデックスです。 現在のフィーチャはインデックス 0 です。 正の値は、将来発生する (現在の値の後にある) フィーチャを表します。 たとえば、位置 1 は配列内の次の値です。 負の数字は、過去に発生した (現在のフィーチャの前にある) フィーチャを表します。 たとえば、-1 は配列の前の値です。
    • シナリオ例:
      • トラックには、[10, 20, 30, 40, 50] という順番に並べられた値を持つフィールドがあります。 フィーチャのジオメトリは [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}] です。 式はトラックの各フィーチャで評価されます。 開始フィーチャを含め、終了フィーチャを除外した結果が返されます。 この例は、2 番目のフィーチャ (20) で評価され、前の値 (-1) の配列を返します。
      • Arcade 構文: var window = TrackFieldWindow('MyField', -2,-1)[0]
      • この配列から最初の値を取得するために [0] 構文が使用されたため、結果値は 10 になりました。
  • 現在のフィーチャより前のフィーチャのジオメトリにアクセスします。
    • これを行うには、指定した時間インデックスに対するジオメトリの配列を返す TrackGeometryWindow トラック関数を使用します。
    • この関数は TrackGeometryWindow(startIndex, endIndex) のように使用されます。
      • [開始インデックス]: - 開始フィーチャのインデックスです。 現在のフィーチャはインデックス 0 です。 正の値は、将来発生する (現在の値の後にある) フィーチャを表します。 たとえば、位置 1 は配列内の次の値です。 負の数字は、過去に発生した (現在のフィーチャの前にある) フィーチャを表します。 たとえば、-1 は配列の前の値です。
      • [終了インデックス]: - ウィンドウの最後にあるフィーチャのインデックスです。 現在のフィーチャはインデックス 0 です。 正の値は、将来発生する (現在の値の後にある) フィーチャを表します。 たとえば、位置 1 は配列内の次の値です。 負の数字は、過去に発生した (現在のフィーチャの前にある) フィーチャを表します。 たとえば、-1 は配列の前の値です。
    • シナリオ例:
      • トラックには、[10, 20, 30, 40, 50] という順番に並べられた値を持つフィールドがあります。 フィーチャのジオメトリは [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}] です。 式はトラックの各フィーチャで評価されます。 この例では、3 番目のフィーチャ (30) で評価したときの結果を調べます。 開始フィーチャを含め、終了フィーチャを除外した結果が返されます。
      • Arcade 構文: var window = TrackGeometryWindow(-2,2)
      • 結果値: [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}]

使用上の注意

  • Arcade トラック関数は、フィールド演算ツールとフィールドの割り当てツールでのみ使用できます。
  • 現在、トラック関数を含む Arcade 条件式をテストすることはできません。 式が有効で、リターン値のタイプが考慮されていることを確認するには、トラック関数および Arcade のドキュメントをご参照ください。
  • リアルタイム解析では、処理時に将来の観測データがまだリアルタイム解析に入力されていないため、将来のトラック値 (x) にアクセスできません。 リアルタイム解析では、以前の (-x) トラック値および現在の (0) トラック値のみにアクセスできます。
  • 以前のトラック値は、5 つ前のフィーチャ (-5) まで取得できます。
  • トラック関数を使用して Arcade 条件式を構築する際は、式に加えてトラック関数が返すデータ タイプ (配列、文字列、数値、日付) を考慮することが重要です。 各トラック関数が返すデータ タイプについては、「トラック関数」ドキュメントをご参照ください。

このトピックの内容
  1. 使用上の注意