SimulationConfig
The top-level configuration objects that describe a complete simulation run,
s2gos_simulator.config.simulation.SimulationConfig
pydantic-model
Bases: BaseModel
Comprehensive simulation configuration containing everything needed to set up a simulation.
This single configuration class includes:
- Sensor definitions for all platforms
- Illumination settings
- Measurement types
Config:
default:{'validate_assignment': True, 'extra': 'forbid'}
Fields:
-
config_version(str) -
name(str) -
description(Optional[str]) -
created_at(datetime) -
illumination(Union[DirectionalIllumination, ConstantIllumination]) -
sensors(List[Union[SatelliteSensor, UAVSensor, GroundSensor]]) -
measurements(List[MeasurementConfig]) -
processing(ProcessingConfig) -
enable_noise(bool) -
backend_hints(Dict[str, Any])
Validators:
Attributes
backend_hints
pydantic-field
backend_hints: Dict[str, Any]
Backend-specific configuration hints (e.g., {'eradiate': {'mode': 'ckd_double'}}).
For Eradiate backend: - 'mode': Spectral mode ('mono', 'ckd', 'mono_polarized', 'ckd_polarized', etc.)
config_version
pydantic-field
config_version: str
Configuration schema version
created_at
pydantic-field
created_at: datetime
Creation timestamp (auto-populated)
description
pydantic-field
description: Optional[str] = None
Simulation description
enable_noise
pydantic-field
enable_noise: bool = False
Enable noise modeling
illumination
pydantic-field
illumination: Union[
DirectionalIllumination, ConstantIllumination
]
Illumination configuration
measurements
pydantic-field
measurements: List[MeasurementConfig]
Unified list of radiative quantity measurements (HDRF, BRF, irradiance, etc.)
name
pydantic-field
name: str
Simulation name
output_quantities
property
output_quantities: List[str]
Get output quantities based on sensors.
processing
pydantic-field
processing: ProcessingConfig
Processing configuration
sensors
pydantic-field
sensors: List[
Union[SatelliteSensor, UAVSensor, GroundSensor]
]
List of sensors to simulate
wavelength_range
property
wavelength_range: tuple
Get wavelength range based on sensors.
Functions
add_sensor
add_sensor(
sensor: Union[SatelliteSensor, UAVSensor, GroundSensor],
) -> None
Add a sensor to the configuration.
from_json
classmethod
from_json(path: PathLike) -> 'SimulationConfig'
Load from JSON file with version compatibility checking.
get_sensor
get_sensor(
sensor_id: str,
) -> Optional[
Union[SatelliteSensor, UAVSensor, GroundSensor]
]
Get a sensor by ID.
remove_sensor
remove_sensor(sensor_id: str) -> None
Remove a sensor by ID.
to_dict
to_dict() -> Dict[str, Any]
Convert to dictionary for serialization.
to_json
to_json(
path: Optional[PathLike] = None, indent: int = 2
) -> str
Export to JSON format.
validate_configuration
validate_configuration() -> List[str]
Validate the complete configuration and return any errors.
validate_hdrf_hcrf_requires_irradiance
pydantic-validator
validate_hdrf_hcrf_requires_irradiance()
Validate that HDRF/HCRF measurements have corresponding irradiance measurements.
In reference mode, HDRF/HCRF must reference an existing IrradianceConfig. In auto-generation mode, the backend will create the irradiance measurement automatically.
validate_sensors
pydantic-validator
validate_sensors(v)
Validate sensor list.
validate_simulation_config
pydantic-validator
validate_simulation_config()
Validate simulation configuration.