Procesadores
Los procesadores son un componente de un servicio de eventos geográficos que lleva a cabo acciones concretas en los eventos geográficos, como la identificación o el enriquecimiento, cuando los eventos se dirigen de las entradas a las salidas.
Procesador GeoEvent incluye los siguientes procesadores:
- Calculadora de campo
- Field Calculator (Regular Expression)
- Field Enricher (Feature Service)
- Field Enricher (File)
- Field Mapper
- Field Reducer
- GeoTagger
- Incident Detector
- Track Gap Detector
- No Operation
Calculadora de campo
El procesador Field Calculator escribe un valor calculado en un campo existente o en un nuevo campo creado por el procesador. El procesador utiliza valores recuperados de los campos del evento actual y valores constantes incluidos en la configuración del procesador para efectuar los cálculos. Field Calculator evalúa expresiones matemáticas y recombina valores de cadena de caracteres para generar datos de eventos derivados. También puede escribir valores constantes para enriquecer o depurar los datos de eventos.
Los cálculos realizados con un procesador Field Calculator pueden ser matemáticos o léxicos (basados en cadenas de texto y no en valores numéricos). Cuando un valor calculado se escribe en un campo existente, el valor calculado reemplaza al valor del campo actual dentro del evento que se está procesando. El procesador intentará convertir el valor calculado para que coincida con el tipo de datos del campo existente. Se escribirá un valor nulo si se produce un error en la conversión del tipo de datos.

Al escribir un valor calculado en un nuevo campo, se altera el esquema del evento, lo que requiere Procesador GeoEvent para crear una nueva definición de eventos geográficos que administrará el sistema. Cuando se usa el procesador para crear nuevos campos, se deben especificar un nombre de campo y un tipo de datos. Se puede especificar un nombre para la definición de eventos geográficos, así como una etiqueta opcional que se debe aplicar al nuevo campo.

Cuando se configura un procesador, se debe especificar un nombre. El nombre distingue entre minúsculas y mayúsculas y se usará para identificar de forma única el procesador en un servicio de eventos geográficos. El tipo de procesador que se está configurando se especifica usando la flecha desplegable Processor; las propiedades de un procesador Field Calculator se ilustran arriba.
El procesador Field Calculator admite expresiones lógicas, léxicas y matemáticas generales. Los operandos de una expresión pueden ser nombres de campo literales de la definición del evento geográfico o etiquetas que se han aplicado a los campos en la definición del evento geográfico. Por ejemplo, la expresión Odom1 + Odom2 se puede usar para agregar los valores en los campos denominados Odom1 y Odom2 con el fin de generar una suma simple. Si el campo Odom1 tiene asignada la etiqueta MILEAGEA y el campo Odom2 tiene asignada la etiqueta MILEAGEB, se puede usar la expresión MILEAGEA + MILEAGEB.
Los operadores y las funciones admitidas por el procesador Field Calculator se ilustran a continuación.
Operación | Operador | Ejemplo |
Adición | + | Odom1 + Odom2 La expresión suma los valores numéricos de los campos Odom1 y Odom2 para generar una adición simple. También se admite la concatenación de cadenas de caracteres (por ejemplo, "Hello" + "World"). |
Resta | - | VALUEA - VALUEB La expresión sustrae los valores numéricos de los campos con las etiquetas VALUEA y VALUEB para generar una diferencia simple. Al contrario que la suma, que admite la concatenación de cadenas de caracteres, la sustracción no se puede usar para calcular la diferencia entre dos cadenas de caracteres. |
Multiplicación | * | Altitude * 0.3048 La expresión multiplica el valor numérico del campo denominado Altitude y la constante 0,3048 para generar un producto simple (en este caso, la conversión de un valor en pies en un valor equivalente en metros). |
División | / | Distance / 1.609344 La expresión divide el valor numérico del campo denominado Distance por la constante 1,609344 para generar un cociente simple (en este caso, la conversión de un valor en kilómetros en un valor equivalente en millas). |
Módulo | % | VALUEA % VALUEB La expresión divide el valor numérico del campo con la etiqueta VALUEA por el valor numérico del campo con la etiqueta VALUEB y devuelve el resto como valor doble. |
AND lógico | && | Flag1 && Flag2 La expresión aplica un AND lógico a los valores booleanos de los campos con los nombres Flag1 y Flag2 para generar un resultado booleano. Los campos de entrada deben ser de tipo booleano. Las cadenas de caracteres literales (por ejemplo, "TRUE") y los valores constantes (por ejemplo, 1) de una expresión no se convertirán en un booleano equivalente como parte de la evaluación. |
OR lógico | || | Flag1 || Flag2 La expresión aplica un OR lógico a los valores booleanos de los campos con los nombres Flag1 y Flag2 para generar un resultado booleano. |
NOT lógico | ! | !(Flag1) La expresión aplica una negación lógica al valor booleano del campo Flag1 para generar un resultado booleano. Admite expresiones anidadas como !(Flag1 && Flag2). |
Mayor que | > | Altitude > 12500 La expresión aplica una evaluación lógica para determinar si el valor del campo con el nombre Altitude es mayor que la constante especificada (el resultado es un valor booleano). |
Mayor o igual que | >= | Altitude >= 12500 La expresión aplica una evaluación lógica para determinar si el valor del campo con el nombre Altitude es mayor o igual que la constante especificada (el resultado es un valor booleano). |
Menor que | < | Altitude < 1500 La expresión aplica una evaluación lógica para determinar si el valor del campo con el nombre Altitude es menor que la constante especificada (el resultado es un valor booleano). |
Menor o igual que | <= | Altitude <= 1500 La expresión aplica una evaluación lógica para determinar si el valor del campo con el nombre Altitude es menor o igual que la constante especificada (el resultado es un valor booleano). |
Igualdad | == | VALUEA == VALUEB La expresión aplica una evaluación lógica para determinar si los valores encontrados en los campos con las etiquetas VALUEA y VALUEB son equivalentes (el resultado es un valor booleano). La equivalencia solo se admite para los tipos numéricos con la versión inicial del producto (10.2.0). |
Desigualdad | != | VALUEA != VALUEB La expresión aplica una evaluación lógica para determinar si los valores encontrados en los campos con las etiquetas VALUEA y VALUEB no son iguales (el resultado es un valor booleano). La desigualdad solo se admite para los tipos numéricos con la versión inicial del producto (10.2.0). |


