ปัญหา
- ฝนตกในกรุงเทพทำให้เกิดน้ำท่วม รถติด และยังมีผลกระทบโดยตรงกับการดำเนินชีวิตของประชาชน การค้าขาย และกิจกรรมต่างๆในภาคธุรกิจ
- การพยากรณ์อากาศล่วงหน้ามีความไม่แน่นอนสูง ยิ่งพยากรณ์ล่วงหน้านานมากเท่าไรก็ยิ่งมีโอกาสผิดพลาดมากขึ้นเท่านั้น การที่จะต้องคอยเช็คพยากรณ์อากาศจากสื่อต่างๆทุกๆวัน วันละหลายๆครั้งเป็นสิ่งที่ยากลำบาก
- การแจ้งเตือนฝนของกรมอุตุในปัจจุบันไม่ตอบโจทย์ บ่อยครั้งที่การแจ้งเตือนมีความล่าช้า ไม่ตรงจุด และประชาชนไม่สามารถเข้าถึงได้โดยง่าย ในขณะที่แอพของต่างประเทศก็เสียตังและไม่ได้อัพเดทบ่อยเท่าที่ควร
วิธีแก้ปัญหา
- ใช้ข้อมูลจากเรดาร์ของกทม.ในการแจ้งเตือนแทนข้อมูลพยาการณ์อากาศ ซึ่งจะทำให้มีความแม่นยำสูง และสามารถแจ้งเตือนล่วงหน้าได้ 15–60 นาที
- ใช้ระบบ Automation ในการตรวจเมฆจากข้อมูลเรดาร์และคาดการณ์ฝนในพื้นที่เป้าหมายล่วงหน้าแทนการใช้คน ทำให้สามารถอัพเดทข้อมูลได้รวดเร็วและมีประสิทธิภาพ
- แจ้งเตือนตาม Location จริงๆของผู้ใช้เป็นรายบุคคล แทนการแจ้งเตือนตามพื้นที่ใหญ่ๆเช่น เขตหรือจังหวัด
- แจ้งเตือนโดยการส่ง Push Notification ไปทาง LINE ซึ่งทำให้คนเข้าถึงได้ง่ายและรวดเร็ว
ปัญหาในการดำเนินการและวิธีแก้
- ไม่มี Open data: ทั้งกทม.และกรมอุตุเผยแพร่ข้อมูลเรดาร์เฉพาะไฟล์รูปที่มีความละเอียดต่ำผ่านเว็บไซต์ http://weather.bangkok.go.th/ และ https://weather.tmd.go.th/ ➡️ ใช้รูป PNG จากหน้า Google map
- ข้อมูลเรดาร์ไม่เสถียร บางครั้งเรดาร์ก็หยุดทำงานเวลาที่มีฝนตกหนักๆ ➡️ แก้ไม่ได้
3. ค่าใช้จ่ายสูง: ค่าใช้จ่ายในการส่ง notification ผ่าน LINE มีราคาค่อนข้างสูง เช่น ถ้าหากจะส่งแจ้งเตือนให้ผู้ใช้ 1000 คน วันละ 1 ครั้ง จะต้องเสียค่าใช้จ่ายประมาณ 1,500 บาท/เดือน ➡️ ใช้ IFTTT webhook + LINE Notify แทน
4. เมฆฝนมีการก่อตัวที่ไม่แน่นอน ขนาด ทิศทาง และความเร็วของเมฆมีความแปรปรวนสูง อาจจะทำให้การแจ้งเตือนมีความผิดพลาดหรือล่าช้า ➡️ เริ่มจาก image processing และพัฒนาต่อยอดด้วย deep learning เมื่อมีข้อมูลมากพอ
วางแผนระบบคร่าวๆ
- Image retrieval: Raspberry Pi ← Bangkok radar image(update every 5 min)
- Image Processing: Cloud tracking+Path prediction + User location = ETA
- Notification: Server makes web request → IFTTT webhook → LINE Notify → Individual LINE User
Progress Logs
- 6/22/20 — ✅Planning, ✅Image retrieval
- 8/07/20 — ✅Image processing: Cloud type classification
- 8/09/20 — ✅Image processing: implement rainymotion optical flow library
- 8/09/20 — ✅Setup server on Amazon Lightsail, Fix single channel image conversion bug by changing np.empty to np.zeros
- 9/13/20 — ✅Notification: Change the plan
Switch to twitter bot, so that users can just follow the account and turn on/off notifications easily. The system is not currently using Optical Flow technique due to expensive computational cost. The alert relies on simple calculation of percent cloud pixels over a specific region.
- 9/14/20 — ✅Open for beta users
- 6/29/21—📂Released a 12 months long historical radar image data as a public dataset https://drive.google.com/drive/folders/11oD62_a1nX14uhvpmnlQPmTPQEssuZrc?usp=sharing
Changelog
- 10/25/20 — add update status to account description and name, 🚧 will be added to the account name when the radar source is unavailable.
- This system is no longer maintained after TMD changed its radar image url. The source code for my personal rain alert bot is now published at this gist.