Процессоры

Процессоры – это компоненты сервиса GeoEvent, выполняющие определенные операции над GeoEvent, такие как идентификация или обогащение, по мере их прохождения от входов к выходам.

GeoEvent Processor включает следующие процессоры:

Калькулятор поля

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

Процессор Калькулятор поля может производить как математические, так и лексические вычисления (операции со строками, а не числовыми значениями). Когда вычисленное значение записывается в существующее поле обрабатываемого события, текущее значение поля заменяется вычисленным. Процессор попытается конвертировать вычисленное значение таким образом, чтобы оно соответствовало типу данных существующего поля; в случае неудачи будет записано нулевое значение.

Свойства существующего поля для процессора Калькулятор поля.

Если вычисленное значение записывается в новое поле, схема события изменяется, и модулю GeoEvent Processor необходимо создать новое Определение GeoEvent (GeoEvent Definition), которое будет управляться системой. При использовании процессора для создания новых полей необходимо указать имя поля и тип данных. Можно указать имя Определения GeoEvent (GeoEvent Definition), а также тег, который должен применяться к новому полю.

Свойства нового поля для процессора Калькулятор поля.

При настройке процессора необходимо указать имя. Имя учитывает регистр и используется в качестве уникального идентификатора процессора в сервисе GeoEvent. Тип настраиваемого процессора выбирается в ниспадающем меню Процессор (Processor); свойства процессора Калькулятор поля (Field Calculator Processor) проиллюстрированы выше.

Процессор Калькулятор поля работает с общими математическими, лексическими и логическими выражениями. Операндами выражения могут быть имена полей из Определения GeoEvent (GeoEvent Definition) или теги, примененные к полям в Определении GeoEvent. Например, выражение Odom1 + Odom2 можно использовать для сложения значений полей с именами Odom1 и Odom2 и вычисления простой суммы. Если к полю Odom1 применен тег MILEAGEA, а к полю Odom2 – тег MILEAGEB, можно использовать выражение MILEAGEA + MILEAGEB.

Операторы и функции, поддерживаемые процессором Калькулятор поля (Field Calculator Processor), показаны ниже.

Операция Оператор Пример

Добавление

+
Odom1 + Odom2

Выражение служит для вычисления простой суммы путем сложения числовых значений полей Odom1 и Odom2. Поддерживается также конкатенация строк (например, "Hello" + "World").

Вычитание

-
VALUEA - VALUEB

Выражение служит для вычисления простой разности путем вычитания числовые значений полей с тегами VALUEA и VALUEB.

В отличие от операции сложения, поддерживающей конкатенацию строк, операцию вычитания нельзя использовать для вычисления разности двух строк.

Умножение

*
Altitude * 0.3048

Выражение служит для вычисления простого произведения путем умножения числового значения поля с именем Altitude на константу 0.3048 (в данном случае выполняется преобразование футов в метры).

Деление

/
Distance / 1.609344

Выражение служит для вычисления простого частного путем деления числового значения поля с именем Distance на константу 1.609344 (преобразование километров в мили).

Модуль

%
VALUEA % VALUEB

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

Логическое И

&&
Flag1 && Flag2

Выражение служит для выполнения операции логического И над булевыми значениями полей с именами Flag1 и Flag2 и возвращения результата в виде булева значения. Входные поля должны быть булева типа. Строковые литералы (например, "TRUE") и константы (например, 1) в выражении не конвертируются при вычислении в эквивалентные булевы значения.

Логическое ИЛИ

||
Flag1 || Flag2

Выражение служит для выполнения операции логического ИЛИ над булевыми значениями полей с именами Flag1 и Flag2 и возвращения результата в виде булева значения.

Логическое НЕ

!
!(Flag1)

Выражение служит для выполнения операции логического отрицания над булевым значением поля с именем Flag1 и возвращения результата в виде булева значения. Поддерживает вложенные выражения типа !(Flag1 && Flag2).

Больше

>
Altitude > 12500

Выражение служит для выполнения операции сравнения, определяющей истинность утверждения о том, что значение поля с именем Altitude больше заданной константы (результат является значением булевого типа).

Больше или равно

>=
Altitude >= 12500

Выражение служит для выполнения операции сравнения, определяющей истинность утверждения о том, что значение поля с именем Altitude больше или равно заданной константе (результат является значением булевого типа).

