Through Focus Spot Diagram

[1]:
from optiland.samples.objectives import CookeTriplet
from optiland.analysis import ThroughFocusSpotDiagram
[2]:
lens = CookeTriplet()
[3]:
lens.draw()
[3]:
(<Figure size 1000x400 with 1 Axes>, <Axes: xlabel='Z [mm]', ylabel='Y [mm]'>)
../../_images/gallery_analysis_through_focus_spot_diagram_3_1.png
[4]:
tf_spot = ThroughFocusSpotDiagram(
    lens, num_steps=5, delta_focus=0.1, fields="all", wavelengths="all"
)
tf_spot.view()
[4]:
(<Figure size 1500x900 with 15 Axes>,
 [<Axes: title={'center': 'Defocus: -0.200 mm\nField: (0.00,0.00)'}, ylabel='Y (mm)'>,
  <Axes: title={'center': 'Defocus: -0.100 mm\nField: (0.00,0.00)'}>,
  <Axes: title={'center': 'Defocus: +0.000 mm\nField: (0.00,0.00)'}>,
  <Axes: title={'center': 'Defocus: +0.100 mm\nField: (0.00,0.00)'}>,
  <Axes: title={'center': 'Defocus: +0.200 mm\nField: (0.00,0.00)'}>,
  <Axes: title={'center': 'Field: (0.00,0.70)'}, ylabel='Y (mm)'>,
  <Axes: title={'center': 'Field: (0.00,0.70)'}>,
  <Axes: title={'center': 'Field: (0.00,0.70)'}>,
  <Axes: title={'center': 'Field: (0.00,0.70)'}>,
  <Axes: title={'center': 'Field: (0.00,0.70)'}>,
  <Axes: title={'center': 'Field: (0.00,1.00)'}, xlabel='X (mm)', ylabel='Y (mm)'>,
  <Axes: title={'center': 'Field: (0.00,1.00)'}, xlabel='X (mm)'>,
  <Axes: title={'center': 'Field: (0.00,1.00)'}, xlabel='X (mm)'>,
  <Axes: title={'center': 'Field: (0.00,1.00)'}, xlabel='X (mm)'>,
  <Axes: title={'center': 'Field: (0.00,1.00)'}, xlabel='X (mm)'>])
../../_images/gallery_analysis_through_focus_spot_diagram_4_1.png