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 the amp keyword.

  • 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 mask has 2 dimensions, the plane is assumed to be monolithic. If mask has 3 dimensions, the plane is assumed to be segmented with the individual segment masks inserted along the first dimension.

    ../../_images/segmask.png

  • 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 Pupil is to represent this spherical wavefront.

Attributes

amplitude

Electric field amplitude transmission

diameter

Plane diameter

global_mask

Flattened view of mask

mask

Binary transmission mask

opd

Optical path difference

pixelscale

Physical sampling of each pixel in the plane

ptt_vector

2D vector representing piston and tilt in x and y.

ptype

Plane type

shape

Plane dimensions computed from mask.

size

Number of independent masks (segments) in mask

Methods

copy()

Make a copy of this object.

fit_tilt([inplace])

Fit and remove tilt from Plane opd via least squares.

multiply(wavefront)

Multiply with a wavefront

resample(pixelscale)

Resample a plane via interpolation.

rescale(scale)

Rescale a plane via interpolation.