# DDS Bangkok — ข้อมูลระดับน้ำและปริมาณฝน กรุงเทพมหานคร

รวบรวมข้อมูลระดับน้ำในคลอง/แม่น้ำ และปริมาณฝน จากระบบของสำนักการระบายน้ำ กรุงเทพมหานคร (DDS) พร้อมแดชบอร์ดโต้ตอบสำหรับดูข้อมูล

**ช่วงข้อมูล:** 23–29 กันยายน 2569 · **สถานีระดับน้ำ:** 312 สถานี (ความถี่ 5 นาที) · **สถานีวัดฝน:** 132 สถานี (ความถี่ 30 นาที)

## โครงสร้างโปรเจกต์

```
water_station/     ตารางอ้างอิงสถานี (พิกัด ชื่อ รหัส เขต คลอง เกณฑ์เตือนภัย) + แผนที่
data/water_level/  ข้อมูลระดับน้ำ (CSV) ราย 5 นาที
data/rain/         ข้อมูลปริมาณฝน (CSV) ราย 30 นาที และแบบแยกละเอียดถึง 5 นาที
artifacts/         แดชบอร์ดโต้ตอบ (ไฟล์ HTML เดี่ยว เปิดในเบราว์เซอร์ได้ทันที)
docs/              บันทึกการสำรวจ API/endpoint ของระบบ DDS
```

## แดชบอร์ด (`artifacts/`)

ไฟล์ HTML ทุกไฟล์ฝังข้อมูลไว้ในตัวเอง เปิดด้วยการดับเบิลคลิกได้เลย ไม่ต้องรัน server:

| ไฟล์ | รายละเอียด |
|---|---|
| `04_water_dashboard_combined.html` | แดชบอร์ดหลัก — แถบเลือกช่วงเวลา, แผนที่สถานี, ฮีตแมปอัตราเปลี่ยนแปลง, กราฟรายสถานีพร้อมเส้นแจ้งเตือน/วิกฤต, ตารางค้นหา/เรียงลำดับ |
| `00_rain_dashboard.html` | แดชบอร์ดปริมาณฝนรายสถานี |
| `02_level_dashboard.html`, `03_rate_heatmap.html` | เวอร์ชันย่อยของแดชบอร์ดหลัก (แยกเฉพาะกราฟระดับน้ำ / เฉพาะฮีตแมป) |
| `01_bcn01_chart.html` | ตัวอย่างกราฟสถานีเดียว (WL.BCN.01) |

## หมายเหตุคุณภาพข้อมูล

- **`water_station/water_level_data.json`** — เวอร์ชันที่ผ่านการกรองสัญญาณรบกวนแล้ว (ตัด spike จุดเดียวที่เกิดจาก sensor หลุดสัญญาณ 909 จุด จาก 35 สถานี ด้วย median filter หน้าต่าง 7 จุด) ใช้โดยแดชบอร์ดทั้งหมด
- **`water_station/water_level_data_raw.json`** — ข้อมูลดิบก่อนกรอง เก็บไว้เผื่อต้องตรวจสอบย้อนหลังหรือปรับ threshold ใหม่
- **59 สถานี** ถูกตั้งค่าสถานะว่าอยู่ใกล้บ่อสูบ/สถานีสูบน้ำ — ระดับน้ำจะขึ้นลงเป็นรอบตามการทำงานของปั๊ม ไม่ใช่ noise แต่ก็ไม่ได้สะท้อนระดับน้ำในคลองจริงเสมอไป แดชบอร์ดจะติด badge เตือนและไม่รวมสถานีกลุ่มนี้ในสถิติภาพรวม/อันดับ (ดูรายละเอียดใน `data/water_level/water_level_23-29sep_station_summary.csv` คอลัมน์ `likely_pump_sump`)
- ระบบ weather.bangkok.go.th (แหล่งข้อมูลระดับน้ำหลัก) ไม่มีพิกัด lat/long — พิกัดใน `water_station/data/stations.csv` มาจากการรวบรวมเพิ่มเติมจากหลายแหล่ง (ดู README ในโฟลเดอร์นั้น)

## แหล่งข้อมูล

- ระดับน้ำ: `weather.bangkok.go.th/water/WaterHistory` (ระบบ Telemetry, ~312 สถานี, อัปเดตล่าสุด)
- ปริมาณฝน + ข้อมูลเสริม: `flood.bangkok.go.th/api` (Drainage Information System, ~34 สถานีระดับน้ำ + ~132 สถานีวัดฝน)
- รายละเอียด endpoint และวิธีเรียกข้อมูล อยู่ใน `docs/dds_bangkok.md`

ข้อมูลเป็นทรัพย์สินของสำนักการระบายน้ำ กรุงเทพมหานคร ก่อนนำไปใช้งานต่อหรือเผยแพร่ ควรตรวจสอบเงื่อนไขการใช้ข้อมูลของหน่วยงานเจ้าของ

## หมายเหตุขนาดไฟล์

`data/water_level/water_level_23-29sep_5min.csv.gz` คือไฟล์ CSV เดิม (~82MB) บีบอัดด้วย gzip เหลือ ~1.4MB — แตกไฟล์ก่อนใช้งานด้วย:

```
gunzip -k water_level_23-29sep_5min.csv.gz
```

หรือเปิดตรงจาก pandas ได้เลยโดยไม่ต้องแตกไฟล์ก่อน: `pd.read_csv("water_level_23-29sep_5min.csv.gz")` (pandas รองรับ gzip อัตโนมัติ)