Меньше

<
Altitude < 1500

Выражение служит для выполнения операции сравнения, определяющей истинность утверждения о том, что значение поля с именем Altitude меньше заданной константы (результат является значением булевого типа).

Меньше или равно

<=
Altitude <= 1500

Выражение служит для выполнения операции сравнения, определяющей истинность утверждения о том, что значение поля с именем Altitude меньше или равно заданной константе (результат является значением булевого типа).

Равенство

==
VALUEA == VALUEB

Выражение служит для выполнения операции сравнения, определяющей истинность утверждения о том, что значения полей с тегами VALUEA и VALUEB равны (результат является значением булевого типа). Операция Равенство выполняется только над числовыми типами, поддерживаемыми в исходной версии продукта (10.2.0).

Неравенство

!=
VALUEA != VALUEB

Выражение служит для выполнения операции сравнения, определяющей истинность утверждения о том, что значения полей с тегами VALUEA и VALUEB не равны (результат является значением булевого типа). Операция Неравенство выполняется только над числовыми типами, поддерживаемыми в исходной версии продукта (10.2.0).

Операторы и функции, поддерживаемые Калькулятором поля (Field Calculator)
ПримечаниеПримечание:
Процессор Field Calculator Processor пытается автоматически конвертировать значения при наличии смешанных типов. Например, выражение 10.0 + 5 должно быть преобразовано для выполнения суммирования сложением двух значений с плавающей точкой. Смешанные числовые значения и строковые значения, такие как codeValue + "SomeString", где codeValue является числовым значением, приводят к непредсказуемым результатам. Правильным подходом будет конвертация codeValue в строковое значение с помощью такой строчной функции, как valueOf(object), описанной ниже.
ПримечаниеПримечание:

Операторы равенства и неравенства процессора Калькулятор поля не должны применяться напрямую к значениям с плавающей запятой. Для корректного определения равенства двух десятичных значений нужно сначала масштабировать их, округлить значения до длинных целых чисел и затем сравнить полученные значения типа длинное целое число.

Процессор Кулькулятор поля содержит функции, соответствующие функциям из java.lang.Math. Полную техническую спецификацию и список функций см. в документации разработчика Java. Ниже приводится краткое описание наиболее популярных функций.

Константы
Функция Описание

E()

Возвращает число Эйлера (е), возведенное в степень, заданную числом двойной точности.

PI()

Возвращает представление числа Пи (отношения длины окружности к ее диаметру) в виде числа двойной точности.

Константы для Калькулятора поля

Общие функции

Функция Описание

abs(значение)

Возвращает абсолютную величину аргумента.

ceil(число двойной точности)

Возвращает ближайшее к заданному числу двойной точности большее целое число.

floor(число двойной точности)

Возвращает ближайшее к заданному числу двойной точности меньшее целое число.

hypot(double x, double y)

Возвращает sqrt((x*x) + (y*y)) без промежуточных переполнения или потери значимости.

max(значение a, значение b)

Возвращает большее из двух заданных значений аргумента.

min(значение a, значение b)

Возвращает меньшее из двух заданных значений аргумента.

random()

Возвращает число двойной точности, большее или равное 0.0 и меньшее 1.0.

round(значение)

Возвращает ближайшее к аргументу (числу двойной точности) длинное целое число.

Общие функции Калькулятора поля
ПримечаниеПримечание:

Процессор Калькулятор поля выполняет, когда это возможно, преобразования числовых типов. Например, если в функции указаны аргументы различных числовых типов (например, max(3.14159,25)), то для выполнения сравнения значения будут преобразованы в сравнимые типы (int, float или double). Процессор также преобразует вычисленные значения при записи их в поле атрибута события (например, 6 + 7 будет записано в виде 13.0, если поле события имеет тип double).

Показательные функции

Функция

Описание

sqrt(double)

Возвращает квадратный корень заданного числа двойной точности.

cbrt(значение)

Возвращает кубический корень заданного числа двойной точности.

exp(double)

Возвращает число Эйлера (е), возведенное в степень, заданную числом двойной точности.

pow(double, double)

Возвращает значение первого аргумента, возведенное в степень, заданную вторым аргументом.

Показательные функции Калькулятора поля

Логарифмические функции

Функция

Описание

log(double)

Вычисляет натуральный логарифм (по основанию е) числа двойной точности.

