lazuli-exo: exoplanet transmission spectroscopy with the Lazuli IFS
lazuli-exo simulates exoplanet transmission spectroscopy with the Integral Field Spectrograph (IFS) on Lazuli, the Schmidt Observatory System’s space telescope. It returns the model transmission spectrum of a transiting planet binned to the instrument, with photon/read-noise error bars for a chosen number of transits, a spectral-template S/N, and (for the showcase planets) simulated transit light curves.
Two ways in:
Showcase tables: 14 well-known planets and 5 atmosphere scenarios each, with precomputed slicersim noise, through
lazuli_exo.observe().Parametric model: any transiting planet from its star, radius, mass, \(T_\mathrm{eq}\), transit duration and atmosphere knobs ([M/H], C/O, \(\mu\), cloud deck, haze), with slicersim computing the noise live, through
lazuli_exo.simulate().
Warning
The instrument half is quantitative; the atmosphere half is a fast
surrogate. Noise comes from slicersim with the Lazuli CBE instrument
and a verified photon budget. The atmosphere is a millisecond
interpolation of POSEIDON isothermal, equilibrium-chemistry spectra that
matches POSEIDON to well under the single-transit noise inside a
validated box, and is a 1D toy model outside it. Use the outputs for
rankings, trade studies and scenario comparisons; do not quote the
sigmas as detection significances. For an accurate atmosphere, pass your
own forward model as simulate(star, spectrum=(wl_um, depth)). Read
Concepts and known approximations before quoting any number.
The runtime is numpy-only with its lookup tables shipped as package data.
POSEIDON, slicersim, jax and astropy are never imported by
import lazuli_exo; slicersim and sncosmo are needed at call time only by
the parametric model’s live noise.
Note
New here? Read Installation, then Quick start. The Tutorials are runnable Jupyter notebooks that cover every feature end to end; notebooks 6 to 9 cover the parametric model.
Highlights
Atmosphere scenarios
clear,cloudy,hazy,high_metallicityand a featurelessflatbaseline for 14 showcase targets.Parametric atmospheres from a POSEIDON-derived grid of photospheric pressure \(\zeta(\lambda)\) on (T, [M/H], C/O) plus analytic scale height, slant column, cloud deck and haze, validated against the showcase tables (The parametric model).
Instrument noise per channel from slicersim for a single transit, with Vega to AB handled, the readout desaturated per target, scaled by \(1/\sqrt{N_\mathrm{transits}}\) and binned in inverse variance.
A spectral-template S/N: a matched-template amplitude statistic against the best-fit flat line, overall and per molecular band mask.
Transit light curves, quadratically limb-darkened and numpy-only, for the showcase planets.
Plot methods on the results (Plotting), each taking an
axand returning it.A form/report layer (
lazuli_exo.forms,lazuli_exo.report) that the local Flask applet and the Lazuli simulators site share (Web applet and the web contract).
Contents
Getting started
User guide
Tutorials