.. |br| raw:: html
.. image:: orbitize_logo_500.png
:width: 150px
:height: 150px
:align: center
orbitize!
=========
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 `_.
Attribution:
++++++++++++
* If you use ``orbitize`` in your work, please cite `Blunt et al (2019) `_ and `Blunt et al (2024) `_
* If you use the OFTI algorithm, please also cite `Blunt et al (2017) `_.
* If you use the Affine-invariant MCMC algorithm from ``emcee``, please also cite `Foreman-Mackey et al (2013) `_.
* If you use the parallel-tempered Affine-invariant MCMC algorithm from ``ptemcee``, please also cite `Vousden et al (2016) `_.
* If you use the Hipparcos intermediate astrometric data (IAD) fitting capability, please also cite `Nielsen et al (2020) `_ and `van Leeuwen et al (2007) `_.
* If you use Gaia data, please also cite `Gaia Collaboration et al (2018; for DR2) `_, or `Gaia Collaboration et al (2021; for eDR3) `_.
User Guide:
+++++++++++
.. toctree::
:maxdepth: 2
installation
tutorials
faq
contributing
api
manual
Changelog:
++++++++++
**3.3.2 (2026-6-2)**
- fix for a flaky unit test with int HIP IAD inputs (they should be str) @sblunt)
**3.3.1 (2026-6-1)**
- results.print_results() now prints angles in degrees and displays units (issue 385; @chihchunhsu and @sblunt)
**3.3.0 (2026-5-19)**
- add support for multinest! (@tomasstolker)
- bugfix for periodic saving in MCMC (@eshelDror)
- bugfix for corner plot failing if any parameters are fixed (@tomasstolker)
- quick fix for #402 (@ell-bogat)
**3.2.2 (2026-4-12)**
- fix a few bugs causing unit test failures (#400) (@sblunt)
**3.2.1 (2026-1-18)**
- fix bug with install (#342) (@sblunt)
**3.2.0 (2025-7-18)**
- modernize install: setup.py -> pyproject.toml (@sblunt)
**3.1.0 (2024-9-09)**
- JOSS paper published! (@sblunt et al)
**3.0.1 (2024-8-19)**
- bugfix for issue #370 involving saving and loading hipparcos.py objects (@sblunt)
**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.