Skip to content

eluckydog/Carrington-Space-Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Carrington Space Engine

A pluggable space weather engine calibrated by the 1859 Carrington event, with self-consistent ring current saturation.


Core Findings

This project revisits the 1859 Carrington superstorm using BGS 2023 digitised 1-minute magnetograms from Kew (KEW) and Greenwich (GRW), paired with a self-consistent Dst evolution model (DstV2). Key result: the Carrington Dst was approximately −774 nT, not the widely cited −1600 nT (Siscoe 2006).

Parameter This Work Traditional Value Reason for Difference
Dst extreme −774 nT −1600 nT (Siscoe 2006) Self-consistent saturation caps injection at ~−800 nT
CME1 Bz −50 nT (precursor) N/A (not modelled) First quantitative Bz inversion of the precursor storm
CME2 Bz −80 nT (main) −80 to −100 nT Consistent
CME1 velocity ~1300 km/s N/A 32 h transit from same source AR
CME2 velocity ~2360 km/s 2360 km/s (Cliver 2006) Consistent
ΔH/Dst factor (mid-latitude) 0.35 Not quantified Cross-validated with 1989 Quebec (0.34)

Key Discoveries

  1. Two independent CMEs — the precursor storm (Aug 28–29) and main storm (Sep 2) are distinct structures from the same source active region, not a single sustained Bz.
  2. Self-consistent saturation — the ring current naturally saturates at ~−700 to −800 nT through plasma sheet pressure anisotropy, preventing the unbounded injection implied by Siscoe's energy-integral extrapolation.
  3. Cross-event ΔH/Dst factor of 0.35 — validated across the 1859, 1989 Quebec, and 2003 Halloween events, giving a stable mid-latitude conversion for historical storms.
  4. Two independent digitizations agree — Bartels (1937) and BGS (2023) digitisations of the same Kew magnetograms show RMS = 53 nT, correlation = 0.788.

Model & Data

Dst Evolution Model (DstV2)

The core physical model (Burton 1975 with V2 extensions):

dDst/dt = a · E_y − Dst/τ − sat(Dst)
sat(Dst) = Dst² / (2 · Dst_sat)

Where Dst_sat ≈ 1200 nT is the self-consistent saturation half-value. The model includes dipole tilt compensation, DCF pressure correction, and dual time-scale recovery.

Data Sources

Dataset Source Coverage Resolution
KEW magnetograms BGS (Beggan+ 2024) 1859-08-25 to 1859-09-04 1 min
GRW magnetograms BGS (Beggan+ 2024) 1859-08-25 to 1859-09-04 1 min
Bartels digitisation Bartels (1937) 1859-09-01 to 1859-09-03 ~1 min
Carrington flare report Carrington (1859), Hodgson (1859) 1859-09-01 11:15 UT N/A

Model Accuracy & Limitations

The model is calibrated against 9 historical geomagnetic storms (1859–2024) through a unified cross-calibration framework (cross_calibrate.py). Key accuracy metrics:

Event Observed Dst Model Dst (V2) Error Notes
1859 Carrington *−774† −643 +131 † Inferred from KEW ΔH
1989 Quebec −589 −467 +122 Saturation under-estimated
2003 Halloween −401 −793 −392 Main-phase duration mismatch
2024 May 10 −412 −591 −179 Bz profile uncertainty
1986 Feb 8 −307 −259 +48 Good fit
2004 Nov 8 −374 −453 −79 Moderate
1989 Mar 13 −589 −581 +8 Excellent
2015 Mar 17 −223 −252 −29 Good fit
2000 Jul 15 −301 −311 −10 Excellent

Overall: RMSE ≈ 190 nT across 9 events (V2). Parameters are not fully optimised; a V1 version with simpler assumptions gives RMSE ≈ 250 nT.

Known limitations:

  • Bz waveform is a simplified trapezoid (not MHD-simulated)
  • Only two UK mid-latitude stations (KEW, GRW); no direct equatorial Dst measurement for 1859
  • CME1 (precursor) lacks optical confirmation (source AR was behind the east limb)
  • The Kew magnetogram went off-scale during the main storm peak (Sep 2 07:00–08:00); the −315 nT ΔH is a spot-value approximation
  • Solar wind density (n = 3 cm⁻³) and B_y component are unconstrained for 1859

