Spectral
Spectral configuration classes that define wavelength grids, spectral regions, and sensor spectral response functions used during simulation.
s2gos_simulator.config.spectral.SpectralResponse
pydantic-model
Bases: BaseModel
Spectral response function configuration.
Supports multiple SRF types:
- delta: Discrete wavelength points → Eradiate's multi_delta
- uniform: Wavelength range (wmin, wmax) → Eradiate's uniform
- dataset: String ID for predefined SRFs → Eradiate's internal database
- gaussian: Gaussian SRF with configurable FWHM (for hyperspectral instruments)
Gaussian SRF Example (CHIME-like): SpectralResponse( type="gaussian", spectral_regions=[ SpectralRegion(name="VNIR", wmin_nm=400, wmax_nm=1000, fwhm_nm=8.5), SpectralRegion(name="SWIR1", wmin_nm=1000, wmax_nm=1800, fwhm_nm=10.0), SpectralRegion(name="SWIR2", wmin_nm=1800, wmax_nm=2500, fwhm_nm=11.0), ], output_grid=WavelengthGrid(mode="regular", wmin_nm=400, wmax_nm=2500, step_nm=8.4), )
Fields:
-
type(Literal['delta', 'uniform', 'dataset', 'gaussian']) -
wavelengths(Optional[List[float]]) -
wmin(Optional[float]) -
wmax(Optional[float]) -
dataset_id(Optional[str]) -
fwhm_nm(Optional[float]) -
spectral_regions(Optional[List[SpectralRegion]]) -
output_grid(Optional[WavelengthGrid])
Validators:
-
validate_wavelengths→wavelengths -
validate_srf_config
Attributes
fwhm_nm
pydantic-field
Single FWHM for all wavelengths (nm). Use this OR spectral_regions.
output_grid
pydantic-field
Output wavelength grid configuration. Required for gaussian type.
spectral_regions
pydantic-field
Wavelength-dependent FWHM via spectral regions. Use this OR fwhm_nm.
type
pydantic-field
SRF type: 'delta', 'uniform', 'dataset', or 'gaussian'
wavelengths
pydantic-field
Wavelengths in nm for delta SRF
Functions
get_fwhm_for_wavelength
Get FWHM for a given wavelength.
For single fwhm_nm: returns that value for all wavelengths. For spectral_regions: returns FWHM of the region containing the wavelength.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
wavelength_nm
|
float
|
Wavelength in nanometers |
required |
Returns:
| Type | Description |
|---|---|
float
|
FWHM in nanometers for that wavelength |
s2gos_simulator.config.spectral.SpectralRegion
pydantic-model
Bases: BaseModel
Define a spectral region with specific FWHM.
Used for wavelength-dependent Gaussian SRF where different spectral regions have different spectral resolution.
Example
SpectralRegion(name="VNIR", wmin_nm=400, wmax_nm=1000, fwhm_nm=8.5)
Fields:
Validators:
-
validate_range
s2gos_simulator.config.spectral.WavelengthGrid
pydantic-model
Bases: BaseModel
Configuration for output wavelength grid.
Supports three modes:
- Regular grid: wmin_nm/wmax_nm/step_nm (Spectral Sampling Interval)
- Explicit wavelengths: list of specific wavelengths
- From file: extract wavelengths from external NetCDF/CSV file
Example
CHIME-like regular grid (400-2500nm @ 8.4nm SSI)
WavelengthGrid(mode="regular", wmin_nm=400, wmax_nm=2500, step_nm=8.4)
Explicit wavelengths
WavelengthGrid(mode="explicit", wavelengths_nm=[450, 550, 650, 850])
From reference file
WavelengthGrid(mode="from_file", file_path="reference.nc", wavelength_variable="wavelength")
Fields:
-
mode(Literal['regular', 'explicit', 'from_file']) -
wmin_nm(Optional[float]) -
wmax_nm(Optional[float]) -
step_nm(Optional[float]) -
wavelengths_nm(Optional[List[float]]) -
file_path(Optional[str]) -
wavelength_variable(str)
Validators:
-
validate_mode
Attributes
file_path
pydantic-field
Path to wavelength reference file (NetCDF or CSV)
mode
pydantic-field
Grid mode: 'regular', 'explicit', or 'from_file'
step_nm
pydantic-field
Wavelength step / Spectral Sampling Interval (nm)
wavelength_variable
pydantic-field
Variable/column name for wavelengths in file
wavelengths_nm
pydantic-field
Explicit list of wavelengths (nm)