skyscapes.physical_model.exojax.components.surface#

Surface reflectivity components.

Classes#

WavelengthDependentSurface

Wavelength-dependent surface reflectivity.

FlatSurface

Wavelength-independent (gray) Lambertian surface.

Module Contents#

class skyscapes.physical_model.exojax.components.surface.WavelengthDependentSurface[source]#

Bases: skyscapes.physical_model.exojax.components.base.AbstractSurface

Wavelength-dependent surface reflectivity.

The bottom-of-atmosphere reflectivity is 10**log_albedo * spectrum: the log_albedo PyTree leaf is a per-planet fittable scaling, and spectrum is a fixed wavelength-dependent profile (vegetation red-edge, water absorption, snow/ice, …) shared across planets.

Attributes:

log_albedo: Log10 surface albedo scaling per planet, shape (K,). spectrum: Wavelength-dependent reflectivity profile,

shape (n_nu,). Defaults to flat ones for “no spectral shape; albedo is constant across the band”.

log_albedo: jaxtyping.Array#
spectrum: jaxtyping.Array#
compute_refl(log_albedo_scalar, n_nu)[source]#

Return wavelength-dependent surface reflectivity.

n_nu is accepted for parity with FlatSurface but unused – the wavelength axis comes from self.spectrum.

Parameters:
  • log_albedo_scalar (jaxtyping.Array)

  • n_nu (int)

Return type:

jaxtyping.Array

class skyscapes.physical_model.exojax.components.surface.FlatSurface[source]#

Bases: skyscapes.physical_model.exojax.components.base.AbstractSurface

Wavelength-independent (gray) Lambertian surface.

Equivalent to WavelengthDependentSurface with a flat spectrum but structurally explicit; useful when callers want to document “I am intentionally using a featureless surface”.

Attributes:

log_albedo: Log10 surface albedo per planet, shape (K,).

log_albedo: jaxtyping.Array#
compute_refl(log_albedo_scalar, n_nu)[source]#

Return scalar albedo broadcast across the wavenumber grid.

Parameters:
  • log_albedo_scalar (jaxtyping.Array)

  • n_nu (int)

Return type:

jaxtyping.Array