💧 น้ำต้นน้ำถึงปลายน้ำ FLOW · 3 เส้นทาง (ป่าสัก → เจ้าพระยา · ท่าด่าน→นครนายก→บางปะกง · เจ้าพระยา CID → ปากน้ำ) + บล็อกความสูง + 📍หมุดเขื่อน 8 จุด (% เต็มอ่าง) + สถานะเขื่อน 5 แห่ง + รายการต้นน้ำ/ประตูที่ปล่อยเข้าสู่เจ้าพระยา
👥 …
🗺️ ภาค กทม.+ปริมณฑล 📷 CCTV 🗣️ เล่าข่าว 🌀 พายุ 🧭 เดินทาง📢 เจ้าพระยา🛣️ ถนนน้ำท่วม🗺️ ผังเว็บ 🏠 หน้าแรก
⏳ กำลังโหลดข้อมูล (โหลดเมื่อมีคนเข้า · อัปเดตทุก 20 นาที)…
🛝 สถานะเขื่อน แหล่งระบุบนการ์ด · % เต็ม = ตัวเลขที่แหล่งนั้นเผยแพร่ (เขื่อน กฟผ. น่าดูจาก EGAT water.egat.co.th · เขื่อน กรมชล จาก RID percent_storage) · ค่าว่างจริงของระบบแสดง “—” ไม่เดา · เขื่อนพระราม 6 และเขื่อนเจ้าพระยา (CID) = การ์ดสถิติ ไม่มี feed ตัวเลขจาก RID
⏳ กำลังโหลดข้อมูลเขื่อน…
🌐 ต้นน้ำ–ประตูที่ปล่อยเข้าสู่แม่น้ำเจ้าพระยา ⏳ กำลังโหลดรายการ…
🌊 สถานีวัดน้ำตามลุ่มแม่น้ำ ThaiWater public · กรองเฉพาะลุ่มน้ำป่าสัก / บางปะกง / เจ้าพระยา
⏳ กำลังโหลดสถานีวัดน้ำ…

🚨 ข่าวน้ำท่วมล่าสุด (อัปเดตผ่าน bkkflood_update skill)

