<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic GeoTagger configured with an Exit Any condition is not identifying event records exiting a geofence in ArcGIS GeoEvent Server Questions</title>
    <link>https://community.esri.com/t5/arcgis-geoevent-server-questions/geotagger-configured-with-an-exit-any-condition-is/m-p/1264238#M3908</link>
    <description>&lt;P&gt;&lt;BR /&gt;-------------------------------------------------&lt;BR /&gt;Release:&amp;nbsp; GeoEvent Server 11.1&lt;BR /&gt;Processor:&amp;nbsp; GeoTagger&lt;BR /&gt;-------------------------------------------------&lt;/P&gt;&lt;P&gt;What's wrong with the GeoEvent Service below?&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="GeoEvent Service - Fig1.png" style="width: 999px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/64342iB6BBCDD2AB335A7D/image-size/large?v=v2&amp;amp;px=999" role="button" title="GeoEvent Service - Fig1.png" alt="GeoEvent Service - Fig1.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;GeoEvent Service - Fig1.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Placing any&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Filter&lt;/EM&gt;&lt;SPAN&gt;, but especially a spatial filter configured with an&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Enter&lt;/EM&gt;&lt;SPAN&gt; or&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Exit&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;condition, in front of a processor configured to determine&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Enter&lt;/EM&gt;&lt;SPAN&gt; or&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Exit&lt;/EM&gt;&lt;SPAN&gt; can produce unexpected results if the filter discards an event record the processor needs in order to correctly evaluate its conditional.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Suppose we have two geofences,&amp;nbsp;&lt;STRONG&gt;&lt;FONT size="2"&gt;&lt;EM&gt;Hotel_028&lt;/EM&gt;&lt;/FONT&gt;&lt;/STRONG&gt; and&amp;nbsp;&lt;STRONG&gt;&lt;FONT size="2"&gt;&lt;EM&gt;Indigo_045&lt;/EM&gt;&lt;/FONT&gt;&lt;/STRONG&gt; as illustrated below.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Two Geofences - Fig2.png" style="width: 630px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/64345iE1D0159D2A4ECCD8/image-dimensions/630x276?v=v2" width="630" height="276" role="button" title="Two Geofences - Fig2.png" alt="Two Geofences - Fig2.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Two Geofences - Fig2.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Two locations of a trackable asset, the point locations &lt;STRONG&gt;&lt;FONT size="2"&gt;#1&lt;/FONT&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;FONT size="2"&gt;#2&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;on the map, are received and processed through the GeoEvent Service illustrated above. The intent is to capture information about when the vehicle enters and exits either of the geofences. The vehicle's &lt;FONT size="2"&gt;TRACK_ID&lt;/FONT&gt; has never before been reported, so the filters and processors are observing the vehicle's locations for the first time.&lt;/P&gt;&lt;P&gt;Here's the problem:&lt;/P&gt;&lt;UL class="lia-list-style-type-circle"&gt;&lt;LI&gt;Given that the vehicle's &lt;FONT size="2"&gt;TRACK_ID&lt;/FONT&gt; has never before been observed the default behavior for geofence entry "First GeoEvent triggers Enter" applies. A&amp;nbsp;&lt;EM&gt;Filter&lt;/EM&gt; or&amp;nbsp;&lt;EM&gt;Processor&lt;/EM&gt; evaluating an&amp;nbsp;&lt;EM&gt;Enter&lt;/EM&gt; condition will recognize that the first reported position inside a geofence qualifies as an entry. The upper event processing branch will log the entry of track point &lt;STRONG&gt;&lt;FONT size="2"&gt;#1&lt;/FONT&gt;&lt;/STRONG&gt; as expected.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;The lower event processing branch will &lt;EM&gt;&lt;U&gt;not&lt;/U&gt;&lt;/EM&gt; log an exit because the default for "First GeoEvent triggers Exit" is&amp;nbsp;&lt;EM&gt;False&lt;/EM&gt;. With no prior observations, track point &lt;STRONG&gt;&lt;FONT size="2"&gt;#1&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;does not satisfy the &lt;STRONG&gt;&lt;FONT size="2"&gt;Exited&lt;/FONT&gt;&lt;/STRONG&gt; filter's conditional that a previous event record with the same &lt;FONT size="2"&gt;TRACK_ID&lt;/FONT&gt; was observed "inside" some other geofence, so the filter does not see the event record as exiting an area of interest and discards the event record.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;When the second track point &lt;STRONG&gt;&lt;FONT size="2"&gt;#2&lt;/FONT&gt;&lt;/STRONG&gt; is received, the &lt;STRONG&gt;&lt;FONT size="2"&gt;Exited&lt;/FONT&gt;&lt;/STRONG&gt; filter, having previously observed the prior track point inside the geofence&amp;nbsp;&lt;FONT size="2"&gt;&lt;STRONG&gt;&lt;EM&gt;Hotel_028&lt;/EM&gt;&lt;/STRONG&gt;&lt;/FONT&gt;, recognizes the exiting condition and passes the event record along. But the&amp;nbsp;processor following the filter has not seen or evaluated the first track point. With no prior observations, track point &lt;STRONG&gt;&lt;FONT size="2"&gt;#2&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;does not satisfy the &lt;STRONG&gt;&lt;FONT size="2"&gt;GeoTag OnExit&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;EM&gt;GeoTagger&lt;/EM&gt; processor's conditional, so the processor does not write the name of a geofence from which the track point has exited into the event record it processes.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The fix for this is to rework the event processing on the lower branch to move the filtering operation after the&amp;nbsp;&lt;EM&gt;GeoTagger&lt;/EM&gt;.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="GeoEvent Service (Fixed) - Fig3.png" style="width: 999px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/64348iBC80762FEAC25276/image-size/large?v=v2&amp;amp;px=999" role="button" title="GeoEvent Service (Fixed) - Fig3.png" alt="GeoEvent Service (Fixed) - Fig3.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;GeoEvent Service (Fixed) - Fig3.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Illustrated above I have placed two mutually exclusive attribute filters after the&amp;nbsp;&lt;EM&gt;GeoTagger&lt;/EM&gt; processor. The first filter catches the condition when the processor does &lt;EM&gt;&lt;U&gt;not&lt;/U&gt;&lt;/EM&gt; recognize an exiting condition and therefore does not write the name of a geofence into an attribute field named&amp;nbsp;&lt;EM&gt;GeoTag&lt;/EM&gt;. Presumably I want to craft some specific message in this case, so I route the event record through a&amp;nbsp;&lt;EM&gt;Field Mapper&lt;/EM&gt; which places a simple message (as a&amp;nbsp;&lt;EM&gt;String&lt;/EM&gt;) into a field to indicate that the current event record has not exited an area of interest.&lt;/P&gt;&lt;P&gt;The second filter catches the condition when the processor &lt;EM&gt;&lt;U&gt;does&lt;/U&gt;&lt;/EM&gt; recognize an exiting condition, because the&amp;nbsp;&lt;EM&gt;GeoTag&lt;/EM&gt; attribute field holds the name of a geofence (its value is not null). Again, I want to craft some specific message for this case, so I route the event record through a&amp;nbsp;&lt;EM&gt;Field Mapper&lt;/EM&gt; to place a simple message into a field to indicate the date/time the current event record exited an area of interest and the name of the area exited.&lt;/P&gt;</description>
    <pubDate>Sat, 04 Mar 2023 01:51:25 GMT</pubDate>
    <dc:creator>RJSunderman</dc:creator>
    <dc:date>2023-03-04T01:51:25Z</dc:date>
    <item>
      <title>GeoTagger configured with an Exit Any condition is not identifying event records exiting a geofence</title>
      <link>https://community.esri.com/t5/arcgis-geoevent-server-questions/geotagger-configured-with-an-exit-any-condition-is/m-p/1264238#M3908</link>
      <description>&lt;P&gt;&lt;BR /&gt;-------------------------------------------------&lt;BR /&gt;Release:&amp;nbsp; GeoEvent Server 11.1&lt;BR /&gt;Processor:&amp;nbsp; GeoTagger&lt;BR /&gt;-------------------------------------------------&lt;/P&gt;&lt;P&gt;What's wrong with the GeoEvent Service below?&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="GeoEvent Service - Fig1.png" style="width: 999px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/64342iB6BBCDD2AB335A7D/image-size/large?v=v2&amp;amp;px=999" role="button" title="GeoEvent Service - Fig1.png" alt="GeoEvent Service - Fig1.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;GeoEvent Service - Fig1.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Placing any&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Filter&lt;/EM&gt;&lt;SPAN&gt;, but especially a spatial filter configured with an&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Enter&lt;/EM&gt;&lt;SPAN&gt; or&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Exit&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;condition, in front of a processor configured to determine&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Enter&lt;/EM&gt;&lt;SPAN&gt; or&amp;nbsp;&lt;/SPAN&gt;&lt;EM&gt;Exit&lt;/EM&gt;&lt;SPAN&gt; can produce unexpected results if the filter discards an event record the processor needs in order to correctly evaluate its conditional.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Suppose we have two geofences,&amp;nbsp;&lt;STRONG&gt;&lt;FONT size="2"&gt;&lt;EM&gt;Hotel_028&lt;/EM&gt;&lt;/FONT&gt;&lt;/STRONG&gt; and&amp;nbsp;&lt;STRONG&gt;&lt;FONT size="2"&gt;&lt;EM&gt;Indigo_045&lt;/EM&gt;&lt;/FONT&gt;&lt;/STRONG&gt; as illustrated below.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Two Geofences - Fig2.png" style="width: 630px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/64345iE1D0159D2A4ECCD8/image-dimensions/630x276?v=v2" width="630" height="276" role="button" title="Two Geofences - Fig2.png" alt="Two Geofences - Fig2.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Two Geofences - Fig2.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Two locations of a trackable asset, the point locations &lt;STRONG&gt;&lt;FONT size="2"&gt;#1&lt;/FONT&gt;&lt;/STRONG&gt; and &lt;STRONG&gt;&lt;FONT size="2"&gt;#2&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;on the map, are received and processed through the GeoEvent Service illustrated above. The intent is to capture information about when the vehicle enters and exits either of the geofences. The vehicle's &lt;FONT size="2"&gt;TRACK_ID&lt;/FONT&gt; has never before been reported, so the filters and processors are observing the vehicle's locations for the first time.&lt;/P&gt;&lt;P&gt;Here's the problem:&lt;/P&gt;&lt;UL class="lia-list-style-type-circle"&gt;&lt;LI&gt;Given that the vehicle's &lt;FONT size="2"&gt;TRACK_ID&lt;/FONT&gt; has never before been observed the default behavior for geofence entry "First GeoEvent triggers Enter" applies. A&amp;nbsp;&lt;EM&gt;Filter&lt;/EM&gt; or&amp;nbsp;&lt;EM&gt;Processor&lt;/EM&gt; evaluating an&amp;nbsp;&lt;EM&gt;Enter&lt;/EM&gt; condition will recognize that the first reported position inside a geofence qualifies as an entry. The upper event processing branch will log the entry of track point &lt;STRONG&gt;&lt;FONT size="2"&gt;#1&lt;/FONT&gt;&lt;/STRONG&gt; as expected.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;The lower event processing branch will &lt;EM&gt;&lt;U&gt;not&lt;/U&gt;&lt;/EM&gt; log an exit because the default for "First GeoEvent triggers Exit" is&amp;nbsp;&lt;EM&gt;False&lt;/EM&gt;. With no prior observations, track point &lt;STRONG&gt;&lt;FONT size="2"&gt;#1&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;does not satisfy the &lt;STRONG&gt;&lt;FONT size="2"&gt;Exited&lt;/FONT&gt;&lt;/STRONG&gt; filter's conditional that a previous event record with the same &lt;FONT size="2"&gt;TRACK_ID&lt;/FONT&gt; was observed "inside" some other geofence, so the filter does not see the event record as exiting an area of interest and discards the event record.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;When the second track point &lt;STRONG&gt;&lt;FONT size="2"&gt;#2&lt;/FONT&gt;&lt;/STRONG&gt; is received, the &lt;STRONG&gt;&lt;FONT size="2"&gt;Exited&lt;/FONT&gt;&lt;/STRONG&gt; filter, having previously observed the prior track point inside the geofence&amp;nbsp;&lt;FONT size="2"&gt;&lt;STRONG&gt;&lt;EM&gt;Hotel_028&lt;/EM&gt;&lt;/STRONG&gt;&lt;/FONT&gt;, recognizes the exiting condition and passes the event record along. But the&amp;nbsp;processor following the filter has not seen or evaluated the first track point. With no prior observations, track point &lt;STRONG&gt;&lt;FONT size="2"&gt;#2&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;does not satisfy the &lt;STRONG&gt;&lt;FONT size="2"&gt;GeoTag OnExit&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;EM&gt;GeoTagger&lt;/EM&gt; processor's conditional, so the processor does not write the name of a geofence from which the track point has exited into the event record it processes.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The fix for this is to rework the event processing on the lower branch to move the filtering operation after the&amp;nbsp;&lt;EM&gt;GeoTagger&lt;/EM&gt;.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="GeoEvent Service (Fixed) - Fig3.png" style="width: 999px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/64348iBC80762FEAC25276/image-size/large?v=v2&amp;amp;px=999" role="button" title="GeoEvent Service (Fixed) - Fig3.png" alt="GeoEvent Service (Fixed) - Fig3.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;GeoEvent Service (Fixed) - Fig3.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Illustrated above I have placed two mutually exclusive attribute filters after the&amp;nbsp;&lt;EM&gt;GeoTagger&lt;/EM&gt; processor. The first filter catches the condition when the processor does &lt;EM&gt;&lt;U&gt;not&lt;/U&gt;&lt;/EM&gt; recognize an exiting condition and therefore does not write the name of a geofence into an attribute field named&amp;nbsp;&lt;EM&gt;GeoTag&lt;/EM&gt;. Presumably I want to craft some specific message in this case, so I route the event record through a&amp;nbsp;&lt;EM&gt;Field Mapper&lt;/EM&gt; which places a simple message (as a&amp;nbsp;&lt;EM&gt;String&lt;/EM&gt;) into a field to indicate that the current event record has not exited an area of interest.&lt;/P&gt;&lt;P&gt;The second filter catches the condition when the processor &lt;EM&gt;&lt;U&gt;does&lt;/U&gt;&lt;/EM&gt; recognize an exiting condition, because the&amp;nbsp;&lt;EM&gt;GeoTag&lt;/EM&gt; attribute field holds the name of a geofence (its value is not null). Again, I want to craft some specific message for this case, so I route the event record through a&amp;nbsp;&lt;EM&gt;Field Mapper&lt;/EM&gt; to place a simple message into a field to indicate the date/time the current event record exited an area of interest and the name of the area exited.&lt;/P&gt;</description>
      <pubDate>Sat, 04 Mar 2023 01:51:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-geoevent-server-questions/geotagger-configured-with-an-exit-any-condition-is/m-p/1264238#M3908</guid>
      <dc:creator>RJSunderman</dc:creator>
      <dc:date>2023-03-04T01:51:25Z</dc:date>
    </item>
  </channel>
</rss>