log10(double)

Вычисляет логарифм по основанию 10 числа двойной точности.

Логарифмические функции Калькулятора поля

Строковые функции

Функция

Описание

int length(source)

Возвращает длину строки.

boolean isEmpty(source)

Возвращает true, если длина источника 0.

boolean isNull(source)

Возвращает true, если значение источника равно null.

boolean equals(source, Object anObject)

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

boolean equalsIgnore(source, String anotherString)

Сравнивает строку источника с другой строкой, игнорируя регистр. Два строки рассматриваются как равные, без учета регистра, если они имеют одинаковую длину и соответствующие символы строк совпадают, не считая регистра. Возвращает true, если аргумент не равен null и соответствует эквивалентной строке, без учета регистра; иначе false.

int compareTo(source, String prefix)

Лексикографическое сравнение двух строк. Возвращает значение 0, если аргумент str равен строке источника; значение меньше 0, если строка источника лексикографически меньше аргумента str; значение больше 0, если строка источника лексикографически больше аргумента str.

int compareToIgnore(source, String str)

Лексикографическое сравнение двух строк без учета регистра. Возвращает отрицательное целое, ноль или положительное целое, если указанная строка больше, равна или меньше строки источника, без учета регистра.

boolean startsWith(source, String prefix)

Проверяет, начинается ли строка источника с указанного префикса. Возвращает true, если последовательность символов аргумента prefix соответствует префиксу строки источника; иначе false.

boolean endsWith(source, String suffix)

Проверяет, заканчивается ли строка источника указанным суффиксом. Возвращает true, если последовательность символов аргумента suffix соответствует суффиксу строки источника; иначе false.

int indexOf(source, String str)

Возвращает индекс строки источника с первым появлением заданной подстроки str. Возвращает, если аргумент строки встречается в виде подстроки объекта-источника, затем возвращается индекс первого символа первой такой подстроки; если подстрока не найдена, возвращается -1.

int indexOf(source, String str, int fromIndex)

Возвращает индекс строки источника с первым появлением заданной подстроки, начиная с указанного индекса. Возвращает индекс строки источника с первым появлением заданной подстроки, начиная с указанного индекса.

int lastIndexOf(source, String str)

Возвращает индекс строки источника с последним появлением заданной подстроки. Если аргумент строки встречается в виде подстроки объекта-источника один или несколько раз, то возвращается индекс первого символа последней такой подстроки. Если подстрока не найдена, возвращается -1.

int lastIndexOf(source, String str, int fromIndex)

Возвращает индекс строки источника с последним появлением заданной подстроки при движении назад, начиная с указанного индекса. Возвращает индекс строки источника с последним появлением заданной подстроки.

String substring(int beginIndex)

Возвращает новую строку, которая является подстрокой строки источника. Подстрока начинается со знака с указанным индексом и продолжается до конца строки источника.

String substring(source, int beginIndex, int endIndex)

Возвращает новую строку, которая является подстрокой строки источника. Подстрока начинается с указанного beginIndex и продолжается до знака с индексом endIndex – 1.

String concat(source, String str)

Соединяет указанную строку с концом строки источника.

boolean matches(source, String regex)

Сообщает, соответствует ли строка источника заданному регулярному выражению. Возвращает только если строка источника соответствует заданному регулярному выражению.

boolean contains (CharSequence s)

Возвращает true только если строка источника содержит указанную последовательность значений символов. Возвращает true, если строка источника содержит s, иначе false.

String replaceFirst(source, String regex, String replacement)

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

String replaceAll(source, String regex, String replacement)

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

String replace(source, CharSequence target, CharSequence replacement)

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

String toLowerCase(source)

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

String toUpperCase(source)

Конвертирует все символы строки источника в символы верхнего регистра, используя правила локали по умолчанию. Возвращает строку с символами верхнего регистра.

String trim(source)

Возвращает копию строки источника с удаленными пробелами в начале и конце строки.

String valueOf(Object obj)

Возвращает строковое представление аргумента Object.

Строковые функции Калькулятора поля

Тригонометрические функции

Функция

Описание

acos(double)

Возвращает арккосинус числа (угол в диапазоне от 0.0 до π).

asin(double)

Возвращает арксинус числа (угол в диапазоне от -π/2 до π/2).

atan(double)

