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

Uploaded Python 3

File details

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

File metadata

  • Download URL: exoiris-1.1.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-1.1.0.tar.gz
Algorithm Hash digest
SHA256 2ec47456135624718a1b45291e9118d67ead90f6e019d02c1ea9a1584617d070
MD5 d745a84f3771d02a7b57949039c64100
BLAKE2b-256 fc578a78ebee8345e9ce503e8c367ea7417fa3576888ba9917cef04d84d40d83

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for exoiris-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 08d613f73f8449b189227f765fab514a1ead66749e6f04bc3685f1aaa5dccd9b
MD5 3b9e075b9115e90aa613930a39ef80a6
BLAKE2b-256 77f1b86b9dde2bff52beff3ddf7fd285f1e30bbd366b6194f5cc7a1cb2f233c3

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