skyscapes.physical_model.exojax.o3_chappuis#

Back-compat shim re-exporting the PSG cross-section O3 setup.

The original implementation lived here; it has since been generalized to skyscapes.physical_model.exojax.psg_xs. This module keeps the O3ChappuisOpacity name so existing imports continue to work.

Attributes#

Classes#

O3ChappuisOpacity

PSG cross-section opacity for O3 (Serdyuchenko et al. 2014).

Functions#

_load_psg_xs_table(path)

Parse a PSG cross-section ASCII file.

fetch_psg_o3([cache_dir])

Download the PSG O3 cross-section file once and cache it locally.

Module Contents#

skyscapes.physical_model.exojax.o3_chappuis._load_psg_xs_table(path)[source]#

Parse a PSG cross-section ASCII file.

The PSG format begins with #-prefixed header lines including a #TEMP: row listing the temperature axis [K] (one or more values), followed by data rows of wavelength_um  sigma_T1  sigma_T2 ... sigma_TN with cross-sections in cm^2/molecule.

Args:

path: Path to the PSG ASCII file.

Returns:

Tuple of (wavelength_um, T_grid_K, sigma) where sigma has shape (n_wavelengths, n_temperatures) in cm^2/molecule.

Parameters:

path (str | pathlib.Path)

Return type:

tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray]

skyscapes.physical_model.exojax.o3_chappuis.PSG_O3_URL = 'https://psg.gsfc.nasa.gov/data/linelists/xuv/data/o3.txt'#
skyscapes.physical_model.exojax.o3_chappuis.O3_MOLMASS = 47.9982#
skyscapes.physical_model.exojax.o3_chappuis.fetch_psg_o3(cache_dir=None)[source]#

Download the PSG O3 cross-section file once and cache it locally.

Thin wrapper around fetch_psg_xs() that supplies the O3 URL and a stable cache filename.

Parameters:

cache_dir (str | pathlib.Path | None)

Return type:

pathlib.Path

class skyscapes.physical_model.exojax.o3_chappuis.O3ChappuisOpacity(nu_grid, cache_dir=None, xs_table_path=None)[source]#

Bases: skyscapes.physical_model.exojax.psg_xs.PsgCrossSectionOpacity

PSG cross-section opacity for O3 (Serdyuchenko et al. 2014).

Parameters: