FresnelOpticalSystem
- class poppy.FresnelOpticalSystem(name='unnamed system', pupil_diameter=<Quantity 1. m>, npix=1024, beam_ratio=0.5, verbose=True)[source]
Bases:
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.
- Parameters:
- namestring
descriptive name of optical system
- pupil_diameterastropy.Quantity of dimension length
Diameter of entrance pupil
- npixint
Number of pixels across the entrance pupil by default 1024
- beam_ratiofloat
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)
- verbosebool
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, inwave])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
- Parameters:
- pixelscaleastropy.Quantity, with units micron/pixel or equivalent
The pixel scale at the detector
- fov_pixelsastropy.Quantity with units pixel
The number of pixels per axis of the detector. Assumes square detector.
- distanceastropy.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
- Parameters:
- opticOpticalElement instance
Some optic
- distanceastropy.Quantity of dimension length
separation distance of this optic relative to the prior optic in the system.
- indexint
Index at which to insert the new optical element
- input_wavefront(wavelength=<Quantity 1.e-06 m>, inwave=None)[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)
- Parameters:
- wavelengthfloat
Wavelength in meters
- Returns:
- wavefrontpoppy.fresnel.FresnelWavefront instance
A wavefront appropriate for passing through this optical system.