Deterministic analysis of perihelion-relative timing using a standardized state vector Ψ(t)
from JPL Horizons. This page documents data, methods, commands, and a cross-planet results summary.
Data source: JPL Horizons (DE441). Heliocentric, Ecliptic of J2000.0. Daily cadence.
Using daily DE441 ephemerides, OP023 peaks from a standardized 17-D state vector were matched to perihelia across nine targets. Matched coverage is 1.000 for all bodies. Dispersion σ by planet: Mercury 0.282 d, Venus 0.383 d, Earth 21.141 d, Mars 0.943 d, Jupiter 1.221 d, Saturn 157.919 d, Uranus 177.163 d (PCA mode), Neptune 842.011 d, Pluto barycenter 16.197 d. Wrapped phase fractions φ (Δt/P) are stable per body: Mercury +0.3989, Venus −0.2144, Earth +0.0415, Mars −0.1332, Jupiter +0.2153, Saturn +0.1815, Uranus −0.0830, Neptune +0.1198, Pluto barycenter +0.2082.
Definition. For each perihelion time tperi, let tpeak be the nearest OP023 peak in the match window. We define Δt = t_peak − t_peri
(days). Positive Δt means the OP023 peak occurs after perihelion; negative Δt means before.
Phase normalization. To compare across different orbital periods P, we use φ = wrap(Δt / P)
mapped to (−0.5, 0.5]
. Values near 0 indicate peaks cluster close to perihelion; non-zero φ indicates a stable phase offset.
The pipeline expects CSV files exported from Horizons in the form data/<planet>_YYYYtoYYYY.csv
. Each CSV must contain the cartesian state columns
X,Y,Z,VX,VY,VZ
(AU and AU/day). Example inventory:
Planet | CSV | Span | Notes |
---|---|---|---|
Mercury | data/mercury_1900to2025.csv | 1900–2025 | Daily |
Venus | data/venus_1900to2025.csv | 1900–2025 | Daily |
Earth | data/earth_1900to2025.csv | 1900–2025 | Daily |
Mars | data/mars_1900to2025.csv | 1900–2025 | Daily |
Jupiter | data/jupiter_1900to2025.csv | 1900–2025 | Daily |
Saturn | data/saturn_1900to2025.csv | 1900–2025 | Daily |
Uranus | data/uranus_1600to2300.csv | 1600–2300 | Daily; extended span |
Neptune | data/neptune_1600to2300.csv | 1600–2300 | Daily; extended span |
Pluto barycenter | data/pluto_1600to2300.csv | 1600–2300 | Daily; extended span |
Horizons availability and formal accuracy vary across eras. Where long ranges exceeded the web output limit, multiple TXT windows were exported and merged to CSV before analysis.
scripts/pipeline_multi_planet_v3.py
— end-to-end pipeline (per-planet run, QC retry, summary CSV, HTML report).scripts/planet_windows.json
— optional map of planet → specific CSV path (forces file selection).scripts/full_run_overrides.json
— optional per-planet parameter overrides (e.g., Earth & Saturn tuning, Uranus PCA).results/
— output folder: per-planet plots + summary.csv
+ report.html
.python3 -m venv .venv && source .venv/bin/activate pip install numpy pandas matplotlib
python3 scripts/pipeline_multi_planet_v3.py --planets all \ --overrides scripts/full_run_overrides.json \ --windows scripts/planet_windows.json \ --edge-guard 60
Outputs: results/summary.csv
, results/report.html
, plus per-planet PNGs in results/<planet>/
.
# Example: Uranus using PCA mode and relaxed thresholds python3 scripts/pipeline_multi_planet_v3.py --planets uranus \ --overrides scripts/uranus_fix.json \ --windows scripts/planet_windows.json \ --edge-guard 60
X,Y,Z,VX,VY,VZ
(AU, AU/day), body-centric: Sun (10), geometric, Ecliptic of J2000.0.R=√(X²+Y²+Z²)
, V=√(VX²+VY²+VZ²)
, co-variates (X·VX
, Y·VY
, Z·VZ
), and cross terms (XY, XZ, YZ, VX·VY, VX·VZ, VY·VZ
).Ψ(t)
.dim0
(first standardized coordinate), pca1
(first principal component), energy
(sum of squares).C(t)
(square of the chosen signal), smoothed by a boxcar kernel.R(t)
(smoothed), de-duplicated by a minimum separation.C(t)
: z-threshold relative to its mean and standard deviation, with de-duplication by minimum separation.Δt = t_peak − t_peri
.C(t)
and 1/R(t+lag)
across integer lags (bound by max(60, 0.4·P)
), recording the best lag and correlation.C(t)
+ perihelia + peaks + matched peaks), R-overlay (R(t)
quick-look with the same markers), histogram of Δt
, zoom windows, yearly drift of mean Δt
, local FFT around matched peaks, entropy and sharpness distributions, and lag-sweep plot.--edge-guard
days of the file boundaries to avoid truncated matching windows.σ > P/5
, run one relaxed pass (wider windows, more smoothing, lower threshold and/or alternate mode). Keep the retry only if it improves coverage or σ
.results/<planet>/overlay.png, r_overlay.png, zoom.png, phase_hist.png, drift.png, fft.png, entropy_hist.png, sharpness_hist.png, lag_sweep.png
results/<planet>/summary.json
per planet; results/summary.csv
and results/report.html
across planets.For each planet the pipeline reports: number of perihelia, detected peaks, matched events, coverage (matched/total), mean and dispersion of Δt
(days), median, range, a phase fraction
φ = wrap(Δt/P) in (−0.5, 0.5], and a strength score coverage · exp(−σ/P)
.
Δt
= +35.087 d; σ = 0.282 d.Δt
= −48.177 d; σ = 0.383 d.Δt
= +15.144 d; σ = 21.141 d.Δt
= −91.478 d; σ = 0.943 d.Δt
= +932.909 d; σ = 1.221 d.Δt
= +1952.400 d; σ = 157.919 d.Δt
= −2546.111 d; σ = 177.163 d.Δt
= +7210.800 d; σ = 842.011 d.Δt
= +18854.667 d; σ = 16.197 d. (Pluto here refers to the system barycenter, not surface locations.)The phase fraction φ enables cross-planet comparability by expressing timing as a fraction of each orbital cycle.
Open report.html, then use each planet’s links (overlay, R-overlay, zoom, phase histogram, drift, FFT, entropy, sharpness, lag sweep).
Planet | Period (days) | Smooth | Min Sep | Peri MinSep | Match Window | z | Mode | N Peri | N Peaks | Matched | Coverage | Mean Δt | Median Δt | σ (days) | Min Δt | Max Δt | Phase Frac | Strength | Lag Best Δ | Lag Best r |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Mercury | 87.969 | 5 | 60 | 62 | 60 | 0.8 | dim0 | 518 | 520 | 518 | 1.000 | +35.087 | +35.0 | 0.282 | +35.0 | +36.0 | +0.3989 | 0.9968 | 55 | 0.8320 |
Venus | 224.701 | 5 | 79 | 157 | 112 | 0.5 | dim0 | 203 | 407 | 203 | 1.000 | -48.177 | -48.0 | 0.383 | -49.0 | -48.0 | -0.2144 | 0.9983 | 48 | 0.9914 |
Earth | 365.256 | 9 | 122 | 340 | 122 | 0.8 | dim0 | 125 | 250 | 125 | 1.000 | +15.144 | +6.0 | 21.141 | +1.0 | +90.0 | +0.0415 | 0.9438 | -5 | 0.4939 |
Mars | 686.980 | 10 | 240 | 481 | 343 | 0.5 | dim0 | 67 | 133 | 67 | 1.000 | -91.478 | -91.0 | 0.943 | -98.0 | -91.0 | -0.1332 | 0.9986 | -249 | 0.9767 |
Jupiter | 4332.589 | 15 | 1516 | 3033 | 2166 | 0.5 | dim0 | 11 | 21 | 11 | 1.000 | +932.909 | +933.0 | 1.221 | +931.0 | +935.0 | +0.2153 | 0.9997 | 1209 | 0.9846 |
Saturn | 10759.220 | 270 | 3586 | 7172 | 3766 | 0.8 | dim0 | 5 | 9 | 5 | 1.000 | +1952.400 | +2022.0 | 157.919 | +1670.0 | +2028.0 | +0.1815 | 0.9854 | 3419 | 0.9464 |
Uranus | 30685.400 | 2000 | 16000 | 24000 | 14000 | 0.6 | pca1 | 9 | 12 | 9 | 1.000 | -2546.111 | -2605.0 | 177.163 | -2618.0 | -2074.0 | -0.0830 | 0.9942 | 2806 | 0.1767 |
Neptune | 60189.000 | 15 | 21066 | 42132 | 30094 | 0.5 | dim0 | 5 | 9 | 5 | 1.000 | +7210.800 | +6836.0 | 842.011 | +6825.0 | +8717.0 | +0.1198 | 0.9861 | 22602 | 0.9464 |
Pluto barycenter | 90560.000 | 15 | 31696 | 63392 | 45280 | 0.5 | dim0 | 3 | 6 | 3 | 1.000 | +18854.667 | +18863.0 | 16.197 | +18836.0 | +18865.0 | +0.2082 | 0.9998 | 27985 | 0.8519 |
Mercury (mode dim0
, period 87.969 d): matched 518/518 events (coverage 1.000). Mean Δt = +35.087 d (median +35.0, σ = 0.282 d, range +35.0…+36.0); phase fraction φ = +0.3989. Best lag corr(C, 1/R): 55 d (r = 0.8320).
Venus (mode dim0
, period 224.701 d): matched 203/203 events (coverage 1.000). Mean Δt = −48.177 d (median −48.0, σ = 0.383 d, range −49.0…−48.0); φ = −0.2144. Best lag: 48 d (r = 0.9914).
Earth (mode dim0
, period 365.256 d): matched 125/125 events (coverage 1.000). Mean Δt = +15.144 d (median +6.0, σ = 21.141 d, range +1.0…+90.0); φ = +0.0415. Best lag: −5 d (r = 0.4939).
Variant | Mean Δt (d) | σ (d) | φ |
---|---|---|---|
Heliocentric (Sun@10) | +11.019 | 23.961 | +0.0302 |
Barycentric (SSB@0) | +4.769 | 58.371 | +0.0131 |
Earth–Moon Barycenter (EMB) | +13.184 | 17.918 | +0.0361 |
Mars (mode dim0
, period 686.980 d): matched 67/67 events (coverage 1.000). Mean Δt = −91.478 d (median −91.0, σ = 0.943 d, range −98.0…−91.0); φ = −0.1332. Best lag: −249 d (r = 0.9767).
Jupiter (mode dim0
, period 4332.589 d): matched 11/11 events (coverage 1.000). Mean Δt = +932.909 d (median +933.0, σ = 1.221 d, range +931.0…+935.0); φ = +0.2153. Best lag: 1209 d (r = 0.9846).
Saturn (mode dim0
, period 10759.220 d): matched 5/5 events (coverage 1.000). Mean Δt = +1952.400 d (median +2022.0, σ = 157.919 d, range +1670.0…+2028.0); φ = +0.1815. Best lag: 3419 d (r = 0.9464).
Uranus (mode pca1
, period 30685.400 d): matched 9/9 events (coverage 1.000). Mean Δt = −2546.111 d (median −2605.0, σ = 177.163 d, range −2618.0…−2074.0); φ = −0.0830. Best lag: 2806 d (r = 0.1767).
Neptune (mode dim0
, period 60189.000 d): matched 5/5 events (coverage 1.000). Mean Δt = +7210.800 d (median +6836.0, σ = 842.011 d, range +6825.0…+8717.0); φ = +0.1198. Best lag: 22602 d (r = 0.9464).
Pluto barycenter (mode dim0
, period 90560.000 d): matched 3/3 events (coverage 1.000). Mean Δt = +18854.667 d (median +18863.0, σ = 16.197 d, range +18836.0…+18865.0); φ = +0.2082. Best lag: 27985 d (r = 0.8519).
For each planet, confidence intervals are estimated by bootstrap resampling of matched events. We report: mean Δt
± 95% CI, dispersion via both σ
and robust MAD×1.4826, and phase fraction φ
± 95% CI.
If the table above is empty, (re)build it with:
python3 scripts/post_build_uncertainty.py
Direct link: results/uncertainty_ci.html
Note: Earth shows a small but statistically significant positive drift in phase fraction φ (slope ≈ +0.0007 φ/year, about +0.26 days/yr in Δt). Most other planets are consistent with zero drift within uncertainties.
Yearly drift plots (results/<planet>/drift.png
) show mean Δt
per year. In phase space, we fit φ
vs year; slope≈0 indicates a stationary phase offset.
If the table above is empty, (re)build it with:
python3 scripts/build_phase_stability.py
Direct link: results/phase_stability.html
The lag sweep correlates C(t)
with 1/R(t+lag)
. Interpreting lag
in phase units (lag/P
) is sometimes useful; persistent non-zero best-lag can indicate a fixed phase relationship between collapse intensity and heliocentric distance.
Planet | Best lag (days) | r |
---|---|---|
Mercury | 55 | 0.8320 |
Venus | 48 | 0.9914 |
Earth | -5 | 0.4939 |
Mars | -249 | 0.9767 |
Jupiter | 1209 | 0.9846 |
Saturn | 3419 | 0.9464 |
Uranus | 2806 | 0.1767 |
Neptune | 22602 | 0.9464 |
Pluto barycenter | 27985 | 0.8519 |
Δt
and φ
remain within reported CIs.--edge-guard
days of file boundaries are omitted; shaded regions in overlays indicate excluded ranges.pipeline_multi_planet_v3.py
(run-id c88d587
)mercury_1900to2025.csv
venus_1900to2025.csv
earth_1900to2025.csv
mars_1900to2025.csv
jupiter_1900to2025.csv
saturn_1900to2025.csv
uranus_1600to2300.csv
neptune_1600to2300.csv
pluto_1600to2300.csv
--planets all --overrides scripts/full_run_overrides.json --windows scripts/planet_windows.json --edge-guard 60
Commit hash, dates, and filenames ensure exact reproducibility of the results above.
JPL Horizons (DE441) ephemerides were queried with settings: center = Sun (10), type = GEOMETRIC cartesian states, units = AU & AU/day, reference frame = Ecliptic of J2000.0, step = 1440 minutes. Long spans were exported in multiple windows where needed and merged before analysis.
results/<planet>/summary.json
):
python3 scripts/pipeline_multi_planet_v3.py --planets all \ --overrides scripts/full_run_overrides.json \ --windows scripts/planet_windows.json \ --edge-guard 60
# Uncertainty (Δt, σ, φ, CI95) python3 scripts/post_build_uncertainty.py # Phase stability (φ vs year slopes & p-values) python3 scripts/build_phase_stability.py
iframe
s.This analysis measures how the strongest OP023 peaks in a standardized planetary state vector Ψ(t)
align with each planet’s perihelion (closest approach to the Sun). By matching peaks to perihelia and computing Δt = t_peak − t_peri
(days), we quantify a planet-specific phase offset and its stability over time.
The persistence of planet-specific phase offsets over centuries implies that the OP023 feature is not random noise. Instead, it may be a structural property of the planetary state vector — possibly linked to gravitational geometry, resonances, or invariant manifolds in the Solar System’s phase space. The distinct offsets between planets suggest each orbit’s geometry imprints a stable “preferred point” for the signal relative to perihelion.
The OP022/OP023 pipeline operates in a different mode from traditional force-integration. We start from measured heliocentric state vectors (JPL Horizons) and map them into a standardized 17-D space Ψ(t)
, detect OP023 peaks, and phase-match to perihelia across centuries.
Practically, this is a data-driven confirmation of the Newton/GR orbital framework at the tested precision. We see no unexplained residuals demanding local dark-matter-like corrections in planetary dynamics.
Note: Horizons already embodies Newton/GR physics; our method simply recovers the phase structure directly from data, without re-integrating equations of motion.
The OP023–perihelion phase relationship appears real and persistent, with robust, planet-specific offsets and tight timing for most targets. OP023 looks like a useful dynamical tracer for subtle perturbations and long-term orbital evolution.
DE441 ephemerides (the basis of our inputs) model Solar-System motion with Newtonian gravity plus GR corrections and no galactic dark-matter term. Our phase results agree with those ephemerides across 1900–2025 (inner planets) and 1600–2300 (outer planets), indicating that no extra mass component is required to explain planetary-scale dynamics within the quoted uncertainties.
This statement is specific to Solar-System precision tests. It does not bear on the independent astrophysical evidence for dark matter on galactic/cosmological scales (rotation curves, lensing, CMB). Solar-System mechanics remain fully accounted for by baryonic matter under Newton/GR at current precision.