Возвращает арктангенс числа (угол в диапазоне от -π/2 до π/2).

atax2(double y, double x)

Возвращает угол θ из преобразования прямоугольных координат (x,y) в полярные (r,θ).

cos(double)

Возвращает тригонометрический косинус угла.

cosh(double)

Вычисляет гиперболический косинус числа двойной точности.

sin(double)

Вычисляет тригонометрический синус угла.

sinh(double)

Вычисляет гиперболический синус числа двойной точности.

tan(double)

Вычисляет тригонометрический тангенс угла.

tanh(double)

Вычисляет гиперболический тангенс числа двойной точности.

toDegrees(double)

Преобразует значение угла в радианах в приблизительное значение в градусах.

toRadians(double)

Преобразует значение угла в градусах в приблизительное значение в радианах.

Тригонометрические функции Калькулятора поля

Калькулятор поля (Регулярное выражение)

Процессор Калькулятор поля (Регулярное выражение) поддерживает использование регулярных выражений для задания шаблона поиска в целевом поле. Использование шаблонов поиска, заданных регулярными выражениями, может быть очень полезным для вычисления и построения производных значений из атрибутивных данных события. Процессор Калькулятор поля (Регулярное выражение) не поддерживает общие математические, лексические и логические выражения, поддерживаемые обычным процессором Калькулятор поля.

Свойства существующего поля для процессора Калькулятор поля (Регулярное выражение).

Если вычисленное значение записывается в новое поле, схема события изменяется, и модулю GeoEvent Processor необходимо создать новое Определение GeoEvent (GeoEvent Definition), которое будет управляться системой. При использовании процессора для создания новых полей необходимо указать имя поля и тип данных. Можно указать имя Определения GeoEvent (GeoEvent Definition), а также тег, который должен применяться к новому полю.

Свойства нового поля для процессора Калькулятор поля (Регулярное выражение).

При настройке процессора необходимо указать имя. Имя учитывает регистр и используется в качестве уникального идентификатора процессора в сервисе GeoEvent. Тип настраиваемого процессора выбирается в ниспадающем меню Процессор (Processor); свойства для процессора Калькулятор поля (Регулярное выражение) проиллюстрированы выше.

Процессор Калькулятор поля (Регулярное выражение) обычно используется для нахождения и извлечения подстрок в целевом поле. Извлеченные подстроки записываются либо обратно в целевое поле, заменяя его исходное значение, либо в новое поле.

Процессор поддерживает широкий набор регулярных выражений. Процессор этого типа можно настроить, например, на извлечение числовой части значения поля FlightID и записи ее в новое поле с именем FlightNumber. Пошаговые инструкции по такой настройке приведены во вводной части руководства пользователя GeoEvent Processor на странице учебных материалов по GeoEvent Processor.

ПримечаниеПримечание:

Процессор Калькулятор поля (Регулярное выражение) не поддерживает обратные ссылки в шаблоне, заданном с помощью регулярных выражений.

Field Enricher (сервис объектов)

Процессор Field Enricher (Сервис объектов) выполняет обогащение данных событий, копируя атрибутивную информацию из слоя пространственных объектов или непространственной таблицы опубликованного сервиса объектов в обрабатываемое событие. Эта операция эквивалентна операции присоединения.

Свойства процессора Field Enricher (сервис объектов).

При настройке процессора необходимо указать имя. Имя учитывает регистр и используется в качестве уникального идентификатора процессора в сервисе GeoEvent. Тип настраиваемого процессора выбирается в ниспадающем меню Процессор (Processor); свойства для процессора Field Enricher (Сервис объектов) проиллюстрированы выше.

Для настройки процессора Field Enricher (Сервис объектов) должна использоваться информация, позволяющая найти и использовать сервис объектов, необходимый для обогащения данных. Эта информация включает сведения о подключении ArcGIS Server, папке сервиса, имени сервиса объектов и целевом слое в сервисе объектов.

В процессоре необходимо указать имя поля, общего для сервиса объектов и обогащаемого события, а также имя поля из схемы события, которое будет использоваться для присоединения. На вышеприведенном рисунке имя поля сервиса объектов вводится в текстовое окно Поле присоединения слоя объектов (Feature Layer Join Field). В текстовом окне Поле присоединения GeoEvent должен быть указан тег из Определения GeoEvent (например, TRACK_ID, как показано выше) или имя какого-либо поля из схемы события.

