eradiate.scenes.measure.MultiDistantMeasure#
- class eradiate.scenes.measure.MultiDistantMeasure(id='measure', srf=_Nothing.NOTHING, sampler='independent', rfilter='box', spp=1000, target=None, ray_offset=None, *, direction_layout=_Nothing.NOTHING)[source]#
Bases:
DistantMeasure
Multi-distant radiance measure scene element [
distant
,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
orstr
orSpectrum
ordict
, default:MultiDeltaSpectrum(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. By default, the prepared version of the SRF is served unless it does not exist in which case the raw version is served. To request that the raw version is served, append'-raw'
to the keyword, e.g.,'sentinel_2a-msi-4-raw'
. Note that the prepared SRF provide a better speed versus accuracy trade-off, but for the best accuracy, the raw SRF should be used. Other types will be converted byspectrum_factory
.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 (
Spectrum
) – 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