Los operadores de igualdad y desigualdad del procesador Field Calculator no se deben aplicar directamente a los valores de punto flotante. Para comparar correctamente si dos valores decimales son iguales, debe ajustar primero la escala de los valores, redondearlos a enteros largos y comparar a continuación los valores enteros largos.
- No compare MyFloat1 == MyFloat2.
- En lugar de eso, compare round(MyFloat1*1000) == round(MyFloat2*1000).
El procesador Field Calculator incluye funciones que reproducen las existentes en java.lang.Math. Para obtener una especificación técnica completa y una lista de funciones, consulte la documentación de desarrollador de Java. Se incluye a continuación un resumen de las funciones más populares.
Constantes | |
Función | Descripción |
E() | Devuelve el número de Euler (e) elevado a la potencia del valor doble especificado. |
PI() | Devuelve una representación doble de pi (la proporción entre la circunferencia de un círculo y su diámetro). |
Funciones comunes | |
Función | Descripción |
abs(valor) | Devuelve el valor absoluto del argumento. |
ceil(doble) | Devuelve el techo (el siguiente entero más grande) del valor doble especificado. |
floor(doble) | Devuelve el suelo (el siguiente entero más pequeño) del valor doble especificado. |
hypot(doble x, doble y) | Devuelve sqrt((x*x) + (y*y)) sin desbordamiento o subdesbordamiento intermedios. |
max(valor a, valor b) | Devuelve el mayor de dos valores de argumentos especificados. |
min(valor a, valor b) | Devuelve el menor de dos valores de argumentos especificados. |
random() | Devuelve un valor doble mayor o igual que 0,0 y menor que 1,0. |
round(valor) | Devuelve el entero largo más próximo al argumento (dado un valor doble). |

