Defines an arbitrary optic, based on amplitude transmission and/or OPD FITS files.
This optic could be a pupil or field stop, an aberrated mirror, a phase mask, etc. The FITSOpticalElement class follows the behavior of the Wavefront class, using units of meters/pixel in pupil space and arcsec/pixel in image space.
The interface is very flexible. You can define a FITSOpticalElement either from
The FITS file argument(s) can be supplied either as
- a string giving the path to a file on disk,
- a FITS HDUlist object, or
- in the case of OPDs, a tuple consisting of a path to a datacube and an integer index of a slice in that datacube.
A better interface for slice selection in datacubes is the transmission_index and opd_index keyword parameters listed below, but the tuple interface is retained for back compatibility with existing code.
name : string
transmission, opd : string or fits HDUList
transmission_slice, opd_slice : integers, optional
opdunits : string
planetype : int
oversample : int
shift : tuple of floats, optional
rotation : float
pixelscale : optical str or float
transmission_index, opd_index : ints, optional
*NOTE:* All mask files must be *squares*.
Also, please note that the adopted convention is for the spectral throughput (transmission) to be given
in appropriate units for acting on the *amplitude* of the electric field. Thus for example an optic with
a uniform transmission of 0.5 will reduce the electric field amplitude to 0.5 relative to the input,
and thus reduce the total power to 0.25. This distinction only matters in the case of semitransparent