Использование функций отслеживания

Следующие функции отслеживания позволяют создавать и оценивать выражения Arcade для входных данных треков в определенных инструментах ArcGIS Velocity. В треках происходит последовательное заполнение объектов в поле, которое используется как идентификатор трека (Track ID) и поле (Start Time). Функции отслеживания Arcade доступны только при использовании Velocity в определенных выражениях инструментов с поддержкой отслеживания (Вычислить поле и Сопоставление полей).

Подробнее о каждой отдельной функции отслеживания см. Функции отслеживания в документации ArcGIS Arcade.

Следующие функции отслеживания доступны в ArcGIS Velocity:

Примеры

  • Расстояние, пройденное от момента начала отслеживания до текущего наблюдения.
    • Для этого используется функция TrackCurrentDistance, которая возвращает сумму расстояний между наблюдениями от первого до текущего.
    • Функция используется как TrackCurrentDistance(x), где x указывает на объект проверки.
    • Пример сценария:
      • Трек содержит шесть объектов, выражение возвращает значение для текущего объекта в треке.
        • Расстояние от объекта 1 до объекта 2 равно 60 метров.
        • Расстояние от объекта 2 до объекта 3 равно 80 метров.
        • Расстояние от объекта 3 до объекта 4 равно 30 метров.
        • Расстояние от объекта 4 до объекта 5 равно 35 метров.
        • Расстояние от объекта 5 до объекта 6 равно 25 метров.
      • Результат при обработке объекта 3 должен быть 140 (80 + 60).
  • Значение указанного поля в двух наблюдениях предшествующих текущему.
    • Для этого используется функция TrackFieldWindow, которая возвращает массив атрибутивных значений из указанного поля для заданного промежутка времени.
    • Эта функция используется как TrackFieldWindow('fieldName', startIndex, endIndex)[x]
      • fieldName: Text — имя поля, значения которого должны быть возвращены значения.
      • startIndex: Number — индекс начального объекта. Индекс текущего объекта - 0. Положительные значения представляют объекты, которые попадут в будущее, после текущего значения. Например, позиция 1 – это следующее значение в массиве. Отрицательные значения представляют пространственные объекты, произошедшие в прошлом, до текущего объекта. Например, позиция --1 – это предыдущее значение в массиве.
      • endIndex: Number — индекс объекта в конце окна. Индекс текущего объекта - 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}]. Выражение оценивается в каждом объекте трека. Возвращаемые результаты включают начальный объект и не включают конечный объект. В этом примере оцениваются секунды (20) и возвращается массив из предыдущего значения (-1, inclusive).
      • Синтаксис Arcade: var window = TrackFieldWindow('MyField', -2,-1)[0].
      • Результирующее значение: 10 как синтаксис [0] использовалось для захвата первого значения из массива.
  • Геометрия объекта, предшествующего текущему объекту.
    • Для этого используется функция TrackGeometryWindow, которая возвращает массив геометрии для заданного промежутка времени.
    • Эта функция используется как TrackGeometryWindow(startIndex, endIndex)
      • startIndex: Number — индекс начального объекта. Индекс текущего объекта - 0. Положительные значения представляют объекты, которые попадут в будущее, после текущего значения. Например, позиция 1 – это следующее значение в массиве. Отрицательные значения представляют пространственные объекты, произошедшие в прошлом, до текущего объекта. Например, позиция --1 – это предыдущее значение в массиве.
      • endIndex: Number — индекс объекта в конце окна. Индекс текущего объекта - 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}]. Выражение оценивается в каждом объекте трека. В данном примере мы изучим результаты оценки третьего объекта (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 с использованием функций отслаживания важно проверить, какие типы данных (массив, строка, число, дата) будут возвращены функцией отслеживания, а также корректность самого выражения. Обратитесь к документации Функций отслеживания, чтобы увидеть, какие типы данных возвращаются каждой функцией трека.