Grating¶
-
class
esis.optics.grating.
Grating
(name=<factory>, piston=<Quantity 0. mm>, cylindrical_radius=<Quantity 0. mm>, cylindrical_azimuth=<Quantity 0. deg>, inclination=<Quantity 0. deg>, roll=<Quantity 0. deg>, twist=<Quantity 0. deg>, tangential_radius=<Quantity inf mm>, sagittal_radius=<Quantity inf mm>, nominal_input_angle=<Quantity 0. deg>, nominal_output_angle=<Quantity 0. deg>, diffraction_order=<Quantity 0.>, ruling_density=<Quantity 0. 1 / mm>, ruling_density_coeff_linear=<Quantity 0. 1 / mm2>, ruling_density_coeff_quadratic=<Quantity 0. 1 / mm3>, ruling_density_coeff_cubic=<Quantity 0. 1 / mm4>, aper_wedge_angle=<Quantity 0. deg>, inner_half_width=<Quantity 0. mm>, outer_half_width=<Quantity 0. mm>, border_width=<Quantity 0. mm>, inner_border_width=<Quantity 0. mm>, dynamic_clearance=<Quantity 0. mm>, substrate_thickness=<Quantity 0. mm>)¶ Bases:
kgpy.optics.component.CylindricalComponent
-
__init__
(name=<factory>, piston=<Quantity 0. mm>, cylindrical_radius=<Quantity 0. mm>, cylindrical_azimuth=<Quantity 0. deg>, inclination=<Quantity 0. deg>, roll=<Quantity 0. deg>, twist=<Quantity 0. deg>, tangential_radius=<Quantity inf mm>, sagittal_radius=<Quantity inf mm>, nominal_input_angle=<Quantity 0. deg>, nominal_output_angle=<Quantity 0. deg>, diffraction_order=<Quantity 0.>, ruling_density=<Quantity 0. 1 / mm>, ruling_density_coeff_linear=<Quantity 0. 1 / mm2>, ruling_density_coeff_quadratic=<Quantity 0. 1 / mm3>, ruling_density_coeff_cubic=<Quantity 0. 1 / mm4>, aper_wedge_angle=<Quantity 0. deg>, inner_half_width=<Quantity 0. mm>, outer_half_width=<Quantity 0. mm>, border_width=<Quantity 0. mm>, inner_border_width=<Quantity 0. mm>, dynamic_clearance=<Quantity 0. mm>, substrate_thickness=<Quantity 0. mm>)¶ Initialize self. See help(type(self)) for accurate signature.
- Parameters
name (kgpy.Name) –
piston (astropy.units.Quantity) –
cylindrical_radius (astropy.units.Quantity) –
cylindrical_azimuth (astropy.units.Quantity) –
inclination (astropy.units.Quantity) –
roll (astropy.units.Quantity) –
twist (astropy.units.Quantity) –
tangential_radius (astropy.units.Quantity) –
sagittal_radius (astropy.units.Quantity) –
nominal_input_angle (astropy.units.Quantity) –
nominal_output_angle (astropy.units.Quantity) –
diffraction_order (astropy.units.Quantity) –
ruling_density (astropy.units.Quantity) –
ruling_density_coeff_linear (astropy.units.Quantity) –
ruling_density_coeff_quadratic (astropy.units.Quantity) –
ruling_density_coeff_cubic (astropy.units.Quantity) –
aper_wedge_angle (astropy.units.Quantity) –
inner_half_width (astropy.units.Quantity) –
outer_half_width (astropy.units.Quantity) –
border_width (astropy.units.Quantity) –
inner_border_width (astropy.units.Quantity) –
dynamic_clearance (astropy.units.Quantity) –
substrate_thickness (astropy.units.Quantity) –
- Return type
Attributes
- rtype
- rtype
- rtype
- rtype
Methods
__init__
([name, piston, cylindrical_radius, …])Initialize self.
apply_gregorian_layout
(magnification, …)Computes an optimal placement for the grating based on the magnification, the primary location and the detector location.
apply_poletto_prescription
(wavelength_1, …)copy
()diffraction_angle
(wavelength[, input_angle])Inheritance Diagram
-
apply_gregorian_layout
(magnification, primary_focal_length, primary_clear_radius, back_focal_length, detector_cylindrical_radius, obscuration_margin)¶ Computes an optimal placement for the grating based on the magnification, the primary location and the detector location. Based off of the procedure developed by Charles Kankelborg in SPIDER/spider/optics/design/configurations.ipynb :type magnification:
astropy.units.Quantity
:param magnification: Requested magnification of the Gregorian telescope :type primary_focal_length:astropy.units.Quantity
:param primary_focal_length: Focal length of the parabolic primary mirror. :type primary_clear_radius:astropy.units.Quantity
:param primary_clear_radius: Radius of the usable area on the primary mirror :type back_focal_length:astropy.units.Quantity
:param back_focal_length: Distance from apex of primary to center of detector projected on the z-axis. :type detector_cylindrical_radius:astropy.units.Quantity
:param detector_cylindrical_radius: Radial distance from the center of the detector to the axis of symmetry :type obscuration_margin:astropy.units.Quantity
:param obscuration_margin: Size of the unusable border around the outside of the grating. :rtype:esis.optics.grating.Grating
:return: A new :py:class:esis.optics.components.Grating instance.- Parameters
magnification (astropy.units.Quantity) –
primary_focal_length (astropy.units.Quantity) –
primary_clear_radius (astropy.units.Quantity) –
back_focal_length (astropy.units.Quantity) –
detector_cylindrical_radius (astropy.units.Quantity) –
obscuration_margin (astropy.units.Quantity) –
- Return type
-
apply_poletto_prescription
(wavelength_1, wavelength_2, magnification, primary_focal_length, detector_cylindrical_radius, is_toroidal=False, is_vls=False)¶ - Return type
- Parameters
wavelength_1 (astropy.units.Quantity) –
wavelength_2 (astropy.units.Quantity) –
magnification (astropy.units.Quantity) –
primary_focal_length (astropy.units.Quantity) –
detector_cylindrical_radius (astropy.units.Quantity) –
is_toroidal (bool) –
is_vls (bool) –
-
copy
()¶ - Return type
-
diffraction_angle
(wavelength, input_angle=<Quantity 0. deg>)¶ - Parameters
wavelength (astropy.units.Quantity) –
input_angle (astropy.units.Quantity) –
-
aper_wedge_angle
: astropy.units.Quantity = <Quantity 0. deg>¶
-
property
aper_wedge_half_angle
¶ - Return type
-
border_width
: astropy.units.Quantity = <Quantity 0. mm>¶
-
cylindrical_azimuth
: astropy.units.Quantity = <Quantity 0. deg>¶
-
cylindrical_radius
: astropy.units.Quantity = <Quantity 0. mm>¶
-
property
dataframe
¶ - Return type
-
diffraction_order
: astropy.units.Quantity = <Quantity 0.>¶
-
dynamic_clearance
: astropy.units.Quantity = <Quantity 0. mm>¶
-
property
dynamic_clearance_x
¶
-
inclination
: astropy.units.Quantity = <Quantity 0. deg>¶
-
inner_border_width
: astropy.units.Quantity = <Quantity 0. mm>¶
-
inner_half_width
: astropy.units.Quantity = <Quantity 0. mm>¶
-
nominal_input_angle
: astropy.units.Quantity = <Quantity 0. deg>¶
-
nominal_output_angle
: astropy.units.Quantity = <Quantity 0. deg>¶
-
outer_half_width
: astropy.units.Quantity = <Quantity 0. mm>¶
-
piston
: astropy.units.Quantity = <Quantity 0. mm>¶
-
roll
: astropy.units.Quantity = <Quantity 0. deg>¶
-
ruling_density
: astropy.units.Quantity = <Quantity 0. 1 / mm>¶
-
ruling_density_coeff_cubic
: astropy.units.Quantity = <Quantity 0. 1 / mm4>¶
-
ruling_density_coeff_linear
: astropy.units.Quantity = <Quantity 0. 1 / mm2>¶
-
ruling_density_coeff_quadratic
: astropy.units.Quantity = <Quantity 0. 1 / mm3>¶
-
sagittal_radius
: astropy.units.Quantity = <Quantity inf mm>¶
-
substrate_thickness
: astropy.units.Quantity = <Quantity 0. mm>¶
-
property
surface
¶
-
tangential_radius
: astropy.units.Quantity = <Quantity inf mm>¶
-
property
transform
¶ - Return type
-
twist
: astropy.units.Quantity = <Quantity 0. deg>¶
-