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.23.1.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.23.1-py3-none-any.whl (64.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: exoiris-0.23.1.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-0.23.1.tar.gz
Algorithm Hash digest
SHA256 e9577f62c3ce4c7e772152ea446e309ef35dff85e40572d55ea014903dedb416
MD5 2328b3ad7ef23630e9ded6be6a0597a3
BLAKE2b-256 eec2f02d587ed6f407fe9be45bc9dead971212a0a8617bbed39a1366511dcb8a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for exoiris-0.23.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7161fcfe6fd0f998ebbaca8d7415686eeb1ba5b657df77279c1efbf0634e779d
MD5 46513361db5642f77b21644f80733abd
BLAKE2b-256 fd420760c3c20716396ab63f1eb5ca630b9187863b0beb90a161ae242701ee6f

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