FresnelOpticalSystem¶
-
class
poppy.
FresnelOpticalSystem
(name='unnamed system', pupil_diameter=<Quantity 1. m>, npix=1024, beam_ratio=0.5, verbose=True)[source]¶ Bases:
poppy.poppy_core.BaseOpticalSystem
Class representing a series of optical elements, through which light can be propagated using the Fresnel formalism.
This is comparable to the “regular” (Fraunhofer-domain) OpticalSystem, but adds functionality for propagation to arbitrary optical planes rather than just pupil and image planes.
- name : string
- descriptive name of optical system
- pupil_diameter : astropy.Quantity of dimension length
- Diameter of entrance pupil
- npix : int
- Number of pixels across the entrance pupil by default 1024
- beam_ratio : float
- Padding factor for the entrance pupil; what fraction of the array should correspond to the entrance pupil. Default is 0.5, which corresponds to Nyquist sampling (2 pixels per resolution element)
- verbose : bool
- whether to be more verbose with log output while computing
Methods Summary
add_detector
([pixelscale, fov_pixels, distance])Add a detector to the optical system add_optic
([optic, distance, index])Add an optic to the optical system describe
()Print out a string table describing all planes in an optical system input_wavefront
([wavelength])Create a Wavefront object suitable for sending through a given optical system. propagate
(wavefront[, normalize, …])Core low-level routine for propagating a wavefront through an optical system Methods Documentation
-
add_detector
(pixelscale=<Quantity 10. micron / pix>, fov_pixels=<Quantity 10. pix>, distance=<Quantity 0. m>)[source]¶ Add a detector to the optical system
- pixelscale : astropy.Quantity, with units micron/pixel or equivalent
- The pixel scale at the detector
- fov_pixels : astropy.Quantity with units pixel
- The number of pixels per axis of the detector. Assumes square detector.
- distance : astropy.Quantity of dimension length
- separation distance of this optic relative to the prior optic in the system.
-
add_optic
(optic=None, distance=<Quantity 0. m>, index=None)[source]¶ Add an optic to the optical system
- optic : OpticalElement instance
- Some optic
- distance : astropy.Quantity of dimension length
- separation distance of this optic relative to the prior optic in the system.
- index : int
- Index at which to insert the new optical element
-
input_wavefront
(wavelength=<Quantity 1.e-06 m>)[source]¶ Create a Wavefront object suitable for sending through a given optical system.
Uses self.source_offset to assign an off-axis tilt, if requested. (FIXME does not work for Fresnel yet)
- wavelength : float
- Wavelength in meters
- wavefront : poppy.fresnel.FresnelWavefront instance
- A wavefront appropriate for passing through this optical system.