{"id":406,"date":"2009-08-08T20:47:03","date_gmt":"2009-08-08T17:47:03","guid":{"rendered":"http:\/\/www.water-simulation.com\/wsp\/?p=406"},"modified":"2010-11-30T13:58:36","modified_gmt":"2010-11-30T10:58:36","slug":"bluebox-event-detection-system-under-the-hood","status":"publish","type":"post","link":"http:\/\/www.water-simulation.com\/wsp\/2009\/08\/08\/bluebox-event-detection-system-under-the-hood\/","title":{"rendered":"Bluebox Event Detection System \u2013 under the hood"},"content":{"rendered":"<p>In the past year I have seen a few press releases by <a href=\"http:\/\/w-watersecurity.com\/\">WhiteWater Security<\/a> (WWS) regarding their <a href=\"http:\/\/w-watersecurity.com\/solutions\/waterwall.html\">WaterWall<\/a> product:<\/p>\n<blockquote><p><strong>WaterWall\u05d2\u201e\u00a2<\/strong> is a revolutionary end-to-end water security management system, designed to give decision-makers and water security operators an unprecedented level of decision-making confidence in the event of a water crisis. From prevention and detection to intelligent response and recovery through automatic procedure scenarios, <strong>WaterWall\u05d2\u201e\u00a2<\/strong> dramatically improves the speed, reliability and quality of responses vital to successful water security management.<\/p><\/blockquote>\n<p>An important part of the WaterWall is something called the <a href=\"http:\/\/w-watersecurity.com\/solutions\/comprehensive-solution\/systems\/event-detection-system.html\">BlueBox<\/a> which is an <strong><a title=\"Event detection system\" href=\"http:\/\/optiwater.com\/optieds\/\">Event Detection System<\/a><\/strong> (<a href=\"http:\/\/optiwater.com\/optieds\/\">EDS<\/a>). In WWS&#8217;s web site there is no information of how this EDS works. Fortunately, I attended a one day conference about <a title=\"SCADA\" href=\"http:\/\/en.wikipedia.org\/wiki\/SCADA\">SCADA<\/a> systems held by <a href=\"http:\/\/www.leadcontrol.co.il\/leadcontrol.html\">Lead Control<\/a>. It turns out that Lead is the developer of the <strong>BlueBox<\/strong> module. From bit and pieces of information I&#8217;m able to give you the basic algorithm running it all. Please note that this is <strong>my<\/strong> understanding of the algorithm and may not truly reflect it in detail.<\/p>\n<p>For the explanation I will be using data sets from the <a title=\"CANARY\" href=\"http:\/\/www.epa.gov\/nhsrc\/news\/news122007.html\">CANARY<\/a> distribution which is the EPA&#8217;s <a href=\"http:\/\/optiwater.com\/optieds\/\">event detection software<\/a>. The data set includes a time series of six parameters: Cl2, PH, Temperature, Turbidity, TOC and Conductivity.<\/p>\n<p><strong>Step 1 &#8211; Normalization<\/strong><\/p>\n<p>Since every measured parameter has its own units and range all of the readings have to normalized. There are more than one way to normalize data so I have selected to normalize each data set using its mean and standard deviation to obtain a mean of zero and a standard deviation of one. This is done for the selected moving time window. As we steps through each new time step, the oldest data point is removed from the window, the most recent data point is added to the window and the data in the new window is normalized again to create a new mean and standard deviation.<\/p>\n<p><strong>Step 2 &#8211; Calculate points distance<\/strong><\/p>\n<p>At each point in time we have a set of the six parameters. Each of these sets represents a point in a six dimensional space (like x, y and z in three dimensions). The <a title=\"Euclidean distance\" href=\"http:\/\/en.wikipedia.org\/wiki\/Euclidean_distance\">Euclidean distance<\/a> between each point to all of the others may be calculated.<\/p>\n<p><strong>Step 3 &#8211; Plot the frequency curve of the distances<\/strong><\/p>\n<p>Once we have the distances calculated we can easily plot its frequency curve as shown in the following figure:<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.water-simulation.com\/wsp\/wp-content\/uploads\/2009\/08\/figure-1.PNG\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-421 aligncenter\" title=\"figure-1\" src=\"http:\/\/www.water-simulation.com\/wsp\/wp-content\/uploads\/2009\/08\/figure-1.PNG\" alt=\"figure-1\" width=\"408\" height=\"272\" \/><\/a><\/p>\n<p><strong>Step 4 &#8211; wait for the next reading<\/strong><\/p>\n<p>Now we are ready for the next data set to come from the SCADA system. Once a new set of the six parameters arrives we move the history window one time step ahead and calculate the distance of the new point to the points in the history window. And again we plot the distances frequencies on top of the previous curve:<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.water-simulation.com\/wsp\/wp-content\/uploads\/2009\/08\/figure-2.PNG\"><\/a><a href=\"http:\/\/www.water-simulation.com\/wsp\/wp-content\/uploads\/2009\/08\/figure-3.PNG\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-424\" title=\"figure-3\" src=\"http:\/\/www.water-simulation.com\/wsp\/wp-content\/uploads\/2009\/08\/figure-3.PNG\" alt=\"figure-3\" width=\"409\" height=\"273\" \/><\/a><\/p>\n<p>Since the point is &#8220;normal&#8221;, its frequency distribution is &#8220;normal&#8221;, meaning its similar to the history distribution. But when an event is detected the new distribution may look like so:<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.water-simulation.com\/wsp\/wp-content\/uploads\/2009\/08\/figure-4.PNG\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-426 aligncenter\" title=\"figure-4\" src=\"http:\/\/www.water-simulation.com\/wsp\/wp-content\/uploads\/2009\/08\/figure-4.PNG\" alt=\"figure-4\" width=\"410\" height=\"274\" \/><\/a><\/p>\n<p>It is clear that the new point&#8217;s distance frequency is &#8220;far&#8221; from the normal distribution. Hence, an event.<\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>The algorithm described here is very simple and that is its beauty. I have written its implementation in about an hour but in order to make it an online module a lot of work is needed. Once developed it may be able to do a number of things:<\/p>\n<ul>\n<li>identify abnormal behavior.<\/li>\n<li>identify normal but unusual behavior.<\/li>\n<li>identify a parameter that is causing the abnormal behavior.<\/li>\n<li>the system may function with one or more parameters missing.<\/li>\n<\/ul>\n<div id=\"_mcePaste\" style=\"position: absolute; width: 1px; height: 1px; overflow: hidden; top: 1528px; left: -10000px;\"><span id=\"spnTrans1\" style=\"font-family: arial; height: 10px; color: #000099; font-size: 9pt;\" dir=\"ltr\">unusual<\/span><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In the past year I have seen a few press releases by WhiteWater Security (WWS) regarding their WaterWall product: WaterWall\u05d2\u201e\u00a2 is a revolutionary end-to-end water security management system, designed to give decision-makers and water security operators an unprecedented level of &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"http:\/\/www.water-simulation.com\/wsp\/2009\/08\/08\/bluebox-event-detection-system-under-the-hood\/\"> <span class=\"screen-reader-text\">Bluebox Event Detection System \u2013 under the hood<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[72,74,73,71,70],"class_list":["post-406","post","type-post","status-publish","format-standard","hentry","category-water-security","tag-bluebox","tag-eds","tag-event-detection-system","tag-waterwall","tag-whitewater-security"],"_links":{"self":[{"href":"http:\/\/www.water-simulation.com\/wsp\/wp-json\/wp\/v2\/posts\/406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.water-simulation.com\/wsp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.water-simulation.com\/wsp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.water-simulation.com\/wsp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.water-simulation.com\/wsp\/wp-json\/wp\/v2\/comments?post=406"}],"version-history":[{"count":2,"href":"http:\/\/www.water-simulation.com\/wsp\/wp-json\/wp\/v2\/posts\/406\/revisions"}],"predecessor-version":[{"id":711,"href":"http:\/\/www.water-simulation.com\/wsp\/wp-json\/wp\/v2\/posts\/406\/revisions\/711"}],"wp:attachment":[{"href":"http:\/\/www.water-simulation.com\/wsp\/wp-json\/wp\/v2\/media?parent=406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.water-simulation.com\/wsp\/wp-json\/wp\/v2\/categories?post=406"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.water-simulation.com\/wsp\/wp-json\/wp\/v2\/tags?post=406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}