skyscapes.physical_model.exojax.o3_chappuis
===========================================

.. py:module:: skyscapes.physical_model.exojax.o3_chappuis

.. autoapi-nested-parse::

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

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



Attributes
----------

.. autoapisummary::

   skyscapes.physical_model.exojax.o3_chappuis.PSG_O3_URL
   skyscapes.physical_model.exojax.o3_chappuis.O3_MOLMASS


Classes
-------

.. autoapisummary::

   skyscapes.physical_model.exojax.o3_chappuis.O3ChappuisOpacity


Functions
---------

.. autoapisummary::

   skyscapes.physical_model.exojax.o3_chappuis._load_psg_xs_table
   skyscapes.physical_model.exojax.o3_chappuis.fetch_psg_o3


Module Contents
---------------

.. py:function:: _load_psg_xs_table(path)

   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.


.. py:data:: PSG_O3_URL
   :value: 'https://psg.gsfc.nasa.gov/data/linelists/xuv/data/o3.txt'


.. py:data:: O3_MOLMASS
   :value: 47.9982


.. py:function:: fetch_psg_o3(cache_dir = None)

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

   Thin wrapper around :func:`fetch_psg_xs` that supplies the O3 URL
   and a stable cache filename.


.. py:class:: O3ChappuisOpacity(nu_grid, cache_dir = None, xs_table_path = None)

   Bases: :py:obj:`skyscapes.physical_model.exojax.psg_xs.PsgCrossSectionOpacity`


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


