Выражения ArcGIS Arcade в наборе инструментов GeoAnalytics Desktop
Некоторые инструменты GeoAnalytics Desktop используют в анализе выражения ArcGIS Arcade. Инструменты и функции выражений перечислены ниже.
Применяя Arcade, формат имен поле становится $feature["field name"] или $feature.fieldname. Первая опция, $feature["field name"], требуется, когда имя поля содержит пробел. Все примеры ниже используют эту опцию. Все инструменты GeoAnalytics Desktop используют формат $feature["field name"], за исключением инструмента Присоединить объекты. В инструменте Присоединить объекты используются $target["field name"] и $join["field name"] для указания применяемого набора данных.
Дополнительную информацию об использовании, переменных профиля, типах возвращаемых данных и других деталях см. в профиле GeoAnalytics Arcade.
Выражения Arcade используются следующими инструментами набора инструментов GeoAnalytics Desktop:
Инструменты Реконструировать треки и Создать буферы — используют выражения буфера при выполнении математического вычисления для настройки размера буферов. Вы можете выполнять как простые, так и сложные вычисления над всеми записями. Эти вычисления применяются к каждому объекту.
Реконструировать треки — используйте выражения разбиения для указания условия разбиения треков. Когда точка удовлетворяет критерию, трек разбивается и суммируется в разные треки. Можно применить как простые условия, так и основанные на треках. Например, вы можете разбить треки, если скорость в текущей точке менее двух метров в секунду (
TrackCurrentSpeed() < 2).Присоединить объекты - используйте выражения присоединения для указания условия выбора объектов, которые должны быть включены в соединение. Можно выполнять как простые условия присоединения (такие, как
field a > field c), так и сложные условия. Условия тестируются на каждом объекте, чтобы определить, что будет проанализировано.Вычислить поле - выполняйте как простые, так и сложные вычисления над всеми записями. Эти вычисления применяются к каждому объекту.
Найти инциденты - определите условия start и end для инцидентов. Используйте выражения start и end для поиска инцидентов. Условие инструмента Выявление инцидентов всегда должно выводить в результате
trueилиfalse. Используйте условие, чтобы определить, должен ли пространственный объект включаться в инцидент. Условия тестируются на каждом объекте, чтобы определить, какие объекты являются инцидентами.
Более подробно о выражениях Arcade
Математическая операция и примеры функции
Выражения, обрабатывающие числовые математические выражения. В таблице ниже приведен пример доступных операций.
Более подробно о математических операциях и функциях, доступных в Arcade
|
Оператор |
Объяснение |
Пример |
|---|---|---|
|
|
Возвращает сумму a и b. |
4.0 |
|
|
Возвращает разницу между a и b. |
1.1 |
|
|
Возвращает результат умножения a и b. |
4.4 |
|
|
Возвращает результат деления a на b. |
3.2 |
|
|
Возвращает абсолютное (положительное) значение числа a. |
1.5 |
|
|
Возвращает натуральный логарифм (по основанию Е) от a. |
0 |
|
|
Вычисляет тригонометрический синус a. Входные данные должны представлять значение угла в радианах. |
1 |
|
|
Возвращает тригонометрический косинус a. Входные данные должны представлять значение угла в радианах. |
1 |
|
|
Возвращает тангенс a. Входные данные должны представлять значение угла в радианах. |
0 |
|
|
Возвращает квадратный корень a. |
3 |
|
|
Возвращает самое малое значение числа между a и b. |
-3 |
|
|
Возвращает самое высокое значение числа между a и b. |
1.5 |
|
|
Возвращает входное значение, если оно находится в пределах заданных границ. Если значение меньше самого нижнего значения, возвращается нижнее значение. Если значение больше самого высокого значения, возвращается самое высокое значение. |
Пример 1: Возвращает 0, если Пример 2: Возвращает 6, если |
Примеры текстовых функций
Выражения Arcade могут обрабатывать текст. В таблице ниже приведен пример доступных операций.
Более подробно об операциях с текстом, доступных в Arcade.
|
Оператор |
Объяснение |
Пример |
Результат |
|---|---|---|---|
|
|
Соединяет значения вместе и возвращает строку.
|
|
GeoAnalytics – великолепен! |
|
|
Находит строку в пределах строки. Групповые символы не поддерживаются.
|
|
2 |
|
|
Делает буквы в строке строчными.
|
|
геоаналитика |
Пример текста, использующий find и lower.
find(("north"), lower("146NorthStreet"))
Примеры функций дат
Выражения Arcade могут обрабатывать даты. В таблице ниже приведен пример доступных операций. В Arcade значения месяца идут в диапазоне от 0 (январь) до 11 (декабрь), дни с 1 по 31, часы с 0 (12:00 am) до 23 (11:00 pm), минуты и секунды от 0 до 59 и миллисекунды с 0 до 999.
Более подробно об операциях с датами, доступных в Arcade
|
Оператор |
Объяснение |
Пример |
Результат |
|---|---|---|---|
|
|
Анализирует значение или набор значений в строке даты.
|
Пример 1: Пример 2: Пример 3: |
Пример 1: 20е октября 2016 11:23:03 Пример 2: 14 января 2017 12:00:00 Пример 3: Возвращает текущую дату. |
|
|
Вычитает две даты и возвращает разницу в указанных единицах.
|
Пример 1: Пример 2: |
Результат будет зависеть от времени запуска команды. Пример 1: -20532129137 Пример 2: -0.6546783768647119 |
|
|
Возвращает год заданной даты.
|
Пример 1:
Пример 2: |
Пример 1: 2017 Пример 2: 2012 |
Примеры логических функции
В дополнение к простым математическим выражениям можно использовать более сложные функции, приведенные в таблице ниже, для применения выражений буфера.
|
Функция |
Объяснение |
Пример |
Результат |
|---|---|---|---|
|
|
Возвращает одно значение, если условие оценивается как
|
|
Возвращает Возвращает результат второй функции |
|
|
Оценивает несколько выражений поочередно до тех пор, пока одно из них не даст значения
|
|
Если |
|
|
Оценивает выражение, а затем сравнивает его значение с последующими параметрами. Если выражение совпадает, возвращается следующее значение параметра. Если нет, существует опция, чтобы последний параметр стал возвращаемым значением по умолчанию.
|
|
Сравнивает тождество между значением условия |
Условные операторы
Условные операторы могут использовать операторы, показанные в следующей таблице:
|
Оператор |
Объяснение |
Пример |
Результаты |
|---|---|---|---|
|
|
a больше b a меньше b |
|
False |
|
|
a больше или равно b a меньше или равно b |
|
True |
|
|
a не равно b |
|
True |
|
|
a равно b |
|
True |
|
|
Встречено условие один или условие два |
|
True |
|
|
Встречено условие один и условие два |
|
False |
Примеры отслеживания треков
Выявить инциденты, Вычислить поле и Реконструировать треки могут использовать уравнения трекинга в Arcade. В инструменте Вычислить поле уравнения треков можно использовать, если у входного слоя активировано время, отмечено В выражении учитывается трекинг и одно или несколько полей идентифицируются для идентификации треков. Функции отслеживания треков перечислены в следующей таблице:
|
Функция |
Объяснение |
Пример |
Результат |
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
TrackStartTime() |
Вычисляет начальное время трека в миллисекундах, прошедших с начала эпохи. |
Использует отслеживание с началом 2 января 2017
|
|
||||||||||||
|
TrackDuration() |
Вычисляет длительность трека в миллисекундах от старта до текущего временного шага. |
Используется отслеживание с началом 2 января 2017 и текущим временем 4 января 2017.
|
|
||||||||||||
|
TrackCurrentTime() |
Вычислить текущее время в треке. |
Используется объект, который был 3 января 2017 в 9:00 утра.
|
|
||||||||||||
|
TrackIndex |
Возвращает индекс времени вычисляемого объекта. |
Вычисляет этот значение для первого объекта трека.
|
|
||||||||||||
|
TrackFieldWindow(<fieldName>, <startIndex>, <endIndex>) |
Возвращает ряд значений заданного поля для указанного индекса времени. Функциональное окно позволяет вам перемещаться вперед и назад во времени. Выражение оценивается в каждом объекте трека.
|
Пример 1: Пример 2: Пример 3: |
Пример 1: При оценке каждого объекта таблица показывает следующие результаты:
Пример 2: При оценке по индексу 2 (значение 30) возвращается: Пример 3: При оценке по индексу 2 (значение 30) возвращается: |
||||||||||||
|
TrackGeometryWindow(<startIndex>, <endIndex>) |
Возвращает массив значений, представляющий геометрию для указанного индекса времени. Функциональное окно позволяет вам перемещаться вперед и назад во времени. Выражение оценивается в каждом объекте трека.
|
Пример 1: Пример 2: Пример 3: Пример 4: Поиск значения X предыдущей точки |
Пример 1: При оценке каждого объекта таблица показывает следующие результаты:
Пример 2: Полилинии возвращаются в следующем формате: Пример 3: Полигоны возвращаются в следующем формате: Пример 4: При оценке по индексу 2 (значение 30): |
||||||||||||
|
TrackWindow(<value1>, <value2>) |
Возвращает массив значений, представляющий геометрию и все атрибуты для указанного индекса времени. Функциональное окно позволяет вам перемещаться вперед и назад во времени.
|
Пример 1: Пример 2: |
Пример 1: При оценке каждого объекта таблица показывает следующие результаты:
Пример 2: При оценке по индексу 2 (значение 30): |
Используйте выражения трека из таблицы ниже для расчета расстояния, скорости и ускорения на треках. Это похоже на вычисления, используемые в инструменте Вычислить статистику движения.
Все расчеты расстояния производятся в метрах, скорость - в метрах в секунду, а ускорение - в метрах в секунду в квадрате. Расстояния измеряются с использованием геодезических расстояний.
|
Функция |
Объяснение |
|---|---|
|
|
Сумма расстояний, пройденных между наблюдениями от первого до текущего наблюдения. |
|
|
Сумма расстояний, пройденных между наблюдениями от первого до текущего, плюс заданное значение. |
|
|
Расстояние между первым значением (включительно) и последним значением (не включительно) в окне о текущем наблюдении (0). |
|
|
Скорость между предыдущим наблюдением и текущим наблюдением. |
|
|
Скорость при наблюдении относительно текущего наблюдения. Например, при значении 2 это скорость при наблюдении через два наблюдения после текущего. |
|
|
Значения скорости между первым значением (включительно) и последним значением (не включительно) в окне вокруг текущего наблюдения (0). |
|
|
Ускорение между предыдущим наблюдением и текущим наблюдением. |
|
|
Ускорение на наблюдении относительно текущего наблюдения. |
|
|
Значения ускорения между первым значением (включительно) и последним значением (не включительно) в окне вокруг текущего наблюдения (0). |
В примерах расчетов расстояния, скорости и ускорения используются примеры из следующего изображения.

|
Функция |
Пример результата |
||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
||||||||||||||
|
|
|
||||||||||||||
|
|
|
||||||||||||||
|
|
|
||||||||||||||
|
|
|
||||||||||||||
|
|
|
||||||||||||||
|
|
|
||||||||||||||
|
|
|
||||||||||||||
|
|
|