Skip to content

Atmosphere

Configuration classes for atmosphere.

s2gos_generator.core.config.atmosphere.AtmosphereConfig pydantic-model

Bases: BaseModel

Comprehensive atmosphere configuration supporting multiple types.

Fields:

  • boa (float)
  • toa (float)
  • details (AtmosphereTypeConfig)

Validators:

Attributes

boa pydantic-field

boa: float = 0.0

Bottom of atmosphere altitude in meters

toa pydantic-field

toa: float = 75000.0

Top of atmosphere altitude in meters

Functions

validate_atmosphere_config pydantic-validator

validate_atmosphere_config()

Validate atmosphere configuration based on type.

s2gos_generator.core.config.atmosphere.MolecularAtmosphereConfig pydantic-model

Bases: BaseModel

Configuration for a purely molecular (Rayleigh-scattering) atmosphere.

Attributes:

Name Type Description
type Literal['molecular']

Discriminator literal fixed to "molecular".

thermoprops ThermophysicalConfig

Thermophysical profile (identifier or CAMS NetCDF file).

absorption_database Optional[AbsorptionDatabase]

Database for gas absorption. None disables absorption (equivalent to has_absorption=False).

has_absorption bool

Enable gas absorption calculations.

has_scattering bool

Enable Rayleigh scattering calculations.

Fields:

Attributes

absorption_database pydantic-field

absorption_database: Optional[AbsorptionDatabase] = None

Absorption database to use

has_absorption pydantic-field

has_absorption: bool = True

Enable absorption calculations

has_scattering pydantic-field

has_scattering: bool = True

Enable scattering calculations

thermoprops pydantic-field

thermoprops: ThermophysicalConfig

Thermophysical properties configuration

s2gos_generator.core.config.atmosphere.HomogeneousAtmosphereConfig pydantic-model

Bases: BaseModel

Configuration for a spatially uniform (homogeneous) aerosol atmosphere.

Attributes:

Name Type Description
type Literal['homogeneous']

Discriminator literal fixed to "homogeneous".

aerosol_dataset AerosolDataset

Aerosol dataset defining scattering (sigma_s) and absorption (sigma_a) phase-function properties.

optical_thickness float

Aerosol optical depth at the reference wavelength.

scale_height float

Exponential decay scale height (metres) for the vertical aerosol profile.

reference_wavelength float

Wavelength (nm) at which optical_thickness is specified.

has_absorption bool

Enable aerosol absorption.

Fields:

Attributes

aerosol_dataset pydantic-field

aerosol_dataset: AerosolDataset = SIXSV_CONTINENTAL

Aerosol dataset to use

has_absorption pydantic-field

has_absorption: bool = True

Enable absorption by aerosols

optical_thickness pydantic-field

optical_thickness: float = 0.1

Aerosol optical thickness

reference_wavelength pydantic-field

reference_wavelength: float = 550.0

Reference wavelength in nm

scale_height pydantic-field

scale_height: float = 1000.0

Aerosol scale height in meters

s2gos_generator.core.config.atmosphere.HeterogeneousAtmosphereConfig pydantic-model

Bases: BaseModel

Configuration for a vertically-resolved heterogeneous atmosphere.

Combines an optional molecular background (Rayleigh scattering and gas absorption) with one or more discrete particle layers. At least one of molecular or particle_layers must be specified.

Attributes:

Name Type Description
type Literal['heterogeneous']

Discriminator literal fixed to "heterogeneous".

molecular MolecularAtmosphereConfig

Molecular atmosphere providing the Rayleigh-scattering background. None omits the molecular component.

particle_layers list[ParticleLayerConfig]

Ordered list of aerosol or particle layers stacked within the atmosphere column.

Fields:

Validators:

Attributes

molecular pydantic-field

molecular: MolecularAtmosphereConfig = None

Molecular atmosphere configuration

particle_layers pydantic-field

particle_layers: list[ParticleLayerConfig]

Particle layer configurations

Functions

validate_heterogeneous_config pydantic-validator

validate_heterogeneous_config()

Validate that at least one component is configured.

s2gos_generator.core.config.atmosphere.ThermophysicalConfig pydantic-model

Bases: BaseModel

Configuration for atmospheric thermophysical properties.

Supports either joseki identifiers (e.g., 'afgl_1986-us_standard') or CAMS NetCDF files. Specify one but not both.

Config:

  • default: {'arbitrary_types_allowed': True}

Fields:

Validators:

Attributes

altitude_max pydantic-field

altitude_max: float = 120000.0

Maximum altitude in meters

altitude_min pydantic-field

altitude_min: float = 0.0

Minimum altitude in meters

altitude_step pydantic-field

altitude_step: float = 1000.0

Altitude step in meters

