eradiate.scenes.spectra.UniformSpectrum#

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

Bases: Spectrum

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

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

  • quantity (PhysicalQuantity or str, default: dimensionless) – 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 (float or Quantity or int) – Uniform spectrum value. If a float is passed, it is automatically converted to appropriate configuration default units. Integer values are also converted to float.

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

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

  • value (Quantity) – Uniform spectrum value.

eval(spectral_ctx)#

Evaluate spectrum based on a spectral context. This method dispatches evaluation to specialized 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.

eval_ckd(*bindexes)[source]#

Evaluate spectrum in CKD modes.

Parameters:

*bindexes (Bindex) – One or several CKD bindexes for which to evaluate the spectrum.

Returns:

value (quantity) – Evaluated spectrum as an array with shape (len(bindexes),).

eval_mono(w)[source]#

Evaluate spectrum in monochromatic modes.

Parameters:

w (quantity) – Wavelength values at which the spectrum is to be evaluated.

Returns:

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.

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

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

Returns:

value (quantity) – Computed integral value.

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, 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.

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