Выявление инцидентов (GeoAnalytics Desktop)

Краткая информация

Создает слой, который определяет объекты, удовлетворяющие полученному условию.

Иллюстрация

Иллюстрация работы инструмента Выявление инцидентов

Использование

  • Следующая таблица определяет терминологию для инструмента Выявление инцидентов:

    ТерминОписание

    Трек

    Последовательность пространственных объектов, у которых включено время с мгновенным типом времени. Пространственные объекты определяются как последовательность при помощи идентификатора трека и упорядочены во времени. Например, у городской коммунальной службы может быть парк снегоуборочной техники, в котором записывается местоположение каждой снегоуборочные машины каждые 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. Эти примеры показаны в следующей таблице:

    Положение123456789

    Значение

    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.

Параметры

ПодписьОписаниеТип данных
Входной слой

Входные объекты, которые содержат потенциальные инциденты.

Table View
Выходной набор данных

Новый выходной набор данных, содержащий инциденты.

Feature Class;Table
Поля трека

Поле или поля, которые будут использоваться для идентификации уникальных треков.

Field
Начальное условие

Условие, которое будет использоваться для идентификации инцидентов. Выражения пишутся на Arcade, могут содержать операторы [+ - * / ] и несколько полей.

Если слой добавлен на карту, фильтры Поля и Помощник могут использоваться для построения выражения.

Более подробно о выражениях в инструменте Выявление инцидентов

Calculator Expression
Конечное условие
(Дополнительный)

Условие, которое будет использоваться для окончания инцидентов. Если конечное условие не указано, инциденты закончатся, когда начальное условие перестанет быть истинным.

Выражения создаются в Arcade и могут включать операторы и несколько полей.

Если слой добавлен на карту, фильтры Поля и Помощник могут использоваться для построения выражения.

Calculator Expression
Выходной режим
(Дополнительный)

Укажите объекты которые будут возвращаться.

  • Все объектыБудут возвращены все входные объекты. Используется по умолчанию.
  • ИнцидентыБудут возвращены только объекты, определенные, как инциденты.
String
Установка временного шага
(Дополнительный)

Временной промежуток, на который делятся входные данные для анализа. Временные границы позволяют анализировать значения в пределах заданного отрезка времени. Например, если вы выбрали границу в 1 день, и задали дату начала 1 января 1980, треки будут разделяться в начале каждого дня.

Time Unit
Начало отсчета временных шагов
(Дополнительный)

Базовое время, используемое для деления входных данных для анализа. Временные границы будут созданы для всего диапазона времени, а время начала отсчета не обязательно должно быть в самом начале. Если базовое время не задано, используется 1 января 1970.

Date

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
(Дополнительный)

Укажите объекты которые будут возвращаться.

  • ALL_FEATURESБудут возвращены все входные объекты. Используется по умолчанию.
  • INCIDENTSБудут возвращены только объекты, определенные, как инциденты.
String
time_boundary_split
(Дополнительный)

Временной промежуток, на который делятся входные данные для анализа. Временные границы позволяют анализировать значения в пределах заданного отрезка времени. Например, если вы выбрали границу в 1 день, и задали дату начала 1 января 1980, треки будут разделяться в начале каждого дня.

Time Unit
time_boundary_reference
(Дополнительный)

Базовое время, используемое для деления входных данных для анализа. Временные границы будут созданы для всего диапазона времени, а время начала отсчета не обязательно должно быть в самом начале. Если базовое время не задано, используется 1 января 1970.

Date

Пример кода

DetectIncidents, пример (автономный скрипт)

В следующем автономном скрипте показано использование функции 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)