binary_rv_ccf¶
Radial velocity of a star by cross-correlation against a template, for the follow-up of spectroscopic binaries and exoplanet hosts: barycentric correction from the header, continuum normalisation, then the Tonry & Davis cross-correlation on a log-wavelength grid sampled at the native resolution.
| Kind | campaign |
| Status | draft - draft: conventions still open for discussion |
| Version | 1.0.0 |
| Source | package:spectro-kernel-recipes |
| Requires | spectro-kernel >=0.7 |
Conventions¶
Continuum removed with a 3rd-order polynomial and 3-sigma clipping before the correlation; the log-wavelength grid follows the finest native sampling (n_grid unset) so the velocity step is not the limiting factor; search range +/- 400 km/s. The template is the observer's choice (a synthetic spectrum or a high signal-to-noise observation of a standard) and is therefore a variable.
References¶
- Tonry & Davis 1979, AJ 84, 1511 - cross-correlation radial velocities and their error
- Kurtz & Mink 1998, PASP 110, 934 - RVSAO, the practical cross-correlation implementation
- Bouchy, Pepe & Queloz 2001, A&A 374, 733 - photon-noise limit of the radial velocity
Variables¶
The instrument- or observer-dependent values. Provide them with a profile
file, --set name=value, or variables={...} in Python.
| Variable | Type | Required / default | Description |
|---|---|---|---|
template_path |
path | required | template spectrum (FITS or ASCII) at rest velocity |
latitude_deg |
float | required | observatory latitude (deg) |
longitude_deg |
float | required | observatory longitude (deg, east positive) |
elevation_m |
float | default 0.0 |
observatory elevation (m) |
Steps¶
| # | Algorithm | Parameters |
|---|---|---|
| 1 | barycentric_correction Barycentric correction from the header |
latitude_deg='${latitude_deg}', longitude_deg='${longitude_deg}', elevation_m='${elevation_m}' |
| 2 | normalize_polynomial Continuum normalisation |
order=3, sigma_clip=3.0 |
| 3 | cross_correlate_rv Cross-correlation radial velocity |
template_path='${template_path}', n_grid=None, vmin_kms=-400.0, vmax_kms=400.0 |
Run it¶
from spectro_kernel import WorkContext
from spectro_kernel.pipeline import PipelineBuilder
variables = {"template_path": "/path/to/template_path", "latitude_deg": 0.0, "longitude_deg": 0.0, "elevation_m": 0.0}
pipeline = PipelineBuilder().from_preset("binary_rv_ccf", variables).build()
result = pipeline.execute(ctx) # ctx holds the spectrum / frames
print(result.history[-1]) # pipeline:<name> vX.Y.Z + variables