Hi all,
I’d like to share an open-source pipeline I’ve been running operationally
in case it’s useful to others working on local downscaling of
SEAS5, or in case anyone here has feedback on the approach.
What it does
It issues monthly-mean temperature outlooks (leads 1–6 months) for two
station sites in Greece — a mountain station on Mt. Penteli (~450 m) and
the coastal island of Hydra — plus a free-atmosphere 850 hPa outlook tied
to the Athens radiosonde record (from 1950). A three-model SARIMAX
cascade feeds the 850 hPa signal into the local surface model, using
SEAS5 forecasts (geopotential 850/500 hPa, MSLP, Aegean SST) as
exogenous predictors, bias-corrected with lead- and month-dependent
correction tables derived from 108 archived SEAS5 issue dates
(2017–2025). Confidence intervals propagate the SEAS5 exogenous
uncertainty through the full predictor covariance matrix, so they widen
honestly with lead time rather than relying on the native SARIMAX
interval alone.
Verification
Every forecast is published before the target month and archived
publicly (JSON ladder, leads 6→1), then verified against observations.
Live 2026 record so far (pooled MAE vs. a trend-aware climatological
baseline, not a flat mean):
- REA (mountain station): 0.69°C vs 0.91°C baseline (~25% better)
- Hydra (coastal station): 0.54°C vs 0.70°C baseline (~23% better)
- 850 hPa: 0.72°C vs 0.84°C baseline (~14% better)
(Small samples so far — this is a live record, not a controlled
hindcast; a multi-year hindcast is also available.)
A negative result, for balance
I also tried the same approach for monthly precipitation (logistic
regression, above/below-median target). It works well with observed
predictors (65–75% leave-one-year-out accuracy), but a 17-month
out-of-sample backtest using SEAS5 forecast predictors showed no skill
over climatology at any lead — so it was not deployed. I think that’s
worth sharing too, since it says something about the limits of monthly
circulation predictability at this scale.
Code & data
Full pipeline, correction tables and verification JSONs are here:
GitHub - hydreo/sarimax-seasonal-weather-forecasting: Operational local seasonal temperature forecasting with SARIMAX + SEAS5 · GitHub (MIT licensed)
Live outlooks: reaweather.gr and hydraweather.gr
I’m a self-taught practitioner in this area, so I’d particularly welcome input from anyone with more formal experience in seasonal forecasting — there’s likely room to improve the statistical approach, and I’d be glad to learn from that.
I’d very much welcome any feedback — on the bias-correction approach,
the CI propagation, or anything else — and I’m happy to answer questions
about the methodology.
Thanks,
Nikolas