{"id":1118141,"date":"2021-01-20T08:00:40","date_gmt":"2021-01-20T16:00:40","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1118141"},"modified":"2021-01-21T05:26:39","modified_gmt":"2021-01-21T13:26:39","slug":"arcgis-velocity-introducing-stateful-tools-for-real-time-analytics","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics","title":{"rendered":"ArcGIS Velocity: Introducing stateful tools for real-time analytics"},"author":30801,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[37121],"tags":[],"industry":[],"product":[756702],"class_list":["post-1118141","blog","type-blog","status-publish","format-standard","hentry","category-real-time","product-arcgis-velocity"],"acf":{"short_description":"ArcGIS Velocity now supports stateful processing in real-time analytics to detect changes in the behavior of a particular asset or sensor.","flexible_content":[{"acf_fc_layout":"content","content":"<p>One of the most powerful uses of real-time analysis is the ability to be alerted when something changes. You may want a notification that a tracked delivery vehicle enters the perimeter around a shipping facility, or when an aircraft suddenly loses airspeed or altitude. With the December update to ArcGIS Velocity, real-time analytics now support stateful processing so that changes in the behavior of a particular asset or sensor can be detected.<\/p>\n<p>Prior to this update, real-time analytics would process each incoming message or feature from a feed as a distinct and singular unit of information. The analytic did not retain knowledge of any previously processed feature, in other words, the feature\u2019s \u2018state.\u2019 This ability to compare current observations to previous ones in real-time is referred to as stateful processing and is now enabled in four tools:<\/p>\n<ul>\n<li>Filter by Geometry<\/li>\n<li>Join Features<\/li>\n<li>Calculate Motion Statistics<\/li>\n<li>Detect Incidents<\/li>\n<\/ul>\n"},{"acf_fc_layout":"image","image":{"ID":1118151,"id":1118151,"title":"AM1429_Flight_EnterExit","filename":"AM1429_Flight_EnterExit.gif","filesize":257001,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/AM1429_Flight_EnterExit.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics\/am1429_flight_enterexit-2","alt":"","author":"30801","description":"","caption":"","name":"am1429_flight_enterexit-2","status":"inherit","uploaded_to":1118141,"date":"2021-01-19 19:57:06","modified":"2021-01-19 19:57:06","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":932,"height":628,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/AM1429_Flight_EnterExit-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/AM1429_Flight_EnterExit.gif","medium-width":387,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/AM1429_Flight_EnterExit.gif","medium_large-width":768,"medium_large-height":517,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/AM1429_Flight_EnterExit.gif","large-width":932,"large-height":628,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/AM1429_Flight_EnterExit.gif","1536x1536-width":932,"1536x1536-height":628,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/AM1429_Flight_EnterExit.gif","2048x2048-width":932,"2048x2048-height":628,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/AM1429_Flight_EnterExit-690x465.gif","card_image-width":690,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/AM1429_Flight_EnterExit.gif","wide_image-width":932,"wide_image-height":628}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h1>Time windows<\/h1>\n<p>In order to leverage feature state in real-time analytics, it\u2019s important for you to understand time windows in stateful tools. Each tool that maintains a feature state consumes additional resources. To prevent them from over-utilizing memory, the feature state is periodically purged of older records. How often this occurs is specified using the Time Window parameter for each stateful tool. As the tool processes features for each track it will store the latest feature in the feature state. If another feature arrives before the time window expiration it will replace the current feature. If no feature arrives prior to the expiration of the time window the current feature will be purged from the feature state.<\/p>\n<p>As a general rule, the Time Window should be set to at least as long as the longest expected duration between observations for each track. If the Time Window is too short, this would have the effect of purging records from the feature state before new observations arrive, meaning history information is removed and the next feature is treated as the first observation. In other words, assets would never \u2018enter\u2019 facilities because the analytic would have no knowledge that the previous observation of the truck was outside the facility.<\/p>\n<h1>Entering and exiting geofences<\/h1>\n<p>Of the four stateful tools, three are specifically enhanced to let you perform \u2018enter\u2019 and \u2018exit\u2019 geofencing: Filter by Geometry, Detect Incidents and Join Features. These tools can compare the current observation for a track to the previous observation for the same track relative to a set of geofences. If it determines the feature was previously <u>outside all<\/u> of the features in the geofence source and is now <u>inside any<\/u> of them, then an \u2019enter\u2019 has occurred. Similarly, if it was previously <u>inside any<\/u> geofence and is now <u>outside all<\/u> then an \u2018exit\u2019 has occurred.<\/p>\n<p>Keep in mind if the track moves from one geofence to another in consecutive observations, this is not considered to be a new exit\/enter activity. An asset must be outside all geofences for the \u2018exit\u2019 condition to be satisfied.<\/p>\n"},{"acf_fc_layout":"content","content":"<h1>Filter by Geometry<\/h1>\n<p>Filter by Geometry now applies stateful processing when the spatial relationship parameter is set to \u2018enter\u2019 or \u2018exit\u2019. When set to \u2018enter\u2019 if a track observation is determined to be outside all geofences and subsequently inside any feature in the geofence layer, it will pass through the filter. All other observations will be blocked. Likewise, if set to \u2018exit\u2019, features will pass only if the previous observation was inside any geofence and the current one is outside all geofences. For more information, see the documentation on <a href=\"https:\/\/doc.arcgis.com\/en\/iot\/analyze\/filter-by-geometry.htm\">Filter by Geometry<\/a>.<\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1118181,"id":1118181,"title":"StatefulTools_Flight_AM1429_cropped","filename":"StatefulTools_Flight_AM1429_cropped.png","filesize":43613,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/StatefulTools_Flight_AM1429_cropped.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics\/statefultools_flight_am1429_cropped","alt":"","author":"30801","description":"","caption":"","name":"statefultools_flight_am1429_cropped","status":"inherit","uploaded_to":1118141,"date":"2021-01-19 20:05:28","modified":"2021-01-19 20:05:28","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1213,"height":505,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/StatefulTools_Flight_AM1429_cropped-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/StatefulTools_Flight_AM1429_cropped.png","medium-width":464,"medium-height":193,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/StatefulTools_Flight_AM1429_cropped.png","medium_large-width":768,"medium_large-height":320,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/StatefulTools_Flight_AM1429_cropped.png","large-width":1213,"large-height":505,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/StatefulTools_Flight_AM1429_cropped.png","1536x1536-width":1213,"1536x1536-height":505,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/StatefulTools_Flight_AM1429_cropped.png","2048x2048-width":1213,"2048x2048-height":505,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/StatefulTools_Flight_AM1429_cropped-826x344.png","card_image-width":826,"card_image-height":344,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/StatefulTools_Flight_AM1429_cropped.png","wide_image-width":1213,"wide_image-height":505}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h1>Join Features<\/h1>\n<p>Like Filter by Geometry, Join Features has also been enhanced to enable you to look for \u2018enter\u2019 and \u2018exit\u2019 events in a track. Unlike the filter tool, it also enriches the observation with additional attributes from the joined features. For example, you might want to send a courtesy message to a client that their order is about to be delivered.<\/p>\n<p>When the delivery vehicle enters a 15-minute drive time area around the delivery address, the Join Features tool can detect the \u2018enter\u2019 event and join attributes about the order to the vehicle feature in order to provide the necessary fields for the outgoing message\u2019s address, subject and body. Join Features can act as a data filter <em>or<\/em> a data enricher by leveraging the option to return all target features or only those that satisfy a join. See our documentation on <a href=\"https:\/\/doc.arcgis.com\/en\/iot\/analyze\/join-features.htm\">Join Features<\/a>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1118191,"id":1118191,"title":"DeliveryTextMessageRAT","filename":"DeliveryTextMessageRAT.png","filesize":13881,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DeliveryTextMessageRAT.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics\/deliverytextmessagerat","alt":"","author":"30801","description":"","caption":"","name":"deliverytextmessagerat","status":"inherit","uploaded_to":1118141,"date":"2021-01-19 20:07:06","modified":"2021-01-19 20:07:06","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1081,"height":246,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DeliveryTextMessageRAT-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DeliveryTextMessageRAT.png","medium-width":464,"medium-height":106,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DeliveryTextMessageRAT.png","medium_large-width":768,"medium_large-height":175,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DeliveryTextMessageRAT.png","large-width":1081,"large-height":246,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DeliveryTextMessageRAT.png","1536x1536-width":1081,"1536x1536-height":246,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DeliveryTextMessageRAT.png","2048x2048-width":1081,"2048x2048-height":246,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DeliveryTextMessageRAT-826x188.png","card_image-width":826,"card_image-height":188,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DeliveryTextMessageRAT.png","wide_image-width":1081,"wide_image-height":246}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h1>Calculate Motion Statistics<\/h1>\n<p>Calculate Motion Statistics uses a History Depth parameter to examine the <em>n<\/em> most recent observations of a track and calculate additional attributes about its motion. This allows you to know things like speed, acceleration, the distance traveled, the time elapsed since the last observation, or if the track is idling. It also gives you several minimum, maximum, average and cumulative values over the course of the <em>n<\/em> observations. Now enabled for real-time analytics, with Calculate Motion Statistics you can, for example, analyze speed information to be aware of incidents, even if your assets\u2019 onboard sensors do not report speed.\u00a0 For a complete list of the calculated motion attributes, see our documentation on <a href=\"https:\/\/doc.arcgis.com\/en\/iot\/analyze\/calculate-motion-statistics.htm\">Calculate Motion Statistics<\/a>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1118201,"id":1118201,"title":"CalcMotionStats","filename":"CalcMotionStats.png","filesize":177733,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/CalcMotionStats.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics\/calcmotionstats","alt":"","author":"30801","description":"","caption":"","name":"calcmotionstats","status":"inherit","uploaded_to":1118141,"date":"2021-01-19 20:08:19","modified":"2021-01-19 20:08:19","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":501,"height":587,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/CalcMotionStats-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/CalcMotionStats.png","medium-width":223,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/CalcMotionStats.png","medium_large-width":501,"medium_large-height":587,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/CalcMotionStats.png","large-width":501,"large-height":587,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/CalcMotionStats.png","1536x1536-width":501,"1536x1536-height":587,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/CalcMotionStats.png","2048x2048-width":501,"2048x2048-height":587,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/CalcMotionStats-397x465.png","card_image-width":397,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/CalcMotionStats.png","wide_image-width":501,"wide_image-height":587}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h1>Detect Incidents<\/h1>\n<p>Detect Incidents watches for an open condition and, if found, emits an incident with an initial status of \u2018Started\u2019, and tracks the ongoing incident. When the open condition is no longer met, or a specified close condition is met, the incident is closed and a final feature is emitted with a status of \u2018Ended\u2019. Open and close conditions can be spatial, attribute or temporal or any combination of the three. Because it tracks and monitors the ongoing state of incidents, Detect Incidents is always stateful when used in a real-time analytic. See our documentation on <a href=\"https:\/\/doc.arcgis.com\/en\/iot\/analyze\/detect-incidents.htm\">Detect Incidents<\/a>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1118211,"id":1118211,"title":"DetectIncidents","filename":"DetectIncidents.png","filesize":28768,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DetectIncidents.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics\/detectincidents","alt":"","author":"30801","description":"","caption":"","name":"detectincidents","status":"inherit","uploaded_to":1118141,"date":"2021-01-19 20:08:57","modified":"2021-01-19 20:08:57","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":738,"height":580,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DetectIncidents-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DetectIncidents.png","medium-width":332,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DetectIncidents.png","medium_large-width":738,"medium_large-height":580,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DetectIncidents.png","large-width":738,"large-height":580,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DetectIncidents.png","1536x1536-width":738,"1536x1536-height":580,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DetectIncidents.png","2048x2048-width":738,"2048x2048-height":580,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DetectIncidents-592x465.png","card_image-width":592,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/DetectIncidents.png","wide_image-width":738,"wide_image-height":580}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h1>Summary<\/h1>\n<p>With the December update of ArcGIS Velocity, you can now apply stateful processing in your real-time analytics for more advanced detection of changes in asset behavior.\u00a0 This supports use cases like alerting when delivery trucks arrive and depart your shipping centers, identifying when aircraft deviate from prescribed routes or enter areas where they should not go, and enriching field crew feeds with details about their movement such as what work sites they are visiting or if they are idling somewhere unexpectedly.<\/p>\n<p>See our <a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-velocity\/resources\">Resources page<\/a> for more information about ArcGIS Velocity, including product videos, lessons, documentation and more.<\/p>\n"}],"authors":[{"ID":30801,"user_firstname":"Ken","user_lastname":"Gorton","nickname":"Ken","user_nicename":"kgorton","display_name":"Ken Gorton","user_email":"KGorton@esri.com","user_url":"","user_registered":"2020-04-29 12:46:29","user_description":"Ken is a Product Engineer with the Real-Time GIS team at Esri.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/04\/IMG_3536-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":[{"ID":842981,"post_author":"30801","post_date":"2020-05-05 00:00:59","post_date_gmt":"2020-05-05 07:00:59","post_content":"","post_title":"Real-time geofencing in ArcGIS Velocity","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"real-time-geofencing-in-arcgis-analytics-for-iot","to_ping":"","pinged":"","post_modified":"2021-09-02 06:01:48","post_modified_gmt":"2021-09-02 13:01:48","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=842981","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/Real-time-stateful-tools-card-AIS-gray-bg.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/Real-time-stateful-tools-banner-AIS-gray-bg.png"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ArcGIS Velocity: Introducing stateful tools for real-time analytics<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ArcGIS Velocity: Introducing stateful tools for real-time analytics\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-21T13:26:39+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics\"},\"author\":{\"name\":\"Ken Gorton\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/1d79af9153592067aa40797b13b035c6\"},\"headline\":\"ArcGIS Velocity: Introducing stateful tools for real-time analytics\",\"datePublished\":\"2021-01-20T16:00:40+00:00\",\"dateModified\":\"2021-01-21T13:26:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics\"},\"wordCount\":8,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"articleSection\":[\"Real-Time Visualization &amp; Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics\",\"name\":\"ArcGIS Velocity: Introducing stateful tools for real-time analytics\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2021-01-20T16:00:40+00:00\",\"dateModified\":\"2021-01-21T13:26:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ArcGIS Velocity: Introducing stateful tools for real-time analytics\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/1d79af9153592067aa40797b13b035c6\",\"name\":\"Ken Gorton\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/04\/IMG_3536-213x200.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/04\/IMG_3536-213x200.jpg\",\"caption\":\"Ken Gorton\"},\"description\":\"Ken is a Product Engineer with the Real-Time GIS team at Esri.\",\"sameAs\":[\"www.linkedin.com\/in\/krgorton\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/kgorton\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"ArcGIS Velocity: Introducing stateful tools for real-time analytics","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics","og_locale":"en_US","og_type":"article","og_title":"ArcGIS Velocity: Introducing stateful tools for real-time analytics","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2021-01-21T13:26:39+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics"},"author":{"name":"Ken Gorton","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/1d79af9153592067aa40797b13b035c6"},"headline":"ArcGIS Velocity: Introducing stateful tools for real-time analytics","datePublished":"2021-01-20T16:00:40+00:00","dateModified":"2021-01-21T13:26:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics"},"wordCount":8,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"articleSection":["Real-Time Visualization &amp; Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics","name":"ArcGIS Velocity: Introducing stateful tools for real-time analytics","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2021-01-20T16:00:40+00:00","dateModified":"2021-01-21T13:26:39+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-velocity\/real-time\/arcgis-velocity-introducing-stateful-tools-for-real-time-analytics#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"ArcGIS Velocity: Introducing stateful tools for real-time analytics"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/1d79af9153592067aa40797b13b035c6","name":"Ken Gorton","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/04\/IMG_3536-213x200.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/04\/IMG_3536-213x200.jpg","caption":"Ken Gorton"},"description":"Ken is a Product Engineer with the Real-Time GIS team at Esri.","sameAs":["www.linkedin.com\/in\/krgorton"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/kgorton"}]}},"text_date":"January 20, 2021","author_name":"Ken Gorton","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/kgorton","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/Real-time-stateful-tools-banner-AIS-gray-bg.png","primary_product":"ArcGIS Velocity","tag_data":[],"category_data":[{"term_id":37121,"name":"Real-Time Visualization &amp; Analytics","slug":"real-time","term_group":0,"term_taxonomy_id":37121,"taxonomy":"category","description":"","parent":0,"count":166,"filter":"raw"}],"product_data":[{"term_id":756702,"name":"ArcGIS Velocity","slug":"arcgis-velocity","term_group":0,"term_taxonomy_id":756702,"taxonomy":"product","description":"","parent":36981,"count":61,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=arcgis-velocity","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1118141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/30801"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1118141"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1118141\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1118141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1118141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1118141"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1118141"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1118141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}