DOCUMENTATION · V1
แหล่งข้อมูลและวิธีการวิเคราะห์
ข้อมูลมาจากไหน และ Flood Intelligence นำมาประเมินสถานการณ์อย่างไร
ข้อมูลต้นทางอาจมีความล่าช้าและความแตกต่างระหว่างสถานี โปรดตรวจสอบเวลาข้อมูลล่าสุดก่อนใช้ประกอบการตัดสินใจ
Flood Intelligence คืออะไร
Flood Intelligence เป็นระบบที่รวบรวมข้อมูลสถานการณ์น้ำจากแหล่งข้อมูลต้นทาง แล้วนำมาประมวลผล วิเคราะห์แนวโน้ม ประเมินระดับความเสี่ยง และแสดงผลบนเว็บ เพื่อช่วยให้ติดตามสถานการณ์น้ำได้ง่ายขึ้น
ระบบไม่ได้สร้างค่าระดับน้ำหรือปริมาณฝนขึ้นเอง ค่าที่แสดงมาจากข้อมูลที่หน่วยงานส่งเข้าสู่แหล่งต้นทาง และจากการคำนวณตามสูตรที่กำหนดไว้บนเซิร์ฟเวอร์
เวอร์ชันที่ใช้งานสาธารณะขณะนี้ (V1) ครอบคลุมเครือข่ายเฝ้าระวังแม่น้ำเจ้าพระยา 5 จุดสถานี ไม่ใช่ระบบครอบคลุมทั้งประเทศ
แหล่งข้อมูล
V1 ดึงข้อมูลผ่าน ThaiWater API สาธารณะ
- ระดับน้ำ:
waterlevel - ฝนสะสม 24 ชม.:
rain_24h
ข้อมูลระดับน้ำที่ใช้จริง
waterlevel_msl— ระดับน้ำปัจจุบันwaterlevel_msl_previous— ค่าระดับน้ำก่อนหน้าจาก payload เดียวกันdischarge— อัตราการไหล เมื่อมีใน payload (บางสถานีไม่มี)waterlevel_datetime— เวลาที่สถานีรายงาน- เมทาดาทาสถานี: รหัส ชื่อ พิกัด
- ตำแหน่งตาม geocode: จังหวัด / อำเภอ / ตำบล
situation_level— ระดับสถานการณ์จากต้นทาง- ระดับตลิ่ง:
min_bankหรือleft_bank/right_bank
ชื่อลุ่มน้ำและแม่น้ำมีใน payload ของ ThaiWater แต่ V1 จับคู่สถานีผ่าน Basin Profile ของเจ้าพระยาที่กำหนดไว้ล่วงหน้า ไม่ได้อ่านรายชื่อลุ่มน้ำทั้งประเทศมาแสดงบนแผนที่
ข้อมูลฝนที่ใช้จริง
rain_24h— ฝนสะสม 24 ชั่วโมงrainfall_datetime— เวลาของจุดฝน- พิกัดจุดตรวจวัดฝน
ยังไม่มีฝนพยากรณ์ (forecast rainfall) ใน V1
หน่วยงานที่ปรากฏในระบบ
- ThaiWater / สสน. — ช่องทาง API ที่ระบบเรียกใช้
- กรมชลประทาน — เมื่อฟิลด์ agency ในข้อมูลสถานีระบุชื่อที่มีคำว่า “ชลประทาน” ระบบจะบันทึกแหล่งนี้
- กรมทรัพยากรน้ำ — ระบุในรายการแหล่งข้อมูลของแอปว่าเป็นแหล่งฝนสะสม 24 ชม. ที่ผ่าน ThaiWater (ระบบไม่ได้ดึง API แยกจากกรมโดยตรง)
ระบบนำข้อมูลมาประมวลผลอย่างไร
ลำดับงานบนเซิร์ฟเวอร์ตาม implementation ปัจจุบัน:
- แหล่งข้อมูลThaiWater waterlevel / rain_24h
- ตรวจสอบและอ่านสถานีจับคู่รหัสสถานีกับ Network
- Basin / Networkเจ้าพระยา 5 จุด
- เก็บ Snapshotobservations / history
- วิเคราะห์แนวโน้มระดับน้ำปัจจุบันเทียบค่าก่อนหน้า
- ปัจจัยประกอบflow · ฝน · upstream
- Forecast+6 / +12 / +24 ชม.
- Riskเทียบตลิ่งและ situation
- แสดงผลแผนที่และแดชบอร์ด
การคำนวณทั้งหมดทำบนเซิร์ฟเวอร์ เบราว์เซอร์แสดงผลจากข้อมูลที่ส่งมาเท่านั้น
ระดับน้ำและแนวโน้ม
ระบบไม่ได้ดูเฉพาะค่าระดับน้ำล่าสุด แต่ใช้ waterlevel_msl เทียบกับ waterlevel_msl_previous จากแหล่งต้นทาง
- ถ้าต่างกันมากกว่า 0.02 ม. → แสดงแนวโน้ม เพิ่มขึ้น หรือ ลดลง
- ถ้าน้อยกว่าหรือเท่ากับ 0.02 ม. → แนวโน้มคงที่
- ถ้าไม่มีค่าใดค่าหนึ่ง → แสดงว่าไม่ทราบแนวโน้ม
ในการคาดการณ์ ผลต่างระดับน้ำนี้ถูกนำไปขยายตามช่วงเวลาพยากรณ์ และลดน้ำหนักเมื่อขอบฟ้ายาวขึ้น (ใช้ฟังก์ชันลดทอนตามชั่วโมง) ตามน้ำหนักโมเดลส่วน “แนวโน้ม”
สถานีต้นน้ำ
V1 จัดสถานีเป็นลำดับเส้นเดียวบนแม่น้ำเจ้าพระยา:
- C.2 นครสวรรค์ (ต้นน้ำของเครือข่ายนี้)
- C.13 ชัยนาท
- CPY011 อยุธยา (flow อ้างอิง C.35 เมื่อมี)
- CPY014 ปากเกร็ด
- CPY015 กรุงเทพฯ
สถานีก่อนหน้าในลำดับถือเป็นต้นน้ำของสถานีถัดไป และมี เวลาเดินทางคงที่ (fixed travel time) ที่กำหนดใน Basin Profile เช่น ช่วงชัยนาท→อยุธยาประมาณ 28 ชม.
ยังไม่ใช่ hydrological routing เต็มรูปแบบ ไม่ได้จำลองมวลน้ำตามภูมิประเทศหรือแยกเส้นทางน้ำจริง เป็น heuristic ตามลำดับสถานีและเวลาเดินทางที่ตั้งไว้
Flow (อัตราการไหล)
ระบบอ่านค่า discharge จาก ThaiWater เมื่อมีในข้อมูลสถานี
- บางสถานีมีค่า flow — ใช้เทียบกับค่า typical ของสถานีในโปรไฟล์ เพื่อเป็นแรงดันในสูตรคาดการณ์
- บางสถานีไม่มีค่า flow (เช่น ปากเกร็ด / กรุงเทพฯ ในหลายรอบข้อมูล)
ถ้าไม่มีข้อมูล ระบบไม่สร้างค่า Flow ขึ้นเอง และแสดงเป็นไม่มีข้อมูลตามต้นทาง
ฝน
ปัจจุบันใช้เฉพาะฝนสะสม 24 ชั่วโมงจาก rain_24h
- หาจุดฝนใกล้สถานีน้ำที่สุด ภายในรัศมีสูงสุด 35 กม. ตามค่าใน Basin Profile
- ถ้าไม่มีจุดใกล้พอ ใช้ค่าเฉลี่ยฝนในกรอบพิกัดของลุ่มเจ้าพระยาที่กำหนดไว้ เป็นค่าสำรองระดับลุ่ม
ไม่มีฝนพยากรณ์ใน V1 — งานขยายทั้งประเทศและชุดข้อมูลประวัติศาสตร์อยู่ใน Phase ถัดไป
Forecast (+6 / +12 / +24 ชม.)
การคาดการณ์ระดับน้ำเป็น แบบจำลองเชิงน้ำหนักบนเซิร์ฟเวอร์ ไม่ใช่โมเดลเรียนรู้เชิงลึก และไม่ใช่ระบบ AI ในความหมายของ machine learning ที่ฝึกจากข้อมูลขนาดใหญ่
องค์ประกอบที่ใช้จริงในโค้ด:
- ระดับน้ำปัจจุบัน
- แนวโน้มจากค่าระดับน้ำก่อนหน้า
- การเปลี่ยนแปลงและ flow ของสถานีต้นน้ำ × สัดส่วนเวลาเดินทาง
- ฝนสะสม 24 ชม. ที่จับคู่ได้
- flow ของสถานีเองเทียบ typical (เมื่อมี)
- น้ำหนักโมเดล (flow / rain / upstream / trend)
- bias ต่อสถานี (ค่าเริ่มต้นเป็น 0)
ผลรวมขององค์ประกอบข้างต้นถูกนำไปบวกกับระดับน้ำปัจจุบัน แล้วจำกัดไม่ให้ผลลัพธ์ห่างจากระดับปัจจุบันและตลิ่งเกินขอบเขตที่กำหนดในโค้ด
Forecast ถูกสร้างจากข้อมูลที่มี ณ เวลา T และระบบบันทึก input_snapshot ไว้ใน predictions เพื่อให้ตรวจสอบย้อนหลังได้ว่าตอนทายระบบเห็นค่าอะไร
ช่วง +3 ชม. / 2 วัน / 3 วัน / 7 วัน ถูกปิดในหน้าจอเพราะยังไม่พร้อมตามการตั้งค่าปัจจุบัน ส่วน +6 / +12 / +24 ชม. เปิดใช้งาน
การตรวจสอบ Forecast
ระบบเก็บบันทึกพยากรณ์ใน predictions.json และเมื่อถึงเวลาเป้าจะเทียบกับระดับน้ำจริงใน comparisons.json
- คำนวณผลต่าง actual − forecast และค่าสัมบูรณ์ของผลต่าง
- หน้า Expert / ส่วนโมเดลแสดง MAE จากคู่เทียบที่มี — เป็นสถิติของชุดข้อมูลที่สะสมได้ ไม่ใช่การรับประกันความแม่นยำทั้งหมดของระบบ
ผลการทดสอบภายในของ V1 พบว่าความคลาดเคลื่อนแตกต่างกันตามสถานี ต้นน้ำ–อยุธยาค่อนข้างใกล้ค่าจริงมากกว่า ในขณะที่ปลายน้ำโดยเฉพาะกรุงเทพฯ มีข้อจำกัดจากอิทธิพลน้ำขึ้นลงที่โมเดลปัจจุบันยังจับได้ไม่ดี
หน้านี้ไม่ได้นำตัวเลข MAE มาเป็นสโลแกนความแม่นยำของระบบทั้งหมด
ความสดของข้อมูล
แต่ละสถานีอาจอัปเดตไม่พร้อมกัน ระบบแสดงเวลาจาก waterlevel_datetime ของสถานี (เช่น “ข้อมูลสถานีล่าสุด …”)
ข้อความ Updated HH:MM บนแถบด้านบนหมายถึงเวลาที่หน้าเว็บสร้าง/รีเฟรชสถานะ ไม่ใช่เวลาที่สถานีวัดน้ำ
หากข้อมูลสถานีเก่าเกินเกณฑ์ที่ตั้งไว้ ระบบจะสลับสถานะเป็น DELAYED
ข้อจำกัดของข้อมูลและแบบจำลอง
- V1 ครอบคลุมเฉพาะเครือข่ายเจ้าพระยา 5 จุด ไม่ใช่แผนที่สถานีทั้งประเทศ
- บางสถานีไม่มีค่า Flow — ระบบไม่เติมค่าให้
- ข้อมูลบางสถานีอาจล่าช้าหรืออัปเดตไม่พร้อมกัน
- กรุงเทพฯ / ปลายน้ำได้รับอิทธิพลน้ำขึ้นลง (tidal) ที่โมเดล V1 ยังจับได้ไม่ดี
- คู่เทียบสำหรับตรวจสอบ +24 ชม. ยังอาจไม่เพียงพอในช่วงที่ระบบเพิ่งสะสมประวัติ
- เวลาเดินทางน้ำเป็นค่าคงที่ในโปรไฟล์ ไม่ใช่แบบจำลอง routing เต็มรูปแบบ
- ยังไม่มีฝนพยากรณ์ และยังไม่มีชุดข้อมูล Historical Replay หาดใหญ่ในระบบ
- การขยายลุ่มน้ำทั้งประเทศอยู่ระหว่างพัฒนา (Phase ถัดไป) ยังไม่เปิดใช้งานสาธารณะ
การใช้ข้อมูลอย่างรับผิดชอบ
Flood Intelligence เป็นระบบช่วยติดตามและประเมินสถานการณ์จากข้อมูลและแบบจำลองที่มีอยู่ ไม่ใช่หน่วยงานประกาศเตือนภัยอย่างเป็นทางการ
เมื่อเกิดเหตุฉุกเฉิน ให้ตรวจสอบประกาศจากหน่วยงานราชการและหน่วยงานท้องถิ่นร่วมด้วยเสมอ
ผลลัพธ์อาจคลาดเคลื่อน และไม่ควรใช้แทนประกาศเตือนภัยจากหน่วยงานรัฐ