Укажите имена полей, которые должны быть скопированы из таблицы слоя объектов, щелкнув кнопку Выбрать поля (Select Fields) для свойства Поля обогащения (Enrichment Fields). Дополнительно можно указать (в виде списка значений, разделенных запятыми) теги, которые GeoEvent Processor должен применять к каждому новому полю, которое он создает.

Для обогащения события процессор копирует данные из одного или нескольких полей сервиса объектов и добавляет поля с новыми данными к обрабатываемому событию. В результате, схема события изменяется, и модулю GeoEvent Processor необходимо создать новое Определение GeoEvent (GeoEvent Definition), которое будет управляться системой. Имена полей заданы, а типы данных полей переносятся из сервиса объектов и поэтому не указываются при настройке процессора. Задайте имя для итогового Определения GeoEvent, которое создаст GeoEvent Processor.

Пошаговые инструкции по использованию процессора Field Enricher (Сервис объектов) для присоединения к событию данных из сервиса объектов приведены во вводной части руководства пользователя GeoEvent Processor на странице учебных материалов по GeoEvent Processor.

Field Enricher (Файл)

Процессор Field Enricher (Файл) выполняет обогащение данных событий, копируя атрибутивную информацию из системного файла в обрабатываемое событие. Он похож на процессор Field Enricher (Сервис объектов) с той разницей, что источником обогащения является системный файл, а не сервис объектов.

Свойства процессора Field Enricher (Файл).

При настройке процессора необходимо указать имя. Имя учитывает регистр и используется в качестве уникального идентификатора процессора в сервисе GeoEvent. Тип настраиваемого процессора выбирается в ниспадающем меню Процессор (Processor); свойства для процессора Field Enricher (Файл) проиллюстрированы выше.

Необходимо указать системную папку, содержащую файл, который будет использоваться в качестве источника данных обогащения. Для выполнения настройки процессора системную папку необходимо зарегистрировать в GeoEvent Processor в качестве хранилища данных. Имя файла не подлежит регистрации; оно задается, и GeoEvent Processor ищет файл с этим именем в зарегистрированном хранилище данных.

В процессоре необходимо указать имя поля, общего для системного файла и обогащаемого события, а также имя поля из схемы события, которое будет использоваться для присоединения. На вышеприведенном рисунке имя поля таблицы данных системного файла вводится в текстовое окно Поле присоединения файла (File Join Field). В текстовом окне Поле присоединения GeoEvent должен быть указан тег из Определения GeoEvent (например, TRACK_ID, как показано выше) или имя какого-либо поля из схемы события.

Укажите имена полей, которые должны быть скопированы из таблицы слоя объектов, в виде списка значений, разделенных запятыми, в свойстве Поля обогащения (Enrichment Fields). Дополнительно можно указать (в виде списка значений, разделенных запятыми) теги, которые GeoEvent Processor должен применять к каждому новому полю, которое он создает.

Для обогащения события процессор копирует данные из одного или нескольких полей системного файла и добавляет поля с новыми данными к обрабатываемому событию. В результате, схема события изменяется, и модулю GeoEvent Processor необходимо создать новое Определение GeoEvent (GeoEvent Definition), которое будет управляться системой. Имена полей заданы, а типы данных полей переносятся из системного файла и поэтому не указываются при настройке процессора. Задайте имя для итогового Определения GeoEvent, которое создаст GeoEvent Processor.

Пошаговые инструкции по использованию процессора Field Enricher (Файл) для присоединения к событию данных из системного файла приведены во вводной части руководства пользователя GeoEvent Processor на странице учебных материалов по GeoEvent Processor.

ПримечаниеПримечание:

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

Field Mapper

Процессор Field Mapper Processor выполняет сопоставление данных. Каждое событие GeoEvent в GeoEvent Processor имеет соответствующую схему, которая определяет атрибутивные поля и типы данных (дата, строка, целое и т.д.) для данных событий. Эта схема называется Определением GeoEvent. Определение GeoEvent для входного потока данных может содержать поля, имена которых не соответствуют схеме опубликованного сервиса объектов, подлежащего обновлению с помощью GeoEvent Processor. В таких ситуациях поля карты из входной схемы необходимо обработать в процессоре Field Mapper Processor, чтобы сопоставить данные выходной схеме.

