analysis.longitudinal_aberration#
Longitudinal Aberration Analysis
This module provides a longitudinal aberration analysis for optical systems.
Preetam Maske, 2026
Classes
|
Longitudinal aberration: axial focus position of each pupil zone. |
- class LongitudinalAberration(optic: Optic, wavelengths: str | list = 'all', num_points: int = 64)[source]#
Longitudinal aberration: axial focus position of each pupil zone.
On axis (
Hx = Hy = 0), a real ray is traced through each pupil zonePyinlinspace(1 / num_points, 1, num_points)(Px = 0) at every wavelength.Py = 0is skipped because the chief ray never crosses the axis. In the image surface’s local frame, the ray’s axis crossing measured from the image surface vertex isΔz = z - y * N / M, in lens units (mm), along the local z axis. On a flat image surfacez = 0and this is-y * N / M; keepingzmakes the result independent of the image surface’s sag. When the final rays travel toward +z, as in a refractive system, a positive value means that zone focuses past the image surface.The analysis assumes a rotationally symmetric system, so the meridional (
Py) zones describe the whole pupil.- Raises:
ValueError – If
num_pointsis less than 1.- Parameters:
- Variables:
optic (Optic) – The optic object being analyzed.
wavelengths (list) – The wavelengths being analyzed.
num_points (int) – The number of pupil zones.
data (dict) –
"Py", the normalized pupil zones, and"delta_z", one array per wavelength (same order aswavelengths) holding the axis crossing in mm. Rays that do not reach the image surface, or that leave parallel to the axis, give NaN.