🧲 Tormenta
A machine-learning nowcast of the geomagnetic Kp index (0–9) from solar-wind measurements taken about an hour upstream of Earth. CT-378 Machine Learning, NED University, Fall 2026 · Alizeh & HRK.
Results on unseen years (2020 to Jan 2026)
0.573RMSE (Kp units)
0.808R²
34%lower error than persistence
80.8%coverage of the 80% range
How it works
- Inputs: interplanetary magnetic field (|B|, Bx, By, Bz), solar-wind speed, density and temperature, and F10.7 solar flux. No geomagnetic indices are used, so the nowcast does not wait for ground magnetometers.
- Features: 66 physics-based features: coupling functions (Newell, V·Bs, electric field), pressure, lags, 3–24 h trailing statistics, position inside the 3-hour Kp block, and time of day and year.
- Model: scikit-learn HistGradientBoosting, chosen over Linear Regression, KNN, SVR and Random Forest by time-ordered cross-validation. Quantile models with a conformal correction give the 80% range.
- Data: NASA OMNI2 hourly solar wind (1998–2025) with GFZ Potsdam definitive Kp as labels. Live inputs come from NOAA SWPC's propagated real-time solar wind.
- Leakage safeguards: causal features only, the same feature code for training and live use (unit-tested), decisions made on validation years only, and the test years scored once per model version.
Model comparison (test years)
| Model | RMSE | R² | RMSE on storm hours |
|---|---|---|---|
| Persistence (previous Kp) | 0.862 | 0.566 | 1.368 |
| Linear Regression | 0.665 | 0.742 | 1.470 |
| KNN | 0.657 | 0.748 | 1.337 |
| SVR | 0.605 | 0.786 | 1.079 |
| Random Forest | 0.606 | 0.785 | 0.972 |
| HistGradientBoosting | 0.573 | 0.808 | 0.846 |
Live check
Limitations
- The largest storms (G3+) are under-predicted by about 0.6 Kp on average, because they are rare in the training data.
- Sudden storm onsets show up 1–2 hours late within a 3-hour Kp block.
- Lead time is at most about 1 hour, the travel time of the solar wind to Earth.
- For education and awareness only, not an operational warning service. Use NOAA SWPC or GFZ for that.