Skip to content

xbyrne/cinemas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CINEMAS 🎬

Constraining INclinations of Exoplanets and their MAsses by Stability

PyPI version Python 3.10+ License: MIT Ruff

CINEMAS

CINEMAS is a Bayesian framework for constraining the inclinations, and hence the true masses, of exoplanets in compact multi-planet systems detected with the radial velocity (RV) method.

The true mass $M$ of an exoplanet is not measured with the RV method, only the minimum mass $M_{\rm min}=M\sin i$, where $i$ is the (generally unknown) inclination angle. However, if $i$ were too low, this would mean the true masses of the planets ($M_j=M_{{\rm min}, j} / \sin i$) would be so big that the system would be dynamically unstable.

Assuming isotropy, the prior probability distribution on $i$ is $\pi(i)=\sin i$. The probability that a compact system with a given inclination (and hence given masses) is dynamically stable can be calculated quickly using the spock package. CINEMAS uses MCMC to calculate posterior distributions for the inclination, and thus the true masses of these exoplanets in inclined multi-planet systems. The result? Absolute cinema(s).

Installation

Install CINEMAS directly from PyPI:

pip install cinemas

Or, for development, clone the repository and install in editable mode:

git clone https://github.com/xbyrne/cinemas
cd cinemas
pip install -e ".[dev]"

Quickstart

Loading observational data

Observational data is loaded from the NASA Exoplanet Archive, using their TAP service. It is then loaded into a SystemObservations object, which includes all the observational data needed for a prior on the configuration parameters.

import cinemas

# Load observational constraints for a system
catalogue = cinemas.download_multiplanet_systems()
system_obs = cinemas.load_system_observations(
    star_name="Barnard's star",
    exoplanet_catalogue=catalogue
)

Running MCMC sampling

import cinemas

# Run MCMC to constrain the inclination and true masses
samples, tau, acceptance_fraction = cinemas.run_mcmc_sampling(
    system_obs,
    nsteps=5000,
    nwalkers=None  # By default, 2*number of params
)

print(f"Autocorrelation time: {tau}")
print(f"Acceptance fraction: {acceptance_fraction}")

References

About

🎬 Constraining INclinations of Exoplanets and their MAsses by Stability

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages