eradiate.scenes.measure.MultiDistantMeasure#
- class eradiate.scenes.measure.MultiDistantMeasure(id='measure', srf=NOTHING, sampler='independent', rfilter='box', spp=1000, target=None, ray_offset=None, *, direction_layout=NOTHING)[source]#
Bases:
AbstractDistantMeasure
Multi-distant radiance measure scene element [
mdistant
,multi_distant
].This scene element creates a measure consisting of an array of radiancemeters positioned at an infinite distance from the scene. In practice, it can be used to compute the radiance leaving a scene at the top of the atmosphere (or canopy if there is no atmosphere). Coupled to appropriate post-processing operations, scene reflectance can be derived from the radiance values it produces.
Class method constructors
aring
(zenith, azimuths, **kwargs)Construct using an azimuth ring viewing direction layout.
grid
(zeniths, azimuths, **kwargs)Construct using a gridded viewing direction layout, defined as the Cartesian product of zenith and azimuth arrays.
hplane
(zeniths, azimuth, **kwargs)Construct using a hemisphere plane cut viewing direction layout.
from_angles
(angles, **kwargs)Construct using a direction layout defined by explicit (zenith, azimuth) pairs.
from_directions
(directions, **kwargs)Construct using a direction layout defined by explicit direction vectors.
- Parameters:
id (
str
, optional, default:"measure"
) – Identifier of the current scene element.srf (
Path-like
orstr
orSpectralResponseFunction
ordict
, default:DeltaSRF(wavelengths=550.0 * ureg.nm)
) – Spectral response function (SRF). If a path is passed, it attempts to load a dataset from that location. If a keyword is passed, e.g.,'sentinel_2a-msi-4'
it tries to serve the corresponding dataset from the Eradiate data store.sampler (
{"independent", "stratified", "multijitter", "orthogonal", "ldsampler"}
, default:"independent"
) – Mitsuba sampler used to generate pseudo-random number sequences.rfilter (
{"box", "gaussian"}
, default:"box"
) – Reconstruction filter used to scatter samples on sensor pixels. By default, using a box filter is recommended.spp (
int
, default:1000
) – Number of samples per pixel.target (
Target
ordict
or array-like, optional) – Target specification. The target can be specified using an array-like with 3 elements (which will be converted to aTargetPoint
) or a dictionary interpreted byTarget.convert()
. If set toNone
(not recommended), the default target point selection method is used: rays will not target a particular region of the scene.ray_offset (
float
orquantity
, optional, default:None
) – Manually control the distance between the target and ray origins. If unset, ray origins are positioned outside of the scene and this measure is rigorously distant.direction_layout (
dict
or array-like orLayout
, optional, default:DirectionLayout(directions=[0
,0
,1])
) – A viewing direction layout. Specification through a dictionary or arrays, as documented byLayout.convert()
, is also possible. The constructor methods provide a convenient interface to configure this parameter automatically.
- Fields:
srf (
SpectralResponseFunction
) – Spectral response function (SRF).sampler (
str
) – Mitsuba sampler used to generate pseudo-random number sequences.rfilter (
str
) – Reconstruction filter used to scatter samples on sensor pixels.spp (
int
) – Number of samples per pixel.ray_offset (
quantity
orNone
) – Manually control the distance between the target and ray origins.direction_layout (
Layout
) – A viewing direction layout.
Notes
Setting the
target
parameter is required to get meaningful results. Experiment classes should take care of setting it appropriately.
- classmethod aring(zenith, azimuths, **kwargs)[source]#
Construct using an azimuth ring viewing direction layout.
- Parameters:
zenith (
float
orquantity
) – Azimuth ring zenith value. Unitless values are converted toucc['angle']
.azimuths (array-like) – List of azimuth values. Unitless values are converted to
ucc['angle']
.azimuth_convention (
AzimuthConvention
orstr
, optional) – The azimuth convention applying to the viewing direction layout. If unset, the global default convention is used.**kwargs – Remaining keyword arguments are forwarded to the
MultiDistantMeasure
constructor.
- Returns:
- classmethod from_angles(angles, **kwargs)[source]#
Construct using a direction layout defined by explicit (zenith, azimuth) pairs.
- Parameters:
angles (array-like) – A sequence of (zenith, azimuth), interpreted as (N, 2)-shaped array.
azimuth_convention (
AzimuthConvention
orstr
, optional) – The azimuth convention applying to the viewing direction layout. If unset, the global default convention is used.**kwargs – Remaining keyword arguments are forwarded to the
MultiDistantMeasure
constructor.
- Returns:
- classmethod from_directions(directions, **kwargs)[source]#
Construct using a direction layout defined by explicit direction vectors.
- Parameters:
directions (array-like) – A sequence of direction vectors, interpreted as (N, 3)-shaped array.
azimuth_convention (
AzimuthConvention
orstr
, optional) – The azimuth convention applying to the viewing direction layout. If unset, the global default convention is used.**kwargs – Remaining keyword arguments are forwarded to the
MultiDistantMeasure
constructor.
- Returns:
Warning
Viewing directions are defined pointing outwards the target location.
- classmethod grid(zeniths, azimuths, **kwargs)[source]#
Construct using a gridded viewing direction layout, defined as the Cartesian product of zenith and azimuth arrays.
- Parameters:
azimuths (array-like) – List of azimuth values.
zeniths (array-like) – List of zenith values.
azimuth_convention (
AzimuthConvention
orstr
, optional) – The azimuth convention applying to the viewing direction layout. If unset, the global default convention is used.**kwargs – Remaining keyword arguments are forwarded to the
MultiDistantMeasure
constructor.
- Returns:
- classmethod hplane(zeniths, azimuth, **kwargs)[source]#
Construct using a hemisphere plane cut viewing direction layout.
- Parameters:
zeniths (array-like) – List of zenith values. Negative values are mapped to the azimuth + 180° half-plane. Unitless values are converted to
ucc['angle']
.azimuth (
float
orquantity
) – Hemisphere plane cut azimuth value. Unitless values are converted toucc['angle']
.azimuth_convention (
AzimuthConvention
orstr
, optional) – The azimuth convention applying to the viewing direction layout. If unset, the global default convention is used.**kwargs – Remaining keyword arguments are forwarded to the
MultiDistantMeasure
constructor.
- Returns:
- is_distant()#
Return
True
iff measure records radiometric quantities at infinite distance.
- 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 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
] orNone
– A dictionary mapping parameter paths, consisting of dot-separated strings, to a corresponding update protocol.
See also
- 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 themitsuba.load_dict()
function, orInitParameter
instances which must be rendered.
See also
- property viewing_angles#
Viewing angles computed from stored directions as a (N, 1, 2) array, where N is the number of directions. The last dimension is ordered as (zenith, azimuth).
- Type:
quantity