Un procesador Field Calculator realizará conversiones numéricas siempre que sea posible. Por ejemplo, cuando se proporcionan distintos tipos numéricos a una función (por ejemplo, max(3.14159,25)), los valores se convertirán en tipos comparables (entero, flotante o doble) con el fin de realizar la comparación. El procesador también convertirá los valores calculados cuando los valores se escriban en el campo de atributo de un evento (por ejemplo, 6 + 7 se escribirá como 13,0 cuando el campo del evento sea de tipo doble).
Exponenciales | |
Función | Descripción |
sqrt(doble) | Devuelve la raíz cuadrada del valor doble especificado. |
cbrt(valor) | Devuelve la raíz cúbica del valor doble especificado. |
exp(doble) | Devuelve el número de Euler (e) elevado a la potencia del valor doble especificado. |
pow(doble, doble) | Devuelve el valor del primer argumento elevado a la potencia del segundo argumento. |
Logaritmos | |
Función | Descripción |
log(doble) | Devuelve el logaritmo natural (base e) de un valor doble. |
log10(doble) | Devuelve el logaritmo en base 10 de un valor doble. |
Funciones de cadena de caracteres | |
Función | Descripción |
int length(entrada) | Devuelve la longitud de la cadena de caracteres. |
boolean isEmpty(entrada) | Devuelve true si la longitud del valor introducido es 0. |
boolean isNull(entrada) | Devuelve true si la longitud del valor introducido es nulo. |
boolean equals(entrada, Object unObjeto) | Compara la cadena de caracteres introducida con el objeto especificado. Devuelve true si el objeto indicado representa una cadena de caracteres equivalente a la cadena introducida y false en caso contrario. |
boolean equalsIgnore(entrada, String otraCadena) | Compara la cadena de caracteres de entrada con otra cadena de caracteres, ignorando las diferencias por mayúsculas y minúsculas. Se considera que dos cadenas son iguales, ignorando las mayúsculas y minúsculas, si tienen la misma longitud y los caracteres correspondientes en las dos cadenas son iguales, ignorando las mayúsculas y minúsculas. Devuelve true si el argumento no es nulo y representa una cadena equivalente, ignorando las mayúsculas y minúsculas, y falso en caso contrario. |
int compareTo(entrada, String prefijo) | Compara dos cadenas lexicográficamente. Devuelve 0 si el argumento de la cadena de caracteres es igual que la cadena de entrada. Si la cadena de caracteres de entrada es menor lexicográficamente que el argumento de entrada, devuelve un valor menor que 0 y si la cadena de caracteres de entrada es mayor lexicográficamente que el argumento de entrada, devuelve un valor mayor que 0. |
int compareToIgnore(entrada, String str) | Compara dos cadenas de caracteres lexicográficamente, ignorando las diferencias por mayúsculas y minúsculas. Devuelve un entero negativo, cero o un entero positivo si la cadena de caracteres especificada es mayor, igual, o menor que la cadena de caracteres de entrada, ignorando las diferencias por mayúsculas y minúsculas. |
boolean startsWith(entrada, String prefijo) | Comprueba si la cadena de caracteres de entrada empieza por el prefijo especificado. Devuelve true si la secuencia de caracteres representada por el argumento prefijo es un prefijo de la secuencia de caracteres representada por la cadena de entrada y falso en caso contrario. |
boolean endsWith(entrada, String sufijo) | Comprueba si la cadena de caracteres de entrada termina con el sufijo especificado. Devuelve true si la secuencia de caracteres representada por el argumento sufijo es un sufijo de la secuencia de caracteres representada por el objeto de entrada y falso en caso contrario. |
int indexOf(entrada, String str) | Devuelve el índice dentro de la cadena de caracteres de entrada de la primera ocurrencia de la subcadena especificada str. Si el argumento de cadena de caracteres aparece como subcadena dentro del objeto de entrada, devuelve el índice del primer carácter de la primera subcadena. Si no aparece como subcadena, devuelve -1. |
int indexOf(entrada, String str, int desdeÍndice) | Devuelve el índice dentro de la cadena de caracteres de entrada de la primera ocurrencia de la subcadena especificada, empezando a contar en el índice indicado. Devuelve el índice dentro de la cadena de caracteres de entrada de la primera ocurrencia de la subcadena especificada, empezando a contar en el índice indicado. |
int lastIndexOf(entrada, String str) | Devuelve el índice dentro de la cadena de caracteres de entrada de la ocurrencia de la subcadena especificada que se halle más a la derecha de la cadena de entrada. Si el argumento de la cadena de caracteres aparece una o más veces como subcadena en el objeto de entrada, entonces se devuelve el primer carácter de la última de estas subcadenas. Si no aparece como subcadena, se devuelve -1. |
int lastIndexOf(entrada, String str, int desdeÍndice) | Devuelve el índice dentro de la cadena de entrada de la última ocurrencia de la subcadena especificada, empezando a contar en el índice especificado y buscando hacia atrás. Devuelve el índice dentro de la cadena de caracteres de entrada de la última ocurrencia de la subcadena especificada. |
String substring(int índiceInicial) | Devuelve una cadena nueva que es una subcadena de la cadena de origen. La subcadena empieza con el carácter en el índice especificado y se extiende hasta el final de la cadena de entrada. |
String substring(entrada, int índiceInicial, int índiceFinal) | Devuelve una cadena nueva que es una subcadena de la cadena de origen. La subcadena empieza en el valor de índiceInicial especificado y se extiende al carácter que se encuentra en índiceFinal - 1. |
String concat(entrada, String str) | Concatena la cadena de caracteres especificada al final de la cadena de entrada. |
boolean matches(entrada, String regex) | Indica si la cadena de caracteres de entrada coincide con la expresión regular o no. Devuelve solo si la cadena de caracteres de entrada coincide con la expresión regular indicada. |
booleano contiene (CharSequence s) | Devuelve true solo si la cadena de caracteres de entrada contiene la secuencia especificada de valores de tipo carácter. Devuelve true si la cadena de caracteres de entrada contiene s y false en caso contrario. |
String replaceFirst(entrada, String regex, String sustitución) | Devuelve la primera subcadena de la cadena de entrada en la que coincide la expresión regular con la sustitución indicada. Devuelve la cadena de caracteres resultante. |
String replaceAll(entrada, String regex, String sustitución) | Sustituye todas las subcadenas de la cadena de caracteres de entrada en las que coincida la expresión regular con la sustitución indicada. Devuelve la cadena de caracteres resultante. |
String replace(entrada, CharSequence destino, CharSequence sustitución) | Sustituye todas las subcadenas de la cadena de caracteres de entrada en las que coincida literalmente la secuencia de destino con la secuencia de sustitución indicada. La sustitución se realiza empezando por el principio de la cadena de caracteres y avanzando hasta el final. Devuelve la cadena de caracteres resultante. |
String toLowerCase(entrada) | Convierte todos los caracteres de la cadena de caracteres de entrada en minúsculas utilizando las reglas de la configuración regional predeterminada. Devuelve la cadena de caracteres convertida en minúsculas. |
String toUpperCase(entrada) | Convierte todos los caracteres de la cadena de caracteres de entrada en mayúsculas utilizando las reglas de la configuración regional predeterminada. Devuelve la cadena de caracteres convertida en mayúsculas. |
String trim(entrada) | Devuelve una copia de la cadena de caracteres de entrada después de eliminar los espacios en blanco al principio y al final. |
String valueOf(Object obj) | Devuelve la representación del argumento de tipo Object en forma de cadena de caracteres. |
Funciones trigonométricas | |
Función | Descripción |
acos(doble) | Devuelve el arco coseno de un valor (el ángulo devuelto está entre 0,0 y pi). |
asin(doble) | Devuelve el arco seno de un valor (el ángulo devuelto está entre -pi/2 y pi/2). |
atan(doble) | Devuelve el arco tangente de un valor (el ángulo devuelto está entre -pi/2 y pi/2). |
atax2(doble y, doble x) | Devuelve el ángulo theta de la conversión de las coordenadas rectangulares (x, y) en coordenadas polares (r, theta). |
cos(doble) | Devuelve el coseno trigonométrico de un ángulo. |
cosh(doble) | Devuelve el coseno hiperbólico de un valor doble. |
sin(doble) | Devuelve el seno trigonométrico de un ángulo. |
sinh(doble) | Devuelve el seno hiperbólico de un valor doble. |
tan(doble) | Devuelve la tangente trigonométrica de un ángulo. |
tanh(doble) | Devuelve la tangente hiperbólica de un valor doble. |
toDegrees(doble) | Convierte un ángulo medido en radianes en un ángulo aproximado en grados. |
toRadians(doble) | Convierte un ángulo medido en grados en un ángulo aproximado en radianes. |
Field Calculator (Regular Expression)
El procesador Field Calculator (Regular Expression) admite el uso de expresiones regulares para encontrar un patrón en un campo objetivo. La coincidencia de patrones de expresiones regulares puede ser una herramienta útil para calcular y generar valores derivados a partir de los datos de atributos recibidos con un evento. El procesador Field Calculator (Regular Expression) no admite las expresiones lógicas, léxicas y matemáticas generales admitidas por el procesador Field Calculator normal.

