MaeMoo Monitor · Phase 1

Foundation & Data Collection Baseline

Phase 1 คือช่วงวางรากฐานของ MaeMoo Monitor เพื่อให้ระบบสามารถรับข้อมูลจริง เก็บข้อมูลย้อนหลัง บันทึกเหตุการณ์ในพื้นที่ และเชื่อมโยงข้อมูลจากหลายแหล่ง โดยให้ความสำคัญกับความถูกต้องของเวลา แหล่งที่มา และการตรวจสอบย้อนหลังได้

สถานะ: อยู่ระหว่างทบทวนและปิด Phase 1 ระบบใช้งานจริง: monitor.maemoo.vip ฐานข้อมูลปัจจุบัน: SQLite

Phase 1 มีเป้าหมายอะไร

เป้าหมายของ Phase 1 ไม่ใช่การสร้างระบบทั้งหมดให้เสร็จในครั้งเดียว แต่คือการสร้าง “ฐานข้อมูลและหลักฐาน” ที่น่าเชื่อถือพอสำหรับนำไปพัฒนาต่อในระยะยาว

1. รับและเก็บข้อมูลจริงเริ่มสะสมข้อมูลฝน ระดับน้ำ อัตราการไหล และข้อมูลเหตุการณ์จากแหล่งจริง
2. แสดงข้อมูลพื้นฐานมี Dashboard และแผนที่สำหรับดูสถานการณ์เบื้องต้น
3. บันทึกเหตุการณ์ในพื้นที่เก็บเวลา สถานที่ รายละเอียด ภาพ และสถานะการตรวจสอบ
4. รับข้อมูลจากชุมชนให้ประชาชนส่งข้อมูลภาคสนามเข้าสู่ระบบได้
5. เชื่อมข้อมูลจากภายนอกเริ่มรวบรวมข้อมูลจาก DWR, ThaiWater และแหล่งราชการอื่น
6. แยกเวลาข้อมูลอย่างถูกต้องแยกเวลาที่วัดจริงออกจากเวลาที่ระบบดึงข้อมูล
7. สะสมข้อมูลย้อนหลังสร้าง historical dataset สำหรับการศึกษาเหตุการณ์ในอนาคต
8. สร้างเอกสารกำกับระบบมี Data Dictionary และเอกสารอธิบายว่าแต่ละข้อมูลคืออะไร มาจากไหน และใช้เพื่ออะไร

สิ่งที่ทำไปแล้ว

ทำแล้ว MaeMoo Monitor Core ระบบ FastAPI + SQLite ทำงานจริงบน Production พร้อม Dashboard และฐานข้อมูลสำหรับข้อมูลน้ำและเหตุการณ์
ทำแล้ว Dashboard มีข้อมูลสรุป ตัวเลข กราฟ ช่วงวันที่ รองรับ Desktop/Mobile และมีการ refresh เฉพาะส่วนเพื่อลดการกระพริบของหน้า
พัฒนาแล้วบางส่วน DWR Telemetry เริ่มเชื่อมข้อมูลฝน ระดับน้ำ อัตราการไหล และสถานีจากกรมทรัพยากรน้ำ พร้อมตรวจพบประเด็นเรื่องข้อมูลล่าสุด ข้อมูลค้าง และข้อมูลที่หายไป
พัฒนาแล้วบางส่วน Station Map มีแผนที่สถานี แสดงข้อมูลฝน เวลา และ metadata แต่ยังต้องตรวจ data freshness และ coverage ของสถานีเพิ่มเติม
ทำแล้ว Event Log รองรับรายการเหตุการณ์ หน้ารายละเอียด การตรวจสอบโดย Admin ประวัติการเปลี่ยนแปลง รูปภาพ หมวดหมู่ และการแก้ไขข้อมูล
ทำแล้ว LINE Community Reporting มี workflow รับข้อมูลเหตุการณ์ วันเวลา สถานที่ รายละเอียด รูปภาพ และหมวดหมู่จากชุมชนเข้าสู่ Event Log
ศึกษาและทดสอบแล้ว ThaiWater API ยืนยัน API จริงของ ThaiWater และทดลองดึงข้อมูลฝน รวมถึงข้อมูลย้อนหลังจาก payload จริงแล้ว
เริ่มต้นแล้ว Historical Dataset เริ่มมีการเก็บข้อมูลบางส่วนแล้ว แต่ยังต้องทำ collector อัตโนมัติและระบบตรวจคุณภาพข้อมูลให้ครบถ้วน

