Update GeoFence value in real-time? (Field Enricher (FS)?)

3621
2
06-16-2014 04:14 AM
TomPaschke
Esri Contributor
Hi,

is it possible to update an enriched value from a feature service in real-time?

My scenario is the following:
A vessel is moving along a river which is separated into segments that are characterized by water level. Each segment is subject to different permissions depending on the water level.
The different segments of the river are my GeoFences which include the value of the water level. I would like to alter the value of the GeoFences via a JavaScript website and have the GEP react to the changes in real-time (alerts if water level drops too low/high), while the vessel is inside of a GeoFence.
I tried to work with a GeoTag and FieldEnricher but the FieldEnricher is not updating the value in real-time (only in 1min time intervals). Is there a possibility to change the values of a GeoFence and include it in a GeoEvent Definition, while the moving object is inside of the GeoFence?

[ATTACH=CONFIG]34604[/ATTACH]

Thanks a lot.

Best,
Tom
0 Kudos
2 Replies
RJSunderman
Esri Regular Contributor
Hello Thomas -

I apologize for not being able to respond to your forum post until now.

Unfortunately you are running up against a known limit when using a Field Enricher (Feature Service) to enrich GeoEvents. That particular processor cannot be configured to update its internal cache of feature attributes more frequently than once every 60 seconds (1 minute). Transactions with an ArcGIS for Server feature service can be somewhat expensive from a real-time perspective. The design behind the enrichment processors was to enrich real-time events with information which was reasonably static.

However, there is another form of the Field Enricher you might try. The Field Enricher (File) processor incorporates a system file watcher which monitors the file system and updates the processor's cache when changes to the enrichment file are committed to disk. Since you are comfortable using a JavaScript to push updated attributes into an enrichment source, maybe you could use a system file rather than a feature service to handle the secondary enrichment - once a vessel has been tagged as being INSIDE an established GeoFence?

When you say "alter the value of the GeoFences via a JavaScript website and have the GEP react to the changes in real-time", keep in mind that a GeoFence, once imported into GeoEvent Processor, really only has a geometry and a name used to uniquely identifies the GeoFence within a category. While you could conceivably use the GeoEvent Processor's REST Admin API to adjust the GeoFence names and possibly the GeoFence category names of the GeoFences known to GEP, I don't think this would be recommended. I think you're on a better path using the GeoTagger to tag events inside an area (e.g. GeoFence) and then further enriching the events with attributes associated with that area (e.g. Feature service polygon feature or system file).

Hope this information helps -
RJ
0 Kudos
TomPaschke
Esri Contributor
Hi RJ,

Thank you very much for the information!
I will try to use the Field Enricher (File) to solve the problem.

Best,
Tom


Hello Thomas -

I apologize for not being able to respond to your forum post until now.

Unfortunately you are running up against a known limit when using a Field Enricher (Feature Service) to enrich GeoEvents. That particular processor cannot be configured to update its internal cache of feature attributes more frequently than once every 60 seconds (1 minute). Transactions with an ArcGIS for Server feature service can be somewhat expensive from a real-time perspective. The design behind the enrichment processors was to enrich real-time events with information which was reasonably static.

However, there is another form of the Field Enricher you might try. The Field Enricher (File) processor incorporates a system file watcher which monitors the file system and updates the processor's cache when changes to the enrichment file are committed to disk. Since you are comfortable using a JavaScript to push updated attributes into an enrichment source, maybe you could use a system file rather than a feature service to handle the secondary enrichment - once a vessel has been tagged as being INSIDE an established GeoFence?

When you say "alter the value of the GeoFences via a JavaScript website and have the GEP react to the changes in real-time", keep in mind that a GeoFence, once imported into GeoEvent Processor, really only has a geometry and a name used to uniquely identifies the GeoFence within a category. While you could conceivably use the GeoEvent Processor's REST Admin API to adjust the GeoFence names and possibly the GeoFence category names of the GeoFences known to GEP, I don't think this would be recommended. I think you're on a better path using the GeoTagger to tag events inside an area (e.g. GeoFence) and then further enriching the events with attributes associated with that area (e.g. Feature service polygon feature or system file).

Hope this information helps -
RJ
0 Kudos