Algorithm

MIDL produces upstream solar wind boundary conditions by downloading, quality-screening, and merging 1-minute data from satellites orbiting the Sun–Earth L1 point: ACE, DSCOVR, WIND, and SOLAR-1 (magnetometer from April 2026).

Pipeline overview

Stage 01 · Filter

3-point median despike filter. Short data gaps are interpolated - magnetic field up to 5 min, plasma up to 60 min.

Stage 02 · Merge

Quality scoring across every available satellite. Best source selected per variable per minute using agreement-first rules with continuity fallback.

Stage 03 · Propagate

Ballistic time-shift (ΔXGSM/Ux, with shock handling) or 1D BATSRUS MHD along the Sun–Earth line. Files pre-computed at integer RE in [−70, 70].

Data quality checks

Four checks are applied to each satellite's plasma measurements (Ux, Uy, Uz, ρ) before merging. Magnetic field bypasses quality gating.

  1. Outlier detection - a satellite is flagged when any pair of remaining satellites agree with each other but disagree with the flagged one.
  2. Missing data fraction - flags 60-minute rolling windows where more than 50% of values are missing.
  3. Flat-plateau detection - identifies stuck or near-constant instrument readings via rolling standard deviation and unique-value counts.
  4. Near-zero transverse velocity - DSCOVR-specific check that flags Uy/Uz ≤ 0.5 km/s (Faraday cup artifact).

Source selection

After quality scoring removes suspect measurements, the remaining satellites are merged using an agreement-first rule:

  1. 3 or more agree → take the median of all agreeing values.
  2. Any 2 agree → take the mean of the two values.
  3. None agree → fall back to the satellite closest to the previous output value, with a 3-minute hysteresis lock to prevent oscillation. Exception: for ρ and T, when only DSCOVR and one other satellite are available, the non-DSCOVR source is preferred (DSCOVR Faraday cup density and temperature show higher variance than ACE and WIND, and the continuity fallback can lock onto biased values). DSCOVR is still used when it is the only source.

Vector coupling

Magnetic field components (Bx, By, Bz) are selected as a coupled vector - selection runs on |B|, and the winning satellite provides all three components. The output field is always measured simultaneously by a single instrument, preserving ∇ · B = 0. The same approach is used for transverse velocity (Uy, Uz) via |Vt|.

Temperature

Temperature is handled separately using a geometric median in log-space: T = exp(median(log(T))). This accounts for the log-normal distribution of solar wind temperature and avoids bias from linear averaging. When exactly two satellites contribute and one is DSCOVR, only the non-DSCOVR value is used.

Transition smoothing

When the contributing satellite set changes from one minute to the next, the resulting step discontinuity is smoothed with a boxcar mean. Window width scales with jump magnitude - larger jumps get wider windows, up to 60 minutes. Steps at minutes where the source does not change are left untouched, preserving real solar wind discontinuities.