eradiate.scenes.spectra.InterpolatedSpectrum¶
- class eradiate.scenes.spectra.InterpolatedSpectrum(id=None, quantity=None, *, wavelengths, values)[source]¶
Bases:
SpectrumLinearly interpolated spectrum [
interpolated].Class method constructors
from_dataarray([id, quantity])Construct an interpolated spectrum from an xarray data array.
- Parameters:
id (
str, optional) – Identifier of the current scene element.quantity (
PhysicalQuantityorstr, optional, default:None) – 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 must be monotonically increasing.values (array-like) – Spectrum values. If a quantity is passed, units are checked for consistency. If a unitless array is passed, it is automatically converted to appropriate default configuration units, depending on the value of the
quantityfield. If no quantity is specified, this field can be a unitless value.
- Fields:
Warning
In all modes, queries outside the spectral domain covered by the input data return 0.
Notes
Interpolation uses
numpy.interp(). In bothmono_*andckd_*modes, the spectrum is evaluated at the spectral context wavelength.Integration performed with the
integral()method uses a trapezoid rule.
- eval(si)¶
Evaluate spectrum at a given spectral index.
- Parameters:
si (
SpectralIndex) – Spectral index.- Returns:
value (
quantity) – Evaluated spectrum.
Notes
This method dispatches evaluation to specialized methods depending on the spectral index type.
- eval_ckd(w, g)[source]¶
Evaluate spectrum in CKD modes.
- Parameters:
- Returns:
value (
quantity) – Evaluated spectrum as an array with shapew.
Notes
It is assumed that
wandghave the same shape. In CKD mode, it is assumed that all spectra—except that of the absorption coefficient—are uniform over the spectral bin. These spectra are evaluated at the spectral bin center wavelength.
- 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 (
strorPhysicalQuantity, optional) – If set, quantity represented by the spectrum. This parameter and spectrum units must be consistent. This parameter takes precedence over thequantityfield of the data array.dataarray (
DataArray) – Anxarray.DataArrayinstance complying to the spectrum data array format (see Notes).
Notes
Expected data format:
Coordinates (* means also dimension)
*w(float): wavelength (units specified as aunitsattribute).
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).
- integral(wmin, wmax)[source]¶
Compute the integral of the spectrum on a given interval.
- Parameters:
- Returns:
value (
quantityorndarray) – Computed integral value, in units consistent with the specified quantity.
Warning
If the
quantityfield is unset (i.e. left to its default valueNone), the output of this method will inherit the units of value fields (the actual policy depends on the implementation, and unitless values are intepreted as dimnesionless). Note that leaving thequantityfield unset is discouraged.
- traverse(callback)¶
Traverse this scene element and collect kernel dictionary template and parameter update map contributions.
- Parameters:
callback (
SceneTraversal) – Callback data structure storing the collected data.
- update()[source]¶
Enforce internal state consistency. This method should be called when fields are modified. It is automatically called as a post-init step.
- property objects¶
Map of child objects associated with this scene element.
- Returns:
dict– A dictionary mapping object names to a corresponding object to be inserted in the Eradiate scene graph.
- property params¶
- Returns:
dict[str,SceneParameter] orNone– A dictionary mapping parameter paths, consisting of dot-separated strings, to a corresponding update protocol.
See also
- property template¶
Kernel dictionary template contents associated with this scene element.
- Returns:
dict– A flat dictionary mapping dot-separated strings describing the path of an item in the nested scene dictionary to values. Values may be objects which can be directly used by themitsuba.load_dict()function, orDictParameterinstances which must be rendered.
See also