Weather Predictor

Helsinki 2026-04-05 10:00
3.7°C
Clear
90.0%
1003.9 hPa
Horizon Our Model FMI Harmonie
+6h
7.09°C 3.9°C
+12h
7.3°C 4.0°C
+24h
4.21°C 2.4°C
Our Model FMI Harmonie
Horizon Our Model FMI Harmonie
+3h
Clear
+6h
Clear Rain
+12h
Clear Rain
Our Model FMI Harmonie
Oulu 2026-04-05 10:00
3.5°C
Clear
68.5%
1000.8 hPa
Horizon Our Model FMI Harmonie
+6h
5.25°C 4.4°C
+12h
5.09°C 2.7°C
+24h
0.86°C 1.9°C
Our Model FMI Harmonie
Horizon Our Model FMI Harmonie
+3h
Clear
+6h
Clear Rain
+12h
Rain Rain
Our Model FMI Harmonie
Rovaniemi 2026-04-05 10:00
0.15°C
Clear
66.5%
1001.1 hPa
Horizon Our Model FMI Harmonie
+6h
1.53°C 2.6°C
+12h
1.93°C 1.2°C
+24h
-3.29°C 2.1°C
Our Model FMI Harmonie
Horizon Our Model FMI Harmonie
+3h
Clear
+6h
Snow Rain
+12h
Snow Rain
Our Model FMI Harmonie
Tampere 2026-04-05 10:00
2.2°C
Snow
96.5%
1003.2 hPa
Horizon Our Model FMI Harmonie
+6h
5.02°C 5.4°C
+12h
6.46°C 2.5°C
+24h
3.48°C 1.7°C
Our Model FMI Harmonie
Horizon Our Model FMI Harmonie
+3h
Clear
+6h
Clear Rain
+12h
Clear Rain
Our Model FMI Harmonie
Turku 2026-04-05 10:00
3.0°C
Clear
96.0%
1004.1 hPa
Horizon Our Model FMI Harmonie
+6h
5.78°C 4.1°C
+12h
6.52°C 3.8°C
+24h
4.14°C 2.7°C
Our Model FMI Harmonie
Horizon Our Model FMI Harmonie
+3h
Clear
+6h
Clear Clear
+12h
Clear Rain
Our Model FMI Harmonie
Vaasa 2026-04-05 10:00
1.7°C
Clear
95.5%
1001.45 hPa
Horizon Our Model FMI Harmonie
+6h
2.88°C 3.7°C
+12h
4.21°C 2.6°C
+24h
1.56°C 2.6°C
Our Model FMI Harmonie
Horizon Our Model FMI Harmonie
+3h
Rain
+6h
Clear Rain
+12h
Clear Rain
Our Model FMI Harmonie
Doug-Vo / Weather-Predictor
Full source code — models, worker, notebooks
Modeling
XGBoost + LightGBM

V2 runs two parallel model families. An XGBoost regression model handles temperature forecasting at +6h, +12h, and +24h horizons.

A LightGBM multiclass classifier predicts weather codes (Clear / Rain / Snow) at +3h, +6h, and +12h.

Both models are trained independently and run in parallel during each hourly worker cycle.

Data
Training Dataset

Over 120,000 city-aggregated hourly observations spanning November 2023 to March 2026 across 6 Finnish cities — Oulu, Helsinki, Tampere, Turku, Rovaniemi, and Vaasa.

Data sourced from FMI Open Data via dual WFS endpoints — hourly for temperature, wind and pressure, and 10-min for cloud cover and dew point.

Train/val/test split uses a seasonal gap strategy — validation and test sets are both full Finnish winters from different years to ensure reliable evaluation of snow and rain detection.

Engineering
Feature Set
  • Pressure Tendency: 1h / 3h / 6h change — signals approaching frontal systems.
  • Cloud Cover + Dew Point: From 10-min endpoint — critical for fog and snow detection.
  • Wind Decomposition: U/V components derived from speed and direction.
  • Coastal Distance: Static feature encoding proximity to coastline — differentiates maritime vs inland cities.
  • Seasonal Encoding: Day-of-year sine/cosine captures annual temperature cycles.
Evaluation
Model Performance

Evaluated on a held-out winter test set (Nov 2025 → Mar 2026). Hover the buttons to see per-horizon metrics.

Temperature Model (XGBoost)
+6h
+12h
+24h
Weather Code Model (LightGBM)
+3h
+6h
+12h
Pipeline
Hourly Worker

GitHub Actions triggers every hour

Each run fetches the last 8 hours of observations (for lag features), aggregates 10 stations into 6 cities, engineers features, and runs inference on the latest row per city.

FMI Harmonie NWP forecasts are fetched alongside and stored in MongoDB for side-by-side comparison on the dashboard.

Infrastructure
Stack

MongoDB Atlas: Stores one document per city per hour. Each document contains current observations, our model predictions, and FMI Harmonie forecasts.

Azure App Service: Flask app served from a Docker container, reads latest city documents from MongoDB and renders the dashboard.

fmiopendata: Open-source Python library for WFS queries — github.com/pnuu/fmiopendata

Source Code: Full project available at github.com/Doug-Vo/Weather-Predictor