수리 모델 + 통계 · 상수도 사업자

야간 유량 누수 탐지기

공개 벤치마크 BattLeDIM의 관망에서 누수를 찾고, 누수 가능성이 가장 높은 관로의 순위를 매깁니다. 아무 관로나 클릭해 직접 누수를 만들어 보세요.

직접 실행해 보기

01

개요

L-Town은 공개 벤치마크 BattLeDIM의 관망으로, 관로 43 km, 시뮬레이션된 압력 센서 33개, 유량계 세 개, 스마트 미터 82개를 갖춘 시뮬레이션 도시입니다. 2019년 데이터에는 그해 시작된 누수 19건이 숨어 있습니다. 저희는 상수도 엔지니어가 이미 쓰는 도구, 즉 수리 모델, 야간 최소 유량을 활용한 물수지, 압력 잔차로 이 관망의 누수 탐지기를 만들었습니다. 모델은 2018년 데이터로 보정했고, 탐지 임계값은 2018년 데이터만으로 자동 탐색해 정했습니다.

누수를 찾는 일과 위치를 특정하는 일에는 서로 다른 시간대를 씁니다. 점진적 누수 검정은 01:00~05:00의 물수지를 읽습니다. 이 시간대에는 사용량이 가장 적어, 유입량에서 누수가 차지하는 비중이 커지기 때문입니다. 별도의 파열 검정은 매시간 감시합니다. 위치 추정에는 하루 전체의 압력을 사용합니다. 이 모델의 3월 어느 날을 보면, 19:00에 누수가 만드는 압력 변화는 04:00의 약 1.7배입니다. 경보마다 센서에서의 압력 변화를, 모든 절점에 모의 누수를 넣은 결과와 비교합니다(각 관로는 양 끝 절점의 평균값을 취함). 그 뒤 후보 관로 집합이 시간 단위로 좁혀집니다.

2019년 데이터에서 이 방법은 그해 시작된 누수 19건 중 14건을 찾았습니다. 오경보는 7건이었고, 이와 별도로 13건의 보고가 이미 알려진 누수에 해당했습니다. 7건은 이 방법이 앞서 보고한 누수, 6건은 2018년부터 이어진 누수 하나에 대한 것입니다. BattLeDIM 채점 규칙으로 평가하면, 누수 19건 전체로 손실되는 물의 가치 €355,472 가운데 찾아낸 14건의 가치는 작업 인력 비용을 빼고 €289,028입니다. 압력 센서 33개 중 10개만 쓰면(유량계는 그대로) 19건 중 10건을 찾았습니다. 또한 L-Town은 실제 도시보다 데이터가 깨끗합니다. 추정 가정 사용량에 일별 2 % 오차를 넣자, 같은 방법은 두 차례의 시험 실행에서 19건 중 8~12건을 찾았습니다. 임베드된 뷰에서는 수리 해석기가 브라우저에서 실행됩니다. 아무 관로나 클릭해 누수를 만들어 보세요.

02

검증 방법

  • 모델은 2018년 데이터로 보정했습니다. 탐지 임계값은 2018년 데이터만으로 자동 탐색해 정했습니다.
  • 2019년 정답은 2020년부터 공개되어 있었고, 방법을 개발하는 동안 저희도 볼 수 있었습니다. 따라서 이는 이미 풀린 벤치마크에 대한 풀이 결과이며, 블라인드 테스트가 아닙니다.
  • 2018년에 같은 수준의 성적을 낸 다른 임계값 설정은 누수 19건 중 9~16건을 찾습니다(중앙값 13건).
  • 2018년부터 이어진 누수가 네 건 더 있습니다. 공개된 2018년 누수 파일에 명시되어 있으므로 집계하지 않습니다.
  • 점수는 BattLeDIM 채점 규칙을 따르며, 주최 측 채점 코드를 Python으로 이식해 저희가 직접 계산했습니다. 이식한 코드는 주최 측이 공개한 예시 보고서의 점수를 센트 단위까지 재현합니다.
03

구현 내용

  • 누수가 없는 2018년 시간대로 보정한 L-Town 수리 모델(WNTR + EPANET). 보정에 쓰지 않은 시간대에서 압력 오차는 RMSE 3.7 cm이며, 보정 전에는 7.8 cm였습니다.
  • 두 급수 구역의 물수지. 수요는 스마트 미터 82개로 추정했으며, 이 미터는 모두 한 구역에 있습니다. 이 물수지에 야간 최소 유량 변화 검정(CUSUM)과 파열 검정을 적용합니다.
  • 압력 시그니처에 의한 누수 위치 추정: 모든 절점에 모의 누수를 넣고, 측정된 압력 잔차의 변화와 비교합니다. 결과는 매시간 갱신되는 후보 관로의 순위 집합입니다.
  • 대회 자체 채점 규칙에 따른 평가. 대조군으로 센서 10개 시험과 무작위 센서 조합 다섯 가지를 사용했습니다.
  • 보정된 모델을 브라우저에서 푸는 EPANET 해석기(WebAssembly). 관로를 클릭하고 누수 규모와 데이터 시간 수를 정하면, 후보 집합이 형성되는 과정을 볼 수 있습니다.
