ExoIris: Python Exoplanet Spectroscopy
- ExoIris is an open-source Python package designed to analyze exoplanet transit and eclipse spectroscopy using 2D time-wavelength flux arrays.
- It integrates spectral and temporal data in a self-consistent fit, enabling joint analysis of multiple instruments and epochs for robust transmission spectra.
- Its flexible spline parameterization and Gaussian process noise modeling reduce bias and improve the precision of orbital and atmospheric parameter retrievals.
ExoIris is a user-friendly Python package for exoplanet transmission and emission spectroscopy that models two-dimensional spectrophotometric transit time series directly and supports the joint analysis of multiple datasets obtained with different instruments and at different epochs. It is designed for time-resolved spectrophotometric data represented as 2D arrays of flux versus time and wavelength, and it infers wavelength-independent parameters and wavelength-dependent parameters in a single, self-consistent fit rather than through the commonly used two-step workflow based on a preliminary white-light solution (Parviainen, 19 Sep 2025).
1. Scope, observational domain, and inferred quantities
ExoIris is an open-source Python package for analyzing exoplanet transit and eclipse spectroscopy. It was built for modern instruments such as JWST NIRISS SOSS, NIRSpec, and NIRCam grism, but the methodology is general and can be applied to HST and ground-based spectroscopic transit datasets as well. Its native data model is a time-wavelength flux array with associated uncertainties, masks, and grouping metadata, so the primary observational object is not an extracted one-dimensional spectrum but a spectrophotometric time series in two dimensions (Parviainen, 19 Sep 2025).
The principal products are a transmission spectrum and, conceptually, an emission spectrum. In the transmission case the core wavelength-dependent quantity is
which is inferred from transit depth as a function of wavelength. In eclipse or phase-curve applications, the analogous output is the planet/star flux ratio. This organization is significant because ExoIris treats the spectral and temporal dimensions as parts of a single inference problem, so orbital parameters, limb darkening, offsets, baselines, and noise properties are estimated jointly rather than propagated sequentially from a reduced summary product (Parviainen, 19 Sep 2025).
Typical use cases include a single transit from one instrument, a joint transmission spectrum from multiple JWST instruments and detectors, and sensitivity tests for stellar contamination, instrumental offsets, and noise properties. A representative example discussed in the literature is a combined NIRSpec, NIRCam, and NIRISS analysis for WASP-39 b, which illustrates the package’s intended role in heterogeneous, multi-epoch exoplanet spectroscopy (Parviainen, 19 Sep 2025).
2. Forward model and transit formalism
For a dataset , ExoIris models the observed flux as
where is an additive flux offset for the dataset’s offset group, is a multiplicative baseline spectral shape modeled as a spline in , is the spectrophotometric transit model, is the wavelength-dependent planet-to-star radius ratio, is the limb-darkening parameter vector, and
is the orbital parameter vector shared across datasets except for epoch-group-dependent transit centers 0 (Parviainen, 19 Sep 2025).
The transit calculation uses TSModel from PyTransit, based on the RoadRunner transit model optimized for transmission spectroscopy. For a radially symmetric stellar intensity profile 1, the in-transit stellar flux is written as
2
and, after normalization, RoadRunner evaluates the flux with a discretized limb-darkening profile: 3 Here 4 is a weight vector depending on radius ratio 5 and impact parameter 6, 7 is the discretized limb-darkening profile, and 8 is the occulted area using the Agol et al. 2020 circle-intersection routine. The computational optimization central to ExoIris is that 9 is independent of wavelength and is computed once per exposure, while 0 depends only weakly on small variations in 1, permitting precomputation around a single 2 (Parviainen, 19 Sep 2025).
ExoIris avoids fitting an independent 3 in every spectral channel by parameterizing 4 as a spline: 5 The dimensionality is therefore controlled by the number of knots rather than the number of channels, and the effective spectral resolution of the inferred transmission spectrum can be adjusted through knot placement. The same strategy is used for analytical limb-darkening laws, where coefficients such as 6 and 7 are represented by splines, or alternatively limb darkening can be supplied through an LDTk-based numerical model parameterized by the global stellar parameters 8, 9, and 0 (Parviainen, 19 Sep 2025).
This modeling strategy suggests an explicitly low-dimensional but spectrally flexible representation of wavelength structure. A plausible implication is that ExoIris is particularly well suited to cases where the desired retrieved spectrum is smoother than the native channelization of the reduced data but not necessarily describable by a rigid parametric atmosphere model.
3. Joint multi-dataset inference
A defining feature of ExoIris is its explicit design for joint modeling of heterogeneous datasets from multiple instruments, multiple detectors within an instrument, and multiple epochs. Each dataset is assigned to an epoch group, an offset group, a noise group, and a dataset-specific baseline spline. In that grouped formulation the dataset model becomes
1
where 2 is shared by all datasets in an epoch group, while 3, 4, 5, and 6 remain global (Parviainen, 19 Sep 2025).
This grouping induces a clear separation of parameter roles. Global, wavelength-independent parameters include 7, 8, 9, 0, the transit centers per epoch group, and the LDTk stellar parameters if numerical limb darkening is used. Group-specific but wavelength-independent parameters include offsets and noise parameters. Dataset-specific wavelength-dependent structure is carried by the baseline spline 1. The transmission spectrum 2 and the limb-darkening functions 3 are wavelength-dependent but shared across datasets. In effect, ExoIris performs a joint inversion in which the physical spectrum is global while instrumental baselines, offsets, and noise remain local to the relevant group structure (Parviainen, 19 Sep 2025).
The canonical demonstration is the joint ExoIris analysis of eight JWST spectrophotometric datasets for WASP-39 b. The configuration uses four epoch groups, five offset groups with PRISM as the reference and 4, six noise groups, 126 radius-ratio knots across 5–6, 10 limb-darkening knots linearly spaced from 7–8, and a baseline spline for each dataset. The resulting transmission spectrum is reported as consistent with Carter et al. (2024), while the joint fit achieves a stellar density precision of 9 assuming known 0 (Parviainen, 19 Sep 2025).
The significance of this architecture is methodological rather than merely software-engineering. By sharing 1, limb darkening, and orbital geometry across datasets while permitting detector- and epoch-specific nuisance structure, ExoIris operationalizes a self-consistent treatment of cross-instrument inference that the traditional channel-by-channel workflow does not naturally provide.
4. Noise models, likelihood, and Bayesian estimation
ExoIris supports both white-noise and time-correlated-noise formulations. Under the white-noise model, each noise group 2 has a free scaling factor 3 that rescales the input uncertainties according to
4
This accommodates pipeline uncertainties that may be mis-estimated while retaining a diagonal covariance structure when photon noise dominates or systematics are already removed (Parviainen, 19 Sep 2025).
For time-correlated noise ExoIris uses celerite2 and currently focuses on a Matern-5 kernel. For a dataset 6,
7
where 8 is the transit-plus-baseline-plus-offset model, 9 is the GP covariance matrix, and 0. An example kernel is
1
with amplitude 2 and timescale 3. Hyperparameters may be fixed or fitted jointly with transit parameters, although the latter is computationally more expensive (Parviainen, 19 Sep 2025).
The dataset likelihood under a Gaussian noise model is
4
with 5, and the total log-likelihood is the sum over datasets. Posterior estimation is Bayesian,
6
and ExoIris uses MCMC via emcee to sample the posterior over spline knot values, orbital parameters, offsets, baseline terms, noise scalings, and optionally GP hyperparameters (Parviainen, 19 Sep 2025).
In practical use, broad limb-darkening priors may be derived from LDTk/PHOENIX, orbital parameters may have Gaussian or uniform priors informed by external ephemerides, and radius-ratio spline values typically have broad priors consistent with physically reasonable transit depths. The baseline model is wavelength-dependent and time-independent; explicit auxiliary-variable time trends are not detailed, so temporal systematics are handled by the GP kernel or by upstream reduction choices (Parviainen, 19 Sep 2025).
5. Computational performance, workflow, validation, and limitations
Despite its joint two-dimensional formalism, ExoIris is designed to remain computationally efficient. A low-resolution transmission spectrum can be estimated from a single JWST NIRISS transit observation in 7 minutes assuming white noise and in 8 minutes when using a Gaussian process noise model on a standard desktop computer. A single JWST NIRISS transit at 9 with 100 radius-ratio knots and GP noise is reported as typically requiring 10–20 minutes, while more complex joint analyses such as the eight-dataset WASP-39 b example are completed within a few hours (Parviainen, 19 Sep 2025).
The implementation stack includes PyTransit for the transit model, LDTk for optional limb darkening, celerite2 for Gaussian processes, NumPy, SciPy, Numba, Astropy, and emcee. The package is installable via PyPI with pip install exoiris, and source code, examples, documentation, and tutorials are provided through GitHub and Read the Docs. The software design emphasizes explicit group-based model configuration, spline infrastructure for wavelength-dependent parameters, and tools for masking, binning, and cropping data (Parviainen, 19 Sep 2025).
Validation in the literature proceeds at several levels. Numerical tests of the RoadRunner approximations give a maximum transit-depth error of 0 (3 ppm) for hot Jupiter WASP-39 b with 1 varying 2–3, and 4 (0.05 ppm) for sub-Neptune TOI-836 c with 5 varying 6–7. For grazing hot Jupiters, the errors can rise to 8, although they are still described as below current observational precision and correctable if needed. The package is also validated against the joint JWST transmission spectrum of WASP-39 b and through a bias-offset example showing that detector offsets can be absorbed by 9 without distorting the transmission-spectrum shape (Parviainen, 19 Sep 2025).
A typical workflow begins with reduction of a spectroscopic time series to a flux array in 0 with uncertainties, optional cropping or binning, and construction of ExoIris dataset objects. The next stages are assignment of epoch, offset, and noise groups; selection of a noise model; definition of radius-ratio, limb-darkening, and baseline splines; an initial white-light fit; and then a full two-dimensional MCMC fit with posterior and residual inspection. The final transmission spectrum 1 is then intended to be passed to atmospheric retrieval tools, which are not part of ExoIris (Parviainen, 19 Sep 2025).
The documented limitations are equally specific. ExoIris currently focuses on time-domain Gaussian processes rather than a full two-dimensional GP over time and wavelength. GP fitting with free hyperparameters is currently limited to the Matern-2 kernel. The offset model requires wavelength overlap between groups; without overlap, offset degeneracies with 3 arise. Runtime increases with the number of knots and datasets, and emission spectroscopy is conceptually supported but the documented use cases focus mainly on transmission (Parviainen, 19 Sep 2025).
6. Relation to the traditional two-step workflow and terminological ambiguity
The methodological contrast most often emphasized in connection with ExoIris is its departure from the traditional two-step approach. In that conventional workflow, a white light curve is first fitted to estimate global parameters, after which each spectral channel is fitted independently under constraints inherited from the white-light solution. ExoIris instead fits the full time-wavelength data simultaneously, with shared orbital parameters, shared wavelength-dependent spline models, and jointly inferred offsets, baselines, and noise properties. The stated advantages are self-consistent uncertainty propagation, reduced bias, and better handling of correlations across time, wavelength, and dataset boundaries (Parviainen, 19 Sep 2025).
The name also requires disambiguation. In current research usage, “ExoIris” most directly denotes the Python package for exoplanet transmission and emission spectroscopy, but similar spellings have been used for distinct exoplanet-related contexts. The term “ExoIRIS” has been used for exoplanet science with the InfraRed Imaging Spectrograph on the Thirty Meter Telescope, especially direct imaging and spectroscopy of planets and planetary systems (Barton et al., 2010). “ExoIRIS” or “ExoIris” has also been used informally to describe the application of the 3D radiative transfer code IRIS to exoplanet atmospheres (Ibgui et al., 2012). In another line of usage, “ExoIris” has been associated with a visible-light extreme adaptive optics concept for detecting oxygen in Proxima Centauri b and analogs on extremely large telescopes (Fowler et al., 2023). Mid-infrared biosignature discussions have likewise framed the 4 O5-X CIA band as directly relevant to an “ExoIris”-type mission concept (Fauchez et al., 2020).
| Usage of the name | Referent | Source |
|---|---|---|
| ExoIris | Python package for exoplanet transmission and emission spectroscopy | (Parviainen, 19 Sep 2025) |
| ExoIRIS | Exoplanet science with TMT/IRIS | (Barton et al., 2010) |
| ExoIRIS or ExoIris | Application of the IRIS radiative-transfer framework to exoplanet atmospheres | (Ibgui et al., 2012) |
| ExoIris | Visible ExAO concept for oxygen detection on rocky exoplanets | (Fowler et al., 2023) |
This terminological overlap has produced a recurring misconception that all occurrences denote a single software or instrument program. The literature instead indicates a family of unrelated or only loosely related usages built around the prominence of “IRIS” in astrophysical instrumentation and modeling. In the contemporary software context, however, ExoIris most specifically denotes the Python framework for direct modeling of two-dimensional spectrophotometric transit and eclipse datasets (Parviainen, 19 Sep 2025).