prysm.thinlens¶
A collection of thin lens equations for system modeling.

prysm.thinlens.
object_to_image_dist
(efl, object_distance)¶ Compute the image distance from the object distance.
 Parameters
efl (float) – focal length of the lens
object_distance (float or numpy.ndarray) – distance from the object to the front principal plane of the lens, negative for an object to the left of the lens
 Returns
image distance. Distance from rear principal plane (assumed to be in contact with front principal plane) to image.
 Return type
float
Notes
efl and object distance should be in the same units. Return value will be in the same units as the inputs.

prysm.thinlens.
image_to_object_dist
(efl, image_distance)¶ Compute the object distance from the image distance.
 Parameters
efl (float) – focal length of the lens
object_distance (float or numpy.ndarray) – distance from the object to the front principal plane of the lens, positive for an object in front of a lens of positive focal length.
Notes
efl and image distance should be in the same units. Return value will be in the same units as the input.

prysm.thinlens.
image_dist_epd_to_na
(image_distance, epd)¶ Compute the NA from an image distance and entrance pupil diameter.
 Parameters
image_distance (float) – distance from the image to the entrance pupil
epd (float) – diameter of the entrance pupil
 Returns
numerical aperture. The NA of the system.
 Return type
float

prysm.thinlens.
image_dist_epd_to_fno
(image_distance, epd)¶ Compute the f/# from an image distance and entrance pupil diameter.
 Parameters
image_distance (float) – distance from the image to the entrance pupil
epd (float) – diameter of the entrance pupil
 Returns
fno. The working f/# of the system.
 Return type
float

prysm.thinlens.
fno_to_na
(fno)¶ Convert an fno to an NA.
 Parameters
fno (float) – focal ratio
 Returns
NA. The NA of the system.
 Return type
float

prysm.thinlens.
na_to_fno
(na)¶ Convert an NA to an f/#.
 Parameters
na (float) – numerical aperture
 Returns
fno. The f/# of the system.
 Return type
float

prysm.thinlens.
object_dist_to_mag
(efl, object_dist)¶ Compute the linear magnification from the object distance and focal length.
 Parameters
efl (float) – focal length of the lens
object_dist (float) – object distance
 Returns
linear magnification. Also known as the lateral magnification
 Return type
float

prysm.thinlens.
mag_to_object_dist
(efl, mag)¶ Compute the object distance for a given focal length and magnification.
 Parameters
efl (float) – focal length of the lens
mag (float) – signed magnification
 Returns
object distance
 Return type
float

prysm.thinlens.
linear_to_long_mag
(lateral_mag)¶ Compute the longitudinal (along optical axis) magnification from the lateral mag.
 Parameters
lateral_mag (float) – linear magnification, from thin lens formulas
 Returns
longitudinal magnification
 Return type
float

prysm.thinlens.
mag_to_fno
(mag, infinite_fno, pupil_mag=1)¶ Compute the working f/# from the magnification and infinite f/#.
 Parameters
mag (float or numpy.ndarray) – linear or lateral magnification
infinite_fno (float) – f/# as defined by EFL/EPD
pupil_mag (float) – pupil magnification
 Returns
working f/number
 Return type
float

prysm.thinlens.
defocus_to_image_displacement
(defocus, fno, wavelength, zernike=False, norm=False)¶ Compute image displacment from wavefront defocus expressed in waves 0P to.
 Parameters
defocus (float or numpy.ndarray) – wavefront defocus
fno (float) – f/# of the lens or system
wavelength (float) – wavelength of light, expressed in micron
zernike (bool) – zernike model of defocus (otherwise model is Seidel)
norm (bool) – if zernike model, term is rms normalized
 Returns
image displacement. Motion of image in um caused by defocus OPD
 Return type
float

prysm.thinlens.
image_displacement_to_defocus
(image_displacement, fno, wavelength, zernike=False, norm=False)¶ Compute the wavefront defocus from image shift, expressed in the same units as the shift.
 Parameters
image_displacement (float or ~`numpy.ndarray`) – displacement of the image
fno (float) – f/# of the lens or system
wavelength (float) – wavelength of light, expressed in microns
zernike (bool) – return in Zernike notation
norm (bool) – subset of zernike – return rms normalized zernike
 Returns
wavefront defocus
 Return type
float

prysm.thinlens.
twolens_efl
(efl1, efl2, separation)¶ Use thick lens equations to compute the focal length for two elements separated by some distance.
 Parameters
efl1 (float) – EFL of the first lens
efl2 (float) – EFL of the second lens
separation (float) – separation of the two lenses
 Returns
focal length of the two lens system
 Return type
float

prysm.thinlens.
twolens_bfl
(efl1, efl2, separation)¶ Use thick lens equations to compute the back focal length for two elements separated by some distance.
 Parameters
efl1 (float) – EFL of the first lens
efl2 (float) – EFL of the second lens
separation (float) – separation of the two lenses.
 Returns
back focal length of the two lens system.
 Return type
float