Hello world! Welcome to the documentation for orbitize, a Python package for fitting orbits of directly imaged planets.

orbitize packages two back-end algorithms into a consistent API. It’s written to be fast, extensible, and easy-to-use. The tutorials below will walk you through the code and introduce some technical stuff, but we suggest learning about the Orbits for the Impatient (OFTI) algorithm and MCMC algorithms (we use this one) before diving in. Our contributor guidelines document will point you to more useful resources.

orbitize is designed to meet the needs of the exoplanet imaging community, and we encourage community involvement. If you find a bug, want to request a feature, etc. please create an issue on GitHub.

orbitize is patterned after and inspired by radvel.


User Guide:


orbitize is under active development, and we’ve still got a lot to do! To get involved, check out our contributor guidelines, look over our issues list, and/or reach out to Sarah. We’d love to have you on our team!

Members of our team have collectively drafted this community agreement stating both our values and ground rules. In joining our team, we ask that you read and (optionally) suggest changes to this document.

Some major planned updates:

  • fit Gaia astrometry

  • marginalize over instrumental uncertainties


1.13.3 (2021-06-07)

  • Add codeastro mode to pytest that prints out a SECRET CODE if tests pass omgomg (@semaphoreP)

1.15.2 (2021-05-11)

  • Fixed backwards-compatibility bug with version numbers and saving/loading (@semaphoreP, @wbalmer)

1.15.1 (2021-03-29)

  • Fixed bug where users with Results objects from v<14.0 couldn’t load using v>=14.0 (@semaphoreP, @wbalmer)

  • Fixed order of Axes objects in Advanced Plotting tutorial (@wbalmer, @sblunt)

1.15.0 (2021-02-23)

  • Handle covariances in input astrometry (@semaphoreP)

1.14.0 (2021-02-12)

  • Version number now saved in results object (@hgallamore)

  • Joint RV+astrometry fits can now handle different RV instruments! (@vighnesh-nagpal, @Rob685, @lhirsch238)

  • New “FAQ” section added to docs (@semaphoreP)

  • Bugfix for multiplanet code (@semaphoreP) introduced in PR #192

  • now you can pass a preexisting Figure object into results.plot_orbit (@sblunt)

  • colorbar label is now “Epoch [year]” (@sblunt)

  • corner plot maker can now handle fixed parameters without crashing (@sblunt)

1.13.1 (2021-01-25)

  • compute_sep in radvel_utils submodule now returns mp (@sblunt)

  • astropy._erfa was deprecated (now in separate package). Dependencies updated. (@sblunt)

1.13.0 (2020-11-8)

  • Added radvel-utils submodule which allows users to calculate projected separation posteriors given RadVel chains (@sblunt)

  • Fixed a total mass/primary mass mixup bug that was causing problems for equal-mass binary RV+astrometry joint fits (@sblunt)

  • Bugfix for multiplanet perturbation approximation: now only account for inner planets only when computing perturbations (@semaphoreP)

1.12.1 (2020-9-6)

  • tau_ref_epoch is now set to Jan 1, 2020 throughout the code (@semaphoreP)

  • restrict_angle_ranges keyword now works as expected for OFTI (@sblunt)

1.12.0 (2020-8-28)

  • Compatibility with emcee>=3 (@sblunt)

1.11.3 (2020-8-20)

  • Save results section of OFTI tutorial now current (@rferrerc)

  • Modifying MCMC initial positions tutorial documentation now uses correct orbital elements (@rferrerc)

1.11.2 (2020-8-10)

  • Added transparency option for plotting MCMC chains (@sofiacovarrubias)

  • Removed some redundant code (@MissingBrainException)

1.11.1 (2020-6-11)

  • Fixed a string formatting bug causing corner plots to fail for RV+astrometry fits

1.11.0 (2020-4-14)

  • Multiplanet support!

  • Changes to directory structure of sample data files

  • Fixed a bug that was causing corner plots to fail on loaded results objects

1.10.0 (2020-3-6)

  • Joint RV + relative astrometry fitting capabilities!

  • New tutorial added

1.9.0 (2020-1-24)

  • Require astropy>=4

  • Minor documentation upgrades

  • This is the first Python 2 noncompliant version

1.8.0 (2020-1-24)

  • Bugfixes related to numpy and astropy upgrades

  • This is the last version that will support Python 2

1.7.0 (2019-11-10)

  • Default corner plots now display angles in degrees instead of radians

  • Add a keyword for plotting orbits that cross PA=360

1.6.0 (2019-10-1)

  • Mikkola solver now implemented in C-Kepler solver

  • Fixed a bug with parallel processing for OFTI

  • Added orbit vizualisation jupyter nb show-me-the-orbit to docs/tutorials

  • New methods for viewing/chopping MCMC chains

  • Require emcee<3 for now

1.5.0 (2019-9-9)

  • Parallel processing for OFTI.

  • Fixed a bug converting errors in RA/Dec to sep/PA in OFTI.

  • OFTI and MCMC now both return likelihood, whereas before one returned posterior.

  • Updated logic for restricting Omega and omega bounds.

1.4.0 (2019-7-15)

  • API change to lay the groundwork for dynamical mass calculation.

  • JeffreysPrior -> LogUniformPrior

  • New tutorials.

  • Added some informative error messages for input tables.

  • Bugfixes.

1.3.1 (2019-6-19)

  • Bugfix for RA/Dec inputs to the OFTI sampler (Issue #108).

1.3.0 (2019-6-4)

  • Add ability to customize date of tau definition.

  • Sampler now saves choice of tau reference with results.

  • Default tau value is now Jan 1, 2020.

  • Small bugfixes.

1.2.0 (2019-3-21)

  • Remove unnecessary astropy date warnings.

  • Add custom likelihood function.

  • Add progress bar for ptemcee sampler.

  • Add customizable color axis for orbit plots.

  • Small bugfixes.

1.1.0 (2019-1-6)

  • Add sep/PA panels to orbit plot.

  • GaussianPrior now operates on only positive numbers by default.

1.0.2 (2018-12-4)

  • Expand input reading functionality.

  • Bugfixes for MCMC.

1.0.1 (2018-11-20)

  • Bugfix for building on CentOS machines.

1.0.0 (2018-10-30)

  • Initial release.