Grating#
- class furst.gratings.Grating(name='grating', sag=None, radius=<Quantity 0. mm>, width_clear=<Quantity 0. mm>, width_mech=<Quantity 0. mm>, material=None, rulings=None, rowland_radius=<Quantity 0. mm>, rowland_azimuth=<Quantity 0. deg>, translation=<Quantity 0. mm>, pitch=<Quantity 0. deg>, yaw=<Quantity 0. deg>, roll=<Quantity 0. deg>)[source]#
Bases:
Rollable,Yawable,Pitchable,Translatable,AbstractRowlandComponent,Generic[SagT,MaterialT,RulingT]A model of the FURST diffraction grating.
This is a concave, spherical diffraction grating a rectangular aperture.
Examples
Plot an exaggerated grating on the Rowland circle.
import numpy as np import matplotlib.pyplot as plt import astropy.units as u import astropy.visualization import named_arrays as na import optika import furst # Define the Rowland circle rowland_radius = 1000 * u.mm a = na.linspace(0, 360, axis="angle", num=1001) * u.deg rowland_circle = rowland_radius * na.Cartesian3dVectorArray( x=np.sin(a), z=np.cos(a), ) # Define the grating model grating = furst.gratings.Grating( sag=optika.sags.SphericalSag( radius=-2 * rowland_radius, ), width_clear=na.Cartesian2dVectorArray( x=1000 * u.mm, y=20 * u.mm, ), material=optika.materials.Mirror(), rowland_radius=rowland_radius, rowland_azimuth=175 * u.deg, ) # Plot the grating surface and the Rowland circle with astropy.visualization.quantity_support(): fig, ax = plt.subplots() grating.surface.plot( ax=ax, components=("z", "x"), color="tab:blue", ) na.plt.plot( rowland_circle, ax=ax, components=("z", "x"), color="black", linestyle="dashed", zorder=-10, ) ax.set_aspect("equal")
Attributes
The coating material used to make the optic reflective in the target spectral range.
The human-readable name of this optic.
The angle of rotation about the vector tangent to the Rowland circle.
The radius of curvature of the optical surface.
The angle of rotation about the vector normal to the Rowland circle.
The azimuth of the virtual image of the Sun on the Rowland circle, relative to the optic axis of the instrument.
The distance from the center of the Rowland circle to the virtual image of the Sun within the feed optic.
A model of the grating ruling spacing and profile.
The sag profile of the grating surface.
Convert this object into an instance of
optika.surfaces.AbstractSurface.the coordinate transformation between the global coordinate system and this object's local coordinate system
Physical offset from the optic's nominal position on the Rowland circle.
The height and width of the clear aperture of the grating.
The height and width of the grating substrate.
The angle of rotation about the axis of symmetry of the feed optic.
Methods
__init__([name, sag, radius, width_clear, ...])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

- Parameters:
name (str)
sag (SagT)
radius (Quantity | AbstractScalar)
width_clear (Quantity | AbstractCartesian2dVectorArray)
width_mech (Quantity | AbstractCartesian2dVectorArray)
material (MaterialT)
rulings (RulingT)
rowland_radius (Quantity | AbstractScalar)
rowland_azimuth (Quantity | AbstractScalar)
translation (Quantity | AbstractCartesian3dVectorArray)
pitch (Quantity | AbstractScalar)
yaw (Quantity | AbstractScalar)
roll (Quantity | AbstractScalar)
- 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.
- material: MaterialT = None#
The coating material used to make the optic reflective in the target spectral range.
- pitch: Quantity | AbstractScalar = <Quantity 0. deg>#
The angle of rotation about the vector tangent to the Rowland circle.
- radius: Quantity | AbstractScalar = <Quantity 0. mm>#
The radius of curvature of the optical surface.
- roll: Quantity | AbstractScalar = <Quantity 0. deg>#
The angle of rotation about the vector normal to the Rowland circle.
- rowland_azimuth: Quantity | AbstractScalar = <Quantity 0. deg>#
The azimuth of the virtual image of the Sun on the Rowland circle, relative to the optic axis of the instrument.
- rowland_radius: Quantity | AbstractScalar = <Quantity 0. mm>#
The distance from the center of the Rowland circle to the virtual image of the Sun within the feed optic.
- rulings: RulingT = None#
A model of the grating ruling spacing and profile.
- sag: SagT = None#
The sag profile of the grating surface.
- property surface: Surface#
Convert this object into an instance of
optika.surfaces.AbstractSurface.
- property transformation: AbstractTransformation#
the coordinate transformation between the global coordinate system and this object’s local coordinate system
- translation: Quantity | AbstractCartesian3dVectorArray = <Quantity 0. mm>#
Physical offset from the optic’s nominal position on the Rowland circle.
- width_clear: Quantity | AbstractCartesian2dVectorArray = <Quantity 0. mm>#
The height and width of the clear aperture of the grating.
- width_mech: Quantity | AbstractCartesian2dVectorArray = <Quantity 0. mm>#
The height and width of the grating substrate.
- yaw: Quantity | AbstractScalar = <Quantity 0. deg>#
The angle of rotation about the axis of symmetry of the feed optic.