A system and a method of detecting an introduction event of a substance into a water distribution system
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-06-11
- Publication Date
- 2026-04-15
AI Technical Summary
Existing methods for detecting the introduction of substances into water distribution systems (WDS) face challenges, such as requiring sensors capable of detecting specific substances and optimized sensor placement, which can fail to detect highly potent or virulent substances at low concentrations, and may not perform well with new or unknown substances.
A method and system that use emergency call data to detect introduction events by training an event detection model with simulated dispersion patterns, allowing for real-time analysis without the need for sensors capable of detecting specific substances, and enabling the identification of introduction locations within the WDS.
Enables the detection of substance introduction events in WDS without relying on specific sensors, improving detection accuracy and speed by analyzing emergency call data patterns, and determining introduction locations for corrective actions, even in cases where sensors may fail to detect the substance.
Smart Images

Figure CA2024050783_19122024_PF_FP_ABST
Abstract
Description
[0001] Title: A SYSTEM AND A METHOD OF DETECTING AN INTRODUCTION EVENT OF A SUBSTANCE INTO A WATER DISTRIBUTION SYSTEM Cross-Reference to Related Application [1] This application claims the benefit of United States Provisional Patent Application No.63 / 507,574 filed June 12, 2023, and the entire contents of United States Provisional Patent Application No.63 / 507,574 are hereby incorporated herein in its entirety. Field [2] The described embodiments relate to detecting an introduction event of a substance into a water distribution system (WDS). Background [3] WDSs may be used to provide potable water to people living in different communities (e.g., cities, towns, villages etc.). WDSs may include multiple nodes that are interconnected by pipes. Water may flow into and / or flow out of a node. At a demand node, there is at least some outflow of water. WDSs may also include storage facilities, pumps, and / or other accessories. [4] If a substance is introduced into a WDS at a demand node, the substance may be dispersed by the water flow of the WDS or other mechanisms such as osmotic pressure. One or more persons served by the WDS may be affected by the substance. The effects of the substance may depend on the amount of substance a person is exposed to and the toxicity / virulence of the substance. [5] Detecting the introduction event of the substance into the WDS may enable corrective actions to be taken. The corrective actions may include providing healthcare services to the affected persons and / or controlling nodes of the WDS to limit further dispersion of the substance and thereby prevent exposure of additional persons to the substance. Summary [6] In a first aspect, there is provided a method of detecting an introduction event of a substance into a water distribution system (WDS). The method comprises: receiving, by a processor, emergency call data including location data and timing data of emergency calls; generating, by the processor, an input data representation of the location data and the timing data of emergency calls; providing, by the processor, the input data representation to an event detection model trained to detect the introduction event using training data representations generated by simulating dispersion of the substance within the WDS; and generating, by the processor, an event detection output indicating an occurrence of the detected introduction event. [7] In one or more embodiments, indicating an occurrence of the detected introduction event includes indicating an introduction location of the substance into the WDS. [8] In one or more embodiments, indicating an introduction location of the substance into the WDS includes indicating an introduction node of the substance into the WDS or indicating a direct neighbor node of the introduction node. [9] In one or more embodiments, the method further comprises controlling one or more nodes of the WDS in response to the event detection output.
[0010] In one or more embodiments, the method further comprises modifying the training data representations generated by simulating dispersion of the substance within the WDS based on baseline data representing emergency calls unrelated to the introduction event.
[0011] In one or more embodiments, the training data representations include multiple training data representations generated by simulating dispersion of the substance after introduction at one or more demand nodes of the WDS while varying one or more simulation parameters.
[0012] In one or more embodiments, the one or more simulation parameters include a total amount of the substance introduced, an initial introduction time of the substance into the WDS, one or more introduction pattern coefficients, and an event duration time.
[0013] In one or more embodiments, the method further comprises training the event detection model using additional training data representations devoid of simulated dispersion of the substance within the WDS and generated based on baseline data representing emergency calls unrelated to the introduction event.
[0014] In one or more embodiments, the input data representation is an input data image having pixel positions of the input data image representing the location data and pixel values of the input data image representing the timing data.
[0015] In one or more embodiments, the training data representations include training data images having pixel positions of the training data images representing locations of nodes of the WDS, and pixel values of the training data images representing presence and arrival times of the substance at that node during a simulated dispersion of the substance within the WDS.
[0016] In one or more embodiments, the pixel values of the input data image and the pixel values of the training data images are encoded using a grayscale, a hue saturation luminance scale, or a pixel resizing parameter.
[0017] In one or more embodiments, the input data image and the training data images are 600x600 pixel images.
[0018] In one or more embodiments, the event detection model is a convolutional neural network (CNN).
[0019] In one or more embodiments, the input data representation is an input data graph, the input data graph being a N x N adjacency matrix, wherein N is a number of demand nodes in the WDS, each matrix element representing a pipe connection between corresponding nodes, and a value of each matrix element representing the timing data.
[0020] In one or more embodiments, the training data representations include training data graphs, each training data graph being a N x N adjacency matrix, wherein N is a number of demand nodes in the WDS, each matrix element representing a pipe connection between corresponding nodes, and a value of each matrix element representing presence and arrival times of the substance at that node during a simulated dispersion of the substance within the WDS.
[0021] In one or more embodiments, the event detection model is a graph neural network (GNN).
[0022] In one or more embodiments, the introduction event includes a chemical attack event, an intentional contamination event, or an unintentional contamination event.
[0023] In a second aspect, there is provided a system comprising a memory storing program instructions and a processor that is coupled to the memory to read and execute the program instructions which configure the processor to perform a method of detecting an introduction event of a substance into a WDS. The method can be any of the methods described herein.
[0024] In a third aspect, there is provided a non-transitory computer readable medium storing thereon program instructions that are executable by a processor for performing a method of detecting an introduction event of a substance into a WDS. The method can be any of the methods described herein. Brief Description of the Drawings
[0025] The drawings included herewith are for illustrating various examples of systems, methods, and devices of the teaching of the present specification and are not intended to limit the scope of what is taught in any way.
[0026] FIG. 1 is a block diagram that shows an example system for detecting an introduction event of a substance into a WDS, in accordance with one or more embodiments.
[0027] FIG.2 is a schematic diagram that shows an example of the WDS of FIG.1.
[0028] FIG.3 is a block diagram that shows components of the example system of FIG. 1.
[0029] FIG.4 is an example training data image used to train an event detection model of the example system of FIG.1.
[0030] FIG. 5 is another example training data image used to train the event detection model.
[0031] FIG. 6 is a flowchart showing an example method of detecting an introduction event of a substance into a WDS.
[0032] FIG. 7 is an example graphical representation of a WDS having an introduction node where a substance is introduced into the WDS.
[0033] FIG.8 is a graph showing classification accuracy of an example detection model for different number of classes and training images per class, in accordance with one or more embodiments. Detailed Description
[0034] Several example embodiments are described herein. It will be appreciated that numerous specific details are set forth in order to provide a thorough understanding of the example embodiments described herein. However, it will be understood by those of ordinary skill in the art that the embodiments described herein may be practiced without these specific details. In other instances, well-known methods, procedures and components have not been described in detail so as not to obscure the embodiments described herein. Furthermore, this description and the drawings are not to be considered as limiting the scope of the embodiments described herein in any way, but rather as merely describing the implementation of the various embodiments described herein.
[0035] It should be noted that terms of degree such as "substantially", "about" and "approximately" when used herein mean a reasonable amount of deviation of the modified term such that the end result is not significantly changed. These terms of degree should be construed as including a deviation of the modified term if this deviation would not negate the meaning of the term it modifies.
[0036] In addition, as used herein, the wording “and / or” is intended to represent an inclusive-or. That is, “X and / or Y” is intended to mean X or Y or both, for example. As a further example, “X, Y, and / or Z” is intended to mean X or Y or Z or any combination thereof.
[0037] The embodiments of the systems and methods described herein may be implemented in hardware or software, or a combination of both. These embodiments may be implemented in computer programs executing on programmable computers, each computer including at least one processor, a data storage system (including volatile memory or non-volatile memory or other data storage elements or a combination thereof), and at least one communication interface. For example and without limitation, the programmable computers (referred to below as computing devices) may be a server, network appliance, embedded device, computer expansion module, personal computer, laptop, personal data assistant, cellular telephone, smart-phone device, tablet computer, wireless device or any other computing device capable of being configured to carry out the methods described herein.
[0038] In some embodiments, the communication interface may be a network communication interface. In embodiments in which elements are combined, the communication interface may be a software communication interface, such as those for inter-process communication (IPC). In still other embodiments, there may be a combination of communication interfaces implemented as hardware, software, and a combination thereof.
[0039] Program code may be applied to input data to perform the functions described herein and to generate output information. The output information is applied to one or more output devices, in known fashion.
[0040] Each program may be implemented in a high-level procedural or object-oriented programming and / or scripting language, or both, to communicate with a computer system. However, the programs may be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language. Each such computer program may be stored on a storage media or a device (e.g. ROM, magnetic disk, optical disc) readable by a general or special purpose programmable computer, for configuring and operating the computer when the storage media or device is read by the computer to perform the procedures described herein. Embodiments of the system may also be considered to be implemented as a non-transitory computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein.
[0041] Furthermore, the systems, processes and methods of the described embodiments are capable of being distributed in a computer program product comprising a computer readable medium that bears computer usable instructions for one or more processors. The medium may be provided in various forms, including one or more diskettes, compact disks, tapes, chips, wireline transmissions, satellite transmissions, internet transmission or downloads, magnetic and electronic storage media, digital and analog signals, and the like. The computer useable instructions may also be in various forms, including compiled and non-compiled code.
[0042] Various embodiments have been described herein by way of example only. Various modifications and variations may be made to these example embodiments without departing from the spirit and scope of the invention, which is limited only by the appended claims. Also, in the various user interfaces illustrated in the figures, it will be understood that the illustrated user interface text and controls are provided as examples only and are not meant to be limiting. Other suitable user interface elements may be possible.
[0043] The introduction of an infectious, virulent and / or toxic substance into a WDS may impact a large number of persons served by the WDS. The impact may be particularly significant if the substance is potent and / or lethal at relatively small concentrations. The substance can be, for example, Carfentanil. Carfentanil is an analog of the synthetic opioid analgesic fentanyl. Carfentanil can be more than 10,000 times more potent than morphine and theoretically a dose as low as 30 to 430 nano grams per person may be lethal. In other examples, the substance introduced into the WDS may be any other substance that is available in sufficient quantities, dispersed through water, and infectious / virulent / toxic at relatively low concentrations.
[0044] A WDS may encompass hundreds of kilometers of pipes and thousands of nodes where a substance may be introduced. It may be challenging to monitor the entire WDS at all times to prevent introduction events of a substance into the WDS. The introduction event may be an intentional event (e.g., a terrorist attack introducing a chemical or biological agent into the WDS) or an unintentional event (e.g., a leak of a sufficiently toxic / virulent substance into the WDS).
[0045] One option to detect introduction events of a substance into the WDS can be by using multiple sensors that collect water quality data at various locations in the WDS. Back tracking or anomaly detection methods may be used to detect the introduction event based on measured sensor data.
[0046] In back tracking detection methods, when a sensor detects an introduced substance, back tracking or inverse calculations may be used to determine the introduction location of the substance. Computer models may be used to simulate many introduction scenarios, and to search for the closest simulated introduction scenario that produces water quality data like the measured sensor data. An optimization algorithm may be used to minimize the difference between the simulated water quality results and the measured water quality data from the sensors. A challenge associated with back tracking detection methods can be the availability of sensors that can detect all potential substances that may be introduced into the WDS. If the sensor cannot detect the specific substance introduced into the WDS, then the back tracking method cannot be performed.
[0047] In anomaly detection methods, measured sensor data can be used to generate a baseline of water quality parameters such as chlorine content, pH, total organic carbon content, temperature, electric conductivity, alkalinity and turbidity. Any deviations from the baseline may be evaluated against specific criteria to determine if the variation is an anomaly. In a variation of the anomaly detection methods, water quality parameters may be predicted for a next time step and if the predicted value differs from an actual measured value, it may be classified as an anomaly. The anomaly detection methods may be used for substances that affect general water quality parameters. However, highly potent / virulent substances (e.g., Carfentanil) may be toxic at relatively low concentrations (e.g., parts per billion), but may not cause a measurable change in the general water quality parameters when present at relatively low concentrations. Therefore, the anomaly detection methods may fail to detect some introduction events. Additionally, anomaly detection methods may require training data from previously detected introduction events to form the baseline and / or train anomaly detection models. The anomaly detection methods may fail to detect a new substance that was not included in the training data.
[0048] Furthermore, both back tracking detection methods and anomaly detection methods may require suitable and / or optimized placement of sensors throughout the WDS to maximize the substance detection coverage / efficiency and / or minimize the total number of sensors required for detection. Unoptimized sensor placement may reduce the substance detection capability of the detection systems.
[0049] Unlike the back tracking and anomaly detection methods, the disclosed systems and methods can detect an introduction event of a substance into a WDS without using sensors. Accordingly, sensors capable of detecting the specific substance introduced into the WDS may not be required. The disclosed systems and methods also do not require optimized placement of sensors at various locations in the WDS.
[0050] The disclosed systems and methods can perform real-time analysis of emergency call data to detect an introduction event. When a virulent / toxic substance is introduced into a WDS, water flow within the WDS may disperse the substance to different portions of the WDS. People served by the WDS may be exposed to the substance (e.g., through ingestion, dermal absorption, ocular absorption etc.) at different times corresponding to their distance from the introduction location and the water flow dynamics within the WDS. Depending on the toxicity of the substance and the amount of substance people are exposed to, people may start experiencing one or more symptoms (e.g., dizziness, lethargy, disorientation, difficulty breathing, headaches, stomach aches, irritation of eyes, nose, skin etc., any typical drug overdose related symptoms such as respiratory arrest, being unresponsive, etc.) and may make calls for emergency assistance (e.g., call 911 in US and Canada). Emergency call centers (e.g., 911 dispatch centers) may record emergency call data that includes the time and location of the received calls. The timing of the emergency calls may correspond to the arrival time of the dispersed substance at the person’s location. There may be a lag time (associated with exposure time of the person to the substance and a further time delay to develop symptoms) between the arrival time of the substance and the timing of the emergency call. The lag time may be assumed to be approximately the same for all the emergency calls. Accordingly, the spatial and temporal pattens of the emergency calls may follow the dispersion pattern of the introduced substance within the WDS.
[0051] The disclosed systems and methods may use an event detection model trained to detect spatial and temporal pattens within the emergency call data that indicate an introduction event of a substance into the WDS. The introduction events may be rare occurrences or may never have previously occurred. Therefore, there may not be any emergency call data available from previous introduction events that may be used to train the event detection model. The disclosed systems and methods may generate training data for the event detection model by simulating dispersion of the substance within the WDS to generate spatial and temporal patterns of the substance arrival at various locations in the WDS. The trained event detection model can enable the disclosed systems and methods to generate an event detection output indicating occurrence of the detected introduction event. The disclosed systems and methods can also determine and provide an indication of the introduction location of the substance into the WDS.
[0052] In some embodiments, the disclosed systems and methods may be used in combination with sensors placed at various locations in the WDS to improve detection accuracy and / or detection speed. For example, a sensor may detect the occurrence of an introduction event and the event detection model may determine the introduction location with greater accuracy and speed (based on emergency call data) compared with back tracking and anomaly detection methods using just the sensor data.
[0053] Referring first to FIG.1, shown therein is a block diagram that includes an example system 100 for detecting an introduction event of a substance into a WDS 10. System 100 may detect the introduction event based on emergency call data received from emergency call center 14. System 100 may communicate with WDS 10 and emergency call center 14 using a network 18.
[0054] In the illustrated example, system 100 may be located remote from WDS 10 and emergency call center 14. In some embodiments, system 100 may be integrated with WDS 10 or emergency call center 14.
[0055] WDS 10 can be any WDS providing water supply to a community. For example, WDS 10 can be a WDS supplying potable water to people of a town, city or village. Referring now to FIG.2, shown therein is a schematic diagram of an example WDS 10a. WDS 10a may include multiple nodes 22 and multiple pipes 26. WDS 10a may provide water supply to a large population (e.g., 1 million). WDS 10a, shown in FIG.2, may include 32,000 nodes interconnected by 4,000km of pipes. Pipes 26 may have different diameters, for example, pipes 26 may have diameters in a range from 150mm to 2000mm. A demand node can be any node 22 of the WDS that has at least some amount of water flowing out of the node. WDS 10a may include 25,000 demand nodes out of a total 32,000 nodes. If a substance is introduced into the WDS at a demand node, the water flow out of the node can disperse the substance to other nodes of the WDS.
[0056] Referring back to FIG.1, emergency call center 14 can be a dispatch center that dispatches emergency assistance in response to emergency calls from people in the community. The emergency calls may be made, for example, from a landline phone or a cellphone. The emergency call may be a voice call or a text message. Emergency call center 14 may serve a similar geographic area as served by WDS 10a. For example, emergency call center 14 may serve as a dispatch center for the same city that is provided water supply by WDS 10a.
[0057] Emergency call center 14 may record emergency call data that includes the location data and timing data of received emergency calls. The timing data may include, for example, the time that an emergency call was received and the duration of the emergency call. The location data may include, for example, an automatically detected location from which the emergency call was made. The location data may also include specific location information provided by the caller.
[0058] Network 18 may include a communication network such as the Internet, a Wide- Area Network (WAN), a Local-Area Network (LAN), a land-line telephone network, a cellphone network, or another type of network. Network 18 may include a point-to-point connection, or another communications connection between two nodes. In the illustrated example, system 100 communicates with both WDS 10 and emergency call center 14 over network 18. In some embodiments, system 100 may communicate with WDS 10 and emergency call center 14 over separate networks. For example, emergency call center 14 may be connected to a public network while WDS 10 may be connected to a private network for security or other reasons.
[0059] Referring next to FIG.3, shown therein is a block diagram of components of system 100, in accordance with an embodiment. For the illustrated embodiment, system 100 includes a communication unit 304, a display 308, a processor unit 312, a memory unit 316, a I / O unit 320, a user interface engine 324 and a power unit 328.
[0060] Communication unit 304 can include wired or wireless connection capabilities. Communication unit 304 can be used by system 100 to communicate with other devices or computers. For example, system 100 may use communication unit 304 to receive, over network 18, emergency call data from emergency call center 14. System 100 may also use communication unit 304 to provide, over network 18, an event detection output to WDS 10.
[0061] Processor unit 312 can control the operation of system 100. Processor unit 312 can be any suitable processor, controller or digital signal processor that can provide sufficient processing power depending on the configuration, purposes and requirements of system 100 as is known by those skilled in the art. For example, processor unit 312 may be a high-performance general processor. For example, processor unit 312 may include a standard processor, such as an Intel® processor, or an AMD® processor. Alternatively, processor unit 312 can include more than one processor with each processor being configured to perform different dedicated tasks. Alternatively, specialized hardware (e.g., graphical processing units (GPUs)) can be used to provide some of the functions provided by processor unit 312.
[0062] Processor unit 312 can execute a user interface engine 324 that may be used to generate various user interfaces. User interface engine 324 may be configured to provide a user interface on display 308. Optionally, system 100 may be in communication with external displays over network 18. User interface engine 324 may also generate user interface data for the external displays that are in communication with system 100.
[0063] User interface engine 324 can be configured to provide a user interface to enable set-up and initialization of system 100. User interface engine 324 can also be configured to provide a user interface to receive various input parameters, e.g., model parameters for the event detection model, simulation parameters used to simulate dispersion of the substance within the WDS to generate training data for the event detection model etc. User interface engine 324 may also be configured to provide a user interface showing a graphical representation of the WDS including an indication of determined introduction location of a substance into the WDS.
[0064] Display 308 may be a LED or LCD based display and may be a touch sensitive user input device that supports gestures. Display 308 may be integrated into system 100. Alternatively, display 308 may be located physically remote from system 100 and communicate with system 100 using a communication network, for example, network 18. In some embodiments, system 100 may not include a dedicated display 308 and may provide output displays using external displays communicatively coupled to system 100.
[0065] I / O unit 320 can include at least one of a mouse, a keyboard, a touch screen, a thumbwheel, a trackpad, a trackball, a card-reader, voice recognition software and the like, depending on the particular implementation of system 100. In some cases, some of these components can be integrated with one another. I / O unit 320 may enable a user, an operator and / or an administrator of system 100 to interact with the user interfaces provided by user interface engine 324.
[0066] Power unit 328 can be any suitable power source that provides power to system 100 such as a power adaptor or a rechargeable battery pack depending on the implementation of system 100 as is known by those skilled in the art.
[0067] Memory unit 316 can include software code for implementing an operating system 332, programs 336, database 340, model generation engine 344, model training engine 348, and input data representation engine 352.
[0068] Memory unit 316 can include RAM, ROM, one or more hard drives, one or more flash drives or some other suitable data storage elements such as disk drives, etc. Memory unit 316 can be used to store an operating system 332 and programs 336 as is commonly known by those skilled in the art. For instance, operating system 332 provides various basic operational processes for system 100. For example, the operating system 332 may be an operating system such as Windows® Server operating system, or Red Hat® Enterprise Linux (RHEL) operating system, or another operating system.
[0069] Database 340 may include a Structured Query Language (SQL) database such as PostgreSQL or MySQL or a not only SQL (NoSQL) database such as MongoDB, Graph Databases, customized databases that are optimized to provide high retrieval speeds for data stored by system 100, etc. Database 340 may be integrated with system 100. Alternatively, database 340 may run independently on a database server in network communication with system 100.
[0070] Database 340 may store the received emergency call data. Database 340 may also store the event detection model. The event detection model may be generated by system 100. In some embodiments, the event detection model may be generated by an external device and received by system 100 (e.g., received over network 18). Database 340 may store multiple event detection models, with each event detection model corresponding to a specific WDS. In some embodiments, database 340 may store any other relevant data of system 100 including, for example, the generated event detection outputs and the training data for training the event detection model.
[0071] Programs 336 can include various programs so that system 100 can perform various functions such as, but not limited to, receiving emergency call data, providing input data representations to an event detection model, and / or generating an event detection output.
[0072] Model generation engine 344 can generate one or more machine learning models. For example, model generation engine 344 may generate an event detection model to detect an introduction event of a substance into a WDS. In some embodiments, system 100 may not include a model generation engine 344 and system 100 may receive the event detection model from an external device. The generated and / or received models may be stored in database 340. In some embodiments, the generated models may be stored in an external storage device that is in network communication with system 100.
[0073] The event detection model can be any suitable model that is configured to receive an input data representation of the location data and the timing data of emergency calls. The event detection model can be configured to provide an event detection output indicating an occurrence of a detected introduction event of a substance into the WDS.
[0074] In some embodiments, the event detection model can be a convolutional neural network (CNN) that is configured to receive input data images having pixel positions of the input data image representing the location data of the emergency calls and pixel values of the input data image representing the timing data of the emergency calls.
[0075] A CNN can be trained to identity patterns associated with the introduction event of a substance using training data pairs that include the pattern (e.g., a training data image) and the introduction node(s) associated with the pattern. It may be assumed that the patterns resulting from introduction of a substance at each node (i.e., an introduction node) of the WDS and at its direct neighbor nodes have high similarity. Identifying a direct neighbor of the introduction node may sufficiently narrow down the introduction location for corrective actions to be performed (e.g., isolating affected portions of the WDS to prevent further dispersion of the introduced substance). A multi-label classification approach may be used where each node and its direct neighbor nodes may be defined as one class that has an associated pattern (training data image). If the CNN associates an input data image with either the introduction node or its direct neighbors, the CNN classification output may be considered correct.
[0076] In some multi-label approaches, the goal may be to maximize true positive labels while minimizing false positive labels. All labels within a classification vector may be considered equivalent and independent of each other. This may not be sufficiently discriminative or reactive for the accuracy required to identify introduction locations. For suitable corrective actions to be performed, it may be important not to identify any node other than the introduction node or its direct neighbor nodes as the introduction location. The disclosed systems and methods may use a modified multi-label approach that penalizes a solution if it includes a wrong node (i.e., any node other than the introduction node or its direct neighbor nodes). The equations below describe an example implementation of the modified multi-label approach. ^^ ⊙ ^^ = ^^^^ ^^^^^^ ^^(1) ^^ ^^^^ ^^= ^^^^ ^^^^^^ ^^(2) ^^ ⊙(^^ − ^^)= ^^^^ ^^(1 − ^^^^ ^^)(3)^^ ^^^^ ^^= ^^^^ ^^(1 − ^^^^ ^^)(4)^^− ^^ (5) ^^^ ^^^^ ^^^^ ^^ ^^ In equations (1) to (8), X is a binary matrix of classified sample vectors where each row is a classified sample vector. Y is the binary matrix of true label vectors. The symbol ⊙ denotes the Hadamard product which is a per element multiplication of two identical size matrices. SGN() is the sign function, n is the number of samples in the dataset and CA is the classification accuracy. Multiple weight and bias values of the CNN may be optimized during the training process to maximize the CA.
[0077] Different architecture blueprints may be used for implementing the CNN, for example, ResNets, MobileNets, or EfficientNet. In some embodiments, the MobileNets architecture blueprint may be used for implementing the CNN. MobileNets may provide higher performance while analyzing larger images (e.g., 600 x 600 pixel images or larger) and better memory usage efficiency compared with other architecture blueprints.
[0078] The MobileNets architecture may be controlled by three primary variables – “t”, “c”, and “n”. The variable “t” may describe the expansion factor which governs the internal expansion of the inverted residual block. The variable “c” may govern the output channel size and the variable “n” may control the number of times that a given residual block is repeated. The values for “t”, “c”, and “n” may be optimized for MobileNetV2 through enumeration to minimize the memory usage of system 100. Table 1 below shows an example of an optimized MobileNetV2 architecture. Table 1 An example of an optimized MobileNetV2 architecture Operator t c n conv2d - 32 1 bottleneck 1 16 1 bottleneck 5 24 2 bottleneck 5 32 3 bottleneck 5 64 3 bottleneck 5 96 3 bottleneck 5 160 3 bottleneck 5 320 1 / conv2d 1x1 - 1280 1 avgpool - - 1 conv2d 1x1 - k -
[0079] MobileNetV2 may be used for smaller and medium-sized WDS (e.g., WDS with less than 10,000 demand nodes). MobileNetV3 may be used for larger-sized WDS (with 10,000 or more demand nodes).
[0080] MobileNetV3 can provide an improvement on MobileNetV2 by using Squeeze and Excitation Networks (Senets) to add a weight factor to the output feature maps of its inverted residual blocks. This can enable the CNN to choose the most significant image features to use for further convolutions thereby boosting the classification power of the CNN. Due to its large classification power, the modules of the CNN may have to be constrained to avoid overfitting. The maximum convolution size may be reduced from 5x5 to 3x3 and a majority of the Senets may be removed from the higher layers. Table 2 below shows an example of an optimized MobileNetV3 architecture. Table 2 An example of an optimized MobileNetV3 architecture. Input Operator exp size #out SE NL s 6002x3 conv2d - 16 - HS 2 3002x16 bneck, 3x3 16 16 - RE 1 3002x16 bneck, 3x3 64 24 - RE 2 1502x24 bneck, 3x3 72 24 - RE 1 1502x24 bneck, 3x3 72 40 - RE 2 752x40 bneck, 3x3 120 40 - RE 1 752x40 bneck, 3x3 120 40 - RE 1 752x40 bneck, 3x3 240 80 - HS 2 372x80 bneck, 3x3 200 80 - HS 1 372x80 bneck, 3x3 184 80 - HS 1 372x80 bneck, 3x3 184 80 - HS 1 372x80 bneck, 3x3 480 112 - HS 1 372x112 bneck, 3x3 672 112 - HS 1 372x112 bneck, 3x3 672 160 Y HS 2 182x160 bneck, 3x3 960 160 Y HS 1 182x160 bneck, 3x3 960 160 Y HS 1 182x160 conv2d, 1x1 - 960 - HS 1 182x960 pool, 7x7 - - - - 1 12x960 conv2d 1x1, NBN - 1280 - HS 1 12x1280 conv2d 1x1, NBN - k - - 1
[0081] In MobileNetV3, the “t” operator may be replaced by the expanded channel size. The variable “s” can indicate the step size with 2 being equal to a size reduction by 50% in the image dimensions. The variable “SE” can indicate if a particular block uses a Senet. The variable “NL” can describe whether the hard swish (HS) or relu6 (RE) activation function was used.
[0082] In some embodiments, the event detection model can be a graph neural network (GNN) that is configured to receive input data graphs. Each input data graph can be a N x N adjacency matrix, where N is a number of demand nodes in the WDS. Each matrix element may represent a pipe connection between corresponding nodes of the WDS, and a value of each matrix element may represent the timing data of the emergency calls.
[0083] Model training engine 348 can train one or more event detection models. The models may include models generated by model generation engine 344 and / or models received from external devices. Model training engine 348 may use any suitable training method to train the models based on factors including the type of model, available training data, available computational resources, and / or the requirements of system 100.
[0084] Model training engine 348 may be configured to perform training of models at various times. For example, model training engine 348 may be configured to train models when they are initially generated by model generation engine 344. Model training engine 348 may also be configured to train models based on a time-based schedule. For example, based on a training period parameter stored in database 340. In some embodiments, model training engine 348 may train a model in response to a training request by a user / administrator of system 100. Model training engine 348 may also be configured to train a model in response to the model prediction accuracy falling below a threshold accuracy.
[0085] To train a model to detect an introduction event of a substance into a WDS, model training engine 348 may generate training data by simulating dispersion of the substance within the WDS. In some embodiments, model training engine 348 may use the EPANET water quality engine to perform the simulated dispersions. In other embodiments, model training engine 348 may use any other suitable WDS modelling package.
[0086] The training data may include multiple training data representations (e.g., thousands or millions of training data representations). The total number of training data representations generated may be based on the training requirements of the model, the desired prediction accuracy of the model and / or the available computing resources.
[0087] Each training data representation may be generated by simulating dispersion of the substance after introduction at a demand node of the WDS for a specified set of simulation parameters. Multiple training data representations may be generated by varying the simulation parameters and varying the demand node where the substance is introduced. In some embodiments, the training data may include multiple training data representations generated for each demand node of the WDS. For example, the training data may include 300-800 training data representations generated for each demand node of the WDS.
[0088] The simulation parameters may include, for example, a total amount of the substance introduced, an initial introduction time of the substance into the WDS, one or more introduction pattern coefficients, and an event duration time. The simulation parameters may be stored, for example, in database 340 or an external storage device accessible to system 100. In some embodiments, a user / administrator of system 100 may provide the simulation parameters using a user interface generated by user interface engine 324.
[0089] Different simulations may be performed (and corresponding training data representations generated) using a uniform distribution of randomly generated values of total amount of the substance introduced into the WDS. For example, simulations may be performed for different values of total amount of Carfentanil introduced into the WDS in a range from 5kg to 40kg. In other examples, simulations may be performed for smaller or larger amounts of Carfentanil, based on factors including size of the WDS. A different range of total amount of substance may be used for other substances based on, for example, the virulence / toxicity of the substance.
[0090] There may be diurnal patterns associated with the water flow in the WDS and / or the emergency call data. Multiple simulations may be performed (and corresponding training data representations generated) by varying the initial introduction time of the substance into the WDS. For example, multiple simulations may be performed using a uniform distribution of randomly generated values within a 24-hour day for the initial introduction time of the substance into the WDS.
[0091] The introduction pattern coefficients may include one or more coefficients used to characterize the temporal introduction pattern of the substance into the WDS. For an example simulation scenario of 10kg of Carfentanil introduced into the WDS, the introduction pattern coefficients may specify that 4kg of Carfentanil enters the WDS at the initial introduction time with a further 1kg of Carfentanil entering the WDS at subsequent 15min intervals. Multiple simulations may be performed using a uniform distribution of randomly generated values for the introduction pattern coefficients.
[0092] In some embodiments, the simulation parameters may also include parameters related to material properties of the substance, for example, the diffusivity and solubility of the substance in water, purity of the introduced substance, toxicity of the introduced substance, etc. In some examples, model training engine 348 may use default values of the material properties where the values for a specific substance are not known.
[0093] Multiple simulations may also be performed by simulating dispersion of the substance within the WDS for different event duration times. The event duration times may include a uniform distribution of randomly generated values between a minimum event duration and a maximum event duration.
[0094] The minimum event duration may be based on a minimum amount of time associated with development of symptoms after exposure to the substance. For example, it may take approximately one hour for symptoms to develop after exposure to Carfentanil. The minimum event duration may therefore be set at 1 hour for simulated dispersions of Carfentanil in the WDS. In other examples, the minimum event duration may be set at a different value, for example, based on time associated with development of symptoms after exposure to a different substance.
[0095] The maximum event duration may be based on the larger of the times associated with a saturation of the emergency call center lines and a total time taken for introduction of the substance into the WDS. The incoming phone lines of the emergency call center may be saturated within a few hours of a substance being introduced into the WDS. The saturation time may vary based on the number of people served by the WDS and / or a call handling capacity of the emergency call center. The total time taken for introduction of the substance into the WDS may depend on the introduction pattern coefficients described herein above. In some embodiments, the maximum event duration may set at 6 hours to fully capture both the saturation time associated with the emergency call center lines and the total time taken for introduction of the substance into the WDS. In other embodiments, larger or small event duration times may be used based on the specific WDS, emergency call center, and / or substance that the model is being trained for.
[0096] For any simulation, the combination of the initial introduction time and the event duration time may specify the time period for which the simulation is performed. For an example initial introduction time of 4pm and an event duration time of 4 hours, the simulated time period can be 4pm to 8pm.
[0097] Model training engine 348 may divide the simulated time period into discrete time intervals and determine the dispersion of the substance within the WDS for each time interval. Larger time intervals may enable faster simulation and / or require fewer computing resources. Smaller time intervals may provide larger amount of training data and may enable the trained models to provide higher accuracy outputs. In some embodiments, time intervals in a range from 5mins to 20mins may be used. In other embodiments, larger or smaller time intervals may be used.
[0098] The time interval may be a fixed value that is stored, for example, in database 340. In some embodiments, the time interval may be a variable. The time interval may be specified, for example, by a user / administrator of system 100.
[0099] Model training engine 348 may determine the arrival times of the substance at each node of the WDS for the simulated time period and specified time interval. For an example simulated time period of 2am to 5am and an example time interval of 15mins, the determined arrival times of the substance at various nodes of the WDS may be 2:15am, 2:30am, 2:45am, 3am, 3:15am, 3:30am, 3:45am, 4am, 4:15am, 4:30am, 4:45am or 4:50am. In some cases, the substance may not be dispersed to all the nodes of the WDS within the simulated time period.
[0100] Model training engine 348 may generate a water quality matrix indicating the arrival time of the substance for each node of the WDS. The water quality matrix may also indicate any nodes that the substance did not reach during the simulated time period. A water quality matrix may be generated for each simulated dispersion of the substance and the water quality matrix may be used to generate a corresponding training data representation.
[0101] In some embodiments, model training engine 348 may generate the training data representation as a training data image based on the water quality matrix. The training data image may represent the geographic area served by the WDS. Each training data image may include multiple pixels having pixel positions that represent geographic locations of nodes of the WDS.
[0102] The training data image may, for example, be a 600 x 600 pixel image. The 600 x 600 pixel image may provide sufficient informational space to represent large WDSs including, for example, WDS 10a shown in FIG. 2. In some embodiments, the training data image may include larger image sizes (e.g., each dimension of the image being 600 – 900 pixels) that provide larger informational space. The larger training data images may, however, require higher amount of computational resources for implementation of system 100. In other embodiments, the training data image may include smaller image sizes (e.g., each dimension of the image being 300 – 600 pixels) that require lower computational resources for implementation of system 100. The smaller training data images may, however, provide reduced informational space.
[0103] Reference is now made to FIG.4 showing an example training data image 400. The pixel positions of training data image 400 may, for example, represent geographic locations of nodes 22 of WDS 10a shown in FIG.2. In some examples, two or more nodes of the WDS may be located very close to each other geographically. The two nodes may be connected or unconnected hydraulically. The model training engine may shift the node coordinates of the two or more nodes in the training data image to prevent the nodes from overlapping the same pixel location while maintaining their relative geographical locations within the training data image. A distance between adjacent pixels may correspond to a scaled physical distance between the nodes that the pixels represent.
[0104] The pixel values of the training data images may represent presence and arrival times of the substance at that node during the simulated dispersion of the substance within the WDS. For example, the pixel values may be based on the water quality matrix that includes the determined arrival times of the substance at each node. The pixel values of the training data images may be encoded using a grayscale, a hue saturation luminance (HSL) scale, or a pixel resizing parameter.
[0105] In the illustrated training data image 400, the black pixels indicate pixels that are not nodes, the blue pixels indicate unaffected nodes (where the introduced substance did not reach during the simulated time period), and the gray pixels indicate the affected nodes (where the introduced substance arrived during the simulated time period).
[0106] For an example embodiment using an 8-bit grayscale encoding, there can be 256 grayscale values available for encoding the arrival times of the substance. For a simulated time period of 30 hours and a simulation time interval of 15mins, 120 grayscale values can be sufficient to encode the different arrival times (4 arrival times / hour x 30 hours). Model training engine 348 may scale up the arrival time values to utilize the entire available grayscale range. A zero value may be used to indicate a pixel that is not a node, a value of 55 may be used to indicate unaffected nodes (where the substance does not reach during the simulated time period) and values from 56 to 255 may be used to indicate the determined arrival times from the water quality matrix / simulated dispersion.
[0107] In some embodiments, the pixel values may be encoded using a pixel resizing parameter. Pixels representing nodes of the WDS may be resized based on the pixel resizing parameter and the arrival time of the substance at that node. For example, nodes with earlier arrival times may be resized to appear larger compared a node with a later arrival time.
[0108] Emergency call centers may receive many calls each day (for example, hundreds or thousands of daily call) that are unrelated to introduction events of a substance into a WDS. The unrelated calls can, for example, be emergency calls associated with fires, burglaries, vehicle collisions etc. The unrelated calls may form a baseline within the emergency call data that occurs regardless of the occurrence of the introduction event. The spatial and temporal patterns associated with the unrelated emergency calls may be different compared with the spatial and temporal pattens associated with the emergency calls related to an introduction event of a substance into a WDS. The emergency call data for the unrelated calls may add noise to the emergency call data that is used as input to an event detection model.
[0109] In some embodiments, to ensure compliance with privacy laws, the disclosed systems and methods may use the location data and timing data of emergency calls but may not use the call content. Therefore, the noise contributed by the unrelated calls may not be able to be filtered out based on call content. The disclosed systems and methods may compensate for the noise by modifying the training data representations generated by simulating dispersion of the substance based on the baseline data representing the unrelated emergency calls. For example, an unaffected node (during the simulated dispersion) in a training data representation may be modified to a grayscale value of 64 to represent a baseline emergency call from a location corresponding to the unaffected node.
[0110] Reference is now made to FIG.5 showing a training data image 500 modified to include noise data associated with the unrelated emergency calls. Model training engine 348 may, for example, modify training data image 400 to add the baseline data corresponding to unrelated emergency calls and generate modified training data image 500. The baseline data may correspond to the same times of day as the simulated time period used to generate the training data image. For example, baseline data for unrelated emergency calls in a 3pm to 9pm time period may be used to modify a training data image generated based on simulated dispersion of the substance during a 3pm to 9pm simulated time period.
[0111] In some embodiments, model training engine 348 may generate additional training data representations devoid of simulated dispersion of the substance within the WDS and generated based on the baseline data corresponding to the unrelated emergency calls. The additional training data representations may represent the scenario where no introduction event occurs and may be included in the training data to train the event detection model for scenarios corresponding to no introduction events occurring.
[0112] In some embodiments, model training engine 348 may generate the training data representation as a training data graph based on the water quality matrix. Multiple training data graphs may be generated and used for training a GNN to detect introduction events of a substance into the WDS.
[0113] The training data graph can be a N x N adjacency matrix, where N is a number of demand nodes in the WDS. Each matrix element may represent a pipe connection between corresponding nodes, and a value of each matrix element may represent the presence and arrival times of the substance at that node during a simulated dispersion of the substance within the WDS. The values of each matrix element may, for example, be based on the arrival times in the water quality matrix determined using a simulated dispersion of the substance. For example, the adjacency matrix below represents a WDS with three nodes where node 2 is connected to node 1 and 3. The values of the corresponding matrix elements may indicate that the arrival time of the substance at the pipe connecting nodes 2 and 1 is the 20thtime interval of the simulated dispersion and the arrival time of the substance at the pipe connecting nodes 2 and 3 is the 22ndtime interval of the simulated dispersion. 1 2 3 1 0 20 0 2
[0000] 3 0 22 0
[0114] Referring now to FIGS. 1 and 3, input data representation engine 352 may generate an input data representation based on emergency call data received from an emergency call center (e.g., emergency call center 14). In some embodiments, input data representation engine 352 may generate an input data image based on received emergency call data. Processor unit 312 may provide the input data image to an event detection model (for example, a CNN) trained to detect the introduction event.
[0115] The input data image may represent the geographic area served by the WDS and the emergency call center. The pixel positions of the input data image may represent the location data of emergency calls mapped to the nearest node of the WDS. The pixel values may represent the timing data of emergency calls. The total time period of emergency calls used to generate the input data image may correspond to the maximum event duration used during the generation of the training data. For example, the time period of emergency calls used to generate the input data image may be 6 hours. The total time period may be divided into multiple time intervals and the pixel value of the input data image may be based on the time interval that an emergency call was received. The pixel values of the input data images may be encoded using a grayscale, a hue saturation luminance (HSL) scale, or a pixel resizing parameter. The input data image may be sized to be the same as the training data images used for training the event detection model. For example, the input data image may be a 600 x 600 pixel image.
[0116] In some embodiments, input data representation engine 352 may generate an input data graph based on received emergency call data. Processor unit 312 may provide the input data graph to an event detection model (for example, a GNN) trained to detect the introduction event.
[0117] The input data graph can be an adjacency matrix having the same size as the training data graphs used to train the event detection model. Each matrix element may represent the location data of an emergency call mapped to the location of the nearest pipe connection of the WDS. The values of the matrix elements may represent the timing data of emergency calls. The total time period of emergency calls used to generate the input data graph may correspond to the maximum event duration used during the generation of the training data. For example, the time period of emergency calls used to generate the input data graph may be 6 hours. The total time period may be divided into multiple time intervals and the values of the matrix elements may be based on the time interval that an emergency call was received.
[0118] Referring now to FIG.6, shown therein is an example method 600 of detecting an introduction event of a substance into a WDS. Method 600 may be implemented using any suitable system. For example, method 600 may be implemented using system 100 and reference is concurrently made to FIGS. 1 and 3 showing system 100 and its components.
[0119] Method 600 may be performed at various times. For example, method 600 may be performed in response to emergency call center 14 receiving an emergency call or in response to an input received from an administrator or operator of system 100. Method 600 may also be performed automatically, for example, according to time-based conditions (e.g., regular time intervals, a detection schedule stored in database 340 etc.).
[0120] At 610, method 600 may include receiving, by a processor, emergency call data including location data and timing data of emergency calls. For example, processor unit 312 may receive emergency call data from emergency call center 14.
[0121] At 620, method 600 may include generating, by the processor, an input data representation of the location data and the timing data of emergency calls. For example, input data representation engine 352 may generate an input data representation of the location data and the timing data of emergency calls. The input data representation may be, for example, an input data image or an input data graph.
[0122] At 630, method 600 may include providing, by the processor, the input data representation to an event detection model trained to detect the introduction event using training data representations generated by simulating dispersion of the substance within the WDS. For example, processor unit 312 may provide the input data representation to an event detection model trained by model training engine 348. For example, the event detection model may be a CNN trained using training data images or a GNN trained using training data graphs.
[0123] At 640, method 600 may include generating, by the processor, an event detection output indicating an occurrence of the detected introduction event. For example, processor unit 312 may generate an event detection output indicating an occurrence of the detected introduction event. The event detection output may indicate that an introduction event of a substance into the WDS has occurred. The event detection output may also indicate the introduction location of the substance into the WDS.
[0124] In some embodiments, indicating the introduction location may include indicating an introduction node of the substance into the WDS or indicating a direct neighbor node of the introduction node. Referring now to FIG.7, shown therein is an example graphical representation of a WDS having an introduction node 710 where a substance is introduced into the WDS. The event detection output may indicate that the introduction location is one of node 710 or its direct neighbor nodes 720, 730.
[0125] Referring now to FIGS.6 and 7, in some embodiments, method 600 may further include controlling one or more nodes of the WDS in response to the event detection output. For the above example where the event detection output indicates that the introduction location is one of nodes 710, 720, or 730, method 600 may include controlling nodes 710, 720, 730 to shut down water flow out of nodes 710, 720 and 730 to prevent further dispersion of the substance.
[0126] Reference is now made to FIG. 8. FIG. 8 is a graph 800 showing classification accuracy of an example detection model for different number of classes and training images per class while implementing a multi-label classification approach. The classification accuracy may be plotted on y-axis 810 and the number of classes may be plotted on x-axis 820.
[0127] The event detection model can be a CNN trained to detect an introduction event of a substance into WDS 10a shown in FIG.2. The event detection model may be trained using a training data set containing ~12.5 million training data images. The training data set may include 500 training data images generated for a simulated introduction event (by varying simulation parameters) of the substance at each demand node of the WDS. The training data set may be divided into a validation set (80%) and a testing set (20%). The training set may then be used to train the event detection model and optimize the weights and bias values of the CNN according to Equation (9). The event detection model may not be exposed to the testing set while the training is in progress.
[0128] Graph 800 indicates that the example event detection model can detect introduction events with accuracies greater than 90%. Graph 800 may also indicate that the classification accuracy decreases when the number of nodes (i.e., classes) is increased and that the classification accuracy can be improved by increasing the number of samples (training data images) per class. Accordingly, for the example detection model, increasing the number of samples per class may compensate for the reduction in classification accuracy caused by increasing the number of classes. However, increasing the number of samples per class may require higher number of computational resources for implementing the event detection model.
[0129] The present invention has been described here by way of example only. Various modification and variations may be made to these exemplary embodiments without departing from the spirit and scope of the invention, which is limited only by the appended claims.
Claims
WE CLAIM:
1. A method of detecting an introduction event of a substance into a water distribution system (WDS), the method comprising: receiving, by a processor, emergency call data including location data and timing data of emergency calls; generating, by the processor, an input data representation of the location data and the timing data of emergency calls; providing, by the processor, the input data representation to an event detection model trained to detect the introduction event using training data representations generated by simulating dispersion of the substance within the WDS; and generating, by the processor, an event detection output indicating an occurrence of the detected introduction event.
2. The method of claim 1, wherein said indicating an occurrence of the detected introduction event includes indicating an introduction location of the substance into the WDS.
3. The method of claim 2, wherein said indicating an introduction location of the substance into the WDS includes indicating an introduction node of the substance into the WDS or indicating a direct neighbor node of the introduction node.
4. The method of any one of claims 1 to 3, further comprising controlling one or more nodes of the WDS in response to the event detection output.
5. The method of any one of claims 1 to 4, further comprising modifying the training data representations generated by simulating dispersion of the substance within the WDS based on baseline data representing emergency calls unrelated to the introduction event.
6. The method of any one of claims 1 to 5, wherein the training data representations include multiple training data representations generated by simulating dispersion of thesubstance after introduction at one or more demand nodes of the WDS while varying one or more simulation parameters.
7. The method of claim 6, wherein the one or more simulation parameters include a total amount of the substance introduced, an initial introduction time of the substance into the WDS, one or more introduction pattern coefficients, and an event duration time.
8. The method of any one of claims 1 to 7, further comprising training the event detection model using additional training data representations devoid of simulated dispersion of the substance within the WDS and generated based on baseline data representing emergency calls unrelated to the introduction event.
9. The method of any one of claims 1 to 8, wherein the input data representation is an input data image having pixel positions of the input data image representing the location data and pixel values of the input data image representing the timing data.
10. The method of claim 9, wherein the training data representations include training data images having pixel positions of the training data images representing locations of nodes of the WDS, and pixel values of the training data images representing presence and arrival times of the substance at that node during a simulated dispersion of the substance within the WDS.
11. The method of claim 10, wherein the pixel values of the input data image and the pixel values of the training data images are encoded using a grayscale, a hue saturation luminance scale, or a pixel resizing parameter.
12. The method of any one of claims 10 or 11, wherein the input data image and the training data images are 600x600 pixel images.
13. The method of any one of claims 9 to 12, wherein the event detection model is a convolutional neural network (CNN).
14. The method of any one of claims 1 to 8, wherein the input data representation is an input data graph, the input data graph being a N x N adjacency matrix, wherein N is anumber of demand nodes in the WDS, each matrix element representing a pipe connection between corresponding nodes, and a value of each matrix element representing the timing data.
15. The method of claim 14, wherein the training data representations include training data graphs, each training data graph being a N x N adjacency matrix, wherein N is a number of demand nodes in the WDS, each matrix element representing a pipe connection between corresponding nodes, and a value of each matrix element representing presence and arrival times of the substance at that node during a simulated dispersion of the substance within the WDS.
16. The method of any one of claims 14 or 15, wherein the event detection model is a graph neural network (GNN).
17. The method of any one of claims 1 to 16, wherein the introduction event includes a chemical attack event, an intentional contamination event, or an unintentional contamination event.
18. A system comprising a memory storing program instructions and a processor that is coupled to the memory to read and execute the program instructions which configure the processor to perform a method of detecting an introduction event of a substance into a WDS, wherein the method is defined according to any one of claims 1 to 17.
19. A non-transitory computer readable medium storing thereon program instructions that are executable by a processor for performing a method of detecting an introduction event of a substance into a WDS, wherein the method is defined according to any one of claims 1 to 17.