Skip to main content

Fast and flexible orbit fitting

Project description

octofitterpy

octofitterpy is a python package for performing Bayesian inference against a wide variety of exoplanet / binary star data. It uses the Octofitter.jl julia package under the hood (just like eg numpy uses C).

octofitterpy can access almost all functionality of Octofitter.jl, but only a subset (relative and absolute astrometry fitting) have yet been given convenient wrappers.

The extensive Julia documentation is available here. The examples directory and demo notebook provide examples in Python.

Installation

In an anaconda based environment, run:

pip install -U octofitterpy

Example

import octofitterpy as octo

# See demo.ipynb for more details
astrom_like = octo.PlanetRelAstromLikelihood(
    epoch = [50000,50120],
    sep = [505.7,600.1],
    pa = [0.0,0.4,],
    σ_sep = [10,10],
	σ_pa = [0.01,0.01],
    cor= [0,0.2]
)
planet_b = octo.Planet(
    name="b",
    basis="Visual{KepOrbit}",
    priors=
    """            
        a ~ LogUniform(0.1, 500)
        e ~ Uniform(0.0, 0.99)
        i ~ Sine()
        ω ~ UniformCircular()
        Ω ~ UniformCircular()
        θ ~ UniformCircular()
        tp = θ_at_epoch_to_tperi(system,b,50000) # use MJD epoch of your data here!!
    """,
    likelihoods=[astrom_like]
)
sys = octo.System(
    name="HIP100123",
    priors = 
    """
        M ~ truncated(Normal(1.2, 0.1), lower=0)
        plx ~ truncated(Normal(50.0, 0.02), lower=0)
    """,
    likelihoods=[],
    companions=[planet_b]
)
model = octo.LogDensityModel(sys)
chain = octo.octofit(model)
octo.octoplot(model,chain)
octo.octocorner(model,chain,small=True)

Read the paper

In addition to these documentation and tutorial pages, you can read the paper published in the Astronomical Journal (open-access).

Attribution

@article{Thompson_2023,
doi = {10.3847/1538-3881/acf5cc},
url = {https://dx.doi.org/10.3847/1538-3881/acf5cc},
year = {2023},
month = {sep},
publisher = {The American Astronomical Society},
volume = {166},
number = {4},
pages = {164},
author = {William Thompson and Jensen Lawrence and Dori Blakely and Christian Marois and Jason Wang and Mosé Giordano and Timothy Brandt and Doug Johnstone and Jean-Baptiste Ruffio and S. Mark Ammons and Katie A. Crotts and Clarissa R. Do Ó and Eileen C. Gonzales and Malena Rice},
title = {Octofitter: Fast, Flexible, and Accurate Orbit Modeling to Detect Exoplanets},
journal = {The Astronomical Journal},
}
  • If you use the pairplot functionality, please cite:
@misc{Thompson2023,
  author = {William Thompson},
  title = {{PairPlots.jl} Beautiful and flexible visualizations of high dimensional data},
  year = {2023},
  howpublished = {\url{https://sefffal.github.io/PairPlots.jl/dev}},
}
  • The python wrapper octofitterpy is based on the excellent PySR by Miles Cranmer.

  • See the documentation for a list of additional papers to consider citing.

Ready?

Start by following this tutorial.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

octofitterpy-2.3.2.tar.gz (6.7 MB view details)

Uploaded Source

Built Distribution

octofitterpy-2.3.2-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file octofitterpy-2.3.2.tar.gz.

File metadata

  • Download URL: octofitterpy-2.3.2.tar.gz
  • Upload date:
  • Size: 6.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for octofitterpy-2.3.2.tar.gz
Algorithm Hash digest
SHA256 e43e3dac4b3e25d39dde2602277d1ab94a9b9eebb37c9d054bc9bd23b789d44b
MD5 2fcaf3bc0c3dddb81f7e110bec53e039
BLAKE2b-256 382e224a484be2f21eac132535662a8f18dd4ae8041ef80883a48e26727618f8

See more details on using hashes here.

File details

Details for the file octofitterpy-2.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for octofitterpy-2.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c017a9f4280ea78632aaea69b52cbbc0ef8fff6ce03ec9e01291b45c7aef70b2
MD5 7dbe7ee206e8b072bfc1d358c0a5d2e8
BLAKE2b-256 747b918e9ccebbcd02a6dcec262e5ca8add276e19b0c5be423069d94ed299ecc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page