Filter#

class esis.optics.Filter(material=None, radius_clear=<Quantity 0. mm>, width_border=<Quantity 0. mm>, distance_radial=<Quantity 0. mm>, azimuth=<Quantity 0. deg>, translation=<Quantity 0. mm>, pitch=<Quantity 0. deg>, yaw=<Quantity 0. deg>, roll=<Quantity 0. deg>)[source]#

Bases: AbstractFilter

A model of the visible-light filters of the instrument.

These are thin-film filters supported by a fine mesh.

Attributes

azimuth

The angle of rotation about the axis of symmetry.

distance_radial

The distance of this object from the axis of symmetry.

material

A model of the filter material including the mesh and oxide.

pitch

The pitch angle of this object.

radius_clear

The radius of the filter's circular clear aperture.

roll

The roll angle of this object

surface

Represent this object as an optika surface.

transformation

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

translation

A transformation which can arbitrarily translate this object.

width_border

The width of the frame around the clear aperture.

yaw

The yaw angle of this object.

Methods

__init__([material, radius_clear, ...])

replace(**changes)

A copy of this object with the given fields replaced.

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.Filter
Parameters:
replace(**changes)#

A copy of this object with the given fields replaced.

A method version of dataclasses.replace(), matching named_arrays.AbstractArray.replace(), so that a nested change reads the same at every level:

system.replace(
    surface=system.surface.replace(
        sag=system.surface.sag.replace(radius=r),
    ),
)

The copy is shallow, as dataclasses.replace() is: every field which is not named is shared with the original, and mutating one through the copy is mutating it in both. Take copy.deepcopy() of the result where that matters.

Parameters:

changes – The fields to overwrite in the copy.

Return type:

Self

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

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

The angle of rotation about the axis of symmetry.

distance_radial: Quantity | AbstractScalar = <Quantity 0. mm>#

The distance of this object from the axis of symmetry.

material: None | AbstractMaterial = None#

A model of the filter material including the mesh and oxide.

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

The pitch angle of this object.

radius_clear: Quantity | AbstractScalar = <Quantity 0. mm>#

The radius of the filter’s circular clear aperture.

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

The roll angle of this object

property surface: Surface#

Represent this object as an optika surface.

property transformation: AbstractTransformation#

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

translation: Quantity | AbstractCartesian3dVectorArray = <Quantity 0. mm>#

A transformation which can arbitrarily translate this object.

width_border: Quantity | AbstractScalar = <Quantity 0. mm>#

The width of the frame around the clear aperture.

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

The yaw angle of this object.