Releases: hpparvi/ExoIris
v1.1.0
ExoIris v1.1.0
New Features
-
White light curve creation — Added
TSData.create_white_light_curve()for creating white light curves from 2D spectrophotometry with weighted averaging. -
Marginalised log-likelihood — Added a
white_marginalizednoise model option alongside the existing profiled likelihood (now explicitly namedwhite_profiled). The marginalised option analytically integrates out baseline coefficients rather than estimating them via least-squares profiling. -
Combined binning — Added
TSData.bin()for simultaneous wavelength and time binning.
Bug Fixes
- Fixed error propagation in 2D binning.
- Fixed exception handling in least-squares baseline calculation for individual wavelength bins.
Other Changes
- Reorganised binning utilities into a standalone module; the previous
bin2dinutil.pyis deprecated. - Added tests for binning functions and package imports.
- Updated tutorial notebooks.
Upgrading
This release is backwards-compatible with v1.0.0. The default noise model remains unchanged (white_profiled). The deprecated bin2d function in util.py will be removed in a future release — migrate to exoiris.binning instead.
v1.0.0
ExoIris v1.0.0
New Features
-
Custom interpolation models — Added
set_limb_darkening_interpolatorandset_radius_ratio_interpolatormethods, allowing users to choose interpolation schemes for limb darkening and radius ratios independently. Previously, both used the same interpolation method. -
Offset parameter priors — Added the ability to set priors for offset parameters in the analysis workflow, giving more control over multi-instrument and multi-epoch fitting.
-
Interpolation metadata — Interpolation type is now tracked in FITS header metadata (
INTERP_LD), ensuring the limb darkening interpolation method is preserved when saving and loading models.
Changes
- Refactored interpolation handling in
TSLPFto manage radius ratio and limb darkening interpolators separately, enabling more flexible model configurations. - Improved reinitialisation logic for MCMC and differential evolution populations when limb darkening coefficients or knots are updated.
- Updated documentation for API methods and workflow.
Bug Fixes
- Fixed incorrect FWHM scaling in the
spot_modelfunction. The scaling factor now correctly useslog(4)^(1/shape)for proper full width at half maximum calculations in generalised Gaussian spot models.
Upgrading
This is the first stable release. The API is considered stable and follows semantic versioning from this point onwards. Users on v0.23.x should note that the interpolation handling has been refactored — if you were relying on a single shared interpolator for both limb darkening and radius ratios, you may need to configure them separately using the new methods.
v0.21.0
ExoIris v0.21: Reduced-rank log likelihood function for atmospheric retrieval.
A new exoiris.loglikelihood.LogLikelihood class has been added to ExoIris to provide a statistically robust Gaussian likelihood for comparing theoretical transmission spectra against the posterior spectrum inferred by ExoIris.
Because the ExoIris transmission spectrum is derived from spline-parameterized radius-ratio knots, the resulting spectrum is strongly correlated across wavelength. These correlations carry information and must be accounted for explicitly when performing atmosphere retrievals. Treating the spectral points as independent (e.g., using only diagonal uncertainties) leads to overconfident likelihoods and biased inferences.
The new class implements a reduced-rank (PCA/Karhunen–Loève) Gaussian likelihood that correctly incorporates these wavelength correlations while avoiding the numerical instability that arises from inverting an ill-conditioned full covariance matrix. It works by:
- Evaluating posterior samples of the transmission spectrum on a user-defined wavelength grid.
- Computing the empirical covariance and extracting only its significant eigenmodes (the directions in which the posterior actually varies).
- Projecting both the posterior mean spectrum and any theoretical model into this reduced eigenspace.
- Whitening these components so the posterior becomes a Gaussian with unit variance in each retained mode.
- Computing the log likelihood using only these statistically meaningful components.
This approach is mathematically equivalent to evaluating the likelihood in knot space while allowing direct comparison to theoretical spectra sampled on any wavelength grid. It avoids numerical instabilities, preserves the full information content of the posterior, and provides a reliable likelihood function for atmospheric retrievals and model comparison.
Added
- Added a
loglikelihood.LogLikelihoodclass for reduced-rank Gaussian log-likelihood calculation. - Added
ExoIris.create_loglikelihood_functionmethod to generate log-likelihood instances for atmospheric retrieval. - Added
ExoIris.radius_ratio_spectrumandExoIris.area_ratio_spectrummethods to compute posterior transmission
spectrum distributions for given wavelengths. - Added
exoiris.util.create_mock_modelutility function for generating mock transmission spectra.
v0.20.0
ExoIris 0.20: Star spots and the transit light source effect
- Added the ability to model star spot crossings. The spots are modeled as generalized Gaussians parameterized by their center time, amplitude in a given reference wavelength, full width at half maximum (FWHM), spot temperature in Kelvin, and spot shape. The spot amplitude along the wavelength is modeled using the theoretical BT-Settl spectra, the stellar effective temperature, the spot temperature, and the reference wavelength in which the spot amplitude is measured.
- Added the ability to model the contamination from unocculted spots and faculae (the transit light source effect, or TLSE). This is modeled also using BT-Settl spectra following the formalism described by Rackham et al. (2018).
- Included two new radius ratio interpolation options: "nearest" and "linear".
v0.19.2
Version 0.19.2
This release adds a free_gp noise model where the GP hyperparameters are free parameters in the model. It also improves GP visualization and white light curve modeling.
Full Changelog: v0.18.0...v0.19.2
V0.18.0
Version 0.18 adds an offset_group variable to TSData that can be used in ExoIris to account for bias offsets between instruments
and monochromatic transit-to-transit variations in transit depths caused by unocculted stellar heterogeneities, such
as spots and faculae.
v0.17.0
Added
- Added support for masked data support with GP noise model.
- Added an option to set the GP hyperparameters for an individual data set.
- Added
white_times,white_fluxes,white_models, andwhite_errorsproperties toExoIristo access white ligth curve data.
Fixed
- Fixed model loading with masked data.
v0.16.0
Added
- New Data Mask: Introduced a general
maskattribute in theTSDataclass to automatically flag valid data points (based on finite fluxes and errors). - Uncertainty Estimation: Added the
estimate_average_uncertaintiesmethod inTSDatato compute per-wavelength uncertainties using first differences. - White Light Curve Processing: Updated the
WhiteLPFclass to usenanmeanandisfinitechecks when computing the white light curve, ensuring only valid flux values are averaged.
Changed
- Transit Mask Renaming: Renamed the old
ootmaskattribute totransit_maskthroughout the codebase for clarity. This change affects plotting, normalization, binning, and file I/O. - Method Renaming: Renamed
calculate_ootmaskin theTSDataSetclass tomask_transitto reflect the updated naming convention. - Normalization Enhancements: Updated normalization methods (
normalize_to_polyandnormalize_to_median) to utilize the newtransit_maskandmaskattributes, improving the reliability of baseline fits. - Cropping Flexibility: Added an
inplaceparameter to bothcrop_wavelengthandcrop_timemethods, allowing users to choose between modifying the existing data or returning a new cropped instance. - Likelihood Function Update: Modified the
lnlike_normalfunction inTSLPFto accept an additionalmaskparameter and process only valid data points during likelihood calculations. - Outlier Handling: Refined the
remove_outliersmethod to flag outliers by setting affected fluxes and errors to NaN, rather than replacing them with median-filtered values.
Removed
- Removed Deprecated Method:
calculate_ootmask
This method (deprecated since v0.9) has been removed in favor of the new transit masking functionality. - Removed Deprecated Method:
normalize_baseline
Thenormalize_baselinemethod (deprecated since v0.9) has been removed; users should now usenormalize_to_poly. - Removed Deprecated Method:
normalize_median
The deprecatednormalize_medianmethod has been removed. Its functionality is now available vianormalize_to_median. - Removed Deprecated Method:
split_time
Thesplit_timemethod, deprecated since v0.9, has been removed. Usepartition_timeinstead.
v0.15.0
v0.15.0
Full Changelog: v0.14.1...v0.15.0