rayoptics.parax.firstorder module

Functions to support paraxial ray tracing a sequential optical model

class ParaxData(ax_ray, pr_ray, fod)

Bases: tuple

ax_ray

axial marginal ray data, y, u, i

fod

instance of FirstOrderData

pr_ray

chief ray data, y, u, i

class FirstOrderData[source]

Bases: object

Container class for first order optical properties

All quantities are based on paraxial ray tracing. The last interface is the image-1 interface.

opt_inv

optical invariant

efl

effective focal length

pp1

distance of front principle plane from 1st interface

ppk

distance of rear principle plane from last interface

ffl

front focal length

bfl

back focal length

fno

focal ratio at working conjugates, f/#

red

reduction ratio

n_obj

refractive index at central wavelength in object space

n_img

refractive index at central wavelength in image space

obj_dist

object distance

img_dist

paraxial image distance

obj_ang

maximum object angle (degrees)

img_ht

image height

enp_dist

entrance pupil distance from 1st interface

enp_radius

entrance pupil radius

exp_dist

exit pupil distance from last interface

exp_radius

exit pupil radius

obj_na

numerical aperture in object space

img_na

numerical aperture in image space

list_first_order_data()[source]

list the first order properties

paraxial_trace(path, start, start_yu, start_yu_bar)[source]

perform a paraxial raytrace of 2 linearly independent rays

compute_first_order(opt_model, stop, wvl)[source]

Returns paraxial axial and chief rays, plus first order data.

compute_principle_points(path, n_0=1.0, n_k=1.0)[source]

Returns paraxial p and q rays, plus partial first order data.

Parameters:
  • path – an iterator containing interfaces and gaps to be traced. for each iteration, the sequence or generator should return a list containing: Intfc, Gap, Trfm, Index, Z_Dir

  • n_0 – refractive index preceding the first interface

  • n_k – refractive index following last interface

Returns:

(p_ray, q_ray, (efl, pp1, ppk, ffl, bfl))

  • p_ray: [ht, slp, aoi], [1, 0, -]

  • q_ray: [ht, slp, aoi], [0, 1, -]

  • efl: effective focal length

  • pp1: distance of front principle plane from 1st interface

  • ppk: distance of rear principle plane from last interface

  • ffl: front focal length

  • bfl: back focal length

list_parax_trace(opt_model, reduced=False)[source]

list the paraxial axial and chief ray data

specsheet_from_parax_data(opt_model, specsheet)[source]

update specsheet to contents of opt_model, while preserving inputs