Easy and robust exoplanet transmission spectroscopy.
Project description
ExoIris: Fast and Flexible Transmission Spectroscopy in Python
ExoIris is a Python package for modeling exoplanet transmission spectroscopy. ExoIris removes the typical limitations of the two-step workflow by modeling the full two-dimensional spectroscopic transit time series directly. It supports combining transmission spectroscopy datasets from multiple instruments observed in different epochs, yielding self-consistent wavelength-independent and wavelength-dependent parameters, simplifying joint analyses, and delivering results quickly.
Why ExoIris?
Transmission spectroscopy is often done following a two-step workflow: (1) fit a white light curve to infer wavelength-independent parameters; (2) fit each spectroscopic light curve independently, constrained by the white-light solution. This split can introduce approximations and inconsistencies.
ExoIris takes a different approach. It models spectrophotometric time series end-to-end, enabling:
- Self-consistent inference of shared (wavelength-independent) and spectral (wavelength-dependent) parameters.
- Joint modeling of multiple datasets from different instruments and epochs.
- Accounting for transit timing variations and dataset-dependent offsets within a unified framework.
This design is a natural fit for JWST-class data, where correlated noise, multi-epoch observations, and cross-instrument combinations are the norm.
Documentation
Full documentation and tutorials: https://exoiris.readthedocs.io
Installation
Install from PyPI:
pip install exoiris
Latest development version:
git clone https://github.com/hpparvi/ExoIris.git
cd ExoIris
pip install -e .
ExoIris supports Python 3.9+. See the docs for dependency details and optional extras.
Key Features
-
Direct modelling of spectroscopic transit time series
Built on PyTransit’sTSModel, optimised for transmission spectroscopy; scales to hundreds–thousands of light curves simultaneously. -
Flexible limb darkening
Use standard analytical laws (quadratic, power-2, non-linear), numerical intensity profiles from stellar atmosphere models, or user-defined radially symmetric functions. -
Robust noise treatment
Choose white noise or time-correlated noise via a Gaussian Process likelihood, without changing the overall workflow. -
Full control of spectral resolution
The transmission spectrum is represented as a cubic spline with user-defined knots, allowing variable resolution across wavelength. -
Reproducible, incremental workflows
Save and reload models to refine a low-resolution run into a high-resolution analysis seamlessly. -
Joint multi-dataset analyses
Combine instruments and epochs in one fit, with support for transit timing variations and dataset-specific systematics and offsets.
Performance
ExoIris is designed for speed and stability:
- A transmission spectroscopy analysis of a single JWST/NIRISS dataset at R ≈ 100 typically runs in 3–5 minutes assuming white noise, or 5–15 minutes with a GP noise model, on a standard desktop CPU.
- A high-resolution analysis of the JWST/NIRISS WASP-39 b dataset (~3800 spectroscopic light curves; see Feinstein et al. 2023) can be optimised and sampled in about 1.5 hours on an AMD Ryzen 7 5800X (8 cores, ~3-year-old desktop).
© 2025 Hannu Parviainen
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file exoiris-0.23.2.tar.gz.
File metadata
- Download URL: exoiris-0.23.2.tar.gz
- Upload date:
- Size: 27.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b044d09327d9eb81702b926e29c1028bfc14fd63646818d1ae8522d05cc33f7
|
|
| MD5 |
f1970de61e8f50fbaf5975e5bb71794d
|
|
| BLAKE2b-256 |
f716f41ca70337136dac0c7a71cdfece13087a4c3836743a3ec6203ec14a529d
|
File details
Details for the file exoiris-0.23.2-py3-none-any.whl.
File metadata
- Download URL: exoiris-0.23.2-py3-none-any.whl
- Upload date:
- Size: 64.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e00afe9bae00f54a07c986b3c2ae4f146744dc7634aa19b89f7d37f4687a0580
|
|
| MD5 |
dc4962caab0d1e695b3a62b91d15cf67
|
|
| BLAKE2b-256 |
b28b540d1c2cde43061701dee10ed1f2c90149a164436962d88d60b9876c84e0
|