How it works
CME detector
SOHO’s LASCO cameras and NOAA’s GOES-19 Compact Coronagraph (CCOR-1) take pictures of the Sun’s outer atmosphere every few minutes. We look for a bright front that is moving outward — the observational definition of a coronal mass ejection — and write those events into the same catalog as SIDC and NASA.
SIDC and NASA DONKI remain the primary sources on the CME overview. This detector is a second look at the same sky, so a fast west-limb storm does not have to wait on a human or a delayed bulletin. It is not the official SIDC catalog. Six paths examine each movie. A Hough transform, the idea behind CACTus, stands on its own. SEEDS, two CORIMP-style edge finders, a base-difference front, and a small SegFormer each propose their own arc. When those arcs describe the same eruption, the catalog keeps every path, and the event note names them.
From coronagraph movie to an event
-
1
Collect LASCO, CCOR-1, and STEREO-A frames LASCO synoptic Level-0.5 FITS from NASA GSFC (C2 orange, 1024 pixels), GOES-19 CCOR-1 Level-1B from SWPC, and STEREO-A COR2 from the SSC science archive. C2 sees roughly 2–6 solar radii, CCOR-1 about 4.5–18, C3 about 6–24, COR2 about 2.5–15. CCOR frames with Earth in the field of view are skipped — common near equinox from geostationary orbit.
-
2
Unwrap each image into polar coordinates Every pixel becomes height from the Sun versus compass direction (position angle: 0° = solar north, 90° = east). A CME then looks like a bright ridge moving to larger height as time goes on.
-
3
Running difference We divide “this frame minus the previous one” by the previous brightness, then clip the ratio. That is CACTus’s relative difference: it highlights new material and ignores a planet or cosmic-ray spike that would otherwise dominate.
-
4
Run six detectors on that cube Hough, SEEDS, CORIMP, Morgan, base difference, and SegFormer each return their own arc: a launch time, a compass direction, a width, and a plane-of-sky speed. None of them is allowed to delete the others. The paths are described below.
-
5
Keep every path that agrees Arcs within 3.5 hours whose position angles overlap become one catalog event. The note lists each path — for example “Detected by Hough on C2 …; SEEDS on C2 …”. A Hough arc stays as the event unless a wider front covers it. An L1 arc of about 90° or more is tagged a halo: its angle is a flank, so the cone is aimed near the Sun–Earth line. A narrower arc is placed on the limb.
-
6
Respect the occulter pylons Each coronagraph’s occulting disk is held by an arm, and that sector is noisy. LASCO’s pylon sits at 135° (southeast) when SOHO is north-up, or 315° when the spacecraft is inverted — not on the west limb. CCOR-1’s pylon follows the detector’s +y axis (solar position angle ≈ −CROTA; near 24° on 14 Sep 2026). We only drop narrow blobs centered on either pylon; a real west-equatorial CME is left alone.
The six paths
- Hough
- CACTus ridge. For each compass direction the height–time map is searched for a straight track: a launch time and a speed from 150 to 2100 km/s. Neighboring directions that share a launch become one arc. A later height–time fit can replace the Hough speed (linear, quadratic, or Savitzky–Golay); the catalog still calls that path Hough. Appearance time is pinned near the C2 occulter, about 2.2 solar radii, so a late brightening in C3 or CCOR-1 cannot steal it.
- SEEDS
- Growing a bright core. Following Olmedo et al. (2008), a threshold picks the brightest pixels in the running difference, then the region grows into the fainter flanks. The front has to move outward. This path is good at compact, bright blobs and can miss a faint leading edge.
- CORIMP
- Edge after the quiet corona is removed. A normalized radial graded filter flattens the fall-off with height. The median of the movie is the quiescent corona. What remains is smoothed at two radial scales and subtracted, which is a compact version of the multiscale edge in Byrne et al. (2012). The outermost pixel above the threshold is the front.
- Morgan
- The dynamic leading edge. Morgan, Byrne, and Habbal (2012) split a static corona from the part that changes. The strength of that dynamic part is measured at several scales. Pixels above one median absolute deviation of the positive strengths are kept, and again the outer edge is the front. This path stays beside CORIMP because the two do not always mark the same front.
- Base difference
- Excess over the pre-event corona. Each frame is divided by the median of the frames before the candidate. The leading edge of that excess, core and flanks separately, has to rise. It is the simplest of the classical paths and sometimes catches a front the edge filters smooth away.
- SegFormer
- A learned faint edge. A SegFormer-B0 (Xie et al. 2021) looks at a three-channel running difference and marks the thin outer arc, not the bright body behind it. It was trained on synthetic faint fronts, with a minority of real LASCO pairs whose edge a classical path had already found. Connected pieces are tracked in angle across frames. The weights ship with the hourly function, so this path runs in the live catalog.
STEREO-A COR2, about 70° ahead of Earth, is reduced on its own angle grid. When an Ahead arc and an Earth arc fit one three-dimensional direction, the event is tagged stereo-confirmed. An Earth detection is kept even when Ahead does not see it. COR2 science frames are the 2048-pixel total-brightness images; the 256-pixel beacon is used only when a day has too few science frames.
What each number means
- t0
- First appearance at the C2 occulter. This is the catalog launch time, not the later arrival at Earth. CCOR-1 cannot see that height; it votes on the same track farther out.
- PA
- Principal angle — midpoint of the CME’s arc, measured counterclockwise from solar north.
- da
- Angular width in degrees. Wider than about 90° can be a partial halo; that does not by itself mean Earth-directed.
- v
- Plane-of-sky speed along the arc, in km/s. Each path measures its own. A CME coming toward Earth can look much slower than the radial speed that later reaches ACE, because the camera sees the flank expanding sideways. For a halo, HUXt uses this number as the launch speed. For a narrower arc it divides by the sine of the angle off the Sun–Earth line, and will not divide by less than sin 15°.
GOES-19 CCOR-1
CCOR-1 is NOAA’s operational coronagraph on GOES-19. It is not a LASCO clone: the occulter starts farther out (~4.5 solar radii), the cadence is 15 minutes, and because the satellite is in geostationary orbit the Earth can graze or fill the field around the equinoxes. We ingest the public SWPC L1B FITS — the same product the CME Analysis Tool uses — and remap them onto the LASCO height–time cube. That adds an independent set of photons from a different spacecraft, not a second catalog to scrape.
L1B is still stray-light dominated. We do not wait for NOAA’s background-subtracted L2/L3 products; those are later. Running differences on L1B are the same trick CACTus uses on LASCO Level-0.5.
How this differs from SIDC
SIDC’s CACTus is the reference automated catalog, and it is LASCO-only and Hough-only. We keep that Hough path, and we add the other five, on a rolling six-hour window of LASCO C2 and C3, CCOR-1, and STEREO-A COR2. Hits are merged into the AuroraWatchers catalog as an extra source. We do not replace SIDC or NASA DONKI.
The detector answers whether something left the Sun in this movie, and which algorithms saw it. Travel time to Earth is a separate question, answered by HUXt and by NASA’s WSA-ENLIL run.
Papers
-
Robbrecht & Berghmans 2004
Automated CME detection with a modified Hough transform on polar LASCO running-differences. This is the CACTus method we follow. A&A 425, 1097 · SIDC PDF
-
SIDC CACTus catalog notes
Image selection from FITS headers, and the LASCO occulter pylon at 135° from solar north (315° when SOHO is inverted). Catalog construction · Live CACTus
-
Yashiro et al. 2008
Comparison of manual and automated CME catalogs. False detections around the pylon are typically narrow (width ≤ 30°). Ann. Geophys. 26, 3103
-
Olmedo et al. 2008
SEEDS: region-growing detection in LASCO C2. Appearance time is a C2 problem — that is why we weight inner heights when voting for t0. Solar Phys. 248, 485
-
Morgan, Byrne & Habbal 2012
Separating the dynamic CME from the quiescent corona. The Morgan path follows that split, then takes the outer edge of the dynamic component. ApJ 752, 144
-
Byrne et al. 2012
CORIMP: the same separation, then multiscale edges and a height–time fit that is allowed to accelerate. Our CORIMP path is a compact version of that edge; both paths are kept. arXiv:1207.6125 · ApJ 752, 145
-
Hess & Colaninno 2017
CDAW, CACTus, SEEDS and CORIMP disagree as much because of cadence and method as because of physics. We skip difference pairs more than 45 minutes apart. ApJ 836, 9
-
Xie et al. 2021
SegFormer: a lightweight transformer for semantic segmentation. The CME path is this architecture trained on faint synthetic fronts, not a published CME catalog model. arXiv:2105.15203
-
NOAA SWPC / NCEI — CCOR-1
GOES-19 Compact Coronagraph-1: L1B FITS, ~4.5–22.5 solar radii, 15-minute cadence, Earth occultation and earthshine near equinox, pylon that moves with yaw flips. SWPC coronagraph · NRL data notes · Provisional read-me (PDF)
Limits. This is not a forecast. A narrow arc is placed on the solar limb, so an Earth-directed storm that only one path sees as a thin flank never reaches Earth in HUXt. Halo width can be overstated. A six-hour window can split a long event. The listed speed is a plane-of-sky speed. CCOR-1 can go dark or earthshine-bright around the equinoxes. Cross-check a hit against the movies and the SIDC/DONKI cards on the overview.