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
verbose : bool
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 :
(grayscale) masks. :