nirs4all.synthesis.reconstruction.environmental module
Environmental effects model for physical signal-chain reconstruction.
Implements temperature, moisture, and scattering effects as fittable parameters. These effects are applied to the absorption spectrum in canonical space, before domain transform and instrument effects.
Uses literature-based parameters from the augmentation module.
- class nirs4all.synthesis.reconstruction.environmental.EnvironmentalEffectsModel(temperature_delta: float = 0.0, water_activity: float = 0.5, scattering_power: float = 1.5, scattering_amplitude: float = 0.0, enabled: bool = True, reference_wavelength: float = 1500.0, _region_masks: Dict[str, ndarray] | None = None, _cached_wavelengths: ndarray | None = None)[source]
Bases:
objectEnvironmental effects on the canonical absorption spectrum.
Applied to absorption in canonical space before domain transform and instrument effects. Implements region-specific temperature and moisture effects based on literature parameters.
- apply(absorption: ndarray, wavelengths: ndarray) ndarray[source]
Apply environmental effects to absorption spectrum.
Effects are applied in order: 1. Temperature effects (region-specific shifts, intensity changes) 2. Moisture effects (water band shifts based on water activity) 3. Scattering baseline (wavelength-dependent λ^-n)
- Parameters:
absorption – Absorption coefficient on canonical grid.
wavelengths – Wavelength grid (nm).
- Returns:
Modified absorption spectrum with environmental effects.
- copy() EnvironmentalEffectsModel[source]
Create a copy of this model.
- get_jacobian_wrt_scattering_amplitude(absorption: ndarray, wavelengths: ndarray, eps: float = 0.001) ndarray[source]
Numerical Jacobian w.r.t. scattering_amplitude.
- get_jacobian_wrt_scattering_power(absorption: ndarray, wavelengths: ndarray, eps: float = 0.05) ndarray[source]
Numerical Jacobian w.r.t. scattering_power.
- get_jacobian_wrt_temperature(absorption: ndarray, wavelengths: ndarray, eps: float = 0.1) ndarray[source]
Numerical Jacobian w.r.t. temperature_delta.
- class nirs4all.synthesis.reconstruction.environmental.EnvironmentalParameterConfig(temperature_bounds: Tuple[float, float] = (-15.0, 15.0), temperature_prior_mean: float = 0.0, temperature_prior_std: float = 5.0, water_activity_bounds: Tuple[float, float] = (0.1, 0.9), water_activity_prior_alpha: float = 2.0, water_activity_prior_beta: float = 2.0, scattering_power_bounds: Tuple[float, float] = (0.5, 3.0), scattering_power_prior_mean: float = 1.5, scattering_power_prior_std: float = 0.5, scattering_amplitude_bounds: Tuple[float, float] = (0.0, 0.2), scattering_amplitude_prior_scale: float = 0.02)[source]
Bases:
objectConfiguration for environmental parameter fitting.
Defines bounds and prior distributions for each parameter.
- compute_prior_penalty(temperature_delta: float, water_activity: float, scattering_power: float, scattering_amplitude: float) float[source]
Compute prior penalty for regularization.
Returns negative log-prior (to be added to objective function).