constituent_scaling pydantic-field

constituent_scaling: Optional[dict[str, float]] = None

Constituent concentration scaling (e.g., {'CO2': 400.0})

identifier pydantic-field

identifier: Optional[str] = None

Standard atmosphere identifier (joseki)

thermoprops_file pydantic-field

thermoprops_file: Optional[PathRef] = None

Path to CAMS thermoprops NetCDF file (alternative to identifier)

Functions

validate_altitude_range pydantic-validator

validate_altitude_range()

Validate altitude configuration.

validate_thermaproprs_path pydantic-validator

validate_thermaproprs_path(v)

Validate and resolve thermaproprs file path using configured search paths.

validate_thermoprops_source pydantic-validator

validate_thermoprops_source()

Ensure exactly one source is used, applying defaults if necessary.

s2gos_generator.core.config.atmosphere.ParticleLayerConfig pydantic-model

Bases: BaseModel

Configuration for a particle layer.

Attributes:

Name Type Description
aerosol_dataset Union[AerosolDataset, str]

Aerosol dataset. Either an AerosolDataset enum value or a path to a custom NetCDF file.

optical_thickness float

Column aerosol optical depth within this layer.

altitude_bottom float

Lower bound of the layer (m above sea level).

altitude_top float

Upper bound of the layer (m above sea level).

distribution DistributionType

Vertical distribution of particle concentration within the layer bounds.

reference_wavelength float

Wavelength (nm) at which optical_thickness is defined.

has_absorption bool

Enable particle absorption.

Fields:

Validators:

Attributes

aerosol_dataset pydantic-field

aerosol_dataset: Union[AerosolDataset, str]

Aerosol dataset: enum value (e.g. 'sixsv-continental') or custom NetCDF path

altitude_bottom pydantic-field

altitude_bottom: float

Bottom altitude in meters

altitude_top pydantic-field

altitude_top: float

Top altitude in meters

distribution pydantic-field

distribution: DistributionType

Particle distribution configuration

has_absorption pydantic-field

has_absorption: bool = True

Enable absorption by particles

optical_thickness pydantic-field

optical_thickness: float

Aerosol optical thickness

reference_wavelength pydantic-field

reference_wavelength: float = 550.0

Reference wavelength in nm

Functions

validate_aerosol_dataset pydantic-validator

validate_aerosol_dataset(v)

Allow enum or custom file path string.

validate_altitude_range pydantic-validator

validate_altitude_range()

Validate altitude configuration.

s2gos_generator.core.config.atmosphere.ExponentialDistribution pydantic-model

Bases: ParticleDistribution

Exponential vertical decay profile for particle concentration, see Eradiate documentation for more details.

Attributes:

Name Type Description
type Literal['exponential']

Discriminator literal fixed to "exponential".

rate Optional[float]

Decay rate λ (1/m). Mutually exclusive with scale.

scale Optional[float]

Scale parameter β = 1/λ (m). Mutually exclusive with rate.

Fields:

  • type (Literal['exponential'])
  • rate (Optional[float])
  • scale (Optional[float])

Validators:

Attributes

rate pydantic-field

rate: Optional[float] = None

Eradiate decay rate λ (default 5.0)

scale pydantic-field

scale: Optional[float] = None

Eradiate scale β = 1/λ

Functions

validate_exclusive_params pydantic-validator

validate_exclusive_params()

Validate that rate and scale are mutually exclusive per Eradiate API.

s2gos_generator.core.config.atmosphere.GaussianDistribution pydantic-model

Bases: ParticleDistribution

Gaussian vertical profile for particle concentration, see Eradiate documentation for more details.

Attributes:

Name Type Description
type Literal['gaussian']

Discriminator literal fixed to "gaussian".

center_altitude float

Altitude of peak concentration (m).

width float

Standard deviation of the distribution (m).

Fields:

Attributes

center_altitude pydantic-field

center_altitude: float

Center altitude in meters

width pydantic-field

width: float

Distribution width in meters

s2gos_generator.core.config.atmosphere.UniformDistribution pydantic-model

Bases: ParticleDistribution

Constant (uniform) vertical distribution of particle concentration.

Attributes:

Name Type Description
type Literal['uniform']

Discriminator literal fixed to "uniform".

Fields:

  • type (Literal['uniform'])

s2gos_generator.core.config.atmosphere.AerosolDataset

Bases: str, Enum

Comprehensive aerosol datasets from Eradiate.

s2gos_generator.core.config.atmosphere.AbsorptionDatabase

Bases: str, Enum

Absorption databases from Eradiate.

s2gos_generator.core.config.atmosphere.AtmosphereType

Bases: str, Enum

Atmosphere types aligned with Eradiate's atmosphere classes.