Al escribir un valor calculado en un nuevo campo, se altera el esquema del evento, lo que requiere Procesador GeoEvent para crear una nueva definición de eventos geográficos que administrará el sistema. Cuando se usa el procesador para crear nuevos campos, se deben especificar un nombre de campo y un tipo de datos. Se puede especificar un nombre para la definición de eventos geográficos, así como una etiqueta opcional que se debe aplicar al nuevo campo.

Cuando se configura un procesador, se debe especificar un nombre. El nombre distingue entre minúsculas y mayúsculas y se usará para identificar de forma única el procesador en un servicio de eventos geográficos. El tipo de procesador que se está configurando se especifica usando la flecha desplegable Processor; las propiedades de un procesador Field Calculator (Regular Expresssion) se ilustran arriba.
El procesador Field Calculator (Regular Expresssion) se usa generalmente para identificar y extraer subcadenas en un campo objetivo. A continuación, las subcadenas extraídas se vuelven a escribir en el campo de destino en lugar del valor original del campo o se escriben en un nuevo campo.
El procesador admite una amplia gama de expresiones regulares. Un procesador de este tipo se puede configurar con una expresión regular para extraer la porción numérica de un FlightID y volver a escribir el valor en un campo denominado FlightNumber. Se incluye una ilustración paso a paso de este procedimiento en el tutorial Introduction to Procesador GeoEvent, disponible en la página de tutoriales de GeoEvent Processor.

El procesador Field Calculator (Regular Expresssion) no admite referencias inversas en el patrón de la expresión regular especificada.
Field Enricher (Feature Service)
El procesador Field Enricher (Feature Service) admite el enriquecimiento de datos de eventos mediante la copia de la información de atributos de una capa de entidades o una tabla no espacial de un servicio de entidades publicado en el evento que se está procesando. Esto es equivalente a una operación de unión.

