feat: toggleable live map feeds (ADS-B, trains, AIS, radar, WFIGS, NWS) #2

Merged
sirius merged 1 commit from feat/live-map-feeds into master 2026-08-27 19:08:22 -04:00
Owner

Summary

Toggleable live map overlays from docs/free-data-streams.md.

Raster tiles (IEM NEXRAD, RainViewer, GIBS thermal) stay in the browser. Vector feeds (aircraft, trains, vessels, WFIGS, NWS/SBW, NHC) are proxied/cached by FastAPI so keys never leak to Leaflet.

Layers

  • Radar (on): IEM over CONUS, RainViewer elsewhere
  • NWS / SBW alerts (on): /api/weather-alerts — named so it does not collide with dashboard /api/alerts
  • GIBS thermal (off)
  • WFIGS perimeters (on) / incidents (off)
  • Aircraft (on): ADSB.lol viewport, radius capped at 150 nm
  • Trains (on): Amtraker (identifying User-Agent)
  • Vessels (off): AISStream WebSocket, server-side only; idle without AISSTREAM_API_KEY
  • NHC storms (on)
  • Caltrans CWWP2 D1–D12 cameras in the existing scraper (JPEG + HLS, never RTSP)
  • FIRMS dual-write NOAA-20 + NOAA-21 (S-NPP sunset 2026-11-01)

Test plan

  • Unit tests for mappers / Caltrans parser / FIRMS dual-write
  • API contract: /api/map/layers overlays, aircraft requires bbox, vessels empty without key
  • Live probes: RainViewer, Amtraker, ADSB.lol near RDU, NWS NC, WFIGS, NHC
  • Toggle each layer on the map after deploy
  • Confirm AIS stays empty until a key is saved in the Keys UI
## Summary Toggleable live map overlays from `docs/free-data-streams.md`. Raster tiles (IEM NEXRAD, RainViewer, GIBS thermal) stay in the browser. Vector feeds (aircraft, trains, vessels, WFIGS, NWS/SBW, NHC) are proxied/cached by FastAPI so keys never leak to Leaflet. ## Layers - **Radar** (on): IEM over CONUS, RainViewer elsewhere - **NWS / SBW alerts** (on): `/api/weather-alerts` — named so it does not collide with dashboard `/api/alerts` - **GIBS thermal** (off) - **WFIGS perimeters** (on) / **incidents** (off) - **Aircraft** (on): ADSB.lol viewport, radius capped at 150 nm - **Trains** (on): Amtraker (identifying User-Agent) - **Vessels** (off): AISStream WebSocket, server-side only; idle without `AISSTREAM_API_KEY` - **NHC storms** (on) - Caltrans CWWP2 D1–D12 cameras in the existing scraper (JPEG + HLS, never RTSP) - FIRMS dual-write NOAA-20 + NOAA-21 (S-NPP sunset 2026-11-01) ## Test plan - [x] Unit tests for mappers / Caltrans parser / FIRMS dual-write - [x] API contract: `/api/map/layers` overlays, aircraft requires bbox, vessels empty without key - [x] Live probes: RainViewer, Amtraker, ADSB.lol near RDU, NWS NC, WFIGS, NHC - [ ] Toggle each layer on the map after deploy - [ ] Confirm AIS stays empty until a key is saved in the Keys UI
sirius added 1 commit 2026-08-27 19:07:37 -04:00
Wire the free data streams from docs/free-data-streams.md into the
dashboard as layer-panel toggles. Third-party APIs are proxied/cached
in FastAPI; raster tiles (IEM, RainViewer, GIBS) stay in the browser.

- Aircraft via ADSB.lol viewport poll (bbox required, radius ≤ 150 nm)
- Amtraker trains, NHC storms, WFIGS incidents/perimeters
- NWS + IEM SBW as /api/weather-alerts (does not collide with /api/alerts)
- AISStream worker is server-side only and idles without AISSTREAM_API_KEY
- Caltrans CWWP2 D1–D12 camera parser; FIRMS dual-write NOAA-20/21
sirius merged commit cc03778a87 into master 2026-08-27 19:08:22 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sirius/osint-dashboard#2
No description provided.