Case study
HimmelMeer
Live above-the-fog forecasting for Switzerland, from an operational ensemble.
- Ensemble NWP
- Probabilistic decision product
- Latency-optimised pipeline
- Live operational service
- ICON-CH1-EPS ensemble members11 (1 ctrl + 10 perturbed)
- Full ensemble run, inside the 3-hourly forecast cadence138 min on a 2-core, 12 GB VM
The problem
Switzerland’s winter fog sits in the valleys while the peaks stand in sun, and the only way to know which is which has been to trust a forecaster’s map or drive up and look. HimmelMeer turns MeteoSwiss’s operational forecast into a direct answer at any point on the terrain: an interactive map that shades exactly the ground below the elevation the sky is expected to be clear, updated continuously as new model runs land.
How it works
The forecast comes from ICON-CH1-EPS, MeteoSwiss’s kilometre-scale operational ensemble, decoded member by member from GRIB rather than trusted as a single control run. Sun is not painted from a threshold on the mean: the pipeline computes the expected cloud presence per pixel across 11 (1 ctrl + 10 perturbed), smooths only the genuinely uncertain part, the cloud-to-clear-sky edge, and gates that against the high-resolution terrain model so the fog-to-land shoreline itself stays crisp. Sun is shown only where the members agree, because a false promise of sun is the costly error a fog forecast can make, not an overcautious cloud.
> ENGINE_ROOM The daemon and the latency budget
The pipeline runs as a continuous daemon rather than a cron job, watching MeteoSwiss for each new forecast cycle and computing every lead time, day and night, the moment data lands; the objective is minimising the wall-clock gap between a forecast becoming available and it going live on the site, not raw throughput. On a free-tier two-core server that gap is 138 min on a 2-core, 12 GB VM, which is the difference between the ensemble shipping inside MeteoSwiss’s own update cadence and permanently falling behind it. Getting there took memory-bounded scheduling, compressed swap and demand-driven prefetching of only the next few lead times, rather than more hardware.
What this demonstrates
An operational NWP ensemble turned into a genuinely probabilistic decision product end to end: member-wise decoding, a presence-and-terrain-gate classification designed around which error is actually costly, and a latency-constrained daemon engineered to a fixed real-time budget on minimal hardware.