Skip to main content
Sandbox Physics
Stellar Activity and Radial Velocity

AC18 · L3

Replay the HARPS campaign

A real velocity table is less tidy than a demonstration. Keep the dates, activity measurements and original units attached, and it becomes possible to ask how much a result depends on the model rather than the plotting choices.

Freeze the observation before fitting

We retain all 71 numerical rows of Haywood and colleagues’ 2014 version-one Table A1, for the 2012 HARPS campaign on CoRoT-7. Dates run from BJD UTC 2455939.69948 to 2455964.70360. The source lists velocity, its formal error, FWHM and BIS in kilometres per second. Conversion to metres per second happens once, inside the reader. The calcium logarithm and its quoted errors remain dimensionless. No formal errors are given for the FWHM or BIS columns.

The raw numerical rows, derived CSV and provenance identify the exact arXiv source archive and TeX member by SHA-256. The CSV hash is recorded in provenance and the download manifest. These are attributed factual numerical data; we do not grant a new license over the original observations or distribute the paper’s prose and figures.

Use the source’s BJD UTC label. We subtract the first date for numerical convenience, but do not relabel it TDB or insert an HJD transit epoch. Free phases avoid mixing those clocks. No unprovided exposure kernel is invented, and published barycentric velocities are not corrected a second time.

Reading: Haywood et al. — CoRoT-7, arXiv:1407.1044v1 · Rajpaul et al. — joint activity processes, arXiv:1506.07304v1

Three models see exactly the same rows

Every likelihood uses the same 142 values: 71 velocities and 71 calcium indices. The Kepler model has two circular components and channel offsets with independent Gaussian noise plus channel jitter. Its calcium channel is an offset and noise model. The activity model uses the joint latent process and offsets, with no orbital components. The joint model combines that process with both circular components. FWHM and BIS remain ancillary source columns in every case.

The fixed velocity origin is 31180 metres per second and the fixed calcium origin is minus 4.72, with calcium divided by 0.01. These declared constants set the proper offset priors. They are not fitted sample medians. The full prior bounds, coefficient scales and recurrence-period alternatives live in each output JSON.

The supplied short period is 0.85359165 days. The other period lies between 3.3 and 4.1 days. Eccentricity, additional planet counts, long trends and a full blind frequency search are outside this conditional comparison. The 25-day campaign spans only about one rotation. A marginal-likelihood estimate under these restrictions is not the probability that a planet exists.

Reading: Rasmussen & Williams — Gaussian Processes for Machine Learning, Chapter 2 · Haywood et al. — CoRoT-7, arXiv:1407.1044v1

Run the independent calculation

Save every linked file into one folder. Python 3.11 with the pinned NumPy and SciPy versions is the recommended environment; the frozen reference was also run on Python 3.9.6. The README gives exact commands, input hashes, hardware-independent checks and the longer sampling variants. Dependencies are installed separately; no third-party library source is bundled.

                    python3.11 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.txt
python -W error check-kernel.py
python -W error check-importance.py
python -W error replay-importance.py --data . --power 15 --seed 1808 --out rerun.json --nodes-out rerun-nodes.npz
python -W error replay-predictions.py --data . --posterior rerun.json --nodes rerun-nodes.npz --draws 2048 --out rerun-predictions.json
                  

The main replay fits all three models. Allow minutes for the replay; speed depends on the linear-algebra installation. The browser never performs this expensive fit or interpolates an offline fit onto a different parameter choice. It displays the frozen real-data results separately from its live synthetic star.

Reading: Rasmussen & Williams — Gaussian Processes for Machine Learning, Chapter 2 · Rajpaul et al. — joint activity processes, arXiv:1506.07304v1

Read intervals before drawing a curve

The frozen default joint posterior gives short-period amplitude percentiles of approximately 2.76, 3.48 and 4.22 metres per second. The second component gives about 5.54, 6.00 and 6.46. These are 16th, 50th and 84th percentiles under the stated priors. They are not symmetric measurement errors, a discovery significance or a stellar-mass estimate.

The Kepler-only short-period amplitude has percentiles about 1.87, 2.72 and 3.59. Its difference from the joint fit is part of the lesson: treating correlated activity as independent noise changes the inferred allocation. The activity-only model has no planet amplitude to report. Its figure shows the fitted latent velocity.

The plotted model is the in-sample latent posterior at the retained observation times. Shading spans pointwise 16th–84th percentiles. It includes the declared model uncertainty and is not an extra observed error bar or a held-out forecast. The saved full 142-dimensional latent covariance retains temporal and channel correlations that the shading cannot show. Refining mixture draws from 512 to 2048 changes the joint posterior mean by at most about 0.028 metres per second at those times.

Two circular signals + independent noise

-300300102025RV · m/s, fixed 31180 m/s origin removedDays since BJD UTC 2455939.69948
Gray: published data and formal errors. Cyan: in-sample latent posterior mean and pointwise 16th–84th percentiles. Joining acquired times guides the eye; there is no posterior prediction between them.

Activity process, no orbital terms

-300300102025RV · m/s, fixed 31180 m/s origin removedDays since BJD UTC 2455939.69948
Gray: published data and formal errors. Cyan: in-sample latent posterior mean and pointwise 16th–84th percentiles. Joining acquired times guides the eye; there is no posterior prediction between them.

