class eradiate.scenes.spectra.UniformSpectrum(id=None, quantity=None, *, value)[source]#

Bases: Spectrum

Uniform spectrum [uniform] (i.e. constant vs wavelength).

  • id (str, optional) – Identifier of the current scene element.

  • quantity (PhysicalQuantity or str, optional, default: None) – Physical quantity which the spectrum represents. The specified quantity must be one which varies with wavelength. See PhysicalQuantity.spectrum() for allowed values.

    Child classes should implement value units validation and conversion based on quantity.

  • value (quantity or float or int) – Uniform spectrum value. If a quantity is passed, units are checked for consistency. If a unitless value is passed, it is automatically converted to appropriate configuration default units, depending on the value of the quantity field. Integer values are converted to float. If no quantity is specified, this field must bea unitless value.

  • id (str or None) – Identifier of the current scene element.

  • quantity (PhysicalQuantity or None) – Physical quantity which the spectrum represents.

  • value (quantity) – Uniform spectrum value.


Evaluate spectrum at a given spectral index.


si (SpectralIndex) – Spectral index.


value (quantity) – Evaluated spectrum.


This method dispatches evaluation to specialized methods depending on the spectral index type.

eval_ckd(w, g)[source]#

Evaluate spectrum in CKD modes.

  • w (quantity) – Spectral bin center wavelength.

  • g (float) – Absorption coefficient cumulative probability.


value (quantity) – Evaluated spectrum as an array with shape w.


It is assumed that w and g have 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.


Evaluate spectrum in monochromatic modes.


w (quantity) – Wavelength.


value (quantity) – Evaluated spectrum as an array with the same shape as w.

integral(wmin, wmax)[source]#

Compute the integral of the spectrum on a given interval.

  • wmin (quantity) – Integration interval’s lower bound.

  • wmax (quantity) – Integration interval’s upper bound.


value (quantity or ndarray) – Computed integral value, in units consistent with the specified quantity.


If the quantity field is unset (i.e. left to its default value None), 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 the quantity field unset is discouraged.


Select a subset of a spectral set.


spectral_set (BinSet or WavelengthSet) – Spectral set.


subset (BinSet or WavelengthSet) – Subset of the spectral set.


This method is only relevant to subclasses used to represent spectral response function (the default implementation raises a NotImplementedError). In this context, the spectral response function acts as a sort of filter that selects a subset of a spectral set, e.g. where the response is non-zero. This method is useful for Experiment objects to determine which spectral set is relevant for a given sensor.


Traverse this scene element and collect kernel dictionary template and parameter update map contributions.


callback (SceneTraversal) – Callback data structure storing the collected data.


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.


dict – A dictionary mapping object names to a corresponding object to be inserted in the Eradiate scene graph.

property params#

dict[str, UpdateParameter] or None – A dictionary mapping parameter paths, consisting of dot-separated strings, to a corresponding update protocol.

property template#

Kernel dictionary template contents associated with this scene element.


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 the mitsuba.load_dict() function, or InitParameter instances which must be rendered.