POPPY Class Listing
The key classes for POPPY are OpticalSystem and the various OpticalElement classes (of which there are many). There is also a Wavefront class that is used internally, but users will rarely
need to instantiate that directly. Results are returned as FITS files, specifically astropy.io.fits.HDUList objects.
OpticalSystem is in essence a container for OpticalElement instances, which handles creating input wavefronts, propagating them through the individual optics, and then combining the
results into a broadband output point spread function.
The Instrument class provides a framework for developing high-level models of astronomical instruments.
An OpticalSystem does not include any information about spectral bandpasses, filters, or light source properties,
it just propagates whatever specified list of wavelengths and weights it’s provided with. The
Instrument class provides the machinery for handling filters and sources to generate weighted source spectra, as
well as support for configurable instruments with selectable mechanisms, and system-level impacts on PSFs such as pointing jitter.
Note that the Instrument class should not be used directly but rather is subclassed to implement the details of your particular instrument. See its class documentation for more details.
Optical Systems
OpticalSystemis the fundamental optical system class, that propagatesWavefrontobjects between optics using Fourier transforms.
SemiAnalyticCoronagraphimplements the semi-analytic coronagraphic propagation algorithm of Soummer et al.
MatrixFTCoronagraphenables efficient propagation calculations for Lyot coronagraphs with diaphragm-type focal plane masks, relevant to the WFIRST coronagraph and described by Zimmerman et al. (2016).
Optical Elements
OpticalElementis the fundamental building block
FITSOpticalElementimplements optics defined numerically on discrete grids read in from FITS files
AnalyticOpticalElementimplements optics defined analytically on any arbitrary sampling. There are many of these.
ScalarTransmissionis a simple floating-point throughput factor.
CompoundAnalyticOpticallows multiple analytic optics to be merged into one container objectPupil plane analytic optics include:
- Image plane analytic optics include:
InverseTransmissionallows any optic, whether analytic or discrete, to be flipped in sign, a la the Babinet principle.
Rotationrepresents a rotation of the axes of the wavefront, for instance to change coordinate systems between two optics that are rotated with respect to one another. The axis of rotation must be the axis of optical propagation.
_poppy.CoordinateInversionrepresents a flip in orientation of the X or Y axis, or both at once.
Detectorrepresents a detector with some fixed sampling and pixel scale.