-
Notifications
You must be signed in to change notification settings - Fork 7
Configure Civilian Services
The AirC2-CivilianTracks service uses the Airc2-tcp-text-in-civilian-air-tracks input connector to read serials from a simulation file transmitted over a TCP socket and performs 5 distinct tasks in real-time:
- The tracks are rendered to a feature service without processing to simply display the position of the aircraft being simulated.
- The tracks are sent to a stream service without processing to simply display the position of the aircraft being simulated.
- The service determines whether an aircraft is within an airspace control order (ACO) using the ACO geofences. When an aircraft is detected as within an ACO, the ACO status is changed to 'ACTIVE'. When an aircraft leaves an 'ACTIVE' ACO its status is changed back to 'INACTIVE'. Both horizontal (latitude and longitude) and vertical (altitude) coordinates are used to determine whether an aircraft is within an ACO.
- When an aircraft enters a restricted ACO, an alert is rendered on top of the aircraft indicating that it is inside a restricted zone. Similar to detecting whether an aircraft is inside an ACO.
- The service determines if an aircraft is within a weapon system's range using the Target Threat Area GeoFences. When an aircraft is within the threat area an alert is generated and rendered above the aircraft entering the threat area.
- Create a new GeoEvent service called AirC2-CivilianTracks.
- Add the AirC2-tcp-text-in-civilian-air-tracks input.
- Drag the AirC2-StreamServiceOut-CivilianAirTracks output service into the GeoEvent Service Designer. Connect the output to the AirC2-tcp-text-in-civilian-air-tracks input connector. This will write the simulated data to a stream service.
- Drag the AirC2-UpdateFeatures-CivilianAirTracks output service into the GeoEvent Service Designer. Connect the output to the AirC2-tcp-text-in-civilian-air-tracks input connector. This will write the simulated data to a feature service.
- Create a new GeoTag Processor. Use the table below to configure the processor. Once configured connect the processor to the AirC2-tcp-text-in-civilian-air-tracks input.
- Create a new filter called Filter Out Non ACM Tagged Records (Inside). Set the query to:
- NOT ACMNameInside = ""
- Create a Field Enricher processor. This processor will enrich the incoming event with fields from any ACO in which it is inside. The fields added to the incoming event are, min_height, max_height, status, and acm. Use the following table to check Field Enricher Processor:
- Create a new Filter called Filter Based on Altitude. This filter tests whether an aircraft is within an ACO in the vertical coordinate system by comparing the current altitude of the aircraft to the minimum and maximum heights of an aco (enriched in the previous step) in which the aircraft has crossed in horizontal (latitude, longitude) coordinates. Set the filter query to:
- alt >= ${min_height} AND alt <= ${max_height}
- Create a Field Calculator processor to modify the Status of the ACO. Use the following table to configure the processor.
- Create a Field Mapper processor. This mapping will map the status and name of the ACO to the appropriate fields. Use the following tables to configure the processor:
- Drag the AirC2-UpdateFeatures-ACOStatus output onto the GeoEvent Service Designer and connect the Map Status and Name Field Mapper processor to it.
- Create a new GeoTag Processor. Use the table below to configure the processor. Once configured connect the processor to the AirC2-tcp-text-in-civilian-air-tracks input.
- Create a new filter called Filter Out Non ACM Tagged Records. Set the filter's query to the following:
- NOT GeoTags = ""
- Create a Field Enricher processor. This processor will enrich the incoming event with fields from any ACO in which it has exited (see GeoTagger in step 12). The field added to the incoming event is status. Use the following table to check Field Enricher Processor
- Create a Field Calculator processor to modify the Status of the ACO. Use the following table to configure the processor:
- Create a Field Mapper processor. This mapping will map the status and name of the ACO to the appropriate fields. Use the following tables to configure the processor.
- Connect the Field mapper created in the previous step to the AirC2-UpdateFeatures-ACOStatus output connector.
- Create GeoTagger Processor. This processor will test whether an event is inside a target threat area. Use the following table to configure the GeoTagger:
- Create a new Filter called 'Filter Out Non Range Tagged Records'. This filter will filter out any events that have not entered a Range Dome geoFence. Use the following query to configure the filter:
- NOT RangeDomeName = ""
- Create a new Field Enricher processor. This processor will add the callsign and distance fields from a range dome to the event. use the table below to configure the Field Enricher:
- Create a new Filter called 'Within Threat Range'. This filter will determine whether an event is within the vertical extent of the rangedome. Use the following query to configure the filter:
- alt <= ${distance}
- Create a new Field Mapper Processor. Use the following tables to configure the Field Mapper:
- Drag the AirC2-UpdateFeatures-TargetThreatAlerts output into the GeoEvent service designer. Connect the Field mapper created in step 22 to the output
- Create a new Field Mapper Processor. Use the following tables to configure the FieldMapper
- Drag the AirC2-UpdateFeatureService-AirspaceControlMeasureAlert output service into the GeoEvent Service Designer. Connect the output to the Field mapper created in step 24.
Field | Value |
Name | GeoTag ACM on entry |
Processor | GeoTagger |
GeoFence | AirspaceControlMeasures/* |
Spatial Operator | Inside Any |
Geometry Field Name | GEOMETRY |
Geotag Field Name | ACMNameInside |
GeoTag Format | Delimited Value |
Include GeoFence Category in GeoTag | No |
New GeoEvent Definition Name | AirC2-CivilianAirTrack_InsideACM |
Field | Value |
Name | Add Min and Max Heights |
Processor | Field Enricher (Feature Service) |
Server Connection | AirC2 AGS Server |
Folder | AirC2 |
Service | AirC2_ACO_Status (FeatureServer) |
Layer | Airspace Control Means - Status (0) |
Feature Layer Join Field | name |
Target Fields | New Fields |
Enrichment Fields | min_height, max_height, status, acm |
Field Tags | |
New GeoEvent Definition Name | AirC2-CivilianAirTrack_InsideACM_Enriched |
GeoEvent Join Field | ACMNameInside |
Cache Refresh Time Interval | 1 |
Maximum Cache Size | 1000 |
Connect the filter to the Add Min Max Heights Field Enricher processor.
Field | Value |
Name | Calculate Status (Active) |
Processor | Field Calculator |
Expression | 'ACTIVE' |
Target Field | Existing Field |
Existing Field Name | status |
Field | Value |
Name | Map Status and Name |
Processor | Field Mapper |
Source GeoEvent Definition | AirC2-CivilianAirTrack_InsideACM_Enriched |
Target GeoEvent Definition | AirC2-Update_ACO_Status |
Source Fields | Target Fields |
ACMNameInside | name |
status | status |
Note
The first time setting up the service the input definition created when the event passes through the Add Min and Max Heights Field Enricher will not be present. Run the simulation until an event passes through the field enricher at which point the geoevent definition will be created.
Field | Value |
Name | GeoTag Air Control Means on Aircraft Exit |
Processor | GeoTagger |
GeoFence | AirspaceControlMeasures/* |
Spatial Operator | Exit Any |
Geometry Field Name | GEOMETRY |
Geotag Field Name | GeoTags |
GeoTag Format | Delimited Value |
Include GeoFence Category in GeoTag | No |
New GeoEvent Definition Name | AirC2-CivilianAirTrack_OutsideACM |
This will filter out events that do not honor the GeoTagger's query created in step 12. Connect the filter to the GeoTagger created in the last step.
Field | Value |
Name | Add Status |
Processor | Field Enricher (Feature Service) |
Server Connection | AirC2 AGS Server |
Folder | AirC2 |
Service | AirC2_ACO_Status (FeatureServer) |
Layer | Airspace Control Means - Status (0) |
Feature Layer Join Field | name |
Target Fields | New Fields |
Enrichment Fields | status |
Field Tags | |
New GeoEvent Definition Name | AirC2-CivilianAirTrack_OutsideACM_Enriched |
GeoEvent Join Field | GeoTags |
Cache Refresh Time Interval | 1 |
Maximum Cache Size | 1000 |
Field | Value |
Name | Calculate Status (Inactive) |
Processor | Field Calculator |
Expression | 'INACTIVE' |
Target Field | Existing Field |
Existing Field Name | status |
Field | Value |
Name | Map Name and Status |
Processor | Field Mapper |
Source GeoEvent Definition | AirC2-CivilianAirTrack_OutsideACM_Enriched |
Target GeoEvent Definition | AirC2-Update_ACO_Status |
Source Field | Target Field |
GeoTags | name |
status | status |
Note
The first time setting up the service the input definition created when the event passes through the Add Status Field Enricher will not be present. Run the simulation until an event passes through the field enricher at which point the geoevent definition will be created.
Field | Value |
Name | GeoTag Range Dome |
Processor | GeoTagger |
GeoFence | RangeDomes/* |
Spatial Operator | Inside Any |
Geometry Field Name | GEOMETRY |
Geotag Field Name | RangeDomeName |
GeoTag Format | Delimited Value |
Include GeoFence Category in GeoTag | No |
New GeoEvent Definition Name | AirC2-CivilianAirTrack_InsideThreatDome |
Field | Value |
Name | Add Distance and Callsign |
Processor | Field Enricher (Feature Service) |
Server Connection | AirC2 AGS Server |
Folder | AirC2 |
Service | AirC2_TargetThreatAreas (FeatureServer) |
Layer | Threat position Inner (m) (0) |
Feature Layer Join Field | gtgt_name |
Target Fields | New Fields |
Enrichment Fields | distance, ac_callsign |
Field Tags | |
New GeoEvent Definition Name | AirC2-CivilianAirTrack_InsideThreatDome_Enriched |
GeoEvent Join Field | RangeDomeName |
Cache Refresh Time Interval | 1 |
Maximum Cache Size | 1000 |
Connect the filter to the Field Enricher created in step 20.
Field | Value |
Name | Map Fields to Output |
Processor | Field Mapper |
Source GeoEvent Definition | AirC2-CivilianAirTrack_InsideThreatDome_Enriched |
Target GeoEvent Definition | AirC2-Update_AirspaceAlert |
Source Field | Target Field |
id | callsign |
lat | lat |
lon | long |
alt | alt |
$RECEIVED_TIME | alerttime |
geometry | geometry |
Note
The first time setting up the service the input definition created when the event passes through the Add Distance and Callsign Field Enricher will not be present. Run the simulation until an event passes through the field enricher at which point the geoevent definition will be created.
Field | Value |
Name | Map Alerts |
Processor | Field Mapper |
Source GeoEvent Definition | AirC2-CivilianAirTrack_InsideACM_Enriched |
Target GeoEvent Definition | AirC2-UpdateAirspaceAlert |
Source Field | Target Field |
id | callsign |
lat | lat |
lon | long |
alt | alt |
$RECEIVED_TIME | alerttime |
geometry | geometry |
Note
The first time setting up the service the input definition created when the event passes through the Add Min Max Heights Field Enricher will not be present. Run the simulation until an event passes through the field enricher at which point the geoevent definition will be created.