Cuando se configura un procesador, se debe especificar un nombre. El nombre distingue entre minúsculas y mayúsculas y se usará para identificar de forma única el procesador en un servicio de eventos geográficos. El tipo de procesador que se está configurando se especifica usando la flecha desplegable Processor; las propiedades de un procesador Field Enricher (Feature Service) se ilustran arriba.
El procesador Field Enricher (Feature Service) se debe configurar con la información necesaria para detectar y usar un servicio de entidades para el enriquecimiento de eventos. Esto incluye la conexión de ArcGIS Server, la carpeta del servicio, el nombre del servicio de entidades y la capa de destino del servicio de entidades.
El procesador se debe configurar con el nombre de campo que el servicio de entidades tiene en común con el evento que se está enriqueciendo, así como el nombre de campo del esquema del evento en el que se va a realizar la unión. El nombre del campo del servicio de entidades se especifica en el cuadro de texto Feature Layer Join Field de la ilustración anterior. El cuadro de texto GeoEvent Join Field aceptará una etiqueta que se ha aplicado en la definición de eventos geográficos (por ejemplo, TRACK_ID, como se muestra arriba) o el nombre de un campo específico del esquema del evento.
Especifique los nombres de los campos que se deban copiar desde la tabla de la capa de entidades haciendo clic en el botón Seleccionar campos de la propiedad Campos de enriquecimiento. Si lo desea, especifique las etiquetas que Procesador GeoEvent debe aplicar a cada nuevo campo que cree como lista separada por comas.
El enriquecimiento de un evento copia los datos de uno o varios campos de un servicio de entidades y agrega los campos como nuevos datos al evento que se está procesando. Esto altera el esquema del evento y requiere Procesador GeoEvent para crear una nueva definición de eventos geográficos que administrará el sistema. Los nombres de campos se han especificado y los tipos de datos de campos se transferirán desde el servicio de entidades, de modo que los tipos de datos no se especifican como parte de la configuración del procesador. Especifique el nombre que Procesador GeoEvent debe usar para la definición de eventos geográficos resultante que creará.
Se incluye una ilustración paso a paso del uso de un procesador Field Enricher (Feature Service) para unir los datos de un evento con los datos de un servicio de entidades en los ejercicios del tutorial Introduction to Procesador GeoEvent, disponible en la página de tutoriales de GeoEvent Processor.
Field Enricher (File)
El procesador Field Enricher (File) admite el enriquecimiento de datos de eventos mediante la copia de la información de atributos de un archivo de sistema en el evento que se está procesando. Es similar al procesador Field Enricher (Feature Service), salvo porque el origen del enriquecimiento es un archivo de sistema y no un servicio de entidades.

Cuando se configura un procesador, se debe especificar un nombre. El nombre distingue entre minúsculas y mayúsculas y se usará para identificar de forma única el procesador en un servicio de eventos geográficos. El tipo de procesador que se está configurando se especifica usando la flecha desplegable Processor; las propiedades de un procesador Field Enricher (File) se ilustran arriba.
La carpeta del sistema que contiene el archivo que se va a usar como origen de los datos de enriquecimiento se debe identificar. La carpeta del sistema se tiene que registrar con Procesador GeoEvent como almacén de datos antes de completar la configuración del procesador. El nombre del archivo no es un elemento que se pueda registrar; se debe especificar un nombre de archivo y Procesador GeoEvent busca un archivo con ese nombre en el almacén de datos registrados.
El procesador se debe configurar con el nombre de campo que el archivo de sistema tiene en común con el evento que se está enriqueciendo, así como con el nombre de campo del esquema del evento en el que se va a realizar la unión. Este nombre de campo de la tabla de datos del archivo de sistema se introduce en el cuadro de texto File Join Field de la ilustración anterior. El cuadro de texto GeoEvent Join Field aceptará una etiqueta que se ha aplicado en la definición de eventos geográficos (por ejemplo, TRACK_ID, como se muestra arriba) o el nombre de un campo específico del esquema del evento.
Especifique los nombres de los campos que se van a copiar en la tabla de la capa de entidades como una lista separada por comas en la propiedad Enrichment Fields. Si lo desea, especifique las etiquetas que Procesador GeoEvent debe aplicar a cada nuevo campo que cree como lista separada por comas.
El enriquecimiento de un evento copia los datos de uno o varios campos de un archivo de sistema y agrega los campos como nuevos datos en el evento que se está procesando. Esto altera el esquema del evento y requiere Procesador GeoEvent para crear una nueva definición de eventos geográficos que administrará el sistema. Los nombres de campos se han especificado y los tipos de datos de campos se definen en el archivo de sistema, de modo que los tipos de datos no se especifican como parte de la configuración del procesador. Especifique el nombre que Procesador GeoEvent debe usar para la definición de eventos geográficos resultante que creará.
Se incluye una ilustración paso a paso del uso de un procesador Field Enricher (File) para unir los datos de un evento con los datos de un archivo de sistema en los ejercicios del tutorial Introduction to GeoEvent Processor, disponible en la página de tutoriales de GeoEvent Processor.

Cuando se usa un archivo de texto como origen del enriquecimiento, el archivo debe seguir el formato que se muestra a continuación. En concreto, la primera línea del archivo debe identificar los nombres de campos como valores separados por comas. La segunda línea debe especificar el tipo de datos de cada campo. Los valores de los datos del archivo se introducen a partir de la tercera línea del archivo.

Field Mapper
El procesador Field Mapper permite realizar alineación de datos. Cada evento geográfico de GeoEvent Processor tiene asociado un esquema que identifica los campos de atributos y los tipos de datos (fecha, cadena de caracteres, entero, etc.) de los datos del evento. Este esquema se conoce como definición de eventos geográficos. La definición de eventos geográficos de una transmisión de datos de entrada puede contener campos cuyos nombres no coinciden con el esquema de un servicio de entidades publicado que se va a actualizar con Procesador GeoEvent. En situaciones como esta, se debe usar un procesador Field Mapper para asignar los campos del esquema de entrada con el fin de alinear los datos con el esquema de salida.