Свойства процессора Field Mapper.

При настройке процессора необходимо указать имя. Имя учитывает регистр и используется в качестве уникального идентификатора процессора в сервисе GeoEvent. Тип настраиваемого процессора выбирается в ниспадающем меню Процессор (Processor); свойства процессора Field Mapper проиллюстрированы выше.

Задайте исходное и целевое Определения GeoEvent, выбрав соответствующие свойства. Диалоговое окно свойств содержит список целевых полей Определений GeoEvent и позволяет выбрать исходное поле для сопоставления с целевым. Указывается тип данных целевого поля, чтобы определить, какие данные из исходного Определения GeoEvent наиболее подходят для сопоставления с целевым Определением GeoEvent.

ПримечаниеПримечание:

На рисунке выше <Field Name> является заменителем фактических имен полей целевого Определения GeoEvent. Фактический список имен полей и типов данных будет зависеть от Определения GeoEvent, выбранного в качестве целевого.

Процессор Field Mapper можно использовать для сокращения числа атрибутивных полей, передаваемых с входа на выход, поскольку полям целевого Определения GeoEvent будут сопоставлены только избранные поля из исходного Определения GeoEvent. Это может быть полезно, когда входной поток данных содержит большое количество атрибутивных значений, не представляющих интереса. Процессор Field Mapper можно также использовать для конвертации типов данных, если данные события на входе не соответствуют типам данных выходного Определения GeoEvent. Например, целочисленные данные можно представить числами двойной точности, числовые данные – строками. Это позволяет сопоставить входные данные требуемому выходному Определению GeoEvent.

Другим вариантом использования процессора Field Mapper является сглаживание схемы данных. В потоках данных реального времени атрибутивные данные иногда представлены не одним дискретным типом данных, а группой значений, относящихся к различным типам данных. Если данные имеют подобную иерархическую структуру, то для обновления опубликованного сервиса объектов необходимо предварительно сопоставить отдельные элементы группы дискретным полям выходного Определения GeoEvent, соответствующего схеме опубликованного сервиса объектов.

Field Reducer

Каждое событие GeoEvent в GeoEvent Processor имеет соответствующую схему, которая определяет атрибутивные поля и типы данных (дата, строка, целое и т.д.) для данных событий. Эта схема называется Определением GeoEvent. Процессор Field Reducer улучшает схему данных, удаляя из события ненужные атрибуты, и передает на выход или дальнейшую обработку упрощенную версию события.

Свойства процессора Field Reducer.

При настройке процессора необходимо указать имя. Имя учитывает регистр и используется в качестве уникального идентификатора процессора в сервисе GeoEvent. Тип настраиваемого процессора выбирается в ниспадающем меню Процессор (Processor); свойства процессора Field Reducer проиллюстрированы выше.

Определение GeoEvent для событий, поступающих на вход процессора, содержит их имена полей и типы данных. Поэтому необходимо указать в виде списка значений, разделенных запятыми, только поля, подлежащие удалению из поступившего события. Список полей, подлежащих удалению, указывается в свойстве Удаляемые поля (Fields to Remove), как показано на рисунке выше.

Удаление атрибутивных полей из данных события приводит к изменению схемы события, и модулю GeoEvent Processor необходимо создать новое Определение GeoEvent для работы с упрощенным событием. В диалоговом окне свойств укажите имя для итогового Определения GeoEvent, которое создаст GeoEvent Processor.

GeoTagger

GeoTagger Processor обогащает событие, добавляя информацию о GeoFences, с которыми событие связано пространственным отношением. Например, если событие происходит внутри определенной области интереса, категорию и имя этого GeoFence можно добавить к событию в качестве новых атрибутов. Это обогащает событие информацией о пространственном отношении между событием и областью интереса в некоторый момент времени.

ПримечаниеПримечание:

GeoFences необходимо импортировать в GeoEvent Processor из сервиса объектов перед настройкой процессора GeoTagger. См. раздел Управление GeoFences для получения более подробной информации о работе с GeoFences в GeoEvent Processor..

Свойства процессора GeoTagger.

При настройке процессора необходимо указать имя. Имя учитывает регистр и используется в качестве уникального идентификатора процессора в сервисе GeoEvent. Тип настраиваемого процессора выбирается в ниспадающем меню Процессор (Processor); свойства процессора GeoTagger проиллюстрированы выше.

