class eradiate.scenes.spectra.SolarIrradianceSpectrum(id=None, dataset='thuillier_2003_extrapolated', scale=1.0, datetime=None)[source]#

Bases: eradiate.scenes.spectra._core.Spectrum

Solar irradiance spectrum [solar_irradiance].

This scene element produces the scene dictionary required to instantiate a kernel plugin using the Sun irradiance spectrum. The data set used by this element is controlled by the dataset field.

  • id (str, optional, default: None) – User-defined object identifier.

  • dataset (Dataset or str or path-like, optional, default: "thuillier_2003_extrapolated") – Solar spectrum dataset. If a string is passed, it is first interpreted as a Solar irradiance spectrum identifier (see Solar irradiance for the list); should that fail, it is interpreted as a path. If a path is passed, loading the corresponding file on the hard drive is attempted; should that fail, a query to the data store is made (see converters.load_dataset).

  • scale (float or datetime or str, default: 1.0) – Arbitrary scaling factor. This scaling factor is applied in addition to the datetime-based scaling controlled by the datetime parameter.

  • datetime (datetime or str, optional) – Date for which the spectrum is to be evaluated. An ISO string can be passed and will be interpreted by dateutil.parser.parse(). This parameter scales the irradiance spectrum to account for the seasonal variation of the Earth-Sun distance. This scaling is applied in addition to the arbitrary scaling controlled by the scale parameter.

  • id (str or None) – User-defined object identifier.

  • dataset (Dataset) – Solar spectrum dataset.

  • scale (float or datetime) – Arbitrary scaling factor.

  • datetime (datetime or None) – Date for which the spectrum is to be evaluated.


  • The spectral range of the data sets shipped can vary and an attempt for use outside the supported spectral range will raise a ValueError upon calling kernel_dict().

  • When the datetime field is set, the spectrum is automatically scaled to account for the seasonal variations of the Earth-Sun distance using the ephemeris of astropy.coordinates.get_sun(). The dataset is assumed to be normalised to an Earth-Sun distance of 1 AU.

  • The scale field can be used to apply additional arbitrary scaling. It is mostly used for debugging purposes. It can also be used to rescale user-defined spectra normalised at an Earth-Sun distance different from 1 AU.

  • The evaluation method depends on the active mode:

    • 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).

  • The produced kernel dictionary automatically adjusts its irradiance units depending on the selected kernel default units.


Evaluate spectrum based on a spectral context. This method dispatches evaluation to specialised methods depending on the active mode.


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


value (quantity) – Evaluated spectrum as a scalar.


Evaluate spectrum in CKD modes.


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


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


Evaluate spectrum in monochromatic modes.


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


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) – Computed integral value.


Return a dictionary suitable for kernel scene configuration.


ctx (KernelDictContext) – A context data structure containing parameters relevant for kernel dictionary generation.


KernelDict – Kernel dictionary which can be loaded as a Mitsuba object.