Atmosphere
Configuration classes for atmosphere.
s2gos_generator.core.config.atmosphere.AtmosphereConfig
pydantic-model
Bases: BaseModel
Comprehensive atmosphere configuration supporting multiple types.
Fields:
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 |
thermoprops |
ThermophysicalConfig
|
Thermophysical profile (identifier or CAMS NetCDF file). |
absorption_database |
Optional[AbsorptionDatabase]
|
Database for gas absorption. |
has_absorption |
bool
|
Enable gas absorption calculations. |
has_scattering |
bool
|
Enable Rayleigh scattering calculations. |
Fields:
-
type(Literal['molecular']) -
thermoprops(ThermophysicalConfig) -
absorption_database(Optional[AbsorptionDatabase]) -
has_absorption(bool) -
has_scattering(bool)
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 |
aerosol_dataset |
AerosolDataset
|
Aerosol dataset defining scattering ( |
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 |
has_absorption |
bool
|
Enable aerosol absorption. |
Fields:
-
type(Literal['homogeneous']) -
aerosol_dataset(AerosolDataset) -
optical_thickness(float) -
scale_height(float) -
reference_wavelength(float) -
has_absorption(bool)
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 |
molecular |
MolecularAtmosphereConfig
|
Molecular atmosphere providing the Rayleigh-scattering
background. |
particle_layers |
list[ParticleLayerConfig]
|
Ordered list of aerosol or particle layers stacked within the atmosphere column. |
Fields:
-
type(Literal['heterogeneous']) -
molecular(MolecularAtmosphereConfig) -
particle_layers(list[ParticleLayerConfig])
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:
-
identifier(Optional[str]) -
thermoprops_file(Optional[PathRef]) -
altitude_min(float) -
altitude_max(float) -
altitude_step(float) -
constituent_scaling(Optional[dict[str, float]])
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 |
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 |
has_absorption |
bool
|
Enable particle absorption. |
Fields:
-
aerosol_dataset(Union[AerosolDataset, str]) -
optical_thickness(float) -
altitude_bottom(float) -
altitude_top(float) -
distribution(DistributionType) -
reference_wavelength(float) -
has_absorption(bool)
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 |
rate |
Optional[float]
|
Decay rate |
scale |
Optional[float]
|
Scale parameter |
Fields:
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 |
center_altitude |
float
|
Altitude of peak concentration (m). |
width |
float
|
Standard deviation of the distribution (m). |
Fields:
-
type(Literal['gaussian']) -
center_altitude(float) -
width(float)
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 |
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.