Процессор необходимо настроить на идентификацию областей GeoFence, с которыми события будут связаны пространственным отношением. Задайте набор GeoFences вводом простого регулярного выражения в поле GeoFence в диалоговом окне свойств, как показано выше. Можно указать одну или несколько GeoFence из одной или нескольких категорий GeoFence, установленных в GeoEvent Processor. Предположим, например, что несколько GeoFence было импортировано в категорию Штаты (States). Если использовать для настройки процессора GeoTagger выражение States/.*, все именованные области в категории States будут включены в проверку пространственного отношения с поступившим в процессор событием. Если ввести .*/.*, процессор будет учитывать все известные GeoFence во всех именованных категориях.

Свойство Пространственный оператор (Spatial Operator) задает пространственное отношение, которым должно быть связано событие с данной GeoFence. Более подробно о пространственных отношениях, допустимых в GeoEvent Processor, см. в разделе Фильтры (Filters). Для определения пространственного отношения между событием и областью GeoFence, событие должно иметь поле типа Geometry. В свойстве Поле геометрии GeoEvent (GeoEvent Geometry Field) указывается тег (например GEOMETRY, как показано выше) или имя поля из Определения GeoEvent.

После задания пространственного отношения к данным события можно добавить имя GeoFence, которая будет использоваться для обогащения события. Имя поля, которое будет создано процессором, указывается в текстовом окне Имя поля GeoTag (GeoTag Field Name). По умолчанию данные добавляются к событию в виде списка значений, разделенных запятыми; формат определяется свойством Формат GeoTag. Данные обогащения могут включать либо имя GeoFence, либо и имя и категорию GeoFence. Свойство Включить категорию GeoFence в GeoTag определяет степень обогащения.

В результате обогащения, выполняемого процессором GeoTagger, схема события изменяется. и модулю GeoEvent Processor необходимо создать новое Определение GeoEvent для работы с обогащенным событием. Процессор содержит поле, в котором можно указать имя для итогового Определения GeoEvent, которое создаст GeoEvent Processor.

Пошаговые инструкции по использованию процессора GeoTagger приведены во вводной части руководства пользователя GeoEvent Processor на страницеучебных материалов по GeoEvent Processor.

Incident Detector

Процессор Incident Detector обнаруживает и выдает информацию об инцидентах в соответствии с заданными атрибутивными и пространственными условиями. В свойствах процессора можно указать начальное и конечное условия, позволяющие отнести к инциденту ряд событий в пределах определенного периода времени. Например, поток данных событий, информирующий о местоположении и текущей скорости транспортного средства, можно использовать для создания инцидента при превышении заданной скорости или вхождении транспортного средства в опасную зону. Инцидент закрывается, когда транспортное средство сбавляет скорость до допустимой или покидает опасную зону.

Свойства процессора Incident Detector.

При настройке процессора необходимо указать имя. Имя учитывает регистр и используется в качестве уникального идентификатора процессора в сервисе GeoEvent. Тип настраиваемого процессора выбирается в ниспадающем меню Процессор (Processor); свойства процессора Incident Detector проиллюстрированы выше.

Инциденты, создаваемые процессором Incident Detector, должны иметь имя, по которому их можно было бы идентифицировать. Например, инциденту, созданному процессором Incident Detector для оповещения о превышении транспортным средством допустимой скорости, можно дать имя SpeedingVehicle. Введите имя в свойство Имя инцидента (Incident Name), как показано выше. Все инциденты, создаваемые процессором Incident Detector, должны иметь начальное и конечное условия, формулируемые с помощью конструктора выражений.

ПримечаниеПримечание:

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

Процессор Incident Detector можно использовать для присвоения создаваемым инцидентам уровня важности. Возможны следующие уровни: оповещение, предупреждение и срочное сообщение. Инциденты, создаваемые тем или иным процессором, могут иметь только один уровень важности; для изменения уровня важности, присваиваемого процессором инцидентам, которые он создает, необходимо отредактировать процессор и вновь опубликовать Сервис GeoEvent.

Тип инцидентов, создаваемых процессором Incident Detector, также является одним из свойств процессора. Возможны два типа инцидентов: Точечный (Point-In-Time) и Кумулятивный (Cumulative).