04

기술 스택

Python, WNTR, EPANET 2.2, NumPy, SciPy, pandas · epanet-js(WebAssembly로 컴파일한 EPANET), three.js

05

주요 수치

모든 수치는 공개 BattLeDIM 벤치마크 관망인 L-Town(시뮬레이션 도시)에서 저희가 직접 실행해 얻었습니다. "BattLeDIM 규칙"은 주최 측이 공개한 채점 방식을 저희가 직접 실행한 것을 뜻합니다. 관로를 따라 300 m 이내이고 누수의 시간 창 안에 있으면 발견으로 인정합니다. 물의 가치는 €0.80/m³로 계산하고, 오경보 한 건에는 €500의 비용이 듭니다. 발견 한 건에는 거리에 비례해 최대 €500까지 작업 인력 시간 비용을 부과하며, 반복 방문에는 비용을 부과하지 않습니다.

수치측정 방법
2019년에 시작된 누수 19건 중 14건 발견

2018년부터 이어진 누수는 집계하지 않았습니다.

€355,472 중 €289,028

BattLeDIM 규칙에 따라, 발견한 14건으로 절약한 물의 가치에서 작업 인력 비용을 뺀 값입니다. €355,472는 19건을 모두 시작 시점에 보고했을 때의 가치입니다.

오경보 7건, 그리고 알려진 누수에 대한 보고 13건

총 34건을 보고했습니다. 오경보는 건당 €500의 비용이 듭니다. 13건은 이미 알려진 누수에 대한 보고였으며(7건은 이 방법이 앞서 보고한 누수, 6건은 2018년부터 이어진 누수 하나), BattLeDIM 점수에서는 비용을 부과하지 않습니다.

파열부터 경보까지 약 3 h(1.6~24 h)

발견한 급격한 누수 7건으로, 경보 판단에 쓴 한 시간 분량 데이터가 끝나는 시점까지를 쟀습니다. 위치는 경보 후 24 h에 보고하며, 이 지연은 2018년 데이터로 정했습니다.

점진적 누수는 발생 후 5~53일에 경보(보고는 6~54일)

발견한 점진적 누수 7건입니다. 유량이 거의 없는 상태에서 시작해 몇 주에 걸쳐 커집니다.

저희가 지목한 관로에서 실제 누수 관로까지 중앙값 171 m(50~294 m)

발견한 누수 14건 기준이며, 채점과 같은 방식으로 관로를 따라 중심에서 중심까지 쟀습니다.

파열의 경우 보고 시점 후보 집합의 관로 17~77개

적합도가 최적값에서 일정한 여유 범위 안에 있는 관로입니다. 잔차 노이즈(측정 압력 − 모델 압력)는 2018년 데이터로 측정했습니다. 점진적 누수에서는 후보 집합이 구역 전체로 남는 경우가 많습니다.

보정 모델의 압력 오차 3.7 cm

보정에 쓰지 않은 2018년의 누수 없는 61시간 동안 센서 33개에서 구한 RMSE이며, 보정 전에는 7.8 cm입니다.

센서 10개로 19건 중 10건, €181,058, 오경보 15건

압력 센서 33개 중 고정 간격 규칙으로 고른 10개를 사용했으며, 유량계와 스마트 미터는 그대로 두었습니다. 무작위로 고른 10개 조합 다섯 가지는 4~12건을 찾았습니다.

수요 오차 2 %에서 19건 중 8~12건

추정 가정 사용량에 일별 2 % 오차를 더하고 나머지 설정은 그대로 둔 시험 실행 두 차례의 결과입니다.

다른 임계값에서 19건 중 9~16건

2018년에 최고 점수의 5 % 이내를 기록한 임계값 설정 37가지를 각각 2019년에 실행한 결과입니다(중앙값 13건).

브라우저에서 누수 시나리오당 0.5 ms

임베드된 절점 782개 모델의 정상상태 EPANET 해석 시간 중앙값으로, M1 Pro 노트북의 Chromium에서 측정했습니다. 휴대폰에서는 더 느립니다.

06

스틸 이미지

07

직접 실행해 보기

브라우저에서 실행되는 인터랙티브 뷰입니다. 열기 전에는 아무것도 불러오지 않습니다.

직접 실행해 보기 2.2 MB 다운로드

이와 비슷한 과제가 있으신가요?

계산하거나 시뮬레이션하거나 결정해야 할 내용을 알려 주시면, 저희가 어떻게 접근할지 말씀드리겠습니다.

과제 문의하기 AI·머신러닝