Summarizing geoevents

804
3
08-29-2020 11:31 AM
MassimoDragan1
New Contributor II

Good day everyone,

I am looking for some advise on possible approaches to implement the following scenario with geoevent server:

We are polling information from a point layer service that updates information every hour

The fetched values need to be aggregated based on the geofence buffer polygon they fall in, every time there is an update in the input data

At a minimum, I'd like to count how many points fall in each geofence based on a filter processor logic (i.e. how many points exceed a given value threshold, at every poll event), but ideally it may be beneficial to use other aggregation functions on the input points such as maximum value or average, etc. (so a very similar scenario to a Summarize operation on an attribute table in ArcGIS).

I saw the GitHub - Esri/event-count-by-category-for-geoevent: ArcGIS GeoEvent Server sample Event count by cat...  following extension but I am not sure if it works at 10.7 and if possible we'd like to avoid adding custom extensions for future compatibility.

I'd appreciate and suggestion on what may be a technique to implement this.

thanks in advance
Massimo

3 Replies
AdamRepsher
Occasional Contributor III

Hi Massimo Dragan‌,

You're right.  That solution was for GeoEvent Extension, not GeoEvent Server.

BUT - Take a look at Jake Skinner‌'s document here: https://community.esri.com/docs/DOC-14715-summarize-point-count-within-polygons-using-geoevent 

This may fit your needs.

--Adam

MassimoDragan1
New Contributor II

Thanks Adam,

I had a look at that approach and understand the logic.

In our use case though there is an additional nuance, besides counting how many points intersect the geofences we need to compare the values with thresholds and aggregate based on the level they fall into.

So a possible workaround may be to first poll the input point values, use a geoevent service to categorize the risk value of each point (let's say low, medium, high), add this "augmented" layer to the geofence synchronization and only at this point intersect the polygons with these geofence points to perform the count (with another geoevent service).

Tough points I see are:

- how do I make sure that the sequence of 1) polling 2) categorizing 3) syncing the geofences follows a set order

- is there a smart way to do this without having to develop a workflow for each category of risk, taking into consideration that the output service should be an email that provides a synthesis of the overlay like this:

               3 points of risk low fall in polygon x

               6 points of risk medium fall in polygon x

               2 points of risk high fall in polygon x

Happy to hear ideas on how to approach this,

thanks again and in advance

Massimo

0 Kudos
EricIronside
Esri Regular Contributor

Hey @MassimoDragan1 

You might try to leverage an RDBMS instead of GeoEvent to help with some of the state management and aggregation.  Based on my quick read, you could GeoTag the records as they come in, then use standard SQL to create a view that summarizes the data (and even includes the polygon shape or a centroid for putting it on the map).

https://community.esri.com/t5/arcgis-geoevent-server-blog/geoevent-tracking-asset-s-active-inactive-...

Best,

Eric

0 Kudos