Skip to content

Repository files navigation

YOU CAN VISIT THE REAL-TIME TRACKER HERE: https://stormpulse-frontend.onrender.comNWS Alert with Inferred LayerNWS_Alert_Tab

StormPulse — Tornado Response Map

Open-source tornado damage mapping platform. Ingests NOAA/NWS public data and generates probable damage corridors for emergency responders.

If you find StormPulse useful or even interesting, consider supporting development on Ko-fi.

StormPulse is built independeltly using publicly available NOAA/NWS data with the goal of making severe weather information even more accessible and transparent.

☕ Support the project on Ko-fi: https://ko-fi.com/majorstem

Quick Start

Docker (entire platform, one command)

docker compose up --build

Map at http://localhost:3000 · API docs at http://localhost:8000/docs (see docs/DEPLOYMENT.md).

Backend (manual)

cd backend
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
cp .env.example .env
python run.py

Backend runs at http://localhost:8000 — API docs at http://localhost:8000/docs

Frontend (manual)

cd frontend
npm install
npm run dev

Frontend runs at http://localhost:3000

V2 API (versioned + authenticated)

All data routes live under /api/v1 and require a client API key:

curl -H "Authorization: Bearer stormpulse-demo-key" \
"http://localhost:8000/api/v1/corridors?hours=48"
  • Protected routes return 401 without a valid key; /api/v1/health is intentionally public.
  • Per-client rate limiting returns 429 on abuse.
  • Every payload carries stale/data_as_of freshness meta; inferred (T3) corridors carry an explicit disclaimer field.
  • Issue real client keys via the API_KEYS environment variable (docs/DEPLOYMENT.md).

Data Sources

  • NWS Alerts API — api.weather.gov (free, no key required)
  • NWS LSR ArcGIS — services9.arcgis.com/RHVPKKiFTONKtxq3 (free, no key required)

No API keys needed for the MVP.

Architecture

  • Backend: Python FastAPI + PostgreSQL (SQLite for dev) + APScheduler + Shapely
  • Frontend: Next.js 14 + TypeScript + MapLibre GL + Tailwind
  • Ingestion: Polls NWS every 5 minutes (configurable)
  • Corridor Engine v2: Motion-aware track reconstruction + weighted confidence scoring

Full documentation:

Confidence Tiers

TierLabelSource
T1Official ConfirmedNWS damage survey or confirmed tornado LSR
T2Official Near-Real-TimeActive NWS alert or unconfirmed LSR
T3InferredSystem-generated corridor estimate (always carries a disclaimer)

Tier assignment is a deterministic weighted model — see docs/CONFIDENCE_SCORING.md.

Disclaimer

Inferred corridors are system-generated probable damage estimates. They are NOT official NWS damage surveys. Always follow official emergency guidance.

License

AGPLv3

About

Real-time severe weather damage mapping — NWS alerts, tornado LSRs, and inferred impact corridors

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages