Angle vs. Image Height - Through Field

Represents an analysis of incident angle vs. image height by varying through all image field coordinates (Hx, Hy) for a given pupil field point.

[1]:
import optiland.backend as be
from optiland.analysis import FieldIncidentAngleVsHeight
from optiland.optic import Optic
[2]:
lens = Optic(name="Simple Scan Optic")
lens.wavelengths.add(value=0.63, is_primary=True)
lens.surfaces.add(index=0, thickness=be.inf, comment="telecentric beam")
lens.surfaces.add(index=1, thickness=153.2, is_stop=True, comment="scan mirror")
lens.surfaces.add(
    index=2, thickness=5, radius=be.inf, material="N-SF11", comment="PCX front surface"
)
lens.surfaces.add(index=3, thickness=157.8, radius=-122.3, comment="PCX back surface")
lens.surfaces.add(index=4, comment="image plane")
lens.set_aperture(aperture_type="EPD", value=3)
lens.fields.set_type(field_type="angle")
lens.fields.add(y=0)
lens.fields.add(y=7)
lens.info()
_ = lens.draw()
╒════╤═══════════════╤═══════════════════╤══════════╤═════════════╤════════════╤═════════╤═════════════════╕
│    │ Type          │ Comment           │   Radius │   Thickness │ Material   │   Conic │   Semi-aperture │
╞════╪═══════════════╪═══════════════════╪══════════╪═════════════╪════════════╪═════════╪═════════════════╡
│  0 │ Planar        │ telecentric beam  │    inf   │       inf   │ Air        │       0 │          1.5    │
│  1 │ Stop - Planar │ scan mirror       │    inf   │       153.2 │ Air        │       0 │          1.5    │
│  2 │ Planar        │ PCX front surface │    inf   │         5   │ N-SF11     │       0 │         20.3106 │
│  3 │ Standard      │ PCX back surface  │   -122.3 │       157.8 │ Air        │       0 │         20.6557 │
│  4 │ Planar        │ image plane       │    inf   │       nan   │ Air        │       0 │         19.2864 │
╘════╧═══════════════╧═══════════════════╧══════════╧═════════════╧════════════╧═════════╧═════════════════╛
../../_images/gallery_analysis_angle_vs_image_height_through_field_2_1.png
[3]:
angle_vs_height = FieldIncidentAngleVsHeight(lens)
angle_vs_height.view()
../../_images/gallery_analysis_angle_vs_image_height_through_field_3_0.png