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.



3.0.0 (2024-4-15)

  • implementation of Hipparcos-Gaia catalog of accelerations fitting! (@semaphoreP)

  • fit arbitrary absolute astrometry (@sblunt)

  • implement O’Neil observation-based priors (@sblunt/@clarissardoo)

  • discuss MCMC autocorrelation in MCMC tutorial (@michaelkmpoon)

  • add time warning if OFTI doesn’t accept an orbit in first 60 s (@michaelkmpoon)

  • add first parts of orbitize! manual (@sofiacovarrubias/@sblunt)

  • bugfix for rebound MCMC fits (issue #357; @sblunt)

  • implementation of residual plotting method for orbit plots (@Saanikachoudhary and @semaphoreP)

  • plot companion RVs (@chihchunhsu)

  • add documentation about referencing issues when modifying priors to tutorial (@wcroberson)

2.2.2 (2023-06-30)

  • tests now overwrite any generated text files (@sblunt)

2.2.1 (2023-06-28)

  • tau_to_tp function now accepts array of after_date (@tomasstolker/@semaphoreP)

2.2.0 (2023-06-21)

  • set up new CI system using GH actions (@sblunt)

  • removed radvel as dependency, and moved radvel_utils subpackage to new dir (@sblunt). This is a breaking change for users of orbitize.radvel_utils.

2.1.4 (2023-06-20)

  • unit tests hotfixes (@semaphoreP)

  • use forked ptemcee (@sblunt)

2.1.3 (2023-02-07)

  • Compatibility with numpy v1.24 (issue #330 and #331; @tomasstolker)

2.1.2 (2022-08-31)

  • Bugfix for saving/loading fits using IAD (issue #324; @sblunt)

2.1.1 (2022-05-24)

  • Hotfix for one of the log-chi2 unit tests (@sblunt)

2.1.0 (2022-05-24)

  • Added a (more numerically stable) log-chi2 option for calculating likelihood (@Mireya-A and @lhirsch238)

2.0.1 (2022-04-22)

  • Addressed plotting bugs: issues #316/#309, #314, #311 (@semaphoreP)

  • Made Gaia module runnable without internet and added some Gaia/Hipparcos unit tests (@sblunt)

2.0.0 (2021-10-13)

This is the official release of orbitize! version 2.

Big changes:

  • Fit Gaia positions (@sblunt)

  • New plotting module & API (@sblunt)

  • Relative planet RVs now officially supported & tested (@sblunt)

  • GPU Kepler solver (@devincody)

  • RV end-to-end test added (@vighnesh-nagpal)

Small changes:

  • Hipparcos calculation bugfix (@sblunt)

  • v1 results backwards compatibility bugfix (@sblunt)

  • windows install docs update (@sblunt

  • basis bugfix with new API (@TirthDS, @sblunt)

  • handle Hipparcos 2021 data format (@sblunt)

  • clarify API on mtot/mstar (@lhirsch238, @sblunt)

2.0b1 (2021-09-03)

This is the beta release of orbitize! version 2.

Big changes:

  • N-body Kepler solver backend! (@sofiacovarrubias)

  • Fitting in XYZ orbital basis! (@rferrerc)

  • API for fitting in arbitrary new orbital bases! (@TirthDS)

  • compute_all_orbits separated out, streamlining stellar astrometry & RV calculations (@sblunt)

  • Hip IAD! (@sblunt)

  • param_idx now used everywhere under the hood (system parsing updated) (@sblunt)

  • KDE prior added (inspiration=training on RV fits) (@jorgellop)

Small changes:

  • HD 4747 rv data file fix for the RV tutorial (@lhirsch238)

  • Add check_prior_support to sampler.MCMC (@adj-smith)

  • Update example generation code in MCMC v OFTI tutorial (@semaphoreP)

  • Fixed plotting bug (issue #243) (@TirthDS)

  • Expand FAQ section (@semaphoreP)

  • use astropy tables in results (@semaphoreP)

  • Expand converge section of MCMC tutorial (@semaphoreP)

  • Deprecated functions and deprecation warnings officially removed (@semaphoreP)

  • Fix logic in setting of track_planet_perturbs (@sblunt)

  • Fix plotting error if orbital periods are > 1e9 days (@sblunt)

  • Add method for printing results of a fit (@sblunt)

1.16.1 (2021-06-27)

  • Fixed chop_chains() function to copy original data over when updating Results object (@TirthDS)

1.16.0 (2021-06-23)

  • User-defined prior on PAN were not being applied if OFTI is used; fixed (@sblunt)

  • Dates in HD 4747 data file were incorrect; fixed (@lhirsch238)

1.15.5 (2021-07-20)

  • Addressed issue #177, giving Results and Sampler classes a parameter label array (@sblunt)

  • Fixed a bug that was causing RA/Dec data points to display wrong in orbit plots (@sblunt)

1.15.4 (2021-06-18)

  • Bugfix for issue #234 (@semaphoreP, @adj-smith)

1.15.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.