exoplanet is a toolkit for probabilistic modeling of transit and/or radial
velocity observations of exoplanets
and other astronomical time series using PyMC3.
PyMC3 is a flexible and high-performance model building language and
inference engine that scales well to problems with a large number of
parameters. exoplanet extends PyMC3’s language to support many of the
custom functions and distributions required when fitting exoplanet datasets.
These features include:
All of these functions and distributions include methods for efficiently
calculating their gradients so that they can be used with gradient-based
inference methods like Hamiltonian Monte Carlo,
No U-Turns Sampling, and variational
inference. These methods tend to be more
robust than the methods more commonly used in astronomy (like ensemble
samplers and nested sampling) especially when the
model has more than a few parameters. For many exoplanet applications,
exoplanet (the code) can improve the typical performance by orders of
exoplanet is being actively developed in a public repository on GitHub so if you have any trouble, open an issue there.
Some tutorials have been moved to the case studies page.
License & attribution
Copyright 2018, 2019, 2020 Daniel Foreman-Mackey.
The source code is made available under the terms of the MIT license.
If you make use of this code, please cite this package and its dependencies.
You can find more information about how and what to cite in the
These docs were made using Sphinx and the
Typlog theme. They are
built and hosted on Read the Docs.
- Improves infrastructure for generating documentation
- Adds an
EclipsingBinaryLightCurve for building binary star models
DensityDist implementation for celerite GP likelihoods
rebound an optional dependency
DotLOp for scalable conditional mean calculation
and prior sampling with celerite
- Adds developer documentation
- Moves documentation to a separate repository
- Switches tutorials to lightkurve for data access
- Improves packaging and code style features
- Fixes bugs and improves interface to
- Adds a new interface for tuning dense mass matrices with less overhead
- Adds support for photodynamics using rebound
- Adds a new interface for assigning units to Theano variables
- Adds new physically-motivated distributions for impact parameter and
- Improves test coverage
- Fixes bug in diagonal elements of the
- Fixes bug in indexing for
TTVOrbit models with large TTVs
starry to get much better performance for high order spherical
- Restructures the C++ backend to reduce code duplication
- Adds support for fitting of astrometric observations
- Adds support for exposure time integration in
- Adds new distributions for periodic parameters and U(0, 1).
- Fixes many small bugs
- Fixes some edge case failures for Kepler solver
- Improves reliability of contact point solver and fails (more) gracefully
when this doesn’t work; this reduces the number of divergences when fitting
a transit model
- Improves contact point solver using companion matrix to solve quadratic
- Improves reliability of
Angle distribution when the value of the angle
is well constrained
- Improves the reliability of the PyMC3Sampler
- Adds a new
optimize function since the
in PyMC3 is deprecated
- Adds cronjob script for automatically updating tutorials.
- Adds a more robust and faster Kepler solver (ref)
- Fixes minor behavioral bugs in PyMC3 sampler wrapper
- Adds regular grid interpolation Op for Theano
- Fixes major bug in handling of the stellar radius for transits
- Fixes small bugs in packaging and installation
- Fixes handling of diagonal covariances in