eradiate.scenes.illumination.AstroObjectIllumination#

class eradiate.scenes.illumination.AstroObjectIllumination(id='illumination', zenith=<Quantity(0.0, 'degree')>, azimuth=<Quantity(0.0, 'degree')>, azimuth_convention=None, irradiance=_Nothing.NOTHING, angular_diameter=<Quantity(0.5358, 'degree')>)[source]#

Bases: DirectionalIllumination

Astronomical Object Illumination scene element [astro_object].

This illumination represents the light coming from a distant astronomical object (e.g. the Sun). The astronomical object uniformly illuminates a portion of the sky such that it appears to the observer as a circle. Its size is defined by the apparent diameter of the circle, expressed in degrees.

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

  • zenith (quantity or float, default: 0.0 deg) – Zenith angle.

    Unit-enabled field (default units: ucc[angle]).

  • azimuth (quantity or float, default: 0.0 deg) – Azimuth angle value.

    Unit-enabled field (default units: ucc[angle]).

  • azimuth_convention (AzimuthConvention or str, optional, default: None) – Azimuth convention. If None, the global default configuration is used (see EradiateConfig).

  • irradiance (Spectrum or dict or float, default: SolarIrradianceSpectrum()) – Emitted power flux in the plane orthogonal to the illumination direction. Must be an irradiance spectrum (in W/m²/nm or compatible unit). Can be initialised with a dictionary processed by SpectrumFactory.convert().

  • angular_diameter (quantity or float, default: 0.5358 deg) – Apparent diameter of the celestial body as seen from the point. The default value is an average of the apparent diameter of the Sun as seen from Earth.

    Unit-enabled field (default units: ucc[‘angle’]).

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

  • zenith (quantity) – Zenith angle.

  • azimuth (quantity) – Azimuth angle value.

  • azimuth_convention (AzimuthConvention) – Azimuth convention.

  • irradiance (Spectrum) – Emitted power flux in the plane orthogonal to the illumination direction.

  • angular_diameter (quantity) – Apparent diameter of the celestial body as seen from the point.

Warning

This is an experimental feature. At the moment, using the DirectionalIllumination is recommended.

Notes

Contrary to the directional illuminant, the astronomical object is not a delta emitter, i.e. it has a non-zero apparent size. Light rays cast by this illuminant are, from the point of view of the observer, encompassed in a cone, while they are parallel in the case of the directional illumination.

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()#

Enforce internal state consistency. This method should be called when fields are modified. It is automatically called as a post-init step.

property direction#

Illumination direction as an array of shape (3,), pointing inwards.

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.