Каждый процессор Incident Detector создает инциденты с определенным Geometry Type, Большинство инцидентов и обновлений инцидентов связаны с местоположением точки в определенный момент времени, поэтому обычно выбирается точечная геометрия. Однако, создаваемые инциденты могут иметь также тип геометрии Мультиточка (MultiPoint) и Полилиния (Polyline).

Вариантом использования является автоматическое закрытие инцидентов по истечении определенного периода времени. Настройка Времени окончания (Expiry Time) в процессоре Incident Detector позволяет GeoEvent Processor автоматически закрывать инцидент по истечении определенного периода времени, даже если конечное условие инцидента не выполнено. Время окончания – это числовое значение, выраженное в секундах; если введено нулевое значение, функция автоматического закрытия инцидентов, созданных процессором, отключается.

Пошаговые инструкции по настройке процессора Incident Detector приведены во вводной части руководства пользователя GeoEvent Processor на странице учебных материалов по GeoEvent Processor.

Track Gap Detector

Процессор Track Gap Detector Processor используется для определения отсутствия событий. Как и Incident Detector Processor, Track Gap Detector генерирует новое событие для сообщения о пробелах в потоке событий. Процессор может быть настроен либо для непрерывной генерации уведомлений в период, когда ожидаемые события не были получены, либо для генерации одного уведомления при обнаружении пробела и второго, когда процессор начинает снова принимать события.

Свойства процессора Track Gap Detector.

При настройке процессора необходимо указать имя. Имя учитывает регистр и используется в качестве уникального идентификатора процессора в сервисе GeoEvent. Тип настраиваемого процессора выбирается в ниспадающем меню Процессор (Processor); свойства процессора Track Gap Detector проиллюстрированы выше.

Свойство Режим уведомления о пробелах (Gap Notification Mode) задает правила уведомления, указанные выше. Выберите OnChange для генерации одного уведомления при обнаружении пробела и второго, когда процессор снова начинает принимать события. Выберите Continuous, чтобы генерировать событие для каждого интервала цикла, в течение которого процессор не получает новых событий.

Свойство Gap Duration (seconds) задает для процессора время ожидания (в секундах) до определения пробела во входном потоке данных. Использование этого значения показано выше, процессор будет определять пробел, только если он продолжается в течение 300 секунд после последнего получения события.

Свойство Интервал обнаружения разрыва (в секундах) (Gap Detection Interval (seconds)) определяет интервал опроса процессора. Снова, использование этого значения показано выше, процессор будет выполнять проверку каждые 120 секунд, чтобы определить пробел, если он продолжается в течение 300 секунд или более после последнего получения события. Интервал цикла также управляет частотой генерации уведомлений, если Режим уведомления о пробелах (Gap Notification Mode) установлен на Continuous; если выбрано OnChange, событие будет отправляться только тогда, когда процессор работает и определяет остановку потока событий (когда процессор получал события) и наоборот, когда процессор определяет пробел, затем проверяет и обнаруживает, что события снова приходят.

Свойство Имя поля геометрии (Geometry Field Name) задает имя поля события, в котором ожидается геометрия. Последняя полученная геометрия будет присоединена к уведомлению о событии, сгенерированном процессором. Например, если поток событий сообщал о положении транспортных средств и процессор был настроен на интервал в 30 секунд для определения пробела длительностью более 120 секунд после получения последнего отчета, его можно настроить на присоединение последнего известного местоположения транспортного средства к уведомлению о пробеле.

No Operation

Процессор No Operation не выполняет никаких операций над поступающими в него GeoEventми и никак на них не влияет. События проходят через процессор No Operation так, как будто его не существует.

Свойства процессора No Operation.

При настройке процессора необходимо указать имя. Имя учитывает регистр и используется в качестве уникального идентификатора процессора в сервисе GeoEvent. Тип настраиваемого процессора выбирается в ниспадающем меню Процессор (Processor); свойства процессора No Operation проиллюстрированы выше. У этого типа процессора нет других свойств, которые нужно настраивать.

Процессор No Operation можно использовать для включения в сервис GeoEvent компонента Stub или NoOp в качестве заполнителя. Процессор No Operation предполагает его замену в будущем на другой процессор; он позволяет сосредоточиться на разработке и тестировании других частей сервиса GeoEvent.

Процессор No Operation можно использовать и для других целей, например:

5/16/2014