Cuando se configura un procesador, se debe especificar un nombre. El nombre distingue entre minúsculas y mayúsculas y se usará para identificar de forma única el procesador en un servicio de eventos geográficos. El tipo de procesador que se está configurando se especifica usando la flecha desplegable Processor; las propiedades de un procesador Field Mapper se ilustran arriba.
Cree las definiciones de eventos geográficos de origen y de destino seleccionando las propiedades respectivas. En el cuadro de diálogo de propiedades se muestran los campos de destino de definiciones de eventos geográficos y se habilita la selección del campo en los campos de origen para su asignación al destino. El tipo de datos del campo de destino se mostrará para identificar los datos más apropiados de la definición de eventos geográficos de origen para asignarlos a la definición de eventos geográficos de destino.

En la ilustración anterior, <Field Name> se muestra como un sustituto de los nombres de campos reales de una definición de eventos geográficos de destino. La lista real de nombres de campos y tipos de datos dependerá de la definición de eventos geográficos seleccionada como definición de eventos geográficos de destino.
Un procesador Field Mapper se puede usar para reducir el número de atributos de campo enviados de una entrada a una salida, ya que solo los campos seleccionados en una definición de eventos geográficos de origen se asignarán a los campos de una definición de eventos geográficos de destino. Esto puede resultar útil cuando una secuencia de datos de entrada contiene un gran número de valores de atributo que pueden ser de escaso interés. Un procesador Field Mapper también se puede usar para gestionar la conversión de tipos de datos cuando los datos de eventos de entrada no coinciden con los tipos de datos de una definición de eventos geográficos de salida. Por ejemplo, los datos enteros se pueden convertir en una representación doble o un dato numérico en una representación de cadena de caracteres. Esto alinea los datos de entrada con la definición de eventos geográficos de salida requerida.
Otro caso de uso del procesador Field Mapper se da cuando se necesita aplanar un esquema de datos. A veces, las transmisiones de datos en tiempo real representan los datos de atributos no como un tipo de datos discreto, sino como un grupo de varios valores de atributos de diversos tipos. Una estructura de datos jerárquica como esta no se puede usar para actualizar un servicio de entidades publicado, por ejemplo, sin asignar antes los elementos del grupo a los campos discretos de una definición de eventos geográficos de salida que asigna el esquema del servicio de entidades publicado.
Field Reducer
Cada evento geográfico de GeoEvent Processor tiene asociado un esquema que identifica los campos de atributos y los tipos de datos (fecha, cadena de caracteres, entero, etc.) de los datos del evento. Este esquema se conoce como definición de eventos geográficos. Un procesador Field Reducer permite refinar el esquema de datos mediante la eliminación de atributos no deseados de un evento, lo que permite enviar una versión simplificada del evento para su procesamiento adicional o como salida.

Cuando se configura un procesador, se debe especificar un nombre. El nombre distingue entre minúsculas y mayúsculas y se usará para identificar de forma única el procesador en un servicio de eventos geográficos. El tipo de procesador que se está configurando se especifica usando la flecha desplegable Processor; las propiedades de un procesador Field Reducer se ilustran arriba.
La definición de eventos geográficos de los eventos recibidos por el procesador especifica los nombres de campos y los tipos de datos del evento recibido. Por tanto, solo los campos que se van a eliminar del evento recibido se deben especificar como lista separada por comas. La lista de campos que se van a eliminar se especifica en la propiedad Fields to Remove, como se muestra en la ilustración anterior.
Modificar los datos del evento mediante la eliminación de campos de atributos altera el esquema del evento y requiere Procesador GeoEvent para crear y administrar una nueva definición de eventos geográficos para el evento simplificado. En el cuadro de diálogo de propiedades, especifique el nombre que Procesador GeoEvent debe usar para la definición de eventos geográficos resultante que creará.
GeoTagger
Un procesador GeoTagger permite enriquecer eventos mediante la incorporación de información sobre barreras geográficas con las que un evento tiene una relación espacial. Por ejemplo, si la ubicación de un evento resulta estar dentro de un área de interés conocida, la categoría y el nombre de la barrera geográfica que la contiene se pueden agregar al evento como nuevos valores de atributos. Esto enriquece el evento con información sobre su relación espacial con un área de interés en un punto del tiempo.

Las barreras geográficas se deben importar en Procesador GeoEvent desde un servicio de entidades antes de configurar un procesador GeoTagger. Consulte Administrar barreras geográficas para obtener más información sobre el trabajo con barreras geográficas en Procesador GeoEvent.

