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

  • OpticalSystem is the fundamental optical system class, that propagates Wavefront objects between optics using Fourier transforms.
  • SemiAnalyticCoronagraph implements the semi-analytic coronagraphic propagation algorithm of Soummer et al.
  • MatrixFTCoronagraph enables 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

Wavefront Error Optical Elements