PyORBIT#
a code for exoplanet orbital parameters and stellar activity.#
PyORBIT is a robust, versatile framework for characterising planetary systems.
With PyORBIT, you can model light curves, radial velocities, activity indices, and transit-time variations.
In addition to the exoplanet signature, you can add to your model instrumental systematics and stellar activity,
including Gaussian processes regression with a variety of kernels. Both Markov Chain Monte-Carlo samplers and Nested Sampling algorithms are supported.
Different parametrisations can be used for orbital parameters, and orbits can be computed using dynamical integration or just non-interacting Keplerians.
For every parameter in the model, it is possible to set a prior, explore it in linear or logarithmic space,
or keep it fixed if necessary. Thanks to abstraction, it is virtually possible to implement any physical model you can think of.
All the information you need to analyse your data is contained in an easy-to-use and portable configuration file in the yaml format.
Alternatively, for easy automatization, PyORBIT can be called as a Python function by passing a dictionary instead of a configuration file.
Check the poster presented at the European Astronomical Society Annual Meeting in Padova
Documentation update#
I have extensively updated the documentation, and several examples are now available in a new dedicated repository. Check them out:
For nostalgic people, PyORBIT 10 is available as a downloadable package from the PyORBIT Releases page.
Updates on version 11#
The mean longitude now strictly follows its definition as the sum of the argument of pericenter \(\omega\), the longitude of the nodes \(\Omega\), and the mean anomaly \(\mathcal{M}_0\) at the reference time \(T_{\rm ref}\). The default value for the longitude of the nodes \(\Omega\) has been changed to 180 degrees. All the orbital parameters refer to the planet. The code should be able to recognise analysis performed with an older version of PyORBIT and use the corresponding default value of \(\Omega\)
Possibility to perform simultaneous photometric and spectroscopic multivariate Gaussian Process regression, while selecting the hyperparameters to be shared
New kernels for stellar/photometric variability in photometric data
Relevant updates in previous versions#
Additional BIC/AIC/AICc information in output and in dictionaries when running pyorbit_results. Information criteria computed through the ln-posterior (in addition to the ln-likelihood) have been dropped as definitely wrong. There is also a small bugfix for datasets not in chronological order, which was preventing the spleaf_esp model from starting altogether.
S+LEAF exponential-sine periodic kernel now supported: The exponential-sine periodic (ESP) kernel is a fast approximation of the quasi-periodic (QP) kernel, implemented in the S+LEAF software by Delisle et al. 2020 and Delisle et al. 2022. The kernel has been implemented and tested in PyORBIT, and it can be used as a faster replacement for tinyGP
Outputs available as Python dictionaries: textual output is now also saved as dictionaries in the corresponding dictionaries folder.
Updated TTV measurement and harmonic models TTV measurement models have all been revised and improved to support a variety of cases.
Improved speed: after several failed attempts, I finally managed to apply the advice from the emcee parallelisation page to the rather complex structure of PyORBIT. The speed-up is noticeable for large datasets (e.g., photometry).
Rossiter McLaughlin effect can now be precisely modelled using the CCF simulation approach employed in Covino et al. 2013. When the rotation period is known - together with the stellar radius - the stellar inclination can be derived, avoiding the bias reported by Masuda & Winn 2020. This model has been successfully employed in Mantovan et al. 2024b for the characterization of TOI-5398b.
Multidimensional Gaussian Process The model was introduced a few years ago, but it can now finally take advantage of improved parallelisation. Recent examples of multidimensional Gaussian Processes through PyORBIT can be found in Nardiello et al. 2022 and Mantovan et al. 2024a.
No back-compatibility
Version 11 may not be compatible with the results obtained with version 10. Versions 10 and 11 are not compatible with the results obtained with previous versions.
Documentation updates#
Documentation is being updated slowly but steadily, with new pages appearing every week. Below, you can see which pages have been updated recently (last updated: March 2026).
Integration with TRADES
Data modeling
Planetary RV signal
Correlated datasets
Gaussian processes regression updated
Multidimensional GPs updated
TinyGP caveats
Advanced use
Tip
The configuration files used in this documentation can be found at this repository
References#
If you find PyORBIT useful for your work, please cite Malavolta et al. (2016) and Malavolta et al. (2018).
Some background#
PyORBIT started in 2015 as an exercise to learn Python (2), and also because at
the time the only publicly available code for the Bayesian analysis of RVs was
written in IDL, for which I didn’t have a license. Since then I’ve been adding new options every time I needed, and I kept updating the code while improving my Python skills.
If you are wondering what PyORBIT stands for: I am bad at acronym creation so
I decided to write it with capital ORBIT just because I liked how it looked.
Feel free to submit your retrofitting acronym!
PyORBIT has been now converted and tested for Python 3 for a while, back compatibility with Python 2 is not guaranteed anymore at least since version 8.0. If you haven’t done it already, I strongly suggest you move to Python 3.
Table of contents#
This documentation has been rendered using the Sphinx Book Theme and the Myst parser