Cuando se configura un procesador, se debe especificar un nombre. El nombre distingue entre minúsculas y mayúsculas y se usará para identificar de forma única el procesador en un servicio de eventos geográficos. El tipo de procesador que se está configurando se especifica usando la flecha desplegable Processor; las propiedades de un procesador GeoTagger se ilustran arriba.
El procesador se debe configurar para identificar las barreras geográficas con las que se espera que los eventos tengan una relación espacial. Especifique un conjunto de barreras geográficas mediante la introducción de una expresión regular simple en el campo GeoFence(s) del cuadro de diálogo de propiedades como se ilustra arriba. Se puede especificar una o más barreras geográficas de una o varias categorías de Procesador GeoEvent. Por ejemplo, supongamos que se han importado varias barreras geográficas en una categoría States. Se puede configurar un procesador GeoTagger con la expresión States/.* para indicar que cualquier área guardada en la categoría States se debe tener en cuenta al buscar una relación espacial para un evento recibido. Al escribir .*/.*, se dirige el procesador para que considere todas las barreras geográficas conocidas de una categoría guardada.
La propiedad Spatial Operator especifica la relación espacial que una localización de evento debe tener con una barrera geográfica dada. Consulte Filtros para obtener más información sobre las relaciones espaciales disponibles en Procesador GeoEvent. Para determinar la relación espacial de un evento con una barrera geográfica, el evento debe tener un campo de tipo Geometría. La propiedad GeoEvent Geometry Field aceptará una etiqueta (por ejemplo, GEOMETRY, como se muestra arriba) o el nombre de un campo especificado en la definición de eventos geográficos.
Una vez que se ha confirmado una relación espacial para un evento, el nombre de la barrera geográfica se pueden agregar a los datos del evento para enriquecerlo. El nombre del campo que creará el procesador se especifica en el cuadro de texto GeoTag Field Name. La acción predeterminada es agregar los datos al evento como lista separada por comas; esta acción se especifica mediante la propiedad GeoTag Format. Los datos de enriquecimiento pueden incluir el nombre de la barrera geográfica o tanto el nombre como la categoría de la barrera. La propiedad Include GeoFence Category in GeoTag especifica el nivel de enriquecimiento.
El enriquecimiento realizado por el procesador GeoTagger altera el esquema de un evento. Procesador GeoEvent creará y administrará una nueva definición de eventos geográficos para el evento enriquecido. El procesador incluye un campo que puede especificar el nombre que GeoEvent Processor debe usar para la definición de eventos geográficos resultantes que va a crear.
Se incluye una ilustración paso a paso del procedimiento con un procesador GeoTagger en el tutorial Introduction to GeoEvent Processor, disponible en la página de tutoriales de GeoEvent Processor.
Incident Detector
El procesador Incident Detector usa los atributos y las condiciones espaciales especificados para detectar y notificar incidentes. En las propiedades del procesador, se puede especificar una condición de apertura y otra de cierre, lo que permite que un incidente abarque una serie de eventos a lo largo de un periodo de tiempo. Por ejemplo, una transmisión de datos basada en eventos que notifica la posición y la velocidad actual de un vehículo se puede usar para generar un incidente cuando el vehículo sobrepasa cierta velocidad o entra en un área peligrosa. El incidente se cerrará una vez que el vehículo recupere una velocidad segura o salga del área peligrosa.

Cuando se configura un procesador, se debe especificar un nombre. El nombre distingue entre minúsculas y mayúsculas y se usará para identificar de forma única el procesador en un servicio de eventos geográficos. El tipo de procesador que se está configurando se especifica usando la flecha desplegable Processor; las propiedades de un procesador Incident Detector se ilustran arriba.
Los incidentes generados por un procesador Incident Detector deben tener un nombre por el que se puedan identificar los incidentes creados. Por ejemplo, un procesador Incident Detector creado para alertar de un vehículo que se está acelerando podría denominarse SpeedingVehicle. Especifique el nombre en la propiedad Incident Name como se muestra arriba. Todos los incidentes generados por un procesador Incident Detector deben tener una condición de apertura y otra de cierre que se crean con un generador de expresiones.

Se debe especificar una condición de apertura. Si no se especifica una condición de cierre, se usará una negación lógica de la condición de apertura.
Se puede usar un procesador Incident Detector para aplicar una gravedad especificada a los incidentes generados. Los niveles disponibles son notificación, advertencia y urgente. Los incidentes creados por un procesador dado están limitados a un único nivel de gravedad; el procesador se debe editar y el servicio de eventos geográficos se debe volver a publicar para cambiar el nivel de gravedad asignado por el procesador a sus incidentes.
El tipo de incidentes creados por un procesador Incident Detector también forma parte de las propiedades del procesador. Hay dos posibles tipos de incidentes: eventual y acumulativo.
- Los incidentes eventuales no tienen condición de cierre. Se consideran instantáneos y por tanto se cierran inmediatamente después de generarse y no tienen duración.
- Los incidentes acumulativos tienen una condición de apertura y otra de cierre. El tiempo transcurrido entre la generación del incidente y su expiración o cierre es la duración del incidente. Los incidentes acumulativos se supervisan y se actualizan en Procesador GeoEvent cuando se reciben datos de eventos adicionales.
Cada procesador Incident Detector tiene un Geometry Type asociado con los incidentes que genera. La mayoría de los incidentes y de actualizaciones de incidentes están asociados con una ubicación de punto en un momento concreto, por lo que se suele seleccionar una geometría de punto. No obstante, el multipunto y la polilínea son también tipos de geometría admitidos para los incidentes generados.
Un caso de uso podía ser hacer que los incidentes se cierren automáticamente después de un periodo de tiempo. Configurar un procesador Incident Detector con un tiempo de expiración permite que Procesador GeoEvent cierre automáticamente el incidente después de un periodo de tiempo, aunque la condición de cierre del incidente no se haya cumplido. El tiempo de expiración es un valor numérico expresado en segundos; si se especifica un valor cero, se deshabilita la expiración automática para los incidentes creados por el procesador.
Se incluyen ejercicios paso a paso que ilustran la configuración de un procesador Incident Detector en el tutorial Introduction to Procesador GeoEvent, disponible en la página de tutoriales de GeoEvent Processor.
Track Gap Detector
El procesador Track Gap Detector se utiliza para detectar la ausencia de eventos. Al igual que el procesador Incident Detector, Track Gap Detector genera un evento nuevo para informar de que ha detectado un hueco en una transmisión de eventos. El procesador se puede configurar para generar notificaciones de forma continua durante un periodo de tiempo en el cual no se reciben eventos esperados, o bien generar una sola notificación al detectar un hueco y un segundo evento para notificar cuándo el procesador empieza a recibir eventos de nuevo.

