Repository navigation
v2.11.0
Measured efficiencies interpolated over the angle of incidence (#241)
MeasuredRulings, MeasuredMirror and MeasuredFilter can now use an
efficiency measured, or computed, at several angles of incidence. Before
this release they raised on anything but a single angle.
- Each class has a new field,
axis_angle, naming the axis of
efficiency_measuredalong which the angle of incidence varies.
The directions of the measurement are then scalar angles of incidence
from the surface normal, increasing along that axis, and the efficiency
is interpolated linearly in both wavelength and angle of incidence,
holding the nearest measurement outside the measured range. - Each angle may have its own wavelength samples, and the angles may also
vary along other axes, such as one per channel, which broadcast into the
result. - With
axis_angle=None, the default, nothing changes: a measurement at a
single angle is used at every angle of incidence. A measurement whose
directions hold more than one value now says to setaxis_angle. shapeleaves outaxis_angle, as it already left out the wavelength
axis, sinceefficiency()consumes both.
The three classes now share a single implementation of the interpolation.
MeasuredRulings also has its first documentation example.
The new field sits directly after efficiency_measured, so code that
passed substrate or medium positionally needs to pass it by keyword.