หลักการสำคัญของข้อมูล

เวลาที่แสดง ต้องเป็นเวลาที่ข้อมูลถูกตรวจวัดจริง ไม่ใช่เวลาที่ MaeMoo Monitor ไปดึงข้อมูลมา

ข้อมูลจากระบบภายนอกจึงต้องพยายามแยกเวลาอย่างน้อยเป็น:

แนวคิดนี้มีความสำคัญมาก เพราะช่วยแยกกรณีที่ “เพิ่ง fetch” ออกจาก “ข้อมูลเพิ่งถูกวัด” ซึ่งเป็นคนละเรื่องกัน

ข้อมูลภาคสนาม: Local Ground Truth

MaeMoo Monitor ให้ความสำคัญกับข้อมูลจากคนในพื้นที่ เพราะข้อมูลจากประชาชนสามารถช่วยบอก เวลาเกิดเหตุ จุดที่ได้รับผลกระทบ สภาพจริงของลำน้ำ ถนน บ้านเรือน และพื้นที่เกษตร ได้ละเอียดกว่ารายงานภาพรวมระดับอำเภอหรือจังหวัด

Field Report คือ Local Ground Truth ที่ต้องเก็บแยกจากข้อวิเคราะห์และคำอธิบายของหน่วยงาน

ระบบจึงพยายามแยกข้อมูลออกเป็น 3 ชั้น:

  1. Observation — สิ่งที่วัดหรือสังเกตได้จริง
  2. Official Attribution — คำอธิบายหรือการวิเคราะห์จากหน่วยงาน เช่น กรมอุตุนิยมวิทยา
  3. MaeMoo Analysis — ข้อวิเคราะห์ที่จัดทำภายในโครงการ

สิ่งที่ยังต้องทำก่อนปิด Phase 1

ต้องทำ ThaiWater Collector ทำระบบดึงข้อมูลอัตโนมัติทุกประมาณ 30 นาที เพื่อเริ่มสะสมข้อมูลย้อนหลังอย่างต่อเนื่อง
ต้องทำ Fetch Log บันทึกผลของการดึงข้อมูลแต่ละครั้ง เพื่อแยก API ล้มเหลว ข้อมูลไม่อัปเดต ไม่มีข้อมูล และไม่มีฝนออกจากกัน
ต้องทำ Raw Source Data เก็บข้อมูลต้นฉบับหรือข้อมูลที่เพียงพอสำหรับตรวจสอบย้อนกลับถึงแหล่งที่มา
ต้องตรวจ Rain / Water Level / Flow ตรวจว่า Phase 1 ควรเก็บข้อมูลทั้งสามประเภทจาก ThaiWater ตั้งแต่ตอนนี้หรือไม่ แม้ยังไม่แสดงทั้งหมดบน Dashboard
ต้องตรวจ Data Freshness ตรวจว่าสถานีใดอัปเดตจริง สถานีใด stale และสถานีใดขาดข้อมูล
ต้องทำ Data Dictionary จัดทำเอกสารอธิบายตาราง ฟิลด์ หน่วย เวลา แหล่งข้อมูล ความหมาย และข้อจำกัดของข้อมูล
ต้องทำ Phase 1 Documentation สรุประบบที่มีอยู่จริง วิธีทำงาน แหล่งข้อมูล และขอบเขตของ Phase 1
ขั้นตอนปิดเฟส Backup & Git Milestone สำรองระบบ ตรวจความเรียบร้อย และสร้าง Git tag สำหรับจุดสิ้นสุดของ Phase 1

ข้อมูลที่ระบบจะรองรับในอนาคต

