Description
This is the first fully labeled open dataset for leak detection and localization in water distribution systems. This dataset includes two hundred and eighty signals acquired from a laboratory-scale water distribution testbed with four types of induced leaks and no-leak. The testbed was 47 m long built from 152.4 mm diameter PVC pipes. Two accelerometers (A1 and A2), two hydrophones (H1 and H2), and two dynamic pressure sensors (P1 and P2) were deployed to measure acceleration, acoustic, and dynamic pressure data. The data were recorded through controlled experiments where the following were changed: network architecture, leak type, background flow condition, background noise condition, and sensor types and locations. Each signal was recorded for 30 seconds. Network architectures were looped (LO) and branched (BR). Leak types were Longitudinal Crack (LC), Circumferential Crack (CC), Gasket Leak (GL), Orifice Leak (OL), and No-leak (NL). Background flow conditions included 0 L/s (ND), 0.18 L/s, 0.47 L/s, and Transient (background flow rate abruptly changed from 0.47 L/s to 0 L/s at the second 20th of 30-second long measurements). Background noise conditions, with noise (N) and without noise (NN), determined whether a background noise was present during acoustic data measurements.
How to Use
Accelerometer and dynamic pressure data are in ‘.csv’ format, and the hydrophone data are in ‘.raw’ format with 8000 Hz frequency. The file Python code to convert raw acoustic data to pandas DataFrame.py converts the raw hydrophone data to DataFrame in Python.
Usage in Python
This benchmark is also available through the WaterBenchmarkHub under the key “LeakTestbed”:
from water_benchmark_hub import load
leak_testbed = load("LeakTestbed")
data = leak_testbed.load_data()
This loads the data without background noise. To further subset the scenarios, the following parameters can be used:
- network can be ‘branched’ or ‘looped’
- background demand and leak types are defined by the corresponding enum classes
- leak types: circumferential_crack, gasket_leak, longitudinal_crack, no_leak, orifice_leak
- background demands: zero, small (0.18 LPS), large (0.47 LPS), transient
- background noise can be True or False
The following example load all datasets of the branched network without background noise, of the leak types orifice leak or gasket leak and with a large background demand.
from water_benchmark_hub import load
from water_benchmark_hub.leak_testbed import LeakType, Demand
leak_testbed = load("LeakTestbed")
data = leak_testbed.load_data(network='branched',
leak_types=(LeakType.GASKET_LEAK, LeakType.ORIFICE_LEAK),
demands=Demand.LARGE)
Reference
Mohsen Aghashahi, Lina Sela, M. Katherine Banks (2022). Benchmarking dataset for leak detection and localization in water distribution systems. In: Data in Brief