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:
AbstractDistantMeasureMulti-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 or
strorSpectralResponseFunctionordict, 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', the corresponding dataset is looked up through the file resolver.sampler (
{"independent", "stratified", "multijitter", "orthogonal", "ldsampler"}, default:"independent") – Mitsuba sampler used to generate pseudo-random number sequences.rfilter (
{"box", "gaussian", "tent", "mitchell", "catmullrom", "lanczos"}, 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 (
Targetordictor 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 (
floatorquantity, 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 (
dictor 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 (
quantityorNone) – Manually control the distance between the target and ray origins.direction_layout (
Layout) – A viewing direction layout.
Notes
Setting the
targetparameter 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 (
floatorquantity) – 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 (
AzimuthConventionorstr, 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
MultiDistantMeasureconstructor.
- 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 (
AzimuthConventionorstr, 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
MultiDistantMeasureconstructor.
- 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 (
AzimuthConventionorstr, 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
MultiDistantMeasureconstructor.
- 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 (
AzimuthConventionorstr, 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
MultiDistantMeasureconstructor.
- 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 (
floatorquantity) – Hemisphere plane cut azimuth value. Unitless values are converted toucc['angle'].azimuth_convention (
AzimuthConventionorstr, 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
MultiDistantMeasureconstructor.
- Returns:
- is_distant()¶
Return
Trueiff 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,SceneParameter] 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, orDictParameterinstances 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