Atmosphere#

class sasktran2.Atmosphere(model_geometry: Geometry1D, config: Config, wavelengths_nm: array = None, wavenumber_cminv: array = None, numwavel: int | None = None, calculate_derivatives: bool = True, pressure_derivative: bool = True, temperature_derivative: bool = True)[source]#

Bases: object

The main specification for the atmospheric state.

See storage for details on how the atmospheric state parameters are stored.

See surface for details on how the surface parameters are stored.

Parameters:
  • model_geometry (sk.Geometry1D) – The geometry defining where the atmospheric quantities are specified on.

  • config (sk.Config) – Main configuration object.

  • wavelengths_nm (np.array, optional) – Array of wavelengths to specify the atmosphere at in [nm]. One of wavelengths_nm, wavenumber_cminv, numwavel must be set.

  • wavenumber_cminv (np.array, optional) – Array of wavenumbers to specify the atmosphere at in [\(\text{cm}^{-1}\)]. One of wavelengths_nm, wavenumber_cminv, numwavel must be set.

  • numwavel (int, optional) – Number of wavelengths to include in the calculation. Note that wavelength is a dummy variable, this dimension can be anaything. One of wavelengths_nm, wavenumber_cminv, numwavel must be set.

  • calculate_derivatives (bool, optional) – Whether or not the model should calculate derivatives with respect to atmospheric quantities., by default True

  • pressure_derivative (bool, optional) – Whether or not the model should calculate derivatives with respect to pressure., by default True

  • temperature_derivative (bool, optional) – Whether or not the model should calculate derivatives with respect to temperature., by default True

property applied_delta_m_order: int | None#

The order of the applied delta_m scaling. Can be None if no scaling has been applied

property calculate_pressure_derivative: bool#

True if we are calculating the derivative with respect to pressure

Return type:

bool

property calculate_temperature_derivative: bool#

True if we are calculating the derivative with respect to temperature

Return type:

bool

property deriv_mappings: dict#

A nested dictionary of sasktran2.atmosphere.DerivativeMapping objects.

Return type:

dict

internal_object() AtmosphereStokes_1 | AtmosphereStokes_3[source]#

The internal pybind11 object that can be used to perform the radiative transfer calculation. Calling this method will trigger a construction of the atmosphere object if necessary, and then return back the internal object.

Return type:

Union[sk.AtmosphereStokes_1, sk.AtmosphereStokes_3]

property model_geometry: Geometry1D#

The model geometry object

Return type:

sk.Geometry1D

property nstokes: int#

The number of stokes parameters the atmosphere contains information to calculate

Return type:

int

property pressure_pa: array#

Pressure in [Pa] on the same grid as model_geometry

Return type:

np.array

property storage: AtmosphereStorageStokes_1 | AtmosphereStorageStokes_3#

The internal object which contains the atmosphere extinction, single scatter albedo, and legendre coefficients.

Return type:

Union[sk.AtmosphereGridStorageStokes_1, sk.AtmosphereGridStorageStokes_3]

property surface: Surface#

The surface object

Return type:

sk.Surface

property temperature_k: array#

Atmospheric temperature in [K] on the same grid as model_geometry

Return type:

np.array

property unscaled_extinction: ndarray#

The unscaled extinction. After performing the calculation, storage.total_extinction may be modified because of the delta-m scaling. This property stores the original unscaled single scatter albedo.

Return type:

np.ndarray

property unscaled_ssa: ndarray#

The unscaled single scatter albedo. After performing the calculation, storage.ssa may be modified because of the delta-m scaling. This property stores the original unscaled single scatter albedo.

Return type:

np.ndarray

property wavelengths_nm: ndarray | None#

The wavelengths in [nm] the atmosphere is specified at. This is an optional property, it may be None.

Return type:

Optional[np.array]

property wavenumbers_cminv: ndarray | None#

The wavenumbers in [\(\text{cm}^{-1}\)]. This is an optional property, it may be set to None

Return type:

Optional[np.array]

Internal Objects#

class sasktran2.AtmosphereStokes_1(self: sasktran2._core.AtmosphereStokes_1, arg0: int, arg1: sasktran2._core.Geometry1D, arg2: sasktran2._core.Config, arg3: bool)#

Bases: pybind11_object

apply_delta_m_scaling(self: sasktran2._core.AtmosphereStokes_1, arg0: int) None#
class sasktran2.AtmosphereStokes_3(self: sasktran2._core.AtmosphereStokes_3, arg0: int, arg1: sasktran2._core.Geometry1D, arg2: sasktran2._core.Config, arg3: bool)#

Bases: pybind11_object

apply_delta_m_scaling(self: sasktran2._core.AtmosphereStokes_3, arg0: int) None#
class sasktran2.AtmosphereStorageStokes_1(self: sasktran2._core.AtmosphereStorageStokes_1, arg0: int, arg1: int, arg2: int)#

Bases: pybind11_object

resize_derivatives(self: sasktran2._core.AtmosphereStorageStokes_1, num_deriv: int) None#
class sasktran2.AtmosphereStorageStokes_3(self: sasktran2._core.AtmosphereStorageStokes_3, arg0: int, arg1: int, arg2: int)#

Bases: pybind11_object

resize_derivatives(self: sasktran2._core.AtmosphereStorageStokes_3, num_deriv: int) None#