An AI nowcasting model fusing NOAA GFS live atmospheric analyses, trained on four monsoon seasons of ECMWF ERA5 reanalysis, with physics-guided deep learning — estimating thunderstorm, heavy-rain and flash-flood risk across all 23 districts of West Bengal from the Darjeeling Himalayas to the Sundarbans.
Two different operating conditions, because they give very different numbers. Lab is held-out ERA5 (the model's own training distribution); live is real NOAA GFS input, which is what the dashboard actually runs on.
Performance on the same reanalysis distribution the model was trained on. This is the best case, not what the live dashboard sees — the live input comes from a different weather system (GFS).
What the deployed dashboard actually achieves, fed real live NOAA GFS 0.25° analyses. Lower than the lab figures because GFS and ERA5 are genuinely different atmospheric systems.
A public precipitation radar mosaic (RainViewer), live over the West Bengal domain.
| Layer | Product | Update | Kind |
|---|---|---|---|
| Radar mosaic | RainViewer composite | ~10 min | OBSERVED |
| Model risk (dashboard) | StormSense severe-weather % | 5 min | FORECAST |
| GFS analysis (input) | NOAA GFS 0.25° f000 | 6h | OBSERVED |
Four stages, from a public global weather analysis to a calibrated, per-district risk estimate.
Surface and pressure-level fields fetched from NOAA's public GFS archive, regridded to the model's domain, and linearly interpolated between the two most recent 6-hourly analyses into six hourly input slots. No forecast hour is ever used as an input.
The model trained on ERA5 but runs live on GFS. Units, sign conventions (e.g. convective inhibition) and precipitation-accumulation windows are aligned so live input means what the training input meant.
Separate recurrent encoders read surface, wind and thermodynamic fields; a terrain-conditioned fusion trunk combines them; a shared decoder outputs severe-weather probability and 3-hour rainfall for every lead.
Probabilities are temperature-calibrated per lead, then combined with a terrain-aware flash-flood proxy. A rule-based physics breakdown (moisture, instability, wind, recent rain) explains each estimate — not a learned attribution method.
The dashboard aggregates the 825-cell risk grid into 19 district zones, using the highest-risk cell in each district, and ranks them so the most concerning district always leads.
StormSense can push a real alert to everyone currently viewing the dashboard. It is not connected to any government siren network, SMS gateway, or disaster-response service — the scope below is the honest, current reach.
A full-screen alert with sound and a browser notification, sent to every connected viewer inside the model's current high-risk zone. Location is checked on each viewer's own device and never sent to the server.
Informational advisories posted to a standing, readable log — no interruption, no sound. A visitor who opens the dashboard later can still read what was posted.
An operator can log a request for extended dissemination (e.g. cell broadcast). This does not reach any phone — it is an auditable record for handoff to a real disaster-management authority.
Reaching people beyond this website — physical sirens, cell broadcast, SMS to the public — requires infrastructure and legal authority owned by government disaster-management bodies and telecom operators. StormSense can supply a risk feed to such a system; it cannot operate one itself.
An independent hackathon project exploring whether a compact deep-learning model can give useful early signal of severe convective weather over West Bengal from freely available global weather data. Not affiliated with, endorsed by, or operated on behalf of IMD, WBSDMA, NDMA, MoES, or any government body.
Physics-based rule attribution for the current highest-risk cell — not a learned method (no SHAP, no LIME).
The full source, model checkpoints, and every backtest script used to produce the numbers on this page are on GitHub. Run it yourself, verify the results, or fork it for another region.