AquaSense-ICS: A Hybrid Real–Simulated Cyber-Physical Dataset and Leakage-Aware Benchmark for Smart Water Quality Monitoring and Attack Detection
Abstract
AquaSense-ICS: a hybrid real-simulated cyber-physical dataset and leakage-aware benchmark for smart water quality monitoring and attack detection Machine-learning research on water cyber-physical systems is constrained by datasets that are either real but chemically poor, or simulated but free of sensing noise and attacks. AquaSense-ICS co-registers, on a common elapsed-time axis: Real edge recording: a 25.4 h window (8.0 h of recorded data, 31.5% coverage, 23 gaps longer than 60 s) from a Raspberry Pi 5 node with a TDS probe and a Bosch BME680 ambient sensor (temperature, relative humidity, gas resistance), sampled every 1-2 s (23,688 records). EPANET-MSX simulation: a looped network of 13 nodes (10 junctions, 2 reservoirs, 1 tank) simulated for 24 h, with six water-quality species (chlorine, pH, turbidity, dissolved oxygen, conductivity, trihalomethanes) and one wall species, plus two pulse injections (chlorine at J3, turbidity at J7). Attack and fault library: a seeded generator of five cyber-attack types (false data injection, stealthy FDI, replay, denial of service, drift) and three unintentional sensor faults (white noise, spikes, extreme values), with sample-level ground truth. Augmented and TimeGAN-generated sequences, released in separate files and flagged by the origin column in the fused table. They are intended for training only. The accompanying paper also shows that random row splits combined with labels computed from the input features give near-perfect but uninformative scores, and defines a leakage-aware benchmark (chronological splits, held-out attack types). Files Real_data.csv: raw real sensor record (23,688 rows)simulated_data.csv: EPANET-MSX output, 24 hourly states, 78 variables (6 species x 13 nodes)synthetic_data.csv: TimeGAN sensor sequences (23,688 rows)augmented_data.csv: jittered, scaled, warped, sliced and permuted variants of the four sensor channelsfused_data.csv: real and TimeGAN rows (47,376 rows) with simulated variables, attack and fault labels, and water-quality labelsdictionary.csv: column dictionarysplits.json: official benchmark splits (chronological splits, held-out attack types) The code, the EPANET/EPANET-MSX model files (.inp, .msx) and the benchmark scripts are on GitHub: https://github.com/nejiamal3-oss/aquasense