pipelinewatch-leak-detector / eval_results.json
alirezaaminzadeh's picture
Add mass-balance config + LSTM-AE (ONNX/pt) + NPW localization eval_results.json
97a4932 verified
Raw
History Blame Contribute Delete
5.98 kB
{
"protocol": {
"honesty": "100% synthetic hydraulic/SCADA simulation (see src/pipelinewatch/simulate.py). Pipeline length (60 km), pressure-wave speed (1.1 km/s), and the friction/pressure relationship are ASSUMED textbook-typical values -- NOT calibrated to any real, named pipeline or customer asset. A real pilot deployment must replace/calibrate these constants against actual SCADA historian data from the specific line before any number below, especially the NPW localization error, is trusted for field use.",
"n_episodes": 180,
"n_train_episodes": 126,
"n_test_episodes": 54,
"sample_interval_s": 5,
"severity_bands_pct_of_nominal_flow": {
"small": [
1,
3
],
"medium": [
3,
8
],
"large": [
8,
20
]
},
"mass_balance_calibration": {
"window_samples": 36,
"persist_windows": 6,
"k": 3.0,
"threshold": 1.7525218250941839,
"note": "mu/sigma/k calibrated on normal-only TRAIN episodes only; detection_rate/false_alarm below is measured on held-out TEST episodes."
}
},
"mass_balance": {
"small": {
"n_episodes": 8,
"detection_rate": 1.0,
"mean_ttd_s": 91.25,
"median_ttd_s": 82.5
},
"medium": {
"n_episodes": 8,
"detection_rate": 1.0,
"mean_ttd_s": 66.25,
"median_ttd_s": 70.0
},
"large": {
"n_episodes": 8,
"detection_rate": 1.0,
"mean_ttd_s": 52.5,
"median_ttd_s": 52.5
},
"overall": {
"n_episodes": 24,
"detection_rate": 1.0,
"mean_ttd_s": 70.0,
"median_ttd_s": 67.5
},
"false_alarm": {
"n_normal_episodes": 30,
"episodes_with_false_alarm_fraction": 0.16666666666666666,
"mean_false_alarms_per_hour": 0.3557202408522464
}
},
"lstm_ae": {
"small": {
"n_episodes": 8,
"detection_rate": 1.0,
"mean_ttd_s": 50.0,
"median_ttd_s": 52.5
},
"medium": {
"n_episodes": 8,
"detection_rate": 1.0,
"mean_ttd_s": 43.125,
"median_ttd_s": 42.5
},
"large": {
"n_episodes": 8,
"detection_rate": 1.0,
"mean_ttd_s": 30.625,
"median_ttd_s": 35.0
},
"overall": {
"n_episodes": 24,
"detection_rate": 1.0,
"mean_ttd_s": 41.25,
"median_ttd_s": 40.0
},
"false_alarm": {
"n_normal_episodes": 30,
"episodes_with_false_alarm_fraction": 0.7,
"mean_false_alarms_per_hour": 3.8418079096045186
},
"training_history": {
"best_val_mse": 0.03187253326177597,
"epochs_ran": 25.0
},
"threshold": 0.0505700446665287,
"window_samples": 36
},
"npw_localization": {
"n_localized": 24,
"mean_abs_error_km": 13.373748620341866,
"median_abs_error_km": 8.42794804230748,
"by_severity": {
"small": {
"n": 8,
"mean_abs_error_km": 12.681819882133222,
"median_abs_error_km": 15.265277817152366
},
"medium": {
"n": 8,
"mean_abs_error_km": 13.716801975487986,
"median_abs_error_km": 7.878984101297062
},
"large": {
"n": 8,
"mean_abs_error_km": 13.722624003404391,
"median_abs_error_km": 5.783308992666312
}
},
"method": "Cross-correlation of high-pass-filtered inlet/outlet pressure around the detection time; location_km_from_inlet = 0.5*(L + c*dt).",
"based_on_detector": "mass_balance",
"caveat": "Best-effort/demo-grade estimator, not a calibrated field system. Accuracy degrades substantially for small leaks (weak signal-to-noise) -- see by_severity breakdown."
},
"primary_detector": "mass_balance",
"primary_detector_rationale": "detection_rate tied (1.00); mass_balance has a lower false-alarm rate (0.36/h vs lstm_ae 3.84/h) on held-out normal test episodes, so it is recommended as the primary/first-line trigger. lstm_ae detects leaks faster on average (lower time-to-detect) and is recommended as a fast corroborating secondary signal, not as the sole trigger, given its higher false-alarm rate on this synthetic data.",
"published_baselines": [
{
"method": "Statistical volume/mass balance LDS (field deployment survey)",
"finding": "Reported sensitivity/response ranges from a 0.5% leak detected within 5 minutes on a short, well-instrumented segment, down to a 12% leak in 180 minutes on a >400 km large-separation offshore segment (sensitivity is strongly limited by sensor spacing and transient operations, not a single fixed number).",
"citation": "Atmosi, 'The challenges for effective leak detection on large diameter pipelines' (field deployment case studies). https://www.atmosi.com/us/news-events/blogs/the-challenges-for-effective-leak-detection-on-large-diameter-pipelines/"
},
{
"method": "Mass-balance leak detection with packing-term correction (transient flow)",
"finding": "Detection threshold of about 3% of mass flow over several minutes, contingent on pressure-wave-velocity uncertainty being minimized.",
"citation": "Pipeline leak detection based on mass balance: Importance of the packing term (transient-flow mass-balance LDS study). https://www.academia.edu/17624416/Pipeline_leak_detection_based_on_mass_balance_Importance_of_the_packing_term"
},
{
"method": "Unsupervised autoencoder-integrated model (TKAN-AE) on real urban pipeline field data",
"finding": "93.1% segment-wise precision detecting simulated leaks injected into real urban water-pipeline SCADA data (Shanghai field experiments).",
"citation": "Temporal Kolmogorov-Arnold Network with Autoencoder Integration for unsupervised pipeline leak detection. Sensors 2025, 25(2), 384. https://www.mdpi.com/1424-8220/25/2/384"
}
],
"pipeline_seconds": 113.9
}