harv¶
Introduction¶
harv (pronounced harvey) is a Python package for inferring Keplerian orbital parameters of binary-star and star–exoplanet systems from time series data. We currently support modeling radial velocities, Gaia epoch astrometry, or both jointly. It is designed to be a computational backbone for binary-star and exoplanet population science with large spectroscopic surveys, Gaia DR4, and beyond.
harv is built on JAX for JIT and multi-device (e.g., GPU) support, NumPyro for representing probability distributions and running MCMC, and unxt for units-aware computation throughout.
Warning
harv is in rapid development! The public API is not yet stable.
Overview¶
A star with a (unseen) companion produces two observable signals on top of ordinary stellar astrophysics: an astrometric wobble as the system photocenter (the visible star) traces an ellipse on the sky, and radial velocity variations. Modeling either of these data (or both, jointly) constrains the companion’s orbit and breaks degeneracies between inclination, parallax, and semi-major axis.
When the data are sparse or low signal-to-noise, orbital solutions are often strongly multimodal, and inference can be challenging because standard methods like MCMC will struggle to explore the posterior pdf effectively. harv is designed to handle these cases, to enable population inferences even when the individual systems are not well-constrained.
Where to go next¶
New to harv? Start with the Tutorials.
Read about some key concepts.
New to JAX, NumPyro, or unxt? Check Sharp bits.
Looking up a specific class or function? Use the API Reference.
Installation¶
pip install harv
uv add harv
pip install git+https://https://github.com/adrn/harv.git
cd /path/to/parent
git clone https://https://github.com/adrn/harv.git
cd harv
pip install -e . # editable mode