Cuando se configura un procesador, se debe especificar un nombre. El nombre distingue entre minúsculas y mayúsculas y se usará para identificar de forma única el procesador en un servicio de eventos geográficos. El tipo de procesador que se está configurando se especifica usando la flecha desplegable Procesador; las propiedades de un procesador Track Gap se ilustran arriba.
La propiedad Modo de notificación de huecos especifica el comportamiento de las notificaciones descrito arriba. Al seleccionar OnChange se especifica que el procesador debe generar un solo evento al detectar un hueco y un segundo evento cuando el procesador empieza a recibir eventos de nuevo. Si se selecciona Continuo, se especifica que se debe generar un evento en cada intervalo de sondeo durante el periodo durante el cual el procesador no reciba ningún evento nuevo.
La propiedad Duración del hueco (segundos) especifica la cantidad de tiempo (en segundos) que el procesador debe esperar antes de determinar que se ha producido un hueco en la transmisión de datos de entrada. Con el valor ilustrado arriba, el procesador solo decidiría que se ha producido un hueco si han transcurrido por lo menos 300 segundos desde el instante en el cual el procesador recibió un evento por última vez.
La propiedad Intervalo de detección de huecos (segundos) especifica el intervalo de sondeo del procesador. Una vez más, con el valor ilustrado arriba, el procesador comprobaría cada 120 segundos si se ha producido un hueco de 300 segundos o más desde el instante en el cual el procesador recibió un evento por última vez. El intervalo de sondeo también controla con qué frecuencia se generan los eventos de notificación cuando Modo de notificación de huecos está configurado con Continuo. Cuando está configurado con OnChange, solo se enviará un evento cuando el procesador realice un sondeo y descubra que la transferencia de eventos se ha detenido (siempre que antes estuviese recibiendo eventos) y al revés, cuando el procesador haya detectado un hueco y después realice un sondeo y descubra que la transferencia de eventos se ha reanudado.
La propiedad Nombre del campo de geometría especifica el nombre del campo del evento que se espera que contenga una geometría. La última geometría recibida se anexará a los eventos de notificación generados por el procesador. Por ejemplo, si una transmisión de eventos estuviese informando de la posición de unos vehículos y el procesador estuviese configurado para realizar un sondeo cada 30 segundos para determinar si se ha producido un hueco de más de 120 segundos desde el último informe de vehículo recibido, el procesador se podría configurar para incluir la última ubicación conocida del vehículo junto con la notificación del hueco.
No Operation
El procesador No Operation no realiza ninguna acción y no tiene ningún efecto en los eventos geográficos que recibe. Los eventos pasan por un procesador No Operation como si este no estuviera allí.

Cuando se configura un procesador, se debe especificar un nombre. El nombre distingue entre minúsculas y mayúsculas y se usará para identificar de forma única el procesador en un servicio de eventos geográficos. El tipo de procesador que se está configurando se especifica usando la flecha desplegable Processor; las propiedades de un procesador No Operation se ilustran arriba. Este tipo de procesador no tiene otras propiedades que se deben configurar.
Se puede usar un procesador No Operation para incluir un componente Stub o NoOp en un servicio de eventos geográficos como marcador de posición. Otro procesador puede reemplazar al procesador No Operation más tarde, lo que permite al usuario centrarse en el diseño y las pruebas de otras partes del servicio de eventos geográficos.
Un procesador No Operation puede resultar también útil en otras situaciones como las siguientes:
- La solución de problemas de un servicio de eventos geográficos que no funciona del modo esperado. Al configurar un procesador No Operation para que no realice ninguna operación, este se elimina del servicio de eventos geográficos sin que sea necesario volver a trazar el flujo de trabajo del servicio.
- Diseñar el procesamiento del evento y el flujo de trabajo de filtrado de un servicio de eventos geográficos antes de que se complete el desarrollo de uno o varios componentes. Una vez que se ha completado el desarrollo de los componentes dependientes, se puede volver a configurar un procesador No Operation como otro procesador.
- Demostrar cómo se puede desactivar temporalmente el procesamiento realizado por componentes concretos de un servicio de eventos geográficos. Al configurar un procesador existente como procesador No Operation y volver a publicar el servicio de eventos geográficos, se puede resaltar el procesamiento efectuado por Procesador GeoEvent.