exo(planet uni)verses
A python library to create a (relatively) uniform set of objects between tools that generate planetary systems. Currently supports ExoVista and EXOSIMS universes.
Install
Base
pip install exoverses
EXOSIMS support
pip install exoverses[exosims]
ExoVista support
Currently this uses a fork of Exovista, clone it and install it to whatever environment you are using
git clone git@github.com:CoreySpohn/ExoVista.git
cd ExoVista
git checkout pip_support
Load whatever environment you are using (e.g. source my_project/.venv/bin/activate for a virtual environment or conda activate my_project for conda)
pip install .
Usage
The basic objects are
Universeobject which holds all theSystemobjects. EachSystemobject has aStarobject, a list ofPlanetobjects, and aDiskobject (if reading an ExoVista system).
Planet object
The minimum definition of a planet is currently
"t0" - Initial epoch
"a" - Semi-major axis
"e" - Eccentricity
"mass" - Mass
"radius" - Radius
"inc" - Inclination
"W" - Longitude of the ascending node
"w" - Argument of periapsis
"M0" - Mean anomaly at initial epoch
"p" - Geometric albedo
A planet can be created independently with a dictionary of those values
from astropy.time import Time
import astropy.units as u
from exoverses.base.planet import Planet
planet_dict = {
"t0": Time(2000, format='decimalyear'),
"a": 1*u.au,
"e": 0.1,
"mass": 1*u.M_Earth,
"radius": 1*u.R_Earth,
"inc": 90*u.deg,
"W": 1*u.deg,
"w": 1*u.deg,
"M0": 0*u.deg,
"p": 0.3,
}
simple_planet = Planet(planet_dict)
Exovista
from exoverses.exovista.universe import ExovistaUniverse
ev_universe_path = "path/to/exovista/fits/files/"
ev_universe = ExovistaUniverse(ev_universe_path)
ev_universe.systems[0]
> HIP -1 dist:10.0 pc Type:G2V
Planets:
K T secosw sesinw T_c a ... W w M0 t0 mass radius
0 0.007479 87.969367 0.453459 0.0 2451478.3795736698 0.387099 ... 0.843030 0.0 203.98262 2000.0 0.0553 0.383
1 0.076703 224.235443 0.082300 0.0 2451423.336314871 0.722333 ... 1.338331 0.0 105.29904 2000.0 0.8150 0.949
2 0.077484 365.256410 0.129268 0.0 2451341.772314067 1.000000 ... -0.196535 0.0 111.72499 2000.0 1.0000 1.000
3 0.006867 686.959991 0.305634 0.0 2450809.4793391167 1.523662 ... 0.865309 0.0 305.87478 2000.0 0.1070 0.532
4 10.948237 4333.286713 0.219983 0.0 2446990.8777174116 5.203363 ... 1.755036 0.0 293.84823 2000.0 317.8300 11.209
5 2.448455 10756.199527 0.232703 0.0 2440189.9239725103 9.537070 ... 1.984702 0.0 296.22928 2000.0 95.1600 9.449
6 0.259398 30707.489457 0.217181 0.0 2423941.940415186 19.191264 ... 1.295556 0.0 239.00230 2000.0 14.5400 4.007
[7 rows x 14 columns]
# Alternatively you can create a System object independently
from exoverses.exovista.system import ExovistaSystem
ev_system_path = "path/to/exovista/fits/files/system0.fits"
ev_system = ExovistaSystem(ev_system_path)
ev_system
> HIP -1 dist:10.0 pc Type:G2V
Planets:
K T secosw sesinw T_c a ... W w M0 t0 mass radius
0 0.007479 87.969367 0.453459 0.0 2451478.3795736698 0.387099 ... 0.843030 0.0 203.98262 2000.0 0.0553 0.383
1 0.076703 224.235443 0.082300 0.0 2451423.336314871 0.722333 ... 1.338331 0.0 105.29904 2000.0 0.8150 0.949
2 0.077484 365.256410 0.129268 0.0 2451341.772314067 1.000000 ... -0.196535 0.0 111.72499 2000.0 1.0000 1.000
3 0.006867 686.959991 0.305634 0.0 2450809.4793391167 1.523662 ... 0.865309 0.0 305.87478 2000.0 0.1070 0.532
4 10.948237 4333.286713 0.219983 0.0 2446990.8777174116 5.203363 ... 1.755036 0.0 293.84823 2000.0 317.8300 11.209
5 2.448455 10756.199527 0.232703 0.0 2440189.9239725103 9.537070 ... 1.984702 0.0 296.22928 2000.0 95.1600 9.449
6 0.259398 30707.489457 0.217181 0.0 2423941.940415186 19.191264 ... 1.295556 0.0 239.00230 2000.0 14.5400 4.007
[7 rows x 14 columns]
Metadata
Release files for exoverses 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| exoverses-0.4.1.tar.gz | 31.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| exoverses-0.4.1-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 66.8 kB
Release files / exoverses-0.4.1.tar.gz
| Download URL | exoverses-0.4.1.tar.gz |
|---|---|
| Size | 31.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
27ac4bca8bf288145c3a2121bf2e08a4776e87f2f6f95d65b9cc3e9059a5a888
|
|
BLAKE2b-256 checksum How to use checksums |
243f4ee345b2bd001e927b3e3e60ff370b67ec69a7c529b6d469b4f210506ef0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 23, 2026.
Transparency logRelease files / exoverses-0.4.1-py2.py3-none-any.whl
| Download URL | exoverses-0.4.1-py2.py3-none-any.whl |
|---|---|
| Size | 35.5 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
339ec04024757817eef2791437c146ff6681df885cbba51321f9342a124822ae
|
|
BLAKE2b-256 checksum How to use checksums |
b82495d1d53175c5f289c9fc3d146fb06ea26db0ba28f998b8c8f323d854fff2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 23, 2026.
Transparency log