Сводка
Создает слой, который определяет объекты, удовлетворяющие полученному условию.
Иллюстрация
Использование
Этот инструмент геообработки доступен с версией ArcGIS Enterprise 10.6 или более новой.
Следующая таблица определяет терминологию для инструмента Выявление инцидентов:
Термин Описание Трек
Последовательность пространственных объектов, у которых включено время с мгновенным типом времени. Пространственные объекты определяются как последовательность при помощи идентификатора трека и упорядочены во времени. Например, у городской коммунальной службы может быть парк снегоуборочной техники, в котором записывается местоположение каждой снегоуборочные машины каждые 10 минут. ID машины может представлять отдельные треки.
Инцидент
Пространственный объект, который соответствует интересующим вас условиям.
Мгновенный
Отдельный момент времени, заданный начальным временем и не имеющий конечного времени. Входные данные для инструмента Выявить инциденты должны иметь тип данных Мгновенный.
Интервал
Длительность, заданная начальным и конечным значениями времени.
Интересующий пространственный объект
Описывает анализируемый пространственный объект. В процессе анализа анализируются все пространственные объекты.
Инциденты являются объектами, удовлетворяющими определенному условию.
Инструмент Выявление инцидентов создает новые выходные данные. Он не изменяет входные данные.
Инструмент Выявление инцидентов можно применять к таблицам, точечным, линейным или полигональным объектам. Входным слоем должен быть слой с включённым временем, с объектами, представляющими определённый момент времени.
Используются только входные объекты, имеющие временную метку. Любые объекты, не имеющие временной метки, будут исключены.
Треки представлены с помощью уникальной комбинации полей трека. Например, если поля flightID и Destination используются в качестве идентификаторов трека, объекты [ID007, Solden] и [ID007, Tokyo] попадут в два отдельных трека, поскольку они имеют отличающиеся значения в поле Destination.
Условия создаются с помощью выражений Arcade. Необходимо начальное условие, конечное является дополнительным. Если используется только начальное условие, инцидент начинается когда начальное условие определяется как true, и заканчивается, когда начальное условие определяется как false. Например, если значения на треке: [0, 10, 15, 20, 40, 10, 12, -2, -12] и начальным условием является $feature["values"] > 15, объектами инцидентов будут объекты со значением [True], то есть [0: False, 10: False, 15: False, 20: True, 40: True, 10: False, 12: False, -2: False, -12: False], где только значения выше 15 будут считаться инцидентами. Если вы примените конечное условие: $feature["values"] < 0, результатами будут [0: False, 10: False, 15: False, 20: True, 40: True, 10: True, 12: True, -2: False, -12: False]. В этом примере, инцидент начинается, когда выполняется стартовое условие, затем каждый последующий объект становится инцидентом, пока конечное условие не станет true. Эти примеры показаны в следующей таблице:
Положение 1 2 3 4 5 6 7 8 9 Значение
0
10
15
20
40
10
12
-2
-12
Начало: $feature["values"] > 15 и нет Конца
False
False
False
True
True
False
False
False
False
Начало: $feature["values"] > 15 и Конец: $feature["values"] < 0
False
False
False
True
True
True
True
False
False
Применение временного интервала разделяет треки на заданные интервалы. Например, если вы выбрали интервал в 1 день, начиная с 9 утра 1 января , 1990 каждый трек будет обрезан в 9 утра каждого дня и проанализирован в пределах этого сегмента. Такое разбиение позволяет ускорить обработку, так как небольшие треки для анализа создаются быстрее. Если разбиение на повторяющиеся интервалы может влиять на результаты анализа, рекомендуется использовать обработку больших данных.
Условия создаются при помощи выражения Arcade и позволяют отслеживать изменения.
У трека может быть несколько инцидентов.
Выходные объекты возвращают поля во входные данные, а также создают следующие дополнительные поля:
- IncidentID – уникальный идентификатор, присвоенный объекту, являющемуся инцидентом.
- IncidentStatus – строковое поле, представляющее статус инцидента. Значением будет null, если объект не является инцидентом, Started, если объект является первым инцидентом, удовлетворяющим начальному условию, OnGoing, если объект все ещё является инцидентом, и Ended, когда объект перестаёт быть инцидентом. У одного трека может быть множество сегментов инцидентов. Например, трек с такими значениями [0, 10, 15, 20, 40, 10, 12, -2, -12] и начальным условием $feature["values"] > 15 приведет к следующим значениям IncidentStatus: [0: null, 10: null, 15: null, 20: Started, 40: OnGoing, 10: Ended, 12: null, -2: null, -12: null].
- IncidentDuration – время, в миллисекундах, когда произошел инцидент. Вычисляется как разница между интересующим объектом и объектом, ставшим инцидентом.
- Instant_Datetime – время, в которое случается объект.
Объекты на треке расставлены в последовательность по времени. Начиная с первого объекта, начальное условие проверяется, пока оно не станет истинным. Как только объект начинает соответствовать стартовым условиям, проводится оценка следующих объектов, пока стартовое условие не будет определено как false (если не задано конечное условие) или пока конечное условие не станет true (если указано конечное условие). Как только условие выполняется, инцидент заканчивается, и процесс начинается заново. В одном треке может быть несколько фрагментов инцидентов. Например, для трека со значениями [10, 20, 30, 40, 50, 10, 20, 30, 40, 50, 10, 20] и начальным условием $feature["values"] > 20, будет найдено два сегмента инцидентов [10: null, 20: null, 30: Started, 40: OnGoing, 50: OnGoing, 10: Ended, 20: null, 30: Started, 40: OnGoing, 50: OnGoing, 10: Ended, 20: null].
Длительность инцидента вычисляется в миллисекундах, как время объекта минус начало инцидента. Длительность вычисляется только в случае, если статусом объекта является Started, OnGoing или Ended. Длительность объекта со статусом Started всегда равна 0.
Можно повысить производительность инструмента Выявление инцидентов, выполнив одно или несколько из следующих действий:
- Установите параметр среды Экстент так, чтобы вы анализировали только интересующие вас данные.
- Выводите только объекты инцидентов.
- Разбейте треки с помощью параметра Установка временного шага.
- Используйте локальные данные там, где запускается анализ.
Этот инструмент геообработки работает на ArcGIS GeoAnalytics Server. Анализ выполняется на вашем GeoAnalytics Server, а результаты сохраняются в ресурсы на вашем ArcGIS Enterprise.
При работе инструментов GeoAnalytics Server, анализ выполняется на GeoAnalytics Server. Для оптимальной производительности сделайте данные доступными для GeoAnalytics Server через векторные слои, размещенные на вашем портале ArcGIS Enterprise или через файловое хранилище больших данных. Данные, которые не являются локальными для GeoAnalytics Server, будут перемещены на GeoAnalytics Server до начала анализа. Это означает, что для запуска инструмента потребуется больше времени, а в некоторых случаях перемещение данных с ArcGIS Pro на GeoAnalytics Server может завершиться ошибкой. Порог сбоя зависит от скорости сети, а также от размера и сложности данных. Соответственно рекомендуется всегда предоставлять доступ к данным или создавать файловое хранилище больших данных.
Более подробно о публикации локаторов на портале
Более подробно о создании файловых хранилищ больших данных в Server Manager
Синтаксис
arcpy.geoanalytics.DetectIncidents(input_layer, output_name, track_fields, start_condition, {end_condition}, {output_mode}, {data_store}, {time_boundary_split}, {time_boundary_reference})
Parameter | Объяснение | Тип данных |
input_layer | Входные объекты, которые содержат потенциальные инциденты. | Record Set |
output_name | Имя выходного сервиса пространственных объектов. | String |
track_fields [track_fields,...] | Поле или поля, которые будут использоваться для идентификации уникальных треков. | Field |
start_condition | Условие, которое будет использоваться для идентификации инцидентов. Выражения пишутся на Arcade, могут содержать операторы [+ - * / ] и несколько полей. | Calculator Expression |
end_condition (Дополнительный) | Условие, которое будет использоваться для окончания инцидентов. Если конечное условие не указано, инциденты закончатся, когда начальное условие перестанет быть истинным. | Calculator Expression |
output_mode (Дополнительный) | Укажите объекты которые будут возвращаться.
| String |
data_store (Дополнительный) | Задает ArcGIS Data Store, где будут сохраняться выходные данные. По умолчанию – SPATIOTEMPORAL_DATA_STORE. Все результаты, находящиеся в хранилище пространственно-временных больших данных, будут храниться в системе WGS84. Результаты в реляционном хранилище данных сохраняют свои систему координат.
| String |
time_boundary_split (Дополнительный) | Временной промежуток, на который делятся входные данные для анализа. Временные границы позволяют анализировать значения в пределах заданного отрезка времени. Например, если вы используете временные границы в 1 день, начиная с 1 января , 1980, треки будут разбиты в начале каждого дня. Этот параметр доступен только с ArcGIS Enterprise версии 10.6 и позже. | Time Unit |
time_boundary_reference (Дополнительный) | Базовое время, используемое для деления входных данных для анализа. Временные границы будут созданы для всего диапазона времени, а время начала отсчета не обязательно должно быть в самом начале. Если базовое время не задано, используется 1 января 1970. Этот параметр доступен только с ArcGIS Enterprise версии 10.6 и позже. | Date |
Производные выходные данные
Name | Объяснение | Тип данных |
output | Выходные объекты, которые соответствуют заданному условию. | Набор записей |
Пример кода
В следующем скрипте окна Python показано, как используется инструмент DetectIncidents.
#-------------------------------------------------------------------------------
# Name: DetectIncidents.py
# Description: Detect Incidents when wind speed is greater than 100 miles per hour
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
inFeatures = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Hurricanes/MapServer/0"
outFS = "HurricaneTracks_Incidents"
trackIdentifier = "STAGE"
start_condition = "$feature['WINDSPEED'] > 100"
# Execute Reconstruct Tracks
arcpy.geoanalytics.DetectIncidents(inFeatures, outFS, trackIdentifier, calcExpression)
Environments
- Выходная система координат
Система координат, используемая при анализе. Если данный параметр не указан, анализ будет выполнен во входной системе координат. Для Инструменты GeoAnalytics готовые результаты будут храниться в пространственно-временном хранилище данных в системе координат WGS84.
Информация о лицензиях
- Basic: Требуется ArcGIS GeoAnalytics Server
- Standard: Требуется ArcGIS GeoAnalytics Server
- Advanced: Требуется ArcGIS GeoAnalytics Server