Project Structure

carrington-space-engine/
├── src/                   # Core models
│   ├── dst_model_v2.py    # Dst evolution with self-consistent saturation
│   ├── event_params.py    # 9-event parameter library
│   ├── cross_calibrate.py # Cross-event calibration framework
│   ├── cme_propagation.py # CME travel-time & drag model
│   └── constants.py       # Physical constants
├── earth_environ/         # Pluggable environment modules
│   ├── dipole_tilt.py     # Dipole tilt angle compensation
│   ├── pressure_correction.py  # Solar wind dynamic pressure correction
│   ├── atmosphere.py      # NRLMSISE-00 atmospheric density
│   └── pluggable_engine.py     # Module dependency resolver
├── scripts/               # Analysis & reconstruction scripts
│   ├── _invert_carrington.py   # Dual-CME Bz inversion from KEW data
│   ├── _bartels_comparison.py  # 1937 vs 2023 digitisation validation
│   ├── _grw_verification.py    # GRW station independent inversion
│   ├── _carrington_sweep.py    # 5-parameter 768-combo scan
│   └── _extract_ts.py          # BGS time-series extraction
├── data/
│   └── bgs_1859/          # BGS digitised magnetograms (Beggan+ 2024)
├── reports/               # Full analysis reports
└── validation/            # Unit tests

Quick Start

from src.dst_model_v2 import DstEvolutionModelV2 as DstV2
from earth_environ import DipoleTilt, PressureCorrection

# Initialise the model with self-consistent saturation
model = DstV2({
    'sat_dst_half': 1200,
    'self_saturation': True,
    'tilt_enabled': True,
    'tilt_comp': True,
    'dcf_comp': True
})
model.inject_components(
    DipoleTilt(day_of_year=240, hour_of_day=12),
    PressureCorrection()
)

# Run a storm simulation (Bz waveform → Dst)
dst = 0.0
for t in range(0, 48):  # 48 hours
    _, dst = model.step(
        dst, v_sw=800, bz=-30, n_sw=5,
        dt=1.0, v_th=400, doy=240, hod=12, v_sw_cme=800
    )

Citation / References

If you use this model or its findings in your research, please cite this repository and the underlying data sources listed below.

This repository:

Eluckydog. (2026). Carrington-Space-Engine: A pluggable space weather engine calibrated by the 1859 storm. GitHub. https://github.com/eluckydog/Carrington-Space-Engine

Key scientific findings:

Eluckydog. (2026). Revised Carrington Dst ≈ −774 nT from Kew magnetograms and self-consistent saturation. (Available on GitHub)

Underlying data and prior work that enabled this study:

Beggan, C. D., et al. (2024). Digitised continuous magnetic recordings for the August/September 1859 storms from London, UK. Space Weather, 22, e2024SW004123. https://doi.org/10.1029/2024SW004123

Hayakawa, H., et al. (2019). The extreme space weather event of 1859. Space Weather, 17, 1553–1560. https://doi.org/10.1029/2019SW002269

Cliver, E. W., & Dietrich, W. F. (2013). The 1859 space weather event revisited. Journal of Space Weather and Space Climate, 3, A31.

Siscoe, G., Crooker, N. U., & Clauer, C. R. (2006). Dst of the Carrington storm of 1859. Advances in Space Research, 38(2), 173–179.

Viljanen, A., et al. (2004). Relation between Dst and mid-latitude H-component. Annales Geophysicae, 22, 2233–2241.

Original BGS data download:

https://www.bgs.ac.uk/data/... (see data/README.md for details)


License

MIT — see LICENSE.


Acknowledgments

This work would not have been possible without the BGS 2023 digitisation project (Beggan+ 2024), which made the 1859 Kew and Greenwich 1-minute magnetograms publicly available for the first time. Thanks also to C. D. Beggan and the BGS team for their careful archival work.

About

Carrington-Space-Engine – A pluggable space weather engine calibrated by 768 scans of the 1859 storm. Features Dst v2 with self‑consistent saturation (~1200 nT), α‑classification, and Aug 28 pre‑storm. Revised Carrington Dst ≈ −774 nT (not −1600 nT). Lightweight & open.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages