Repository navigation
Commit 2026555
committed
feat(radar): rain radar tab with FMI observed + forecast overlay
New "Sade" tab: a Leaflet map centred on the saved location with
pinch-zoom/pan, an animated timeline, and a recenter button.
Backend (radar module):
- GET /api/radar/frames — last-hour observed radar frames from FMI WMS
capabilities (5-min steps).
- GET /api/radar/wms — transparent proxy for FMI WMS GetMap tiles.
- GET /api/radar/forecast — FMI HARMONIE precip forecast: fetch the
EPSG:4326 GRIB2 grid, decode with the `grib` crate (no native deps),
read grid geometry from the GDS, orient north-up, block-max downsample,
convert metres→mm, return a compact JSON grid. Retries transient FMI
drops; cached.
Frontend (RainMap, lazy-loaded):
- Observed WMS frames + forecast heat overlays merged into one timeline
with a "now" divider, play/pause, frame slider, long-press swipe scrub,
relative-time labels, and a precipitation legend.
FMI WMS/WFS need no API key; new FMI_WMS_BASE_URL / FMI_DOWNLOAD_BASE_URL
settings default to the public endpoints.1 parent b547509 commit 2026555
14 files changed
Lines changed: 1462 additions & 2 deletions
File tree
- backend
- src
- radar
- tests
- frontend
- src
- components
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
| 34 | + | |
| 35 | + | |
33 | 36 | | |
34 | 37 | | |
35 | 38 | | |
| |||
51 | 54 | | |
52 | 55 | | |
53 | 56 | | |
| 57 | + | |
| 58 | + | |
54 | 59 | | |
55 | 60 | | |
56 | 61 | | |
| |||
72 | 77 | | |
73 | 78 | | |
74 | 79 | | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
75 | 83 | | |
76 | 84 | | |
77 | 85 | | |
| |||
230 | 238 | | |
231 | 239 | | |
232 | 240 | | |
233 | | - | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
234 | 248 | | |
235 | 249 | | |
236 | 250 | | |
| |||
275 | 289 | | |
276 | 290 | | |
277 | 291 | | |
| 292 | + | |
| 293 | + | |
278 | 294 | | |
279 | 295 | | |
280 | 296 | | |
| |||
315 | 331 | | |
316 | 332 | | |
317 | 333 | | |
| 334 | + | |
| 335 | + | |
318 | 336 | | |
319 | 337 | | |
320 | 338 | | |
| |||
0 commit comments