lentil.Pupil#
- class lentil.Pupil(amplitude=1, opd=0, mask=None, pixelscale=None, focal_length=None, diameter=None, **kwargs)[source]#
Class for representing a pupil plane.
- Parameters:
amplitude (array_like, optional) – Electric field amplitude transmission. Amplitude should be normalized with
normalize_power()if conservation of power through a diffraction propagation is required. If not specified, a default amplitude is created which has no effect on wavefront propagation. Can also be specified using theampkeyword.opd (array_like, optional) – Optical path difference (OPD) induced by plane. If not specified (default), zero OPD is created which has no effect on wavefront propagation.
mask (array_like, optional) –
Binary mask. If not specified, a mask is created from the amplitude. If
maskhas 2 dimensions, the plane is assumed to be monolithic. Ifmaskhas 3 dimensions, the plane is assumed to be segmented with the individual segment masks inserted along the first dimension.
pixelscale (float) – Physical sampling of each pixel in the pupil
focal_length (float) – Focal length
diameter (float, optional) – Outscribing diameter around mask. If not provided (default), it is computed from the boundary of
mask.
Notes
By definition, a pupil is represented by a spherical wavefront. Any aberrations in the optical system appear as deviations from this perfect sphere. The primary use of
Pupilis to represent this spherical wavefront.
Attributes
Electric field amplitude transmission |
|
Plane diameter |
|
Freeze (cache) state |
|
Flattened view of |
|
Binary transmission mask |
|
Optical path difference |
|
Physical sampling of each pixel in the plane |
|
2D vector representing piston and tilt in x and y. |
|
Plane type |
|
Plane dimensions computed from |
|
Number of independent masks (segments) in |
Methods
|
Fit and remove tilt from Plane |
|
Cache properties defined in |
|
Multiply with a wavefront |
|
Resample a plane via interpolation. |
|
Rescale a plane via interpolation. |
|
Clear property cache |