แหล่งข้อมูล (แยกกัน):
🛝 เขื่อน — 2 แหล่ง แยกกันบอกบนทุกแถว: (1) EGAT/กฟผ. water.egat.co.th/water_crisis.php = ค่าหลักของ % เขื่อนภูมิพล/สิริกิติ์ (ผู้ดำเนินเขื่อน · วันที่อ่านจากหัวตาราง “…28 ก.ย. 2569” แปลเองทุกครั้ง ไม่ได้ hard-code) ดึงสดพร้อม cache 20 นาที · (2) กรมชลประทาน RID app.rid.go.th/reservoir/api/dam/public = ค่าหลักของ % เขื่อนป่าสัก/แควน้อย/แม่งัด/แม่มอก/ทับเสลา + ตัวเลขตรวจเทียบของทุกแถว (base) + แบบระบุวันที่ /dam/public/YYYY-MM-DD สำหรับ volume/ไหลเข้า/ปล่อยน้ำ (วันปัจจุบันยังเป็น null → ระบบดึงวันก่อนหน้าที่มีค่าจริงและระบุวันที่บนการ์ด · ถ้าค่าเป็น null จริงๆ แสดง “—” ไม่เดา) · เขื่อนพระราม 6 ไม่อยู่ใน API ชุดนี้ (ตรวจซ้ำ 27 ก.ย. 2569: total=35 ไม่มีชื่อนี้ / อ่างเก็บน้ำ total=461 ไม่พบ) → การ์ดเป็นข้อมูลสถิติล้วน + อ้างสถานีวัดน้ำท้ายเขื่อนจาก ThaiWater, ทุกช่องตัวเลขเป็น “—” ไม่มีการเดาตัวเลข · เขื่อนเจ้าพระยา (CID) ก็ไม่อยู่ใน API ชุดนี้ด้วย (ตรวจ 28 ก.ย. 2569: total=35 ไม่มีชื่อนี้) → การ์ดสถิติ + สถานีวัดน้ำท้ายเขื่อน “ท้ายเขื่อนเจ้าพระยา” (สถานี C.13, กรมชลประทาน ใน ThaiWater) ค่าสดอ่านจาก feed เดียวกับรายการสถานี
🌊 สถานีวัดน้ำ — ThaiWater public v3 api-v3.thaiwater.net/.../waterlevel_load (ไม่ใช้ key · ตัวอย่าง 60 สถานีใน 3 ลุ่มน้ำ)
🗺️ เส้นทางสายน้ำ — OpenStreetMap ผ่าน Overpass (waterway=river|canal|stream ที่มีชื่อ): เส้นเอ = แม่น้ำป่าสัก จากเขื่อนถึงจุดบรรจบแม่น้ำเจ้าพระยา (vertex ร่วม 100.5764,14.3449) · เส้นบี = คลองท่าด่าน (ต้นน้ำฝั่ง OSM บันทึกถึง 101.4432,14.2999) → น้ำตกเหวนรก → แม่น้ำนครนายก → vertex ร่วมกับแม่น้ำปราจีนบุรี/บางปะกง (101.1616,13.8956) → แม่น้ำบางปะกง → ปากแม่น้ำ (100.9709,13.4710) · เส้นซี = แม่น้ำเจ้าพระยา: 202 ways ชื่อ “แม่น้ำเจ้าพระยา” ใน OSM เป็น component เดียว (1,669 nodes) → Dijkstra จาก vertex ใกล้ OSM node 3121625131 “เขื่อนเจ้าพระยา” (100.1801,15.1592 ห่าง 75 ม.) ถึง vertex ปลายทาง (100.5945,13.5422) ที่อยู่บน way natural=coastline พอดี = ปากแม่น้ำ ต.แหลมฟ้าผ่า อ.พระสมุทรเจดีย์ จ.สมุทรปราการ · 278.7 กม. · ไม่มีการลากเส้นเอง และจุดบรรจบแม่น้ำป่าสัก (14.3449,100.5764) เป็น vertex บนเส้นซีด้วย — อยู่ห่างจากเขื่อนเจ้าพระยา ~136 กม. ตามลำน้ำ (~100 กม. เส้นตรง) จึง “ไม่ได้อยู่ใกล้ CID”
🌐 รายการ “ต้นน้ำ–ประตูที่ปล่อยเข้าสู่แม่น้ำเจ้าพระยา” — แถวทั้งหมดสร้างจาก build/flow_src/basin.json (ผ่าน build/build_flow.py → flow.json) ทุกแถวมีลิงก์แหล่งข้อมูล · % ทุกแถวบอกแหล่ง + วันที่ (ชิปเล็ก EGAT/RID บนบรรทัดสรุป + บรรทัด 💧 ในรายละเอียดพับ พร้อมผลตรวจเทียบอีกแหล่ง และ ⚠️ ข้อควรระวัง เช่น storage=capacity หรือ % เกิน 100) · ตัวเลขเขื่อน (ความจุรวม/ความจุเก็บกัก/ปริมาตร/ไหลเข้า/ปล่อย) เติมสดจาก API กรมชลประทานตาม rid_id (ค่าว่างจริง = “—”) · แถวประตูที่มี live=gauge:… ยืมค่าสถานีวัดน้ำสดจาก ThaiWater · แถวประตูที่มี live=gauge:… ยืมค่าสถานีวัดน้ำสดจาก ThaiWater · รายการที่ค้นแล้วไม่พบ/ยืนยันไม่ได้ (เช่น “เขื่อนพิจิตร”, “ประตูระบายน้ำฝั่งตะวันตก นครสวรรค์”) ถูกตัดออกและเขียนเหตุผลไว้ในกล่อง ✕ ของหน้านี้
📍 หมุดเขื่อน 8 จุดบนแผนที่ — พิกัดทุกจุดมาจาก OSM feature ที่มีชื่อจริง (way/node waterway=dam หรือ node name=เขื่อน…) แล้วทวนสางด้วยแหล่งที่สอง (th.wikipedia / Wikidata / Nominatim / วัดจากแนวสันเขื่อนจรดขอบอ่าง): เจ้าพระยา = node 3121625131 · ป่าสัก = way 36674138 · สิริกิติ์ = way 36814722 · ภูมิพล = way 36835245 · แควน้อยบำรุงแดน = way 396647777 (อ.วัดโบสถ์ จ.พิษณุโลก — ไม่ใช่ หนองบัวลำภู) · แม่งัด = way 24039333 · แม่มอก = way 984597589 (อ.เถิน จ.ลำปาง) · ทับเสลา = way 1359307741 (node ชื่อ “เขื่อนทับเสลา” ริม ทล.3438 ห่างแนวสันเขื่อน 1.7 กม. → ไม่ใช้) · % บนหมุด = ตัวเลขที่แหล่งนั้นๆ เผยแพร่เอง เติมสดตอนเรนเดอร์: เขื่อน กฟผ. (ภูมิพล/สิริกิติ์) ใช้ค่า EGAT, เขื่อน กรมชล (ป่าสัก/แควน้อย/แม่งัด/แม่มอก/ทับเสลา) ใช้ percent_storage ของ RID = volume ÷ ความจุเก็บกัก (ไม่ใช่ storage/capacity — สูตรเก่าเป็นค่าคงที่ของโครงสร้างและขึ้น 100% ทันทีเมื่อ storage = capacity เช่น เขื่อนภูมิพล 13,462 = 13,462 · เขื่อนแม่มอก 110 = 110 · แก้ 29 ก.ย. 2569) · ค่าว่างจริงแสดง “—” ไม่เดา · สี: <50% #7dd3fc · 50–79 #38bdf8 · 80–94 #2563eb · ≥95 #1e3a8a
➜ เส้นเชื่อมทิศทางไหล (ชั้น #flowedges — เส้นสีฟ้าประ + ลูกศร): เส้นจริงทุกเส้นสร้างจาก Dijkstra บนกราฟ way OSM ที่มีชื่อ (แม่น้ำปิง/น่าน/แควน้อย/ยม/สะแกกรัง/เจ้าพระยา — ผลอยู่ใน build/flow_src/flowedges.json): เขื่อนภูมิพล+แม่งัด → ปากน้ำโพ · เขื่อนสิริกิติ์ → บรรจบแควน้อย–น่าน → ปากแม่น้ำยม → ปากน้ำโพ · เขื่อนแควน้อย → บรรจบกับแม่น้ำน่าน · เขื่อนแม่มอก → ปากแม่น้ำยม · ปากน้ำโพ → บรรจบสะแกกรัง → เขื่อนเจ้าพระยา (CID) แล้วต่อเส้นซี · จุดบรรจบ ○ = vertex ร่วมจริงของ way (ปากน้ำโพ = node เดียวกับที่ปิง+น่าน+เจ้าพระยา มาบรรจบ 15.7004211,100.140912) · ช่วงทางน้ำ OSM ยังไม่มีชื่อ/ช่วงใต้ตัวเขื่อน ถูกระบุใน tooltip รายเส้น (unnamed_km/bridge_m) · เขื่อนทับเสลา → บรรจบสะแกกรัง = เส้นส้มประเชิงโครงสร้าง เพราะตรวจแล้ว 2 ครั้ง OSM ไม่มีทางน้ำต่อเนื่อง (ขาด ~54 กม.) → ป้าย “เชิงโครงสร้าง ไม่ใช่เส้นลำน้ำจริง” บนแผนที่ + บรรทัดใน legend ไม่มีการเดาทางน้ำ
📐 การปรับแผนที่ให้ครอบคลุมพื้นที่ต้นน้ำ (แม่แตง–ตาก–อุตรดิตถ์–พิษณุโลก): bbox คำนวณใหม่รวมจุดเขื่อนทั้ง 8 → FIT 1950→3600 หน่วยจอ, หน่วยจอ/กม. 10.476→6.308, วัดการทับซ้อนบล็อกด้วย shapely (build/occl_flow.py) = 0 คู่/0.00% → 2 คู่/1.94% (B1 ถูก B0 ทับ 25.3% · C3 ถูก A3 ทับ 1.9%) · ไม่มีการบิดการฉายเพื่อให้พอดี
⚠️ วิธี/ข้อจำกัด: น้ำตกเหวนรกใน OSM คือ node 2678596386 (14.2897,101.3882 · height 150 ม.) และ “คลองท่าด่าน” เป็นชื่อที่ OSM บันทึกไว้ — บางแหล่งระบุว่าไปลงระบบปราณบุรี แต่ Overpass ไม่พบชื่อทางน้ำเชื่อมไปแม่น้ำปราณบุรี จึงวาดเฉพาะที่ OSM มีชื่อจริง ไม่เติมเส้นเอง · จุดเขื่อนขุนด่านห่างจากเส้นคลองท่าด่านที่บันทึก ~0.7 กม. (พิกัดเขื่อนจาก OSM) · เขื่อนพระราม 6 (OSM way 121342565 waterway=dam · 100.7614,14.5586 · ต.ท่าหลวง อ.ท่าเรือ อยุธยา) อยู่บนเส้นเออยู่แล้ว — ทางน้ำใต้เขื่อนคือ way 40268411 “แม่น้ำป่าสัก” และจุดเขื่อนห่างแนวเส้นเอเพียง 28 ม. (= ความกว้างตัวเขื่อน) จึงวางเป็นหน่วยบนเส้นเอ ไม่มี spur/เส้นเพิ่ม ไม่มีการลากเส้นเอง
⛰️ ความสูงบล็อก — SRTM 30 ม. (OpenTopoData) ที่พิกัดหน่วยละสาย · 1 หน่วยจอ = 1 เมตร · เพดานบล็อก = 0.3 × ความสูงแผนที่ (เกินเพดานแสดงตัวเลขจริงเหนือยอดบล็อก) · เรียงวาดแบบจิตรกร (เหนือก่อน) + ยกบล็อกขึ้น k×ความสูง + ขอบขาว + ปุ่มพับเป็นแผนที่แบน (เก็บค่าใน localStorage)
🏘️ แขวง/อำเภอ — OSM admin_level 4/6 (point-in-polygon) · ฝน/น้ำท่วมดูได้จากหน้าภูมิภาค (ปุ่มด้านบน)
⏳ ข้อมูลโหลดแบบ on-demand: เมื่อมีคนเปิดเว็บ และค้างทุก 20 นาที (ไม่มีการยิง API ตอนไม่มีคนเข้า)
🧊 สีหน้าบนบล็อก = ระดับท่วมสด (เฉลี่ยสูงสุดรายจังหวัดจาก cache ภูมิภาค) · ไม่มีข้อมูล = สีความสูง — ไม่มีการยิง API ภายนอกเพื่อสี: data.php อ่าน cache ของหน้าภูมิภาค (…/cache/data_*.json) + districts.json (`prov`) แล้วเอาค่า class สูงสุดรายจังหวัด · รวมใหม่ทุก 20 นาทีพร้อม cache ของหน้านี้ · อายุ cache แสดงในตัวเลือก/หน้าต่างข้อมูล
🏷️ bkkflood v2.10 · อัปเดต 29 ก.ย. 2569 (+ % เขื่อนรายแหล่ง + audit ตัวเลข: แก้ % ผิดจากสูตร storage/capacity (ค่าคงที่ของโครงสร้าง → เขื่อนภูมิพล/แม่มอก เคยขึ้น 100% ทั้งที่น้ำไม่เต็ม) เป็น % ที่แหล่งนั้นเผยแพร่เอง — EGAT 64.20/80.18% สำหรับเขื่อน กฟผ., RID percent_storage สำหรับเขื่อน กรมชล · ทุกแถวมีชิปแหล่ง + บรรทัด 💧 วันที่ + ตรวจเทียบ 2 แหล่ง + ⚠️ ข้อควรระวังในรายละเอียดพับ · ชั้นเส้นเชื่อมทิศทางไหล #flowedges: เส้นสีฟ้าประ+ลูกศร 10 เส้น จากเขื่อนต้นน้ำ/จุดบรรจบ ไล่ไปหาเขื่อนถัดไปจนถึงเขื่อนเจ้าพระยา (CID) + จุดบรรจบ ○ 4 จุด — ทุกเส้นจริงมาจากการ Dijkstra บน way ชื่อ OSM, 2 เส้น (แม่มอก→ปากแม่น้ำยม · ทับเสลา→บรรจบสะแกกรัง) เป็นเชิงโครงสร้างที่เปิดเผยบนแผนที่เพราะ OSM ไม่มีทางน้ำต่อเนื่อง · เขื่อนป่าสัก = ลูกศรบน เส้นเอ เดิม ไม่วาดเส้นซ้ำ · ชิปหมุดเลี่ยงป้ายจุดบรรจบ · อ่านง่ายขึ้น: ชิป/tooltip/#sel โชว์แค่ 💧% + มาจาก … → ไหลไป … (2 บรรทัด) รายละเอียด-ตัวเลข-ลิงก์แหล่งข้อมูลพับไว้ใต้ปุ่ม ▾ รายละเอียดใต้แผนที่) · v2.8: เส้นซี แม่น้ำเจ้าพระยา CID→ปากน้ำ · รายการ 🌐 ต้นน้ำ–ประตูที่ปล่อยเข้าสู่แม่น้ำเจ้าพระยา · 📍หมุดเขื่อน 8 จุดบนแผนที่พร้อม % เต็มอ่าง + แผนที่ขยาย FIT 1950→3600 · สียอดบล็อก = ระดับท่วมรายจังหวัด + บล็อก 3D ทุกหน้า · 6 ภูมิภาค/เพจ)