Skip to content

Latest commit

 

History

History
85 lines (73 loc) · 3.43 KB

README.md

File metadata and controls

85 lines (73 loc) · 3.43 KB

brav0

brav0 (Bayesian Radial Velocity 0-point correction) is a tool to correct zero-point variations in radial velocity (RV) timeseries. This means brav0 takes several datasets (usually from the same instrument) and models variations that are common to all datasets.

Installation

brav0 can be installed with pip: python -m pip install brav0.

To use the development version of brav0, clone the repository and install it:

git clone https://github.com/vandalt/brav0.git
cd brav0
python -m pip install -U -e ".[dev]"

_Note: In both cases, as of release 0.1, the development pace will probably be relatively fast for a while so users should update often, either by pulling from the upstream Github repository or by upgrading with python -m pip install -U brav0.

Using brav0

brav0 is accessible as a command line script or as a Python library. The script requires a configuration file. There are example config files as well as a notebook using the API in the examples directory.

brav0 CLI

The CLI is the main way to use brav0. It does not (yet) provide an command to run everything at once. The main ZP correction steps are instead separated in various commands.

First, we run source to load all the input individual data and merge it in a single pandas dataframe.

brav0 source config.yml

This produces a raw.csv file in the output directory, indexed by original file name.

Then, we can preprocess the data by doing a series cleanups and by re-formatting the dataframe (e.g. index with object names).

brav0 preprocess config.yml

This produces the processed.csv file the raw_plots directory with timeseries and periodogram plots before PP, and the pp_plots directory with plots after PP.

Once the data is ready, we can remove known planets. Currently, the only way to do this in brav0 is to use the NASA explanet archive to remove known planets. It performs Monte-Carlo error propagation and removes "non-controversial" planets only (as defined by the archive).

brav0 remove-planets config.yml

The resulting dataset is stored in no_planets.csv with corresponding plots in no_planet.

After removing known planets, we can fit the Zero-point model joinlty to all data. The config file specifies if we do MCMC, MAP optimization, or just use a fixed model (recommended only when all parameters have deterministic values). Here is an example where we fit a GP with a Matern 3/2 kernel:

brav0 model config.yml Matern32

This produces the model curve and the optimization or sampling results in a directory with the model name (or other subdirectory when using the -o option).

Finally, we can generate summary information and plots about a given ZP model:

brav0 summary config.yml /path/to/model/dir

This will save plots in the model directory.

Why brav0 ?

Fitting RV zero-points can be done with relatively simple tools. brav0 was originally written to explore the use of Gaussian processes to model RV zero-points. When fitting a GP along with parameters for each standard (calibration) star, the number of parameter can be high, such that sampling the posterior distribution efficiently is challenging. brav0 uses PyMC3 to perform gradient-based inference (other backends are not excluded, contributions are welcome!). By using exoplanet and celerite2, brav0 enables efficient inference to derive a zero-point correction error estimates.