Detector

class esis.optics.detector.Detector(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>, pixel_width=<Quantity 0. um>, num_pixels=(0, 0), border_width_right=<Quantity 0. mm>, border_width_left=<Quantity 0. mm>, border_width_top=<Quantity 0. mm>, border_width_bottom=<Quantity 0. mm>, dynamic_clearance=<Quantity 0. mm>, npix_overscan=0, npix_blank=0, gain=<Quantity 0. electron / adu>, readout_noise=<Quantity 0. adu>)

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>, pixel_width=<Quantity 0. um>, num_pixels=(0, 0), border_width_right=<Quantity 0. mm>, border_width_left=<Quantity 0. mm>, border_width_top=<Quantity 0. mm>, border_width_bottom=<Quantity 0. mm>, dynamic_clearance=<Quantity 0. mm>, npix_overscan=0, npix_blank=0, gain=<Quantity 0. electron / adu>, readout_noise=<Quantity 0. adu>)

Initialize self. See help(type(self)) for accurate signature.

Parameters
Return type

None

Attributes

border_width_bottom

border_width_left

border_width_right

border_width_top

clear_half_height

rtype

astropy.units.core.PrefixUnit

clear_half_width

rtype

astropy.units.core.PrefixUnit

clear_height

rtype

astropy.units.core.PrefixUnit

clear_width

rtype

astropy.units.core.PrefixUnit

cylindrical_azimuth

cylindrical_radius

dataframe

rtype

pandas.DataFrame

dynamic_clearance

gain

inclination

npix_blank

npix_overscan

num_pixels

num_pixels_all

Number of pixels in each axis including the overscan and blank pixels

piston

pixel_half_width

rtype

astropy.units.core.PrefixUnit

pixel_width

quadrants

Slices for isolating the pixels associated with each tap on the CCD

readout_noise

roll

surface

rtype

kgpy.optics.surface.Surface[None, None, kgpy.optics.surface.aperture.Rectangular, kgpy.optics.surface.aperture.AsymmetricRectangular, None]

transform

rtype

kgpy.transform.rigid.Transform

twist

Methods

__init__([name, piston, cylindrical_radius, …])

Initialize self.

apply_poletto_prescription(wavelength_1, …)

rtype

esis.optics.detector.Detector

convert_adu_to_electrons(data)

Converts data in ADU units to electron units using the gain for each tap in each channel

convert_adu_to_photons(data, wavelength)

Converts data in ADU units to photon units.

convert_electrons_to_photons(data, wavelength)

Converts data in electron units to photon units using the wavelength and the silicon workfunction

copy()

rtype

esis.optics.detector.Detector

readout_noise_image(num_channels)

Calculate an image where each pixel contains the expected readout noise at that location

remove_inactive_pixels(data)

Given a raw image from the ESIS cameras, trim off the blank and overscan pixels, leaving only the light- sensitive pixels

Inheritance Diagram

Inheritance diagram of esis.optics.detector.Detector

apply_poletto_prescription(wavelength_1, wavelength_2, magnification, primary_focal_length, grating)
Return type

esis.optics.detector.Detector

Parameters
convert_adu_to_electrons(data)

Converts data in ADU units to electron units using the gain for each tap in each channel

Parameters

data (astropy.units.core.IrreducibleUnit) – sequence of images in ADU units

Returns

Return type

Sequence of images in electron units

convert_adu_to_photons(data, wavelength)

Converts data in ADU units to photon units.

Parameters
  • data (astropy.units.core.IrreducibleUnit) – sequence of images in ADU units

  • wavelength (astropy.units.core.PrefixUnit) – wavelength of incident light. Must be broadcastable with data

Returns

Return type

Sequence of images converted to photon units.

convert_electrons_to_photons(data, wavelength)

Converts data in electron units to photon units using the wavelength and the silicon workfunction

Parameters
  • data (astropy.units.core.IrreducibleUnit) – sequence of images in electron units

  • wavelength (astropy.units.core.PrefixUnit) – wavelength of incident light. Must be broadcastable with data

Returns

Return type

Sequence of images in photon units

copy()
Return type

esis.optics.detector.Detector

readout_noise_image(num_channels)

Calculate an image where each pixel contains the expected readout noise at that location

Returns

Return type

Image representing the readout noise at every pixel location.

remove_inactive_pixels(data)

Given a raw image from the ESIS cameras, trim off the blank and overscan pixels, leaving only the light- sensitive pixels

Parameters

data (astropy.units.core.IrreducibleUnit) – An array of raw ESIS images with the blank and overscan pixels still present

Returns

Return type

A cropped array containing only light-sensitive pixels

border_width_bottom: astropy.units.Quantity = <Quantity 0. mm>
border_width_left: astropy.units.Quantity = <Quantity 0. mm>
border_width_right: astropy.units.Quantity = <Quantity 0. mm>
border_width_top: astropy.units.Quantity = <Quantity 0. mm>
property clear_half_height
Return type

astropy.units.core.PrefixUnit

property clear_half_width
Return type

astropy.units.core.PrefixUnit

property clear_height
Return type

astropy.units.core.PrefixUnit

property clear_width
Return type

astropy.units.core.PrefixUnit

cylindrical_azimuth: astropy.units.Quantity = <Quantity 0. deg>
cylindrical_radius: astropy.units.Quantity = <Quantity 0. mm>
property dataframe
Return type

pandas.DataFrame

dynamic_clearance: astropy.units.Quantity = <Quantity 0. mm>
gain: astropy.units.Quantity = <Quantity 0. electron / adu>
inclination: astropy.units.Quantity = <Quantity 0. deg>
name: kgpy.Name
npix_blank: int = 0
npix_overscan: int = 0
num_pixels: Tuple[int, int] = (0, 0)
property num_pixels_all

Number of pixels in each axis including the overscan and blank pixels

Returns

Return type

A tuple containing the total number of pixels along the long axis and short axis.

piston: astropy.units.Quantity = <Quantity 0. mm>
property pixel_half_width
Return type

astropy.units.core.PrefixUnit

pixel_width: astropy.units.Quantity = <Quantity 0. um>
property quadrants

Slices for isolating the pixels associated with each tap on the CCD

Returns

Return type

A 4-tuple containing the pixel ranges for each axis of each quadrant on the sensor.

readout_noise: astropy.units.Quantity = <Quantity 0. adu>
roll: astropy.units.Quantity = <Quantity 0. deg>
property surface
Return type

kgpy.optics.surface.Surface[None, None, kgpy.optics.surface.aperture.Rectangular, kgpy.optics.surface.aperture.AsymmetricRectangular, None]

property transform
Return type

kgpy.transform.rigid.Transform

twist: astropy.units.Quantity = <Quantity 0. deg>