แม้ Phase 1 ยังไม่ได้ติดตั้งเซนเซอร์ทุกประเภท แต่การออกแบบระยะยาวต้องรองรับข้อมูลสิ่งแวดล้อมและอุทกวิทยาหลายชนิด โดยไม่จำเป็นต้องรีบสร้าง schema ขนาดใหญ่ทั้งหมดบน SQLite ใน Phase 1

อุตุนิยมวิทยา อุณหภูมิ ความชื้น ความกดอากาศ ลม ความเร็วลม ทิศลม ลมกระโชก ฝน และความเข้มฝน
ดิน ความชื้นดิน อุณหภูมิดิน EC และในอนาคต soil matric potential โดยรองรับหลายระดับความลึก
อุทกวิทยา ระดับน้ำ ระดับน้ำอ้างอิงระดับทะเลปานกลาง อัตราการไหล และ discharge
บริบทภัยพิบัติ พายุหมุนเขตร้อน ดีเปรสชัน หย่อมความกดอากาศต่ำ ร่องมรสุม มรสุม เส้นทางพายุ และคำอธิบายจากหน่วยงาน

ภาพระยะยาวของ MaeMoo Monitor

เป้าหมายในระยะยาวคือพัฒนา MaeMoo Monitor จากระบบติดตามข้อมูล ไปสู่ MaeMoo Basin Data Platform ที่เชื่อมโยงข้อมูลตรวจวัด เหตุการณ์ หลักฐานภาคสนาม ข้อมูลจากหน่วยงาน และการวิเคราะห์เชิงลุ่มน้ำเข้าด้วยกัน

Phase 1 — Foundation / Data Collection Baseline

รับข้อมูลจริง เก็บข้อมูลย้อนหลัง บันทึกเหตุการณ์ สร้างความถูกต้องของเวลาและแหล่งที่มา

Phase 2 — Unified Observation Database

ย้ายฐานข้อมูลหลักไป PostgreSQL + PostGIS จัดระบบสถานี แหล่งข้อมูล และคุณภาพข้อมูลให้เป็นมาตรฐานเดียวกัน

Phase 3 — Local Sensor Network

เพิ่มเครือข่ายเซนเซอร์ฝน อากาศ ลม ดิน และระดับน้ำในพื้นที่ลุ่มน้ำ

Phase 4 — Atmospheric & Disaster Knowledge

เชื่อมเหตุการณ์พายุ มรสุม น้ำท่วม ดินถล่ม การกัดเซาะ และหลักฐานทางประวัติศาสตร์

Phase 5 — Analysis / Early Warning / AI

พัฒนา rainfall–runoff, flood-wave routing, travel time, local thresholds และ people-centred early warning

Phase 1 จะถือว่าเสร็จเมื่อใด

Phase 1 จะไม่ปิดเพียงเพราะหน้าเว็บใช้งานได้ แต่จะปิดเมื่อมีหลักฐานว่าฐานข้อมูลและระบบเก็บข้อมูลมีความน่าเชื่อถือเพียงพอสำหรับพัฒนาต่อ

  1. ตรวจโครงสร้างฐานข้อมูลและระบบที่มีอยู่จริงครบถ้วน
  2. ตรวจความหมายของ timestamp และแยกเวลาตรวจวัดจริงออกจากเวลา fetch
  3. ตรวจ DWR และ Station Map เรื่องข้อมูลล่าสุดและข้อมูลค้าง
  4. ทำ ThaiWater collector อัตโนมัติ
  5. มี fetch log และระบบแยก failure / no-data / stale / no-rain
  6. เริ่มสะสม historical dataset อย่างต่อเนื่อง
  7. จัดทำ Data Dictionary และเอกสารสถาปัตยกรรม Phase 1
  8. สำรองระบบและสร้าง Git milestone/tag ก่อนเปิด Phase 2
เป้าหมายของการปิด Phase 1 คือ “รู้ว่ามีข้อมูลอะไร อยู่ที่ไหน มาจากไหน วัดเมื่อไร เชื่อถือได้แค่ไหน และตรวจย้อนหลังอย่างไร”