Detector#
- class furst.detectors.Detector(name='detector', manufacturer='', model_number='', serial_number='', width_pixel=<Quantity 0. mm>, axis_pixel=None, num_pixel=0, num_pixel_overscan=0, num_pixel_blank=0, material=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>, temperature=<Quantity 0. K>, gain=<Quantity 0. electron / DN>, readout_noise=<Quantity 0. DN>, dark_current=<Quantity 0. electron / s>, charge_diffusion=<Quantity 0. um>, timedelta_transfer=<Quantity 0. s>, timedelta_readout=<Quantity 0. s>, timedelta_exposure=<Quantity 0. s>, timedelta_exposure_min=<Quantity 0. s>, timedelta_exposure_max=<Quantity 0. s>, bits_adc=0)[source]#
Bases:
Rollable,Yawable,Pitchable,Translatable,AbstractRowlandComponentA model of FURST’s imaging sensor and camera.
These are manufactured by Marshall Space Flight Center for use with FURST.
Examples
Plot the surface of the detector and 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 detector = furst.detectors.Detector( width_pixel=15 * u.um, axis_pixel=na.Cartesian2dVectorArray( x="detector_x", y="detector_y", ), num_pixel=4096, material=optika.materials.Mirror(), rowland_radius=rowland_radius, rowland_azimuth=10 * u.deg, ) # Plot the grating surface and the Rowland circle with astropy.visualization.quantity_support(): fig, ax = plt.subplots() na.plt.plot( rowland_circle, ax=ax, components=("z", "x"), color="black", linestyle="dashed", zorder=-10, ) detector.surface.plot( ax=ax, components=("z", "x"), color="tab:orange", ) ax.set_aspect("equal") ax.set_xlim(960 * u.mm, 1020 * u.mm) ax.set_ylim(120 * u.mm, 220 * u.mm)
Attributes
The name of each axis of the pixel array.
The number of bits collected by the analog-to-digital converter on this detector.
The standard deviation of the charge diffusion kernel.
The amount of dark signal measured by the detector at the current temperature.
The ratio between the number of electrons measured by the sensor and the data number reported by the ADC
The company that manufactured this detector.
A model of the light-sensitive material of this detector.
The model number of this detector.
The human-readable name of this detector.
The number of pixels along each axis of the pixel array.
The number of blank columns for each tap.
The number of overscan columns for each tap.
The angle of rotation about the long axis of the detector.
The standard deviation of the noise introduced by the readout electronics.
The angle of rotation about the vector normal to the surface of the detector.
The azimuth of the center of the detector on the Rowland circle, relative to the optic axis of the instrument.
The distance from the center of the Rowland circle to the center of the detector.
The unique serial number associated with this detector.
Convert this object into an instance of
optika.surfaces.AbstractSurface.The operating temperature of this detector.
The current exposure time of this detector.
The maximum exposure time allowed by this detector.
The minimum exposure time allowed by this detector.
The time required to digitize an image collected by the sensor.
The time required to transfer an image from the light-sensitive area of the detector to the masked area.
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 physical width of a pixel for this detector.
The angle of rotation about the short axis of the detector.
Methods
__init__([name, manufacturer, model_number, ...])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)
manufacturer (str)
model_number (str)
serial_number (str)
width_pixel (Quantity | AbstractCartesian2dVectorArray)
axis_pixel (None | Cartesian2dVectorArray[str, str])
num_pixel (int | Cartesian2dVectorArray[int, int])
num_pixel_overscan (int)
num_pixel_blank (int)
material (None | AbstractSensorMaterial)
rowland_radius (Quantity | AbstractScalar)
rowland_azimuth (Quantity | AbstractScalar)
translation (Quantity | AbstractCartesian3dVectorArray)
pitch (Quantity | AbstractScalar)
yaw (Quantity | AbstractScalar)
roll (Quantity | AbstractScalar)
temperature (Quantity | ScalarArray)
gain (Quantity | ScalarArray)
readout_noise (Quantity | ScalarArray)
dark_current (Quantity | ScalarArray)
charge_diffusion (Quantity | AbstractScalar)
timedelta_transfer (Quantity | AbstractScalar)
timedelta_readout (Quantity | AbstractScalar)
timedelta_exposure (Quantity | AbstractScalar)
timedelta_exposure_min (Quantity | AbstractScalar)
timedelta_exposure_max (Quantity | AbstractScalar)
bits_adc (int)
- 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.
- axis_pixel: None | Cartesian2dVectorArray[str, str] = None#
The name of each axis of the pixel array.
- bits_adc: int = 0#
The number of bits collected by the analog-to-digital converter on this detector.
- charge_diffusion: Quantity | AbstractScalar = <Quantity 0. um>#
The standard deviation of the charge diffusion kernel.
- dark_current: Quantity | ScalarArray = <Quantity 0. electron / s>#
The amount of dark signal measured by the detector at the current temperature.
- gain: Quantity | ScalarArray = <Quantity 0. electron / DN>#
The ratio between the number of electrons measured by the sensor and the data number reported by the ADC
- material: None | AbstractSensorMaterial = None#
A model of the light-sensitive material of this detector.
- num_pixel: int | Cartesian2dVectorArray[int, int] = 0#
The number of pixels along each axis of the pixel array.
- pitch: Quantity | AbstractScalar = <Quantity 0. deg>#
The angle of rotation about the long axis of the detector.
- readout_noise: Quantity | ScalarArray = <Quantity 0. DN>#
The standard deviation of the noise introduced by the readout electronics.
- roll: Quantity | AbstractScalar = <Quantity 0. deg>#
The angle of rotation about the vector normal to the surface of the detector.
- rowland_azimuth: Quantity | AbstractScalar = <Quantity 0. deg>#
The azimuth of the center of the detector 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 center of the detector.
- property surface: ImagingSensor#
Convert this object into an instance of
optika.surfaces.AbstractSurface.
- temperature: Quantity | ScalarArray = <Quantity 0. K>#
The operating temperature of this detector.
- timedelta_exposure: Quantity | AbstractScalar = <Quantity 0. s>#
The current exposure time of this detector.
- timedelta_exposure_max: Quantity | AbstractScalar = <Quantity 0. s>#
The maximum exposure time allowed by this detector.
- timedelta_exposure_min: Quantity | AbstractScalar = <Quantity 0. s>#
The minimum exposure time allowed by this detector.
- timedelta_readout: Quantity | AbstractScalar = <Quantity 0. s>#
The time required to digitize an image collected by the sensor.
- timedelta_transfer: Quantity | AbstractScalar = <Quantity 0. s>#
The time required to transfer an image from the light-sensitive area of the detector to the masked area.
- 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_pixel: Quantity | AbstractCartesian2dVectorArray = <Quantity 0. mm>#
The physical width of a pixel for this detector.
- yaw: Quantity | AbstractScalar = <Quantity 0. deg>#
The angle of rotation about the short axis of the detector.