Skip to main content

orblet orblet

Atoms for Keplerian orbit analysis. Forward models, likelihoods, design matrices and linear solves, period search, element conversion, plotting — each a function that takes arrays and returns a result, with its units, frames and assumptions stated in its docstring.

orblet is not a solver. It does not know what a Gaia epoch is, does not read files, and does not contact the network. You build the pipeline; orblet supplies the pieces.

from orblet import ti_design_matrix, linear_solve_ti, ti_to_kepler

X = ti_design_matrix(t_mjd, psi_rad, parallax_factor_al, P_days, e, tau, epoch_ref_mjd)
fit = linear_solve_ti(along_scan_mas, sigma_mas, X)
elements = ti_to_kepler({"A": fit.beta[0], "B": fit.beta[1], "F": fit.beta[2], "G": fit.beta[3]})

Install

orblet is not on PyPI yet. Install it from the repository:

pip install "orblet[all] @ git+https://github.com/saharsh1/orblet.git"

or from a local clone, which is the right choice while you are editing it:

git clone https://github.com/saharsh1/orblet.git
pip install -e "./orblet[all]"

Drop [all] for the four core dependencies only — numpy, scipy, astropy, matplotlib — which is all a fresh install needs to run the atoms and the quickstarts. The extras (emcee, corner, pandas, tqdm; also available one at a time as [sampling], [plots], [tables], [progress]) are each imported inside the one function that uses them, so a missing extra fails that call with a message naming it and leaves everything else working.

What is here

orblet.model forward models: RV curve, along-scan astrometry, Thiele-Innes and Campbell photocentre orbits
orblet.likelihood Gaussian log-likelihoods with jitter, per channel
orblet.kepler the Kepler-equation solver
orblet.design / orblet.solve design-matrix builders and the generalised-least-squares linear solves for RV and astrometry
orblet.search / orblet.periodogram the Thiele-Innes frequency scan; Lomb-Scargle and phase-distance-correlation periodograms
orblet.elements Thiele-Innes → Campbell, NSS convention, element extraction from chains
orblet.priors prior classes and the log-prior composer
orblet.sampling / orblet.chain_stats emcee helpers; quantiles and circular summaries of chains
orblet.interpret companion mass and the astrometric mass-ratio function
orblet.simulate a synthetic-orbit simulator and a parallax-consistent cadence, for tests and tutorials
orblet.parallax per-direction parallax factors from a DE432s ephemeris
orblet.plotting orbit, residual, sky-overlay and corner plots

The front door — from orblet import <name> — exposes 35 names and imports nothing heavy: import orblet pulls in no scipy, no matplotlib, no astropy. Each name resolves on first use.

Conventions

Every public function states them in its docstring. The ones that bite:

  • radial velocity: positive is receding; omega is the primary's argument of periastron
  • period in days at the public surface (Keplerian years only inside the Kepler solver)
  • tau is the periastron phase in [0, 1); tp = tau * P + epoch_ref_mjd
  • astrometric amplitudes A, B, F, G are photocentre amplitudes in mas, positive-amplitude convention; the parallax term enters as parallax_mas * parallax_factor_al, additive
  • Gaia's pmra is already mu_alpha* — never apply cos(dec) again
  • a seed is initialisation, never a prior: a starting point for a sampler carries no evidence

Four laws, each a test

  1. A public name is the object it claims to be — no silent wrappers.
  2. The numerical core does not move: byte-identity baselines pin the forward models, the likelihoods and the design columns.
  3. Conventions hold: RV sign, primary-frame ω, τ → tp, time scales.
  4. orblet imports nothing outside itself, the four dependencies and the standard library.

Status

Grew inside the gaia-orbits repository until 2026-09-24; developed here since, and consumed there as an installed dependency.

Three simulator presets ship. OrbitSimulator.bh1_like() is the one the quickstarts use, through load_simulated_inputs(scenario="bh1"): an illustrative orbit on an invented sky position, with a cadence whose parallax factor is coupled to that position, so injecting and removing the parallax signal use the same array and closure is exact. toy_orbit() is a compact short-period orbit for quick smoke tests. bh3_like() carries orbital numbers rounded from a published system and is useful for a realistic-looking truth; pair it with DemoParallaxConsistentCadence for anything closure-grade. The scenario= parameter and the bh1/toy naming are slated to be simplified.

Licence

MIT.

Release files for orblet 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for orblet 0.1.0
File Size Uploaded
orblet-0.1.0.tar.gz 280.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for orblet 0.1.0
File Interpreter ABI Platform
orblet-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 502.7 kB

Release files / orblet-0.1.0.tar.gz

Download URL orblet-0.1.0.tar.gz
Size 280.4 kB
Tags Source
SHA-256 checksum
How to use checksums
72ad27549fcb4e86933ac867dfdacac221456a20850e7cb441b41f06a38ac8f6
BLAKE2b-256 checksum
How to use checksums
854068e15d556dd5580fc72f9affad4e64a283877127a083da58362504977a12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / orblet-0.1.0-py3-none-any.whl

Download URL orblet-0.1.0-py3-none-any.whl
Size 222.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c055d573b169de3c6d53849452960b7ce6420da1997703876638eb336b1c2239
BLAKE2b-256 checksum
How to use checksums
085cbdb07ed33f35ee2f8c8437f92825ac40d32f0a9075c442c8fcf82a210d97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page