eradiate.scenes.spectra.InterpolatedSpectrum
eradiate.scenes.spectra.InterpolatedSpectrum#
- class eradiate.scenes.spectra.InterpolatedSpectrum(id=None, quantity='dimensionless', *, wavelengths, values)[source]#
Bases:
eradiate.scenes.spectra._core.Spectrum
Linearly interpolated spectrum [
interpolated
].Class method constructors
from_dataarray
([id, quantity])Construct an interpolated spectrum from an xarray data array.
- Parameters
id (
str
, optional, default:None
) – User-defined object identifier.quantity (
PhysicalQuantity
orstr
, default:dimensionless
) – Physical quantity which the spectrum represents. The specified quantity must be one which varies with wavelength. SeePhysicalQuantity.spectrum()
for allowed values.Child classes should implement value units validation and conversion based on
quantity
.wavelengths (
quantity
) – Wavelengths defining the interpolation grid.values (array-like) – Uniform spectrum value. If a float is passed, it is automatically converted to appropriate default configuration units. If a
Quantity
is passed, units are checked for consistency.
- Fields
quantity (
PhysicalQuantity
) – Physical quantity which the spectrum represents.wavelengths (
quantity
) – Wavelengths defining the interpolation grid.values (
quantity
) – Uniform spectrum value.
Notes
Interpolation uses
numpy.interp()
. Evaluation is as follows:in
mono_*
modes, the spectrum is evaluated at the spectral context wavelength;in
ckd_*
modes, the spectrum is evaluated as the average value over the spectral context bin (the integral is computed using a trapezoid rule).
- eval(spectral_ctx)#
Evaluate spectrum based on a spectral context. This method dispatches evaluation to specialised methods depending on the active mode.
- Parameters
spectral_ctx (
SpectralContext
) – A spectral context data structure containing relevant spectral parameters (e.g. wavelength in monochromatic mode, bin and quadrature point index in CKD mode).- Returns
value (
quantity
) – Evaluated spectrum as a scalar.
- classmethod from_dataarray(id=None, quantity=None, *, dataarray)[source]#
Construct an interpolated spectrum from an xarray data array.
- Parameters
id (
str
, optional) – Optional object identifier.quantity (
str
orPhysicalQuantity
, optional) – If set, quantity represented by the spectrum. This parameter and spectrum units must be consistent. This parameter takes precedence over thequantity
field of the data array.dataarray (
DataArray
) – Anxarray.DataArray
instance complying to the spectrum data array format (see Notes).
Notes
Expected data format:
Coordinates (* means also dimension)
*w
(float): wavelength in nm.
Metadata
quantity
(str): physical quantity which the data describes (seePhysicalQuantity.spectrum()
for allowed values), optional.units
(str): units of spectrum values (must be consistent withquantity
).
- kernel_dict(ctx)[source]#
Return a dictionary suitable for kernel scene configuration.
- Parameters
ctx (
KernelDictContext
) – A context data structure containing parameters relevant for kernel dictionary generation.- Returns
KernelDict
– Kernel dictionary which can be loaded as a Mitsuba object.