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-1.0.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-1.0.0-py3-none-any.whl (67.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: exoiris-1.0.0.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

Hashes for exoiris-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3c5d1b2c109f7b44a46a2514de3557e43dd44c584f4c329069c4490463af713c
MD5 1349dbf798cbeaeec9d6925c96fc94c6
BLAKE2b-256 8917833837fd73f171dea486d96d832e126b0ced9b75f436f0e6404298fa65dc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: exoiris-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 67.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.10

File hashes

Hashes for exoiris-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 29ae9bcf3cd2ab04f3baeb02fe527c0963e7e27968bbcd9d4ac8ea0c9cfc8c95
MD5 b1e46e6f8f7007b0d8bd27da0b17ccd2
BLAKE2b-256 cb7d8606d095c180c9bbebd913f9543cc148b4f6da5909b961b76c377b273c52

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