Base class for all optical elements, whether from FITS files or analytic functions.
If instantiated on its own, this just produces a null optical element (empty space, i.e. an identity function on transmitted wavefronts.) Use one of the many subclasses to create a nontrivial optic.
The OpticalElement class follows the behavoior of the Wavefront class, using units of meters/pixel in pupil space and arcsec/pixel in image space.
The internal implementation of this class represents an optic with an array for the electric field amplitude transmissivity (or reflectivity), plus an array for the optical path difference in units of meters. This representation was chosen since most typical optics of interest will have wavefront error properties that are independent of wavelength. Subclasses particularly the AnalyticOpticalElements extend this paradigm with optics that have wavelength-dependent properties.
The getPhasor() function is used to obtain the complex phasor for any desired wavelength based on the amplitude and opd arrays.
name : string
verbose : bool
planetype : int
oversample : int
|shape||Return shape of the OpticalElement, as a tuple|
|display([nrows, row, what, crosshairs, ax, ...])||Display plots showing an optic’s transmission and OPD.|
|getPhasor(wave)||Compute a complex phasor from an OPD, given a wavelength.|
Return shape of the OpticalElement, as a tuple
Display plots showing an optic’s transmission and OPD.
what : str
ax : matplotlib.Axes instance
nrows, row : integers
crosshairs : bool
colorbar : bool
colorbar_orientation : bool
opd_vmax : float
title : string
Compute a complex phasor from an OPD, given a wavelength.
The returned value should be the complex phasor array as appropriate for multiplying by the wavefront amplitude.
wave : float or obj