SingleScattering

class nyx.atmosphere.single_scattering.SingleScattering[source]

Bases: AtmosphereModel

Single-scattering atmosphere, composed of named components.

Each ScatteringComponent supplies its own optical depth, phase function, single-scattering albedo, airmass and trainable parameters.

Build the atmosphere.

Parameters:
  • geo (Geometry)

  • components (dict of str to ScatteringComponent) – Components to compose, each built against geo.wvls.

  • airmass_formula (str) – Key into AIRMASS_FUNCTIONS.

Attributes Summary

Methods Summary

evaluate(sky)

Extinction and scattering kernel over the whole hemisphere.

extinct(altitudes, spectra, height_km)

Extinct point-source spectra, shape (n_sources, n_wvl).

from_hg(geo[, aod_500, angstrom_exp, ...])

Rayleigh scattering plus Angstrom-law aerosol, no molecular absorption.

from_hg_ozone(geo[, aod_500, angstrom_exp, ...])

from_hg() plus an ozone absorption layer.

scatter_sources(sky, source_coords, ...)

Scatter discrete point sources onto the FOV grid.

Attributes Documentation

components = <dataclasses._MISSING_TYPE object>

Methods Documentation

evaluate(sky)[source]

Extinction and scattering kernel over the whole hemisphere.

Parameters:

sky (SkyGeometry)

Return type:

AtmosphereResult

extinct(altitudes, spectra, height_km)[source]

Extinct point-source spectra, shape (n_sources, n_wvl).

classmethod from_hg(geo, aod_500=0.1, angstrom_exp=1.5, hg_asymmetry=0.65, hg_ssa=0.9, airmass_formula='kasten_young_1989', pressure_hpa=None)[source]

Rayleigh scattering plus Angstrom-law aerosol, no molecular absorption.

Parameters:
  • geo (Geometry)

  • aod_500 (float) – Aerosol optical depth at 500 nm.

  • angstrom_exp (float) – Angstrom exponent.

  • hg_asymmetry (float) – Henyey-Greenstein asymmetry and aerosol single-scattering albedo.

  • hg_ssa (float) – Henyey-Greenstein asymmetry and aerosol single-scattering albedo.

  • airmass_formula (str) – Key into AIRMASS_FUNCTIONS.

  • pressure_hpa (float or None) – Station pressure for the Rayleigh column; None uses the barometric estimate from the observer height.

Return type:

SingleScattering

classmethod from_hg_ozone(geo, aod_500=0.1, angstrom_exp=1.5, hg_asymmetry=0.65, hg_ssa=0.9, airmass_formula='kasten_young_1989', pressure_hpa=None, ozone_height_km=25.0)[source]

from_hg() plus an ozone absorption layer.

Parameters:
  • geo (Geometry)

  • aod_500 (float)

  • angstrom_exp (float)

  • hg_asymmetry (float)

  • hg_ssa (float)

  • airmass_formula (str)

  • pressure_hpa (float or None) – Station pressure for the Rayleigh column; None uses the barometric estimate from the observer height.

  • ozone_height_km (float or None) – Height of the ozone layer, used for its own airmass; None puts it back on the shared airmass formula.

Return type:

SingleScattering

scatter_sources(sky, source_coords, source_spectra, bp)[source]

Scatter discrete point sources onto the FOV grid.

Parameters:
Return type:

jax.Array, shape (n_lon, n_lat)

__init__(geo, components, airmass_formula='kasten_young_1989')[source]

Build the atmosphere.

Parameters:
  • geo (Geometry)

  • components (dict of str to ScatteringComponent) – Components to compose, each built against geo.wvls.

  • airmass_formula (str) – Key into AIRMASS_FUNCTIONS.

static __new__(cls, *args, **kwargs)