{ "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 }