Подпись | Описание | Тип данных |
Входной слой | Входные объекты, которые содержат потенциальные инциденты. | Table View |
Выходной набор данных | Новый выходной набор данных, содержащий инциденты. | Feature Class;Table |
Поля трека | Поле или поля, которые будут использоваться для идентификации уникальных треков. | Field |
Начальное условие | Условие, которое будет использоваться для идентификации инцидентов. Выражения пишутся на Arcade, могут содержать операторы [+ - * / ] и несколько полей. Если слой добавлен на карту, фильтры Поля и Помощник могут использоваться для построения выражения. Более подробно о выражениях в инструменте Выявление инцидентов | Calculator Expression |
Конечное условие (Дополнительный) | Условие, которое будет использоваться для окончания инцидентов. Если конечное условие не указано, инциденты закончатся, когда начальное условие перестанет быть истинным. Выражения создаются в Arcade и могут включать операторы и несколько полей. Если слой добавлен на карту, фильтры Поля и Помощник могут использоваться для построения выражения. | Calculator Expression |
Выходной режим (Дополнительный) | Укажите объекты которые будут возвращаться.
| String |
Установка временного шага (Дополнительный) |
Временной промежуток, на который делятся входные данные для анализа. Временные границы позволяют анализировать значения в пределах заданного отрезка времени. Например, если вы выбрали границу в 1 день, и задали дату начала 1 января 1980, треки будут разделяться в начале каждого дня. | Time Unit |
Начало отсчета временных шагов (Дополнительный) |
Базовое время, используемое для деления входных данных для анализа. Временные границы будут созданы для всего диапазона времени, а время начала отсчета не обязательно должно быть в самом начале. Если базовое время не задано, используется 1 января 1970. | Date |
Краткая информация
Создает слой, который определяет объекты, удовлетворяющие полученному условию.
Иллюстрация
Использование
Следующая таблица определяет терминологию для инструмента Выявление инцидентов:
Термин Описание Трек
Последовательность пространственных объектов, у которых включено время с мгновенным типом времени. Пространственные объекты определяются как последовательность при помощи идентификатора трека и упорядочены во времени. Например, у городской коммунальной службы может быть парк снегоуборочной техники, в котором записывается местоположение каждой снегоуборочные машины каждые 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 и позволяют отслеживать изменения. Более подробно см. Выражения 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.
Можно повысить производительность инструмента Выявление инцидентов, выполнив одно или несколько из следующих действий:
- Установите параметр среды Экстент так, чтобы вы анализировали только интересующие вас данные.
- Выводите только объекты инцидентов.
- Разбейте треки с помощью параметра Установка временного шага.
- Используйте локальные данные там, где запускается анализ.
Этот инструмент геообработки работает от Spark. Анализ выполняется на настольном компьютере с использованием нескольких ядер параллельно. См. Информация по инструментами GeoAnalytics Desktop, чтобы узнать больше о выполнении анализа.
При запуске инструментов GeoAnalytics Desktop анализ выполняется на настольном компьютере. Для оптимальной производительности данные должны быть доступны на настольном компьютере. Если используется размещенный векторный слой, рекомендуется применить ArcGIS GeoAnalytics Server. Если данные находятся не на жестком диске, для запуска инструмента потребуется больше времени. Чтобы использовать ArcGIS GeoAnalytics Server для выполнения анализа, см. GeoAnalytics Tools.
Параметры
arcpy.geoanalytics.DetectIncidents(input_layer, output, track_fields, start_condition, {end_condition}, {output_mode}, {time_boundary_split}, {time_boundary_reference})
Имя | Описание | Тип данных |
input_layer | Входные объекты, которые содержат потенциальные инциденты. | Table View |
output | Новый выходной набор данных, содержащий инциденты. | Feature Class;Table |
track_fields [track_fields,...] | Поле или поля, которые будут использоваться для идентификации уникальных треков. | Field |
start_condition | Условие, которое будет использоваться для идентификации инцидентов. Выражения пишутся на Arcade, могут содержать операторы [+ - * / ] и несколько полей. | Calculator Expression |
end_condition (Дополнительный) | Условие, которое будет использоваться для окончания инцидентов. Если конечное условие не указано, инциденты закончатся, когда начальное условие перестанет быть истинным. | Calculator Expression |
output_mode (Дополнительный) | Укажите объекты которые будут возвращаться.
| String |
time_boundary_split (Дополнительный) |
Временной промежуток, на который делятся входные данные для анализа. Временные границы позволяют анализировать значения в пределах заданного отрезка времени. Например, если вы выбрали границу в 1 день, и задали дату начала 1 января 1980, треки будут разделяться в начале каждого дня. | Time Unit |
time_boundary_reference (Дополнительный) |
Базовое время, используемое для деления входных данных для анализа. Временные границы будут созданы для всего диапазона времени, а время начала отсчета не обязательно должно быть в самом начале. Если базовое время не задано, используется 1 января 1970. | Date |
Пример кода
В следующем автономном скрипте показано использование функции DetectIncidents.
# Name: DetectIncidents.py
# Description: Detect incidents when wind speed is greater than 100 miles per hour
# Import system modules
import arcpy
arcpy.env.workspace = "C:/data/Weather.gdb"
# Enable time on the input features using an .lyrx file.
# To create the .lyrx file, add your layer to a map, open the layer properties
# and enable time. Then right-click the layer and select Share As Layer File.
inputLyrx = r'C:\data\Hurricanes.lyrx'
# MakeFeatureLayer converts the .lyrx to features
hurricanesLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "Hurricanes Layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(hurricanesLayer, inputLyrx)
# Set local variables
out = "Hurricane_Incidents"
trackIdentifier = "STAGE"
startCondition = "$feature['WINDSPEED'] > 100"
# Run Detect Incidents
arcpy.gapro.DetectIncidents(hurricanesLayer, out, trackIdentifier, startCondition)