Camera#

class esis.optics.Camera(sensor=None, gain=<Quantity 2.5 electron / DN>, bits_adc=16, timedelta_exposure=<Quantity 10. s>, timedelta_exposure_min=<Quantity 2. s>, timedelta_exposure_max=<Quantity 600. s>, timedelta_exposure_step=<Quantity 100. ms>, timedelta_transfer=<Quantity 50. ms>, timedelta_readout=<Quantity 1.1 s>, timedelta_sync=<Quantity 0. s>, channel='', channel_trigger=0, *, axis_tap_x='tap_x', axis_tap_y='tap_y')[source]#

Bases: Printable, Camera

A model of the cameras developed by MSFC.

Attributes

axis_tap_x

The name of the logical axis corresponding to changing horizontal tap.

axis_tap_y

The name of the logical axis corresponding to changing vertical tap.

bits_adc

The number of bits supported by the analog-to-digital converter

channel

Human-readable name of each channel of this camera array.

channel_trigger

The master channel which triggers the other channels to start exposing.

gain

The conversion factor between electrons and DN.

sensor

A model of the sensor used by this camera to capture light.

surface

Represent this object as an optika surface.

timedelta_exposure

The current exposure length.

timedelta_exposure_max

The maximum exposure length supported by this camera

timedelta_exposure_min

The minimum exposure length supported by this camera.

timedelta_exposure_step

The smallest possible change in exposure length supported by this camera.

timedelta_readout

The time required to perform a readout operation.

timedelta_sync

The synchronization error between the different channels.

timedelta_transfer

The time required to transfer the exposed pixels into the storage region.

Methods

__init__([sensor, gain, bits_adc, ...])

calibrate_temperature_adc_1(value)

Convert the ADC 1 temperature from counts to physical units.

calibrate_temperature_adc_234(value)

Convert the ADC 2, 3, or 4 temperature from counts to physical units.

calibrate_temperature_fpga(value)

Convert the FPGA temperature from counts to physical units.

calibrate_timedelta_exposure(value)

Convert the exposure time from counts to physical units.

calibrate_voltage_fpga(value)

Convert the FPGA voltage from counts to physical units.

dn_to_electrons(a)

Convert an array from DN to electrons by multiplying by gain.

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.Camera
Parameters:
classmethod calibrate_temperature_adc_1(value)#

Convert the ADC 1 temperature from counts to physical units.

Parameters:

value (int) – The ADC 1 temperature in counts.

Return type:

Quantity

classmethod calibrate_temperature_adc_234(value)#

Convert the ADC 2, 3, or 4 temperature from counts to physical units.

Parameters:

value (int) – The ADC 2, 3, or 4 temperature in counts.

Return type:

Quantity

classmethod calibrate_temperature_fpga(value)#

Convert the FPGA temperature from counts to physical units.

Parameters:

value (int) – The FPGA temperature in counts.

Return type:

Quantity

classmethod calibrate_timedelta_exposure(value)#

Convert the exposure time from counts to physical units.

Parameters:

value (int) – The exposure time in counts.

Return type:

Quantity

classmethod calibrate_voltage_fpga(value)#

Convert the FPGA voltage from counts to physical units.

Parameters:

value (int) – The FPGA voltage in counts.

Return type:

Quantity

dn_to_electrons(a)#

Convert an array from DN to electrons by multiplying by gain.

Parameters:

a (Quantity | AbstractArray)

Return type:

AbstractArray

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

axis_tap_x: str = 'tap_x'#

The name of the logical axis corresponding to changing horizontal tap.

axis_tap_y: str = 'tap_y'#

The name of the logical axis corresponding to changing vertical tap.

bits_adc: int = 16#

The number of bits supported by the analog-to-digital converter

channel: str | AbstractScalar = ''#

Human-readable name of each channel of this camera array.

channel_trigger: int = 0#

The master channel which triggers the other channels to start exposing.

gain: None | Quantity | AbstractScalar = <Quantity 2.5 electron / DN>#

The conversion factor between electrons and DN.

This is usually tap-dependent and contains axis_tap_x and axis_tap_y dimensions.

sensor: None | Sensor = None#

A model of the sensor used by this camera to capture light.

If None (the default), esis.optics.Sensor() will be used.

property surface: AbstractImagingSensor#

Represent this object as an optika surface.

timedelta_exposure: Quantity = <Quantity 10. s>#

The current exposure length.

timedelta_exposure_max: Quantity = <Quantity 600. s>#

The maximum exposure length supported by this camera

timedelta_exposure_min: Quantity = <Quantity 2. s>#

The minimum exposure length supported by this camera.

timedelta_exposure_step: Quantity = <Quantity 100. ms>#

The smallest possible change in exposure length supported by this camera.

timedelta_readout: Quantity = <Quantity 1.1 s>#

The time required to perform a readout operation.

timedelta_sync: Quantity = <Quantity 0. s>#

The synchronization error between the different channels.

timedelta_transfer: Quantity = <Quantity 50. ms>#

The time required to transfer the exposed pixels into the storage region.