プロセッサはジオイベント サービスのコンポーネントであり、入力から出力に送信されるジオイベントに対して識別や情報付加などの特定の処理を実行します。
すべてのプロセッサには、作成時に名前を割り当てる必要があります。この名前は大文字と小文字の区別があり、ジオイベント サービス内のプロセッサを一意に識別します。作成するプロセッサのタイプは、下に示すように、[プロセッサ] ドロップダウンを使用して指定します。
GeoEvent Server には、次のプロセッサが含まれています。
バッファー クリエーター
バッファー クリエーター プロセッサを使用して、ジオイベントのジオメトリの周囲に動的にバッファーを作成できます。このプロセッサでは、ジオイベントのジオメトリが格納されているフィールドを指定する必要があります。ジオイベント定義内のフィールド名またはフィールドに適用されたタグを使用してジオメトリ フィールドを指定できます。
このプロセッサは、ジオイベントのジオメトリを計算されたバッファーに置き換えるか、計算されたバッファーを新しいフィールドに挿入するように構成できます。新しいフィールドを追加してジオイベントのスキーマを変更すると、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。
ジオメトリのバッファーを作成するときに、バッファーの距離単位と数値の距離を指定する必要があります。GeoEvent Server は、角度単位 (たとえば、10 進度) で計測されたバッファーをサポートしていません。バッファー クリエーター インターフェイスは、フィート、ヤード、メートル、キロメートル、海里などの一般的な距離単位を含むリストを提供します。GeoEvent Server 管理者は、GeoEvent Manager を使用してプロセッサの単位を設定できます。バッファー距離は、正の整数値として指定します。
バッファーを計算する際に、バッファーが作成されるジオメトリに関連付けられた座標系以外の座標系を指定することが必要になる場合があります。たとえば、WGS84 座標系で受け取ったポイントの位置に、同じ座標系でバッファーを作成することはできません。代わりに、予想されるイベント ジオメトリの範囲のおおよその中心に合わせた投影座標系を選択する必要があります。受信しているジオイベント ジオメトリに関連付けられた座標系以外の座標系を指定する場合、最も適した座標系の WKID (Well Known Identifier) の数値を使用します。
バッファー クリエーター プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。
凸包クリエーター
凸包クリエーター プロセッサは、ジオイベントのジオメトリを囲む最小領域または最小エリアを表すポリゴンを動的に生成する必要がある場合に使用します。概念的には、凸包とは、ジオイベントのジオメトリの周囲にゴムバンドを巻きつけた場合に形成される形状のことです。
- ポイントが与えられた場合、このプロセッサは同じポイントを生成します。
- 2 つの頂点を持つラインが与えられた場合、このプロセッサは同じラインを生成します。
- 単純な凸ポリゴンまたはエンベロープが与えられた場合、このプロセッサは同じジオメトリを生成します。
- 上記以外の場合、このプロセッサはジオイベントのジオメトリを包含する最小の凸ポリゴンを生成します。
凸包クリエーターでは、ジオイベントのジオメトリが格納されたフィールドを指定する必要があります。ジオイベント定義内のフィールド名またはフィールドに適用されたタグを使用してジオメトリ フィールドを指定できます。
凸包クリエーターは、ジオイベントのジオメトリを生成された凸包に置き換えるか、凸包を新しいジオメトリ フィールドに挿入するように構成できます。新しいフィールドを追加してジオイベントのスキーマを変更すると、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。
凸包クリエーター プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。
ディファレンス クリエーター
ディファレンス クリエーター プロセッサは、ジオイベントのジオメトリとジオフェンスの間の交差を決定し、ジオイベントのジオメトリとのジオフェンスの交差部分をクリップまたは削除する必要がある場合に使用します。
ディファレンス クリエーターでは、2 つの個別のジオメトリを指定する必要があります。たとえば、正規表現を使用して複数の異なるジオフェンスを指定し、各ジオフェンスの交差部分をジオイベントのジオメトリから削除することはできません。このプロセッサでは、ジオフェンスの次元をジオイベントのジオメトリの次元以上にする必要があります。たとえば、ポリラインからポイントを (または、ポリゴンからポリラインを) クリップまたは除去することはできません。
ディファレンス クリエーターは、ジオイベントのジオメトリを 2 つのジオメトリから計算された差分に置き換えるか、その差分を新しいジオメトリ フィールドに挿入するように構成できます。新しいフィールドを追加してジオイベントのスキーマを変更すると、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。
ディファレンス クリエーター プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。
エンベロープ クリエーター
エンベロープ クリエーター プロセッサを使用して、ジオイベントのジオメトリを囲むシンプルな矩形エンベロープを生成できます。ジオイベントのジオメトリを囲む最小エリアを表すポリゴンを生成する凸包クリエーター プロセッサと比較した場合、凸包は必ずしも矩形になりませんが、エンベロープは必ず矩形になります。
- ポイントが与えられた場合、このプロセッサは同じポイントを生成します。
- 緯度が異なるマルチポイントまたは 2 つ以上の頂点を持つラインが与えられた場合、このプロセッサはエンベロープを生成します。ジオメトリのすべての頂点の緯度が同じである場合、有効なエンベロープを生成することはできません。
エンベロープ クリエーターでは、ジオメトリが格納されたジオイベント フィールドを指定する必要があります。ジオイベント定義内のフィールド名またはフィールドに適用されたタグを使用してジオメトリ フィールドを指定できます。
エンベロープ クリエーターは、ジオイベントのジオメトリを作成されたエンベロープに置き換えるか、エンベロープを新しいジオメトリ フィールドに挿入するように構成できます。新しいフィールドを追加してジオイベントのスキーマを変更すると、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。
エンベロープ クリエーター プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。
フィールド演算
フィールド演算プロセッサを使用して値を計算できます。このプロセッサは、式を評価して必要な値を生成します。式には、処理中のジオイベント内の指定されたフィールドから取得した文字列リテラル、数値定数、およびイベント データを含めることができます。計算された値を既存のフィールドに書き込み、現在そのフィールドに格納されているデータを上書きするか、計算された値をプロセッサが作成した新しいフィールドに書き込むことができます。
フィールド演算は汎用的なプロセッサです。「Distance * 0.3048」などの相対的に一定の式を使用して、与えられたフィート単位の距離と等価な距離を、メートル単位で計算できます。このプロセッサは、replaceAll(Description, 'foo', 'bar') などのさまざまな Java 文字列関数もサポートしています。たとえば、このプロセッサを使用して、各ジオイベントの説明フィールド内のサブ文字列「foo」のインスタンスを、すべてサブ文字列「bar」に置き換えることができます。このプロセッサは、多くの数学関数もサポートしています。たとえば、max(Time1, Time2) を使用してジオイベントの 2 つのフィールドの値のうちでどちらが大きいかを特定したり、random() を使用して乱数を生成することができます。
フィールド演算を使用する場合に考慮すべき点を以下に示します。
- 式は、数学的に記述するか、単語 (数値ではなく文字列) を使用して記述することができます。
- 文字列リテラルを操作する場合、「'Cat' + ' ' + 'Dog'」のように必ず一重引用符で囲みます。
- このプロセッサは、タイプを変換できない場合または式を評価できない場合、NULL 値を出力します。
- 式内のオペランドは、ジオイベント定義内のリテラル フィールド名またはフィールドに適用されたタグにすることができます。たとえば、「Odom1 + Odom2」という式を使用すると、Odom1 フィールドと Odom2 フィールドの値が加算され、単純な和が求められます。Odom1 フィールドに MILEAGEA というタグが付けられおり、Odom2 フィールドに MILEAGEB というタグが付けられている場合は、式「MILEAGEA + MILEAGEB」を使用できます。
- 式内の異なるタイプのデータを処理する場合、適切な変換が行われます。たとえば、「325 + 0.125」は等価な「325.0 + 0.125」に変換されます。指定された出力フィールドに Long Integer 値が必要な場合、計算された Double 値は切詰められます。
- 式を作成する際に、オーバーフローに注意してください。たとえば、式「60 * 60 * 80 * 10000」内の各項は Short Integer ですが、この計算結果は通常の Integer の 32 ビットの範囲を超えます。各項を「60.0 * 60.0 * 80.0 * 10000.0」のように Double 値で表すと、この問題を防ぐことができます。
- 計算された値を新しいフィールドに書き込むと、ジオイベントのスキーマが変更されるため、GeoEvent Server は新しいジオイベント定義を作成する必要があります。このプロセッサを使用して新しいフィールドを作成する場合、フィールド名とデータ タイプを指定する必要があります。ジオイベント定義の名前とオプションのタグを指定することができます。指定した場合、作成されたジオイベント定義内の新しいフィールドに適用されます。
フィールド演算プロセッサでサポートされている演算子と関数を次に示します。
フィールド演算プロセッサでサポートされている演算子と関数
演算 | 演算子 | 例 |
加算 |
|
この式では、「Odom1」フィールドの数値と「Odom2」フィールドの数値が加算され、単純な和が求められます。文字列の連結にも対応しています (「"Hello" + "World"」など)。 |
減算 |
|
この式では、「VALUEA」というタグが設定されたフィールドの数値から「VALUEB」というタグが設定されたフィールドの数値が減算され、単純な差が求められます。 加算とは異なり、文字列の連結に対応していないので、2 つの文字列の差を求めることはできません。 |
乗算 |
|
この式では、「Altitude」というフィールドの数値と定数「0.3048」が乗算され、単純な積が求められます (この場合は、フィート単位の値がメートル単位でそれに相当する値に変換される)。 |
除算 |
|
この式では、「Distance」というフィールドの数値が定数「1.609344」で除算され、単純な商が求められます (この場合は、キロメートル単位の値がマイル単位に相当する値に変換される)。 |
剰余 |
|
この式では、「VALUEA」というタグが設定されたフィールドの数値が、「VALUEB」というタグが設定されたフィールドの数値で除算され、その剰余が倍精度値で返されます。 |
論理積 |
|
この式では、「Flag1」というフィールドのブール値と「Flag2」というフィールドのブール値に対して論理積演算が実行され、ブール結果が求められます。入力フィールドのデータ型を Boolean にする必要があります。式に含まれる文字列リテラル (例: TRUE) と定数値 (例: 1) は、計算の一環としてそれに相当するブール値に変換されません。 |
論理和 |
|
この式では、「Flag1」というフィールドのブール値と「Flag2」というフィールドのブール値に対して論理和演算が実行され、ブール結果が求められます。 |
論理否定 |
|
この式では、「Flag1」というフィールドのブール値に対して論理否定演算が実行され、ブール結果が求められます。ネストされた式に対応しています (例: !(Flag1 && Flag2))。 |
より大きい |
|
この式では、「Altitude」というフィールドの値が指定された定数より大きいかどうかを求める論理演算が実行されます (結果はブール値になる)。 |
以上 |
|
この式では、「Altitude」というフィールドの値が指定された定数以上かどうかを求める論理演算が実行されます (結果はブール値になる)。 |
より小さい |
|
この式では、「Altitude」というフィールドの値が指定された定数より小さいかどうかを求める論理演算が実行されます (結果はブール値になる)。 |
以下 |
|
この式では、「Altitude」というフィールドの値が指定された定数以下かどうかを求める論理演算が実行されます (結果はブール値になる)。 |
等価 |
|
この式では、「VALUEA」というタグが設定されたフィールドの値と「VALUEB」というタグが設定されたフィールドの値が等しいかどうかを求める論理演算が実行されます (結果はブール値になる)。初期の製品リリース (10.2.0) では、等価演算子は数値型でしかサポートされていません。 |
不等価 |
|
この式では、「VALUEA」というタグが設定されたフィールドの値と「VALUEB」というタグが設定されたフィールドの値が等しくないかどうかを求める論理演算が実行されます (結果はブール値になる)。初期の製品リリース (10.2.0) では、不等価演算子は数値型でしかサポートされていません。 |
注意:
フィールド演算プロセッサは、型が混在する場合、値の自動変換を試みます。たとえば、「10.0 + 5」という式は、2 つの浮動小数点値の和を計算するように自動変換されます。「codeValue + "SomeString"」 (codeValue は数値) のように、数値と文字列が混在している場合、不明の値が生成されます。下で説明する codeValue などの文字列関数を使用して、明示的に valueOf(object) を文字列に変換するのが正しい方法です。注意:
フィールド演算プロセッサの等価演算子と不等価演算子は、浮動小数点値に直接適用することができません。2 つの小数値が等しいかどうかを正確に比較するには、まずこれらの値の位取りを行い、これらの値を長整数に丸めてから、長整数値を比較します。
- 「MyFloat1 == MyFloat2」のように比較しないでください。
- 代わりに、「round(MyFloat1*1000) == round(MyFloat2*1000)」のように比較します。
フィールド演算プロセッサには、java.lang.Math にある関数を正確に反映した関数が用意されています。関数の技術仕様と完全なリストについては、Java 開発者向け資料をご参照ください。使用頻度の高い関数を次にまとめてあります。
フィールド演算の定数
関数 | 説明 |
E() | オイラー数 (e) を指定された倍精度値乗して求められた値が返されます。 |
PI() | pi (直径に対する円周の割合) の倍精度表現が返されます。 |
フィールド演算用の時間関数
関数 | 説明 |
currentTime() | ローカル サーバーの現在のシステム時間が long の標準時間 (ミリ秒) で返されます。 |
receivedTime() | インバウンド コネクタがイベントを作成したときのタイムスタンプが返されます。 |
フィールド演算に共通の関数
関数 | 説明 |
abs(値) | 引数の絶対値が返されます。 |
ceil(倍精度値) | 指定された倍精度値以上の最小の整数値 (次に大きい整数値) が返されます。 |
floor(倍精度値) | 指定された倍精度値以下の最大の整数値 (次に小さい整数値) が返されます。 |
hypot(倍精度値 x, 倍精度値 y) | 中間オーバーフローと中間アンダーフローなしで sqrt((x*x) + (y*y)) が返されます。 |
max(値 a, 値 b) | 指定された 2 つの引数値のうちの大きい方の値が返されます。 |
min(値 a, 値 b) | 指定された 2 つの引数値のうちの小さい方の値が返されます。 |
random() | 0.0 以上で 1.0 より小さい倍精度値が返されます。 |
receivedTime() | フィールド演算プロセッサが式を評価したときに新しいタイムスタンプが生成されます。 |
round(値) | 引数値に最も近い長整数値が返されます (倍精度値が渡される)。 |
注意:
フィールド演算プロセッサは、可能な限り数値型の変換に対応しています。たとえば、関数に異なる型の数値を指定すると (例: max(3.14159,25))、比較を実行できるように、これらの値が比較可能な型 (Int、Float、または Double) に変換されます。また、このプロセッサでは、イベントの属性フィールドに値が書き込まれた時点で算出された値の型が変換されます (たとえば、イベントのフィールドのデータ型が Double の場合は、6 + 7 が 13.0 と書き込まれる)。
フィールド演算の指数
関数 | 説明 |
sqrt(倍精度値) | 指定された倍精度値の平方根が返されます。 |
cbrt(値) | 指定された倍精度値の立方根が返されます。 |
exp(倍精度値) | オイラー数 (e) を指定された倍精度値乗して求められた値が返されます。 |
pow(倍精度値, 倍精度値) | 最初の引数を 2 番目の引数乗して求められた値が返されます。 |
フィールド演算の対数
関数 | 説明 |
log(倍精度値) | 倍精度値の自然対数 (底を e とする) が返されます。 |
log10(倍精度値) | 倍精度値の 10 を底とする対数が返されます。 |
フィールド演算用の文字列関数
関数 | 説明 |
int length(文字列のソース) | 文字列の長さを返します。 |
boolean isEmpty(文字列のソース) | ソースの長さが 0 の場合、TRUE を返します。 |
boolean isNull(文字列のソース) | ソースの値が NULL の場合、TRUE を返します。 |
boolean equals(文字列のソース, オブジェクト anObject) | ソース文字列と指定されたオブジェクトを比較します。指定されたオブジェクトが文字列を表しており、ソース文字列と等しい場合、TRUE を返します。そうでない場合は、FALSE を返します。 |
boolean equalsIgnoreCase(文字列のソース, 文字列 anotherString) | ソース文字列と anotherString を、大文字小文字を無視して比較します。2 つの文字列の長さが等しく、それらの文字列に含まれる対応する各文字が同じ (大文字小文字は無視) である場合、それらの文字列は同じであると見なされます。引数が NULL でなく、2 つの文字列が同じである場合、TRUE を返します。そうでない場合、FALSE を返します。 |
int compareTo(文字列のソース, 文字列 str) | 2 つの文字列を、辞書順で比較します。引数 str がソース文字列と等しい場合、値 0 を返します。ソース文字列が引数 str よりも辞書順で小さい場合、0 よりも小さい値を返します。ソース文字列が引数 str よりも辞書順で大きい場合、0 よりも大きい値を返します。 |
int compareToIgnore(文字列のソース, 文字列 str) | 大文字小文字の違いを無視して、2 つの文字列を辞書順で比較します。指定した文字列がソース文字列よりも大きい場合は負の整数を返し、ソース文字列と等しい場合は 0 を返し、ソース文字列よりも小さい場合は正の整数を返します。大文字小文字は無視されます。 |
boolean startsWith(文字列のソース, 文字列 prefix) | ソース文字列が、指定された prefix で始まるかどうかを判定します。引数 prefix で表された文字の並びが、ソース文字列で表された文字の並びの接頭辞に等しい場合、TRUE を返します。そうでない場合は、FALSE を返します。 |
boolean endsWith(文字列のソース, 文字列 suffix) | ソース文字列が、指定された suffix で終わるかどうかを判定します。引数 suffix で表された文字列の並びが、ソース オブジェクトで表された文字の並びの接尾辞に等しい場合、TRUE を返します。そうでない場合は、FALSE を返します。 |
int indexOf(文字列のソース, 文字列 str, 整数 fromIndex) | 指定されたインデックスから開始して、指定されたサブ文字列 str が最初に現れるソース文字列内のインデックスを返します。指定されたインデックスから開始して、指定されたサブ文字列 str が最初に現れるソース文字列内のインデックスを返します。文字列の先頭からインデックス検索する場合は、パラメーター fromIndex を 0 に設定します。 |
int lastIndexOf(文字列のソース, 文字列 str, 整数 fromIndex) | 指定されたインデックスから逆方向に検索して、指定されたサブ文字列 str が現れるソース文字列内の最後のインデックスを返します。指定されたサブ文字列 str が現れるソース文字列内の最後のインデックスを返します。文字列の末尾からインデックス検索する場合は、パラメーター fromIndex を length(ソース) に設定します。 |
String substring(文字列のソース, 整数 beginIndex, 整数 endIndex) | ソース文字列のサブ文字列を新しい文字列として返します。ソース文字列の指定されたインデックス beginIndex からインデックス endIndex -1 までの文字のサブ文字列が返されます。 |
String concat(文字列のソース, 文字列 str) | 指定された文字列 str を、ソース文字列の末尾に連結します。 |
boolean matches(文字列のソース, 文字列 regex) | ソース文字列が、指定された正規表現と一致するかどうかを返します。ソース文字列が指定された正規表現と一致する場合にのみ、TRUE を返します。 |
boolean contains (文字列のソース, 文字シーケンス s) | 指定された文字の並び s がソース文字列に含まれている場合にのみ、TRUE を返します。ソース文字列に s が含まれている場合に TRUE を返します。そうでない場合は、FALSE を返します。 |
String replaceFirst(文字列のソース, 文字列 regex, 文字列 replacement) | 指定された正規表現 regex と一致するソース文字列の最初のサブ文字列を、指定された replacement に置き換えます。それによって作成された文字列を返します。 |
String replaceAll(文字列のソース, 文字列 regex, 文字列 replacement) | 指定された正規表現と一致するソース文字列の各サブ文字列を、指定された replacement に置き換えます。それによって作成された文字列を返します。 |
String replace(文字列のソース, 文字シーケンス target, 文字シーケンス replacement) | リテラル target の並びと一致するソース文字列の各サブ文字列を、指定されたリテラル replacement の並びに置き換えます。置換は、文字列の先頭から始まって、末尾に向かって進みます。それによって作成された文字列を返します。 |
String toLowerCase(文字列のソース) | デフォルト ロケールの規則を使用して、ソース文字列内のすべての文字を小文字に変換します。小文字に変換された文字列を返します。 |
String toUpperCase(文字列のソース) | デフォルト ロケールの規則を使用して、ソース文字列内のすべての文字を大文字に変換します。大文字に変換された文字列を返します。 |
String trim(文字列のソース) | 先頭と末尾の空白スペースを削除して、ソース文字列のコピーを返します。 |
String valueOf(文字列のソース, オブジェクト obj) | オブジェクト型引数の文字列表現を返します。 |
フィールド演算の三角関数
関数 | 説明 |
acos(倍精度値) | 値の逆余弦が返されます (返される角度は 0.0 と pi の間にある)。 |
asin(倍精度値) | 値の逆正弦が返されます (返される角度は -pi/2 と pi/2 の間にある)。 |
atan(倍精度値) | 値の逆正接が返されます (返される角度は -pi/2 と pi/2 の間にある)。 |
atan2(倍精度値 y, 倍精度値 x) | 直交座標 (x, y) から極座標 (r, シータ) への変換によって取得された角度シータが返されます。 |
cos(倍精度値) | 角度の余弦が返されます。 |
cosh(倍精度値) | 倍精度値の双曲線余弦が返されます。 |
sin(倍精度値) | 角度の正弦が返されます。 |
sinh(倍精度値) | 倍精度値の双曲線正弦が返されます。 |
tan(倍精度値) | 角度の正接が返されます。 |
tanh(倍精度値) | 倍精度値の双曲線正接が返されます。 |
toDegrees(倍精度値) | ラジアン単位で計測された角度が度単位の近似角度に変換されます。 |
toRadians(倍精度値) | 度単位で計測された角度がラジアン単位の近似角度に変換されます。 |
フィールド演算 (正規表現)
フィールド演算 (正規表現) プロセッサでは、正規表現の機能を活用し、受信したイベントのターゲット フィールド内のパターンを識別してサブ文字列を抽出できます。抽出されたサブ文字列は、ターゲット フィールドにもう一度書き込まれるか (フィールドの元の値が置換される)、新規のフィールドに書き込まれます。このプロセッサは、前述のフィールド演算プロセッサがサポートしている一般的な数学的表現、単語による表現、および論理的表現をサポートしていません。
注意:
このプロセッサで [フィールド名] パラメーターを指定する場合、${…} を使用してフィールド名を囲むのを忘れないでください。この点が、ジオイベントのフィールド名を括弧で囲まない前述のフィールド演算プロセッサとは異なります。
注意:
フィールド演算 (正規表現) プロセッサは、指定された正規表現パターン内での後方参照に対応していません。
計算された値を新しいフィールドに書き込むと、ジオイベントのスキーマが変更されるため、GeoEvent Server は新しいジオイベント定義を作成する必要があります。このプロセッサを使用して新しいフィールドを作成する場合、フィールド名とデータ タイプを指定する必要があります。ジオイベント定義の名前とオプションのタグを指定することができます。指定した場合、作成されたジオイベント定義内の新しいフィールドに適用されます。
フィールド エンリッチャー (フィーチャ サービス)
フィールド エンリッチャー (フィーチャ サービス) プロセッサを使用して、公開されたフィーチャ サービスのフィーチャ レイヤーまたは非空間テーブルの属性データの情報をジオイベントに付加することができます。属性は、処理中のジオイベントに新しいフィールドとして付加されます。このプロセッサでは、登録済みの ArcGIS Server 接続を指定する必要があります。このプロセッサを構成する際に、フィーチャ サービス内のサービス フォルダー、フィーチャ サービス名、およびターゲット レイヤーを、すべて指定する必要があります。付加される各フィールドのデータ タイプは、元の付加情報から引き継がれます。それらのデータ タイプは、プロセッサの構成の一部としては指定しません。
ジオイベントへの情報付加は、データベース管理者がテーブル結合として何を参照するかに依存します。結合が実行されるフィールドとして、フィーチャ サービスのテーブルのフィールド名およびジオイベントのフィールド名前を指定できます。フィーチャ サービスのテーブルの実際のフィールド名を指定する必要があります。結合が実行されるジオイベントのフィールドは、処理対中のイベントに関連付けられたジオイベント定義内のジオイベントのフィールド名またはフィールドに適用されたタグを使用して指定できます。
付加情報に含めるフィールドのカンマ区切りのリストを、フィールドを選択して表示されるプロセッサの [プロパティ] ダイアログ ボックスを使用して作成するか、キーボードから手動で入力できます。必要に応じて、GeoEvent Server が新規に作成する各フィールドに適用するタグを、2 つ目のカンマ区切りのリストとして指定できます。
ジオイベントへの情報付加によってジオイベントのスキーマが変更されるため、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。
フィールド エンリッチャー (フィーチャ サービス) プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。
フィールド エンリッチャー (ファイル)
フィールド エンリッチャー (ファイル) プロセッサを使用して、公開されたフィーチャ サービスからではなく、システム ファイルに格納された属性データの情報をジオイベントに付加することができます。システム ファイルからジオイベントに情報を付加するには、そのファイルを含むシステム フォルダーをデータ ストアとして GeoEvent Server に登録しておく必要があります。登録済みのシステム フォルダーが指定されると、プロセッサは指定されたファイルから付加情報データを取得できます。
注意:
テキスト ファイルを情報付加元として使用する場合は、下記の形式に従う必要があります。具体的には、ファイルの 1 行目にフィールド名をカンマ区切り値として指定し、 2 行目に各フィールドのデータ型を指定する必要があります。ファイルのデータ値の入力は、3 行目から始めます。
PilotName,PilotPhone,PilotYearsOfService,PilotActive String,String,Integer,Boolean Adam Mollenkopf,111-111-1111,4,TRUE Ryan Elliott,222-222-2222,7,TRUE Javier Delgadillo,333-333-3333,12,TRUE Vlad Plechnoy,444-444-4444,10,TRUE NickBrezovar,555-555-5555,5,TRUE
ジオイベントへの情報付加は、データベース管理者がテーブル結合として何を参照するかに依存します。結合が実行されるフィールドとして、フィーチャ サービスのテーブルのフィールド名およびジオイベントのフィールド名前を指定できます。フィーチャ サービスのテーブルの実際のフィールド名を指定する必要があります。結合が実行されるジオイベントのフィールドは、処理対中のイベントに関連付けられたジオイベント定義内のジオイベントのフィールド名またはフィールドに適用されたタグを使用して指定できます。
付加情報に含めるフィールドのカンマ区切りのリストを、フィールドを選択して表示されるプロセッサの [プロパティ] ダイアログ ボックスを使用して作成するか、キーボードから手動で入力できます。必要に応じて、GeoEvent Server が新規に作成する各フィールドに適用するタグを、2 つ目のカンマ区切りのリストとして指定できます。
ジオイベントへの情報付加によってジオイベントのスキーマが変更されるため、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。
フィールド エンリッチャー (ファイル) プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。
フィールド マッパー
フィールド マッパー プロセッサを使用して、あるジオイベントスキーマから別のジオイベント スキーマまたはジオイベント定義にデータを変換 (マッピング) できます。すべてのジオイベントには、属性フィールドとデータ タイプを識別するジオイベント定義が関連付けられています。ジオイベント定義は、ジオイベントの新しいフィールドに情報が付加された場合などに処理されると、変わる可能性があります。
フィールド マッパーを構成するには、ソースジオイベント定義とターゲットジオイベント定義を選択します。右に表示されるターゲットジオイベント定義のフィールドと、選択したソースジオイベント定義のフィールドのドロップ ダウン リストを使用して、マッピングする適切なフィールドを選択できます。各フィールドに適したマッピングを識別できるようにするために、各フィールドのデータ タイプが表示されます。
処理のある段階でジオイベントに適しているジオイベント定義が、公開済みフィーチャ サービスのスキーマに一致していない場合があります。そのようなジオイベントは、フィールド マッパーによって処理し、ターゲット フィーチャのスキーマに一致するように各ジオイベントのスキーマを変換する必要があります。その後、ジオイベント サービスは、フィーチャ サービス内のフィーチャを更新できます。
たとえば、多くの (特に、汎用 JSON を提供する) リアルタイム データ ストリームは、サブフィールドのグループや複数の値のリストを含むデータ構造を多くの場合提供します。そのようなデータ構造は、フィーチャ サービスの、不連続データ タイプ (Date、String、Integer など) を必要とするフラットなデータ構造を持つスキーマとは一致しません。フィールド マッパーの主な目的は、階層構造をフラットにして、フィーチャ サービスのスキーマに一致させることです。
フィールド マッパーのその他の一般的な用途は次のとおりです。
- ターゲットジオイベント定義を指定すると、フィールド マッパーから送信されるジオイベントのスキーマが構築されるため、このプロセッサを効率的に使用して、入力から出力に送信される属性フィールドの数を減らすことができます。目的のフィールドを使用してジオイベント定義を作成するだけでよく、その後、フィールド マッパーを使用すると、ジオイベント サービスから受信するジオイベントが縮小して、目的の出力スキーマに一致するようになります。
- フィールド マッパーを使用して、基本的なデータ変換を実行できます。たとえば、Integer データが格納されたジオイベント フィールドを、Long 表現または Double 表現のデータ値に変換するような場合です。数値を変換して、文字列表現のデータを作成できます。フィールド マッパーがデータ タイプ変換を実行できない場合は、マッピングされたフィールドに NULL 値が書き込まれます。
注意:
公開済みフィーチャ サービスのフィーチャを更新するが、既存のフィーチャの 1 つ以上のフィールドを変更したくない場合、それらのフィールドをフィールド マッパーでマッピングしないままにすると、フィーチャの更新時に NULL 値が書き込まれます。マッピングしないフィールドを削除してからジオイベントを出力コネクタに送信するには、フィールド リデューサー (下記を参照) を使用します。フィールド リデューサーは、フィーチャ サービスを更新する機能を担っています。
フィールド リデューサー
フィールド リデューサー プロセッサは、ジオイベントからフィールドを削除する必要がある場合に使用できます。これを使用すると、処理中のジオイベントから効率的に属性データが削除され、ジオイベントの簡略化された表現を追加処理または出力に送信できるようになります。フィールド リデューサーを構成する場合、削除するフィールドをカンマ区切りのリストで指定します。
フィールド リデューサーによってジオイベントのスキーマが変更されるため、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。最後に、作成される新しいジオイベント定義の名前を指定します。
ジオタガー
ジオタガー プロセッサを使用して、対象地域 (ジオフェンスとも呼ばれる) の名前の情報をジオイベントに付加できます。この対象地域とジオイベントのジオメトリとの間には、指定された空間リレーションシップがあります。
ジオタグは、イベントへの情報付加と空間フィルターを行います。たとえば、ジオイベントのジオメトリを内部に含むことが検出されたすべてのジオフェンスの名前を付加するようにジオタガーを構成できます。ジオタガーが処理したジオイベントにはフィールドが追加され、そのフィールドには、ジオイベントのジオメトリを含むことが検出されたすべてのジオフェンスの名前が格納されます。
注意:
ジオタガー プロセッサを構成する前に、ジオフェンスをフィーチャ サービスから GeoEvent Server にインポートしておく必要があります。GeoEvent Server でのジオフェンスの操作方法の詳細は、「ジオフェンスの管理」をご参照ください。
ジオタガーを構成する場合、このプロセッサがジオイベントにタグ付けするために満たす必要のあるリレーションシップを指定する空間演算子を選択する必要があります。たとえば、ジオイベントのポリゴンが交差するすべてのジオフェンスの名前でタグ付けすることによって、ジオイベントに情報を付加することができます。
ジオタガーがサポートする空間演算子には、Contains Any、Crosses Any、Disjoint Any、Enter Any、Equals Any、Exit Any、Inside Any、Intersects Any、Outside Any、Overlaps Any、Touches Any、および Within Any があります。これらの演算子は、ジオタガーが対象となる (演算子の定義済み空間リレーションシップを満たす) ジオフェンスを使用して、処理中のジオイベントへの情報付加を開始できるということを想定します。
たとえば、Intersects Any 空間演算子を選択して、重複していない対象地域をモデリングする数 10 個のジオフェンスを対象にした場合、ジオイベントのジオメトリと交差するエリアが含まれるすべてのジオフェンスの名前が、処理中のそのジオイベントに追加されます。
注意:
対象地域のモデリングとしてジオフェンスを検討することがよくあります。これは、ジオフェンスが常にポリゴン ジオメトリであるということを示しています。サポートされている空間演算子のリストが示すように、ジオフェンスをポイント ジオメトリやポリライン ジオメトリにすることもできます。ジオイベントに関連付けられているポリゴン ジオメトリをテストして、そのポリゴン ジオメトリが、ポイント ジオメトリまたはポリライン ジオメトリを持つジオフェンスと交差またはクロスしているか、あるいはそのジオフェンスを含んでいるかを確認できます。
ジオイベントのジオメトリが格納されたフィールドの名前を指定する場合、ジオタガーは、ジオイベント定義内のイベント フィールドの名前またはフィールドに適用されたタグ (通常は GEOMETRY タグ) のいずれかを受け取ることができます。
ジオタガーによってジオイベントのスキーマが変更されるため、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。生成される新しいジオイベント定義の名前、およびジオタガーが付加情報の値を書き込むフィールドの名前を指定します。
ジオタガーによる付加情報の値の書式設定方法として、3 つのオプションを使用できます。[区切り値] は、ジオフェンス名をシンプルなカンマ区切りのリストとして書き込むことを指定します。他の 2 つのオプションは、付加情報の値を、JSON リストとして、または JSON グループ内のエレメントとして書式設定します。ジオフェンス カテゴリの名前を付加情報に含めるようにジオタガーを構成し、アメリカの州と郡をジオフェンスの別のカテゴリとして返す場合、ジオタガーによる付加情報の書式は次のようになります。
- リスト: ["UnitedStates/California","Counties/San_Bernardino"]
- グループ: [{"Category":"UnitedStates","Name":"California"},{"Category":"Counties", "Name":"San_Bernardino"}]
ジオタガー プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。
インシデント ディテクター
インシデント ディテクター プロセッサを使用して、受信したジオイベントが何らかの条件を満たし、インシデントを開始する必要があることを示すことができます。たとえば、データ ストリームが車両の位置と現在の速度をレポートしていると仮定します。インシデント ディテクターは、いずれかの車両が一定の速度を超えたとき、または車両が特定の対象地域またはジオフェンスに入ったときに、インシデントを生成できます。追跡対象の車両から新しい更新情報が送られてくると、GeoEvent Server の継続中のインシデントは更新されます。このインシデントは、車両が安全な速度に戻った時点、またはジオフェンス エリアを出た時点で終了します。
インシデント ディテクターは、プロセッサから送信されるジオイベントが、プロセッサが受信したジオイベントのコピー (または派生物) ではないという点が、他のプロセッサとは異なっています。プロセッサから送信されるジオイベントは、GeoEvent Server をインストールしたときに作成されるインシデント ジオイベント定義に関連付けられます。
インシデント ディテクターは、指定された属性と空間条件を使用して、新しいインシデントを検出して生成したり、継続中のインシデントを更新したりします。開始されたインシデントは、終了されるまで継続中状態のままになります。終了条件を満たすジオイベントを受信した場合、またはインシデントに関連付けられたジオイベントを指定された時間内に受信しなかった場合に、インシデントは終了します。
インシデント ディテクターを構成する際に、開始条件を指定する必要があり、必要に応じて終了条件を指定します。終了条件を指定しない場合、プロセッサは、暗黙の終了条件として開始条件の論理否定を使用します。
注意:
空間リレーションシップ演算子の詳細、および開始条件と終了条件に使用される属性式と空間式の作成方法については、「フィルター」をご参照ください。
注意:
インシデント ディテクターに送信されるジオイベントには、TRACK_ID を含むジオイベント定義が関連付けられている必要があります。プロセッサは、このタグ付けされたフィールドを使用して、作成したインシデントを受信したジオイベントに関連付けます (これによって、ジオイベントは、個別のオブジェクト、車両、センサー、または他の監視対象アイテムに関連付けられます)。
インシデント ディテクターでは、プロセッサによって開始されたインシデントの識別に使用できる名前を指定する必要があります。たとえば、速度違反車両のインシデントを検出するために作成されたインシデント ディテクター プロセッサは、文字列「速度違反」を、作成したインシデントに関連付けることができます。
インシデント ディテクターに指定する開始条件と終了条件は、属性に基づいて指定するか、ジオフェンスとの空間リレーションシップに基づいて指定できます。フィルターと同じように、受信したジオイベントに関連付けられたデータが指定された式を満たす場合、インシデント ディテクターはその条件を検出し、新しいインシデントの開始、継続中のインシデントの更新、またはインシデントの終了のうちのいずれかを行います。
このプロセッサは、インシデントに関連付けられる重要度レベルを設定するように構成できます。使用できる重要度レベルは、[通知 (Notification)]、[警告 (Warning)]、および [緊急 (Urgent)] です。インシデントの重要度レベルは、1 つに制限されます。そのため、重要度レベルを変更するには、プロセッサを編集してジオイベント サービスを再公開する必要があります。
インシデント ディテクターでは、プロセッサが作成するインシデントのタイプを指定する必要があります。
- 「時点」インシデントには終了条件がありません。このインシデントは瞬間的な状態と見なされ、生成された直後に閉じられるため、インシデント期間が存在しません。
- 「累積」インシデントには開始条件と終了条件があります。インシデントの生成から失効 (つまり終了) までの時間がインシデント期間になります。「累積」インシデントは監視対象であり、追加のイベント データを受信すると、GeoEvent Server によって更新されます。
インシデント ディテクターが生成する各インシデントには、ジオメトリが関連付けられています。このジオメトリ タイプは、プロセッサを構成するときに指定します。インシデント ディレクタは、通常、作成したインシデントにポイント ジオメトリを関連付けるように構成されます。これによってインシデントは、特定の時間に特定の場所で発生したインシデントとしてモデル化されます。ただし、プロセッサが作成するインシデントのジオメトリ タイプとして、マルチポイントとポリラインもサポートされています。
プロセッサは、継続中のインシデントの TRACK_ID に関する更新情報を指定された時間内に受信しなかった場合、そのインシデントを自動的に終了します。インシデント ディテクターを構成して動作を定義するときに、適切な有効期限 (秒) を指定します。インシデントは、タイマが有効期限切れを検出するまで更新情報が受信されなかった場合、プロセッサの終了条件を満たすジオイベントが受信されていない場合でも、有効期限が切れて終了状態に移行します。プロセッサが作成したインシデントの有効期限が自動的に切れるのを無効にする場合は、有効期限にゼロの値を指定します。
インシデント ディテクター プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。
インターセクター
インターセクター プロセッサを使用して、ジオフェンスとジオイベントのジオメトリとの間の交差を表すジオメトリを生成できます。ジオイベントのジオメトリは、ベースと見なされます。ジオフェンスは、交差が存在するかどうかを判定するための評価対象のジオメトリになります。
注意:
2 つのジオメトリ間の交差の次元は、通常、各ジオメトリの次元以下になります。たとえば、ジオイベントに関連付けられたジオメトリがポイントである場合、指定されたジオフェンスのジオメトリがポリラインまたはポリゴンであっても、交差は (存在すると仮定して) ポイントになるはずです。ジオイベントに関連付けられたジオメトリがポリラインであり、指定されたジオフェンスのジオメトリがポリゴンである場合、交差はおそらくラインになりますが、ポイントになる可能性もあります。
インターセクターでは、2 つの個別のジオメトリを指定する必要があります。たとえば、正規表現を使用して複数の異なるジオフェンスを指定し、各ジオフェンスと、処理対象のジオイベントに関連付けられたジオメトリとの間の交差を取得することはできません。
このプロセッサは、ジオイベントのジオメトリを検出された交差と置き換えるか、交差しているジオメトリを新しいフィールドに書き込むように構成できます。新しいフィールドをジオイベントに追加すると、ジオイベントのスキーマが変更されるため、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。
インターセクター プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。
ノー オペレーション
ノー オペレーション プロセッサは、受信したジオイベントに対して何の処理も実行せず、何の影響も与えません。ジオイベントは、このプロセッサを、存在していないかのうように通過します。このプロセッサを、ジオイベント サービスでスタブまたはプレースホルダーとして使用し、後で実際のプロセッサとして構成することができます。これによって、ジオイベント サービスの他の部分の設計とテストに集中することができます。
ノー オペレーション プロセッサは、それ以外のシナリオでも役立ちます。シナリオの例を次に挙げます。
- 予期したとおりに動作していない公開済みジオイベント サービスのトラブルシューティングを実施する。何の動作もしないようにノー オペレーション プロセッサを構成すると、ジオイベント サービスのワークフローを強制的に再作成することなく、効果的にジオイベント サービスから削除されます。
- 特定のコンポーネントの開発が完了する前に、ジオイベント サービスでの処理とフィルタリングのワークフローを設計する。そのコンポーネントの開発が完了してから、ノー オペレーション プロセッサを別のタイプのプロセッサとして再構成できます。
- ジオイベント サービスの特定のコンポーネントで実行中の処理を一時的に止める方法を実証する。既存のプロセッサをノー オペレーション プロセッサとして構成してジオイベント サービスを再公開すると、GeoEvent Server で現在実行中の処理を明確にすることができます。
プロジェクター
イベント データは、多くの場合、緯度と経度を使用する地理空間内で座標値を表します。プロジェクター プロセッサを使用して、ジオイベントのジオメトリを元の座標系から別の空間参照に投影することできます。たとえば、特定の座標系を背景にしてイベント データの座標値を確認するために、明示的にイベント データを投影することができます。
ストリーミング データの元の座標系を理解し、それがジオフェンスなどのインポート可能な他の空間データにどのように関連しているかを理解しておくことをお勧めします。ArcGIS Server と GeoEvent Server は、通常、必要に応じてジオメトリを投影します。そのため、共通の空間参照において、空間評価が実行されます。ArcGIS Server は、受信したデータを、たとえばフィーチャを作成したり更新したりする前に、フィーチャ サービスの空間参照に一致するように投影します。GeoEvent Server は、ジオフェンスとの交差のデータを評価する前に、空間データをリアルタイムで投影します。
このプロセッサは、ジオイベント サービスで追加フィルタリングなどの処理が発生する前にジオイベントのジオメトリを明示的に投影する場合に使用します。
このプロセッサでは、ジオメトリが格納されたフィールドを指定する必要があります。ジオメトリ フィールドを識別するジオイベント定義内のジオイベントのフィールド名またはフィールドに適用されたタグを指定できます。このプロセッサでは、入力データが投影される座標系の WKID (Well Known Identifier) も指定する必要があります。たとえば、WGS 1984 World Geographic 座標系の WKID は、4326 です。
注意:
サポートされている座標系の詳細については、「空間参照の使用」をご参照ください。
プロジェクター プロセッサは、ジオイベントのジオメトリを投影されたジオメトリに置き換えるか、投影されたジオメトリを新しいフィールドに挿入するように構成できます。新しいフィールドをジオイベントに追加すると、ジオイベントのスキーマが変更されるため、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。
プロジェクター プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。
シンプリファイアー
シンプリファイアー プロセッサを使用して、ジオイベントに関連付けられたジオメトリを、そのタイプにトポロジ的に一致するジオメトリをレンダリングするように修正できます。シンプリファイアーは、ポイント ジオメトリに対しては効果がありません。マルチポイント ジオメトリのすべての頂点は、ジオメトリの空間参照に適したグリッドにスナップされ、その後、重複する頂点が削除されます。自己交差セグメントを含むポリライン ジオメトリとポリゴン ジオメトリは、トポロジ的に正しいマルチパート ポリラインまたはマルチパート ポリゴンを生成するために、複数のパスまたはリングを使用して再作成されます。
この単純化は、ジェネラライズと同じではありません。この単純化は、トポロジ的に正しいライン セグメントに沿って不要な頂点を削除したり、詳細を省くようにジオメトリの形状を変更したりして、小さい縮尺のマップで効率的に表示するためのジオメトリを生成します。この単純化の目的は、ジオデータベースへの挿入が有効なフィーチャを生成することです。ArcGIS Desktop の編集セッションで作成されたフィーチャは、すでにトポロジ的に正しく、シンプルです。フィーチャ サービスからポーリングされるフィーチャは、ジオイベント サービスで処理する前に、単純化する必要はありません。
シンプリファイアーでは、ジオメトリが格納されたジオイベントのフィールドを指定する必要があります。ジオメトリ フィールドを識別するジオイベント定義内のジオイベントのフィールド名またはフィールドに適用されたタグを指定できます。
このプロセッサは、ジオイベントのジオメトリを単純化されたジオメトリに置き換えるか、単純化されたジオメトリを新しいフィールドに挿入するように構成できます。新しいフィールドをジオイベントに追加すると、ジオイベントのスキーマが変更されるため、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。
シンプリファイアー プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。
シンメトリック ディファレンス クリエーター
シンメトリック ディファレンス クリエーター プロセッサを使用して、ジオイベントのジオメトリとジオフェンスとの間の交差部分を、これら 2 つのジオメトリのユニオンからクリップまたは削除することができます。2 つのジオメトリの対称差 (シンメトリック ディファレンス) は、基本的に排他的論理和になります。
シンメトリック ディファレンス クリエーターでは、2 つの個別のジオメトリを指定する必要があります。たとえば、正規化表現を使用して複数の異なるジオフェンスを指定し、ジオメトリのコレクションから対称差を得ることはできません。このプロセッサでは、同じタイプのジオメトリを指定する必要があります。そのため、たとえば、ポイントとポリラインの間の対称差をこれらのユニオンから計算することはできません。
このプロセッサは、ジオイベントのジオメトリを計算された対称差と置き換えるか、対称差を新しいフィールドに挿入するように構成できます。新しいフィールドをジオイベントに追加すると、ジオイベントのスキーマが変更されるため、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。
シンメトリック ディファレンス クリエーター プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。
トラック ギャップ ディテクター
トラック ギャップ ディテクター プロセッサを使用して、ストリーミング データからのイベントがないことを検出できます。インシデント ディテクターと同様に、トラック ギャップ ディテクターから送信されるジオイベントは、プロセッサが受信したジオイベントのコピー (または派生物) ではありません。プロセッサから送信されるジオイベントは、GeoEvent Server をインストールしたときに作成されるトラック ギャップ ジオイベント定義に関連付けられます。
トラック ギャップ ディテクター プロセッサに送信されるジオイベントには、TRACK_ID を含むジオイベント定義が関連付けられている必要があります。プロセッサは、このタグ付けされたフィールドを使用して、ジオイベントを受信しなくなったタイミングを特定します。トラックのジオイベントがないことをプロセッサが検出するには、まず、そのトラックの TRACK_ID を含む 1 つ以上のジオイベントをプロセッサが受信している必要があります。
トラック ギャップ ディテクター プロセッサでは、以下の [ギャップ期間] と [ギャップ検出間隔] の両方を指定する必要があります。
- [ギャップ期間] は、期待されるデータを受信しなくなったことを判定するまでのプロセッサの待機時間を秒数で指定します。
- [ギャップ検出間隔] は、各ポーリング間隔を秒数で指定します。
トラック ギャップ ディテクター プロセッサは、たとえば 120 秒のギャップ検出間隔および 300 秒のギャップ期間を使用して構成された場合、2 分 (120 秒) ごとに受信ジオイベントの内部レジストリを調べ、最後の 5 分 (300 秒) 以内にそのレジストリ内で TRACK_ID が観測されたかどうかをチェックします。
ギャップ検出間隔は、通知を生成する頻度も制御します。通知モードを [連続] に設定した場合、受信が期待されるが最近受信していない TRACK_ID ごとに、プロセッサの内部レジストリの各ポーリングに対して、新しいトラック ギャップ イベントが生成されます。最初にギャップを検出したときに 1 つ目の通知を生成し、期待されるジオイベントを再度受信したときに 2 つ目の通知を生成する場合は、[変更時] 通知モードを指定します。
最後に、トラック ギャップ ディテクター プロセッサを構成する際に、ジオメトリが格納されたジオイベントのフィールドを指定できます。ジオイベントのフィールド名を指定した場合、このプロセッサは、最後に受信したジオイベントのジオメトリを、生成したトラック ギャップ イベントに追加します。たとえば、データ ストリームが車両の位置をレポートしており、30 秒ごとにポーリングして、車両のレポートを最後に受信してから 120 秒以上のギャップが発生したかどうかを判定するようにプロセッサを構成している場合、最後にレポートされた車両の位置をそのギャップ通知イベントに含めるようにプロセッサを構成できます。
ユニオン クリエーター
ユニオン クリエーター プロセッサを使用して、ジオイベントに関連付けられたジオメトリと、ジオフェンスとしてインポートした 1 つ以上のジオメトリとの幾何学的ユニオンを生成できます。このプロセッサでは、ジオメトリが格納されたジオイベントのフィールドを指定する必要があります。ジオメトリ フィールドを識別するジオイベント定義内のジオイベントのフィールド名またはフィールドに適用されたタグを指定できます。
このプロセッサは、ジオイベントのジオメトリを指定した各ジオメトリのユニオンに置き換えるか、そのユニオンを新しいジオメトリ フィールドに挿入するように構成できます。新しいフィールドをジオイベントに追加すると、ジオイベントのスキーマが変更されるため、GeoEvent Server は新しいジオイベント定義を作成する必要があります。新しいジオイベント定義は、GeoEvent Server で管理され、プロセッサまたはプロセッサが属するジオイベント サービスに対して変更が行われた場合に削除されます。
2 つの個別のジオメトリのみを操作するディファレンス、シンメトリック ディファレンス、インターセクターなどの他のプロセッサとは異なり、ユニオン プロセッサでは正規表現が許容されるため、複数の異なるジオフェンスを指定できます。そのため、受信したジオイベントのジオメトリと、ジオフェンスとしてインポートした 1 つ以上のジオメトリとのユニオンを取得することができます。
ユニオン クリエーター プロセッサの詳細については、GeoEvent Server チュートリアルから GeoEvent Server の概要のチュートリアルをご参照ください。