eradiate.scenes.spectra.SolarIrradianceSpectrum
eradiate.scenes.spectra.SolarIrradianceSpectrum#
- 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.- Parameters
id (
str
, optional, default:None
) – User-defined object identifier.dataset (
Dataset
orstr
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 (seeconverters.load_dataset
).scale (
float
ordatetime
orstr
, 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
orstr
, optional) – Date for which the spectrum is to be evaluated. An ISO string can be passed and will be interpreted bydateutil.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.
- Fields
See also
Notes
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 callingkernel_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 ofastropy.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.
- 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.
- 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.