The science & math behind CME Tracker
Everything the tracker shows — every wedge, arrival time, and storm estimate — comes out of a small set of published physics and classical astronomy, seeded entirely by real measurements. This page walks through all of it, equations included, and states plainly where the approximations are.
1The pipeline at a glance
Five steps take each CME from a coronagraph image to a prediction on your screen:
- Measure — NASA analysts fit each eruption's speed, direction, and angular width from coronagraph imagery (§2).
- Aim — spherical geometry decides whether the cone covers Earth (or Mercury, Venus, Mars) (§3).
- Propagate — the drag-based model evolves the front's distance and speed through the solar wind (§4).
- Solve — a root-finder intersects that trajectory with the planet's true, moving position (§5–§6).
- Estimate — the decelerated arrival speed maps to an expected Kp and NOAA G-level (§7).
Nothing is hand-tuned per event, and the whole chain is back-tested against a decade of real arrivals (§8).
2The measurements everything starts from
A CME's parameters can't be taken from Earth alone — a cloud heading straight at you shows almost no sideways motion. NASA's DONKI catalog solves this with two viewing angles: coronagraphs at L1 (SOHO/LASCO) and on STEREO-A, which orbits the Sun well off the Sun–Earth line. Triangulating between them yields, for each CME:
- Speed — the leading edge's radial velocity, in km/s.
- Direction — latitude and longitude of the cone axis in Stonyhurst coordinates (Earth-view solar coordinates: lat 0, lon 0 means aimed straight at us).
- Half-angle — half the cone's angular width, typically 20–45°.
- time21_5 — the moment the leading edge crosses 21.5 solar radii (about 0.1 AU). That's where coronagraph fitting ends and modeling begins, so it's the model's starting line.
When no analysis exists yet (or ever — some CMEs are too faint or far-sided to triangulate), the tracker refuses to guess: the CME is drawn as a directionless shell and never contributes an arrival (§12).
3Will it hit? Cone geometry
A CME hits a planet when the planet lies inside the cone — that is, when the angle between the cone's axis and the Sun–planet line is at most the half-angle. That angle is a great-circle separation on the sphere, not the flat-map shortcut √(lon² + lat²) (which overstates the offset at high latitudes):
The verdict is then:
| DIRECT | offset ≤ half-angle — the cone covers the planet. |
| GLANCING | offset ≤ half-angle + 20° — the flank may brush it. The 20° buffer reflects that real CMEs are wider than their bright coronagraph core and often deflect a few degrees in transit. |
| MISS | anything wider. |
Two subtleties matter for planets other than Earth:
- The axis is frozen at launch. Stonyhurst longitude is Earth-relative at the launch moment, so the tracker converts it once to a fixed heliocentric direction (Earth's longitude at launch + the CME's longitude) and keeps it. The cone doesn't co-rotate with Earth while in flight — on the map or in the math.
- The planet moves during transit. Mercury covers ~4° per day; a 4-day transit is a 16° shift. The hit-test therefore evaluates the planet's position at the moment the front reaches its orbit, not at launch.
4The drag-based model (DBM)
Beyond 21.5 R☉, a CME behaves like an object in a fluid: faster than the ambient solar wind, it's dragged back; slower, it's dragged forward. The governing equation (Vršnak et al. 2013) is:
where v is the CME front's speed, w the ambient solar-wind speed, and γ the drag parameter. Its great advantage: it integrates to exact closed forms — no numerical integration, no accumulated step error:
v(t) = w ± (v₀ − w) / (1 + γ |v₀ − w| t)
+ when the CME starts faster than the wind, − when slower; r₀ = 21.5 R☉ at the time21_5 epoch.
The two inputs beyond the measurements:
- Ambient wind w — the live solar-wind speed measured at L1 when the model runs (clamped to a physical 280–750 km/s; 430 km/s if unavailable). A CME launched into a fast stream really does arrive sooner, and this captures that to first order.
- Drag parameter γ — fast CMEs are more massive and streamlined, so they feel less drag per kilogram. The tracker uses a speed-banded γ within Vršnak's published range:
Launch speed γ (km⁻¹) ≥ 1500 km/s 0.10 × 10⁻⁷ 1000–1499 0.15 × 10⁻⁷ 600–999 0.20 × 10⁻⁷ < 600 0.30 × 10⁻⁷
The physical consequence is the single most important fact about CME forecasting: fast CMEs arrive much slower than they launch. A 2,000 km/s monster typically reaches Earth below 1,000 km/s; drag has bled the difference into the surrounding wind. That decelerated arrival speed — not the headline launch speed — is what drives the storm estimate in §7.
Sanity check you can do in your head: at 1,000 km/s launch into a 430 km/s wind, the closed form delivers the front to 1 AU in about two days — matching the observed 1–4 day range across the speed spectrum.
5Solving the arrival time
“When does r(t) equal Earth's distance?” has no algebraic solution — and Earth's distance isn't constant. Earth is ~1.7% closer to the Sun in January than July, which alone shifts arrivals by about an hour. So the tracker solves it numerically, against the true distance:
R_Earth(t) = 1.00014 − 0.01671 cos g − 0.00014 cos 2g astronomical units, with g the Sun's mean anomaly (Astronomical Almanac).
Because r(t) only ever increases, bisection is guaranteed to converge: bracket the crossing, halve the interval 60 times, and the answer is exact to well under a millisecond — absurd overkill against a ±12 h physical uncertainty, but free. For other planets the same solve runs against that planet's own time-varying distance (Mercury's swings from 0.31 to 0.47 AU — using a fixed radius would misplace arrivals by hours).
The quoted ±12 h uncertainty isn't a guess — it's the median error from the validation in §8, widened for slow CMEs (which are worse-measured), and widened to ±18 h off Earth, where no validation exists.
6Where the planets are
Every planet position — for the map, the hit-tests, and the arrival solves — comes from classical orbital elements evaluated at the displayed time. Mean motion alone isn't enough: orbits are ellipses, and a planet runs fast near perihelion and slow near aphelion. The correction is the equation of center, expanded to third order in eccentricity e:
ν = true anomaly, M = mean anomaly; distance then follows from the conic equation r = a(1−e²)/(1+e cos ν).
This matters most for Mercury (e = 0.206): a circular approximation puts it up to 24° of longitude and 21% of distance wrong — easily enough to flip a hit into a miss. With the equation of center, positions are good to ~0.1°, far inside any cone. Earth uses the slightly better dedicated Almanac series; both agree to under half a degree.
Spacecraft get the treatment their orbits demand: STEREO-A is near-circular, so a mean-motion approximation pinned to its August 2023 Earth flyby is accurate to a few degrees (and labelled “approx” on the map). Parker Solar Probe, at e = 0.88, needs the real thing — a Newton–Raphson solve of Kepler's equation M = E − e sin E on JPL HORIZONS elements from its final, fixed orbit.
7Estimating storm strength
How strong a geomagnetic storm gets depends chiefly on two things: how hard the CME hits (speed and density) and which way its magnetic field points when it arrives. The tracker knows the first days in advance; nobody on Earth knows the second until the cloud reaches L1, ~30–60 minutes out — the field orientation inside a CME simply cannot be measured remotely. So the storm estimate is a speed-driven statistical heuristic, and it's labelled that way everywhere it appears:
−1.5 for a glancing geometry; clamped to 2–9. v_arrival is the drag-decelerated speed from §4, not the launch speed.
The slope sits within the family of published speed–Kp regressions: 610 km/s at arrival ≈ Kp 5 (G1), 870 ≈ Kp 7 (G3), 1130 ≈ Kp 9 (G5). Kp then maps to the NOAA G-scale exactly as NOAA defines it — G1 at Kp 5 up through G5 at Kp 9.
8Validation — the receipts
The whole chain is back-tested, and the methodology matters as much as the score:
- Ground truth: NASA DONKI's interplanetary-shock catalog — real, instrument-timed arrivals at L1 across 2014–2024.
- Associations: NASA's own shock↔CME links, not our matching — so we can't cherry-pick which CME "caused" which shock.
- Ambient wind: per-event hourly OMNI measurements, just as the live model uses the live wind.
- The exact production code is what's tested — the same functions that draw your screen.
Across 282 NASA-linked CME→shock pairs:
| Metric | Result |
|---|---|
| Median absolute error | 12.3 h (the "typical miss") |
| Mean absolute error | 14.8 h (95% CI 13.5–16.2) |
| Bias | +1.1 h (CI −1.1…+3.3 — statistically unbiased; it doesn't run systematically early or late) |
| WSA-Enlil, same events | 11.2 h mean — NASA's full MHD supercomputer model does better, as it should; staying within a few hours of it with two parameters is the point |
| Fast (≥1000 km/s) vs slow | 15.3 h vs 14.7 h — no speed regime hides a weakness |
Two disclosed caveats: pairs with errors beyond 48 h were dropped as bad associations (this also removes some genuine failures), and the ambient wind is sampled near arrival — a hindsight advantage a true forecast wouldn't have. Both nudge the score slightly optimistic; neither changes the picture. An earlier 11-event test on famous storms scored 8.3 h — a cherry-picking artifact the 282-event catalog corrected, which is exactly why the tracker quotes the big-sample numbers.
The full scoreboard, histogram and confidence intervals live in the Model skill card on the tracker, regenerated by an open validation script.
9The L1 nowcast — the last hour, measured
Spacecraft at the Sun–Earth L1 point sit ~1.5 million km upstream, sampling the exact solar wind that will hit Earth minutes later. The travel time is just distance over measured speed:
The tracker polls the high-cadence feed every 90 seconds and runs a small detector on it:
- Shock: median wind speed in ~15-minute windows before/after each point; a jump above 45 km/s, corroborated by a magnetic-field jump (or a >80 km/s jump alone), flags an interplanetary shock — and starts a live countdown to its Earth arrival. Medians, not means, so one glitchy telemetry point can't fake a shock.
- Southward field: a 12-minute median Bz at or below −8 nT means storm energy is about to couple in.
This is the highest-confidence product on the site precisely because it's the least clever: a measurement with a travel time, not a model.
10The Earth globe
The globe is rendered from the Sun's point of view, so the face you see is the face an arriving CME strikes. Three pieces of math drive it:
- Which face is sunlit — the sub-solar point. Latitude is the solar declination, δ = arcsin(sin ε sin λ) with obliquity ε = 23.44°; longitude comes from the UTC clock corrected by the equation of time (the up-to-±16-minute wobble between clock time and Sun time — skipping it would misplace the sunlit face by up to 4°).
- How compressed the magnetosphere is — solar-wind dynamic pressure, from the proton mass, density and speed:
Pdyn = 1.6726×10⁻⁶ · n · v² nPa (n in protons/cm³, v in km/s)
- How far the aurora reaches — the ovals are sized by Kp, mirroring the empirical rule that each Kp step pushes the auroral boundary a few degrees equatorward.
Whenever the displayed moment falls inside measured data — live, recent past, or a replay — the globe is driven by measurements. Only for a not-yet-arrived CME does it switch to the model: a sharp dynamic-pressure spike at the shock (decaying over ~an hour), a dense sheath, and a southward-field pulse scaled to the expected Kp, all relaxing over an 18-hour recovery. That synthetic profile is shaped like real storm time-series, and the caption always says which mode you're seeing.
11The Parker spiral & radiation storms
The Sun's magnetic field is dragged into an Archimedean spiral by the outflowing wind — the Sun rotates (sidereal period 25.38 days) while the field-carrying wind moves radially. A field line's longitude lags by:
≈ 57° at 1 AU for a 430 km/s wind — so Earth's magnetic "footpoint" on the Sun sits near W55–W60, not at disk center.
This is why the radiation card can light up for a CME that misses Earth: solar energetic particles travel along field lines at a good fraction of light-speed, so an eruption near the footpoint (within roughly ±45°) doses Earth in minutes–hours regardless of where the plasma cloud goes. The tracker draws the Earth-connected field line live from the measured wind speed, flags each selected CME's source as connected or not, and — for radiation storms — only attributes a proton event to an eruption when its onset is physically plausible (within −3 to +24 hours of launch; protons don't wait days).
12The map's honesty rules
Several visual choices are scientific commitments, not styling:
- No fake aims. A CME with no triangulated direction is a dashed, directionless shell — never a cone conveniently pointed at Earth — and never generates an arrival, a banner, or a storm on the globe.
- Linear scale, true positions. Distance-to-pixels is linear; planets sit at their true, eccentric-orbit positions and Earth at its real seasonal distance. The one licence: the Sun never shrinks below 9 pixels (at true scale it would be invisible) — zoom in and it becomes exact.
- Wedges match the math. The drawn cone uses the same launch-frozen axis, half-angle, and drag-model radius as the hit-test and arrival solve — what you see covering a planet is what the model scores as a hit.
- Time-aware instruments. The spacecraft layer only shows craft that existed at the displayed time: a 2012 replay has no DSCOVR, and the 1859 Carrington replay shows an empty sky.
- Provenance labels. Replays distinguish measured archive data from reconstruction; off-Earth arrivals are tagged as unvalidated estimates; the model-skill card publishes the error distribution rather than a best case.
13Known limitations
Approximations the tracker knowingly accepts, and why they're acceptable at this fidelity:
| Approximation | Size of the effect |
|---|---|
| Storm Kp ignores the CME's magnetic-field orientation (unknowable pre-arrival) | Can be off by 1–2 G-levels either way; the L1 nowcast corrects it in the final hour |
| Drag parameter γ steps between speed bands rather than varying continuously | Small ETA discontinuities near band edges; values validated in bulk (§8) |
| Earth's hit-test evaluates geometry at launch (planets' at arrival) | ~2–4° over a transit — inside the 20° glancing buffer |
| Solar B0 tilt (Earth's ±7.25° seasonal heliographic latitude) ignored in the cone offset | ≤7°, also inside the buffer and typical half-angles |
| The CME front is a rigid cone (no deflection, rotation, or deformation in transit) | Real CMEs deflect a few degrees and erode; part of the ±12 h and the glancing buffer |
| Not magnetohydrodynamics | No structured wind, stream interactions, or CME–CME collisions — that's what buys Enlil its ~3 h edge (§8) |
The design rule throughout: an approximation is fine when its error is small against the ~±12 h / ±20° uncertainties already inherent in the inputs — and every place a number is weaker than it looks, the interface says so.
14References
- Vršnak, B., et al. (2013). Propagation of Interplanetary Coronal Mass Ejections: The Drag-Based Model. Solar Physics 285, 295–315 — the propagation model.
- NASA CCMC, DONKI — CME analyses, flares, SEPs, and the interplanetary-shock catalog used for validation.
- NOAA SWPC, Space Weather Scales — the G and S scales.
- The Astronomical Almanac — low-precision solar coordinates, Earth–Sun distance, and equation of time.
- Standish, E.M. (JPL) — mean orbital elements for the inner planets; JPL HORIZONS for Parker Solar Probe.
- Parker, E.N. (1958). Dynamics of the Interplanetary Gas and Magnetic Fields — the spiral.