Instrument#

class esis.optics.Instrument(name='ESIS', axis_channel='channel', front_aperture=None, central_obscuration=None, primary_mirror=None, field_stop=None, grating=None, filter=None, camera=None, wavelength=None, field=None, pupil=None, pitch=<Quantity 0. deg>, yaw=<Quantity 0. deg>, roll=<Quantity 0. deg>, kwargs_plot=None)[source]#

Bases: AbstractInstrument

An object which represents the entire optical system.

A composition of the optical elements and a grid of input rays. Designed to resolve the optical elements into an instance of optika.systems.SequentialSystem for performance modeling.

Attributes

angle_grating_input

The angle between the grating normal and the direction of the incident light.

angle_grating_output

The angle between the grating normal and the direction of the diffracted light.

axis_channel

The name of the logical axis corresponding to changing camera channel.

camera

A model of the camera and sensors.

central_obscuration

A model of the central obscuration.

field

A default grid of field positions to trace through the system.

field_stop

A model of the field stop.

filter

A model of the thin-film filters.

front_aperture

A model of the front aperture plate.

grating

A model of the diffraction grating array.

kwargs_plot

Extra keyword arguments used to plot the optical system.

name

The human-readable name of the instrument.

pitch

The pitch angle of the instrument.

primary_mirror

A model of the primary mirror.

pupil

A default grid of pupil positions to trace through the system.

roll

The roll angle of the instrument.

system

Convert this model into an instance of optika.systems.SequentialSystem.

transformation

the coordinate transformation between the global coordinate system and this object's local coordinate system

wavelength

A default grid of wavelengths to trace through the system.

wavelength_max

The maximum wavelength permitted through the system.

wavelength_min

The minimum wavelength permitted through the system.

wavelength_physical

The value of wavelength converted to physical units if needed.

yaw

The yaw angle of the instrument.

Methods

__init__([name, axis_channel, ...])

to_string([prefix])

Public-facing version of the __repr__ method that allows for defining a prefix string, which can be used to calculate how much whitespace to add to the beginning of each line of the result.

Inheritance Diagram

Inheritance diagram of esis.optics.Instrument
Parameters:
to_string(prefix=None)#

Public-facing version of the __repr__ method that allows for defining a prefix string, which can be used to calculate how much whitespace to add to the beginning of each line of the result.

Parameters:

prefix (None | str) – an optional string, the length of which is used to calculate how much whitespace to add to the result.

Return type:

str

property angle_grating_input: AbstractScalar#

The angle between the grating normal and the direction of the incident light.

This is the incidence angle \(theta_i\) in the diffraction grating equation.

property angle_grating_output: AbstractScalar#

The angle between the grating normal and the direction of the diffracted light.

This is an analogue to the diffracted angle in the diffraction grating equation.

axis_channel: str = 'channel'#

The name of the logical axis corresponding to changing camera channel.

camera: None | Camera = None#

A model of the camera and sensors.

central_obscuration: None | CentralObscuration = None#

A model of the central obscuration.

field: None | AbstractCartesian2dVectorArray = None#

A default grid of field positions to trace through the system.

field_stop: None | FieldStop = None#

A model of the field stop.

filter: None | Filter = None#

A model of the thin-film filters.

front_aperture: None | FrontAperture = None#

A model of the front aperture plate.

grating: None | Grating = None#

A model of the diffraction grating array.

kwargs_plot: None | dict = None#

Extra keyword arguments used to plot the optical system.

name: str = 'ESIS'#

The human-readable name of the instrument.

pitch: Quantity | AbstractScalar = <Quantity 0. deg>#

The pitch angle of the instrument.

primary_mirror: None | PrimaryMirror = None#

A model of the primary mirror.

pupil: None | AbstractCartesian2dVectorArray = None#

A default grid of pupil positions to trace through the system.

roll: Quantity | AbstractScalar = <Quantity 0. deg>#

The roll angle of the instrument.

property system: SequentialSystem#

Convert this model into an instance of optika.systems.SequentialSystem.

This is a cached property that is only computed once.

property transformation: AbstractTransformation#

the coordinate transformation between the global coordinate system and this object’s local coordinate system

wavelength: None | Quantity | AbstractScalar = None#

A default grid of wavelengths to trace through the system.

property wavelength_max: Quantity | AbstractScalar#

The maximum wavelength permitted through the system.

property wavelength_min: Quantity | AbstractScalar#

The minimum wavelength permitted through the system.

property wavelength_physical: ScalarArray#

The value of wavelength converted to physical units if needed.

yaw: Quantity | AbstractScalar = <Quantity 0. deg>#

The yaw angle of the instrument.