Joint orbit + activity

-300300102025RV · m/s, fixed 31180 m/s origin removedDays since BJD UTC 2455939.69948
Gray: published data and formal errors. Cyan: in-sample latent posterior mean and pointwise 16th–84th percentiles. Joining acquired times guides the eye; there is no posterior prediction between them.

The retained calcium channel

-4.85-4.75-4.650102025Logarithmic calcium activity indexDays since the same BJD UTC origin
This is the actual published calcium series, not the live Lab’s uncalibrated projected-area proxy. No observed photometry or astrometry is supplied by this table.
Actual posterior 16th, 50th, 84th amplitude percentiles · metres per second. Activity-only has no orbital amplitude.
ModelShort periodSecond periodEffective samples
Two circular signals + independent noise1.87,;2.72,;3.591.87,;2.72,;3.595.28,;6.19,;7.095.28,;6.19,;7.091.57×1041.57\times10^{4}
Activity process, no orbital termsNo orbital termNo orbital term39903990
Joint orbit + activity2.76,;3.48,;4.222.76,;3.48,;4.225.54,;6,;6.465.54,;6,;6.4664106410

Reading: Haywood et al. — CoRoT-7, arXiv:1407.1044v1 · Rajpaul et al. — joint activity processes, arXiv:1506.07304v1

Try to break the answer

Repeat the final sampling with seed 1908, then the joint model with 65536 draws and seed 2008. The effective counts and weight tails are saved. Widening the recurrence prior from 18–35 to 3–60 days, using the external 23.81-day photometric constraint, and reducing the planet coefficient scale from 10 to 3 metres per second are separate reproducible sensitivity runs. They modify actual priors, not just the optimizer’s starting point.

The known-truth injections use the real dates and uncertainties but replace all values. A spot-only star selects a large sine coefficient: about 12.5 metres per second at 34.3 days, although the true rotation is 23.81 days. Its global fit is poor, with χ2≃1284\chi^2\simeq1284 for 71 values and three coefficients at the selected frequency. A narrow conditional interval would conceal that model failure; it is not a calibrated false-alarm probability. A separate near-rotation harmonic experiment makes GP absorption and activity-prior sensitivity explicit. A simulated instrument jump creates a false orbital component if one zero point is forced; allowing separate offsets removes most of it. The real table itself remains one HARPS series.

The initial 512-node result, narrow-region integration failure, proposal benchmarks and final multi-seed diagnostics are downloadable. The node archive retains exact nonlinear coordinates, likelihoods and weights in double precision; only exported conditional coefficient means and covariance triangles use single precision to keep the archive bounded. Inference and JSON full covariances were computed in double precision. The storage check reports that export quantization separately.

Reading: Rajpaul, Aigrain & Roberts — Ghost in the time series, arXiv:1510.05598v1 · Rajpaul et al. — joint activity processes, arXiv:1506.07304v1

Exercises and explanations

  1. Why not attach very small invented errors to BIS and FWHM, then gain two more activity channels?

    Read the explanation

    Their likelihood weights would be invented too. The published table lacks those formal point errors. Retaining them as ancillary columns is honest; adding them to a joint likelihood requires an explicitly justified error model and sensitivity analysis.

  2. The activity model has a better in-sample residual than a simple orbit model. Has it disproved a planet?

    Read the explanation

    No. A flexible process can absorb orbital power, and a short window may not distinguish the mechanisms. Compare known-truth recoveries, priors and independent channels. In-sample residual size alone neither establishes nor excludes an orbital explanation.

Try the prediction

Separate the two records

  1. Export the Lab’s synthetic activity preset and inspect its model and units labels.
  2. Open the observed-data figure and compare its dates with the source CSV. No synthetic surface point is inserted among those 71 observations.

Save every scientific file in one folder. Python 3.11, the pinned NumPy and SciPy versions, and the README commands reproduce the declared conditional posterior without this repository.

Sources and calculation scope

  1. Haywood et al. — CoRoT-7, arXiv:1407.1044v1

    3 July 2014 version. Sections 2–3 and 4.2, Equations 1–12 and Table A1. All 71 HARPS2012 numerical rows are retained; the tutorial does not reproduce the full contemporaneous-photometry analysis.

  2. Rajpaul et al. — joint activity processes, arXiv:1506.07304v1

    24 June 2015 version. Sections 3.1–3.4 and 4.1–4.2, Figures 3–4, Appendix A.2. Derivative covariance signs follow a lag equal to first time minus second time; kernel-width normalizations must be kept with their equations.

  3. Rajpaul, Aigrain & Roberts — Ghost in the time series, arXiv:1510.05598v1

    20 October 2015 version. Sections 2–3 and Figures 1–3: sampling-window and synthetic-content tests. The Alpha Centauri B analysis is a source guide, not our reproduced dataset.

  4. Rasmussen & Williams — Gaussian Processes for Machine Learning, Chapter 2

    Authors’ 2006 Chapter 2, Sections 2.1–2.2 and 2.7: Gaussian conditioning, normalized marginal densities and linear basis functions. The importance sampler and surface quadrature are independently authored here.

FeedbackSomething broken, confusing, or missing on this page?Tell us
What kind of feedback?

Sent with this page’s address, its Lab ID, the site language and your device type. Please leave out personal details. Feedback is kept for up to 12 months.Privacy policy