대전광역시 상수도 공개데이터를 자동 수집·정리해 관로 노후도, 유량 이상 후보, 점검 메모 분류를 한 화면에서 보여주는 토목 데이터 포트폴리오 프로젝트입니다.
상수도 유지관리는 현장 점검, 관로 정보, 유량 데이터, 민원성 메모가 흩어져 있어 우선순위를 빠르게 잡기 어렵습니다. 이 프로젝트는 공개 가능한 구·블록 단위 데이터를 활용해 다음 질문에 답하도록 만들었습니다.
- 어느 구의 관로 유지관리 우선순위가 높은가?
- 31년 이상 노후관 비율은 어느 정도인가?
- 월별 유량 변동이 큰 블록은 어디인가?
- 현장 점검 메모를 누수·파손·계량기·수압 유형으로 자동 분류할 수 있는가?
- 공공데이터 자동 다운로드:
data.go.kr의 대전 상수도사업본부 CSV 파일 4종을 내려받습니다. - 데이터 전처리: CP949 CSV를 읽어 관로연장, 노후도, 공사실적, 월별 유량 지표를 계산합니다.
- 유지관리 우선순위 점수화: 노후관 비율, 유량 변동, 개량 실적을 조합해 구별 점검 우선순위를 산정합니다.
- 유량 이상 후보 탐지: 결측, 월별 변동계수, 증가 추세, 급수전당 유량 상위 블록을 규칙 기반으로 탐지합니다.
- 점검표 자동 분류 데모: 현장 메모를 누수 의심, 시설물 파손, 계량기/검침, 급수 민원, 기타로 분류합니다.
- 정적 HTML 대시보드: 별도 백엔드 없이 브라우저에서 바로 확인할 수 있습니다.
현재 포함된 2024년 기준 데이터로 산출한 주요 지표입니다.
| Metric | Value |
|---|---|
| 총 관로연장 | 3,987.2 km |
| 31년 이상 노후관 비율 | 22.5% |
| 노후관 개량·블록구축 실적 | 38건 |
| 유량 이상 후보 블록 | 30개 |
| 월별 유량 블록 수 | 253개 |
- Python 3 standard library
- HTML, CSS, JavaScript
- Chart.js
- Public CSV data from
data.go.kr
| Dataset | Source |
|---|---|
| 수도관 총괄현황 | data.go.kr |
| 경년별 수도관 현황 | data.go.kr |
| 노후관개량 및 블록구축정비사업 추진실적 | data.go.kr |
| 월별 유량분석 | data.go.kr |
python3 download_data.py
python3 build_dashboard_data.py
python3 -m http.server 8787Then open:
http://127.0.0.1:8787/index.html
The dashboard also includes data/processed/dashboard_data.js, so the HTML can be served as a static site.
.
├── index.html
├── download_data.py
├── build_dashboard_data.py
├── data/
│ ├── raw/
│ └── processed/
└── assets/
- 개별 수도계량기 검침값은 개인정보·요금 데이터 성격이 있어 사용하지 않았습니다.
- 구별 노후관 비율은
경년별 수도관 현황의 관종별 31년 이상 비율을수도관 총괄현황의 구별 관종 구성에 적용한 추정치입니다. - 월별 유량의
0값은 유량계 고장, 보정, 결측 가능성을 고려해 평균 계산에서 제외했습니다. - 이상 후보 탐지는 실제 누수 판정이 아니라 현장 확인을 위한 우선순위 후보군입니다.
이 프로젝트는 토목 엔지니어가 AI·데이터 도구를 어떻게 실무형으로 활용할 수 있는지 보여주는 예시입니다. 단순히 차트를 그리는 데서 끝나지 않고, 현장 점검표 자동 분류와 유지관리 우선순위 산정까지 연결해 상수도 시설물 관리 업무 흐름을 데이터 기반으로 재구성했습니다.
