NYC FloodAI
A research project developed alongside fellow researchers from the Distributed AI Research Lab (DAIR) @ Hunter College. Led by Dr. Anita Raja.
FloodAI is a smart flood-alert system for New York City. It watches local water-level sensors and decides when to send alerts while staying within a small alert budget. The goal is simple: catch real floods early, avoid spamming people, and show what’s happening on a clear & interactive map.
Why it matters
Floods don’t just damage architecture, they throw emergency responders, transit, and whole neighborhoods into chaos. A system that is able to issue intelligent alerts based off a given neighborhoods vulnerability and antecendent flood data will allow authorities to know which locations are most likely to be impacted.
How it works
- City sensors: We read water depth from NYC FloodNet
- Smart alerting: An AI agent learns when an alert is worth it, given a limited budget (e.g., 25 alerts per season).
- Clear map: A web dashboard shows live status, past events, and context layers like elevation and vulnerability.
Issues encountered
- Training was too slow and jittery at 1-minute data.
I moved to 15-minute sampling so episodes are shorter and the agent learns faster without losing the story of a storm. - API limits + missing days.
The FloodNet API can be strict and limit requests. I created scripts to collect and cache everything locally first, then train from a clean, complete dataset. - Wild outliers ruined charts.
Some readings (e.g., 1200–2000 mm) blew up the y-axis. I keep them for QA but filter >500 mm in visualizations so real patterns stay readable. - Sudden jumps triggered instant alerts.
I added rate-of-change checks and hysteresis (different “start” and “stop” levels) so alerts are stable, and still allow multiple alerts in one day when separate events happen. - Nearby sensors disagree or go offline.
I combine them with a winner-takes-all rule: at each moment, whichever sensor shows the stronger signal drives the decision. That way, the system stays resilient.
What you can do on the dashboard
- Watch a simulated sensor status and alert history.
- Step through time in 15-minute ticks (or run it automatically) to see how the agent responds
- See budget used vs. floods covered.
- Toggle layers: elevation, flood vulnerability, tree canopy, and sensor clusters.
Results so far
- Alerts are conservative but clean (fewer false alarms).
- Runs smoothly with a modest alert budget.
- The 15-minute grid made training and evaluation manageable without losing important timing.
What’s next
- Add more FloodNet sensors and short-term weather forecasts.
- Push email/SOS notifications for locals
Built with Python, Pandas, Gymnasium, Stable-Baselines3, and Leaflet. For more information feel free to check out the GitHub page and associated paper (WIP).