Skip to main content

Easy and robust exoplanet transmission spectroscopy.

Project description

ExoIris: Fast and Flexible Transmission Spectroscopy in Python

Docs Python package Contributor Covenant Licence PyPI version

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’s TSModel, 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


Download files

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

Source Distribution

exoiris-0.21.0.tar.gz (27.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

exoiris-0.21.0-py3-none-any.whl (62.4 kB view details)

Uploaded Python 3

File details

Details for the file exoiris-0.21.0.tar.gz.

File metadata

  • Download URL: exoiris-0.21.0.tar.gz
  • Upload date:
  • Size: 27.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for exoiris-0.21.0.tar.gz
Algorithm Hash digest
SHA256 2fa7a565fe82cc77daae77200ef856c8d7e471eeb9e1a29095e3be599bba42a3
MD5 3ab890616081dc18a4a89e89a8c84e5d
BLAKE2b-256 aa1ee8cf33c7eb8eca99e38472132137e1afa309871a5ae137e5ee1d389e1e1b

See more details on using hashes here.

File details

Details for the file exoiris-0.21.0-py3-none-any.whl.

File metadata

  • Download URL: exoiris-0.21.0-py3-none-any.whl
  • Upload date:
  • Size: 62.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for exoiris-0.21.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7507eeedd33c82ebcacc66046f1a462222a236a4af9081e4b3f2ecb9cb61e6fd
MD5 aa38ff1c04411fd2ae867f0fe64f722d
BLAKE2b-256 199c3911a3e9973cf0bf26d4b64393555bd30fa8f19772d8538bc9c1138d13c6

See more details on using hashes here.

Supported by

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