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 0-P 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