exosim.tasks.radiometric.compute_constant_dark_current_noise#

Classes#

ComputeConstantDarkCurrentNoise

Computes the dark current noise for each aperture in the provided table.

Module Contents#

class ComputeConstantDarkCurrentNoise[source]#

Bases: exosim.tasks.task.Task

Computes the dark current noise for each aperture in the provided table.

The total dark current counts are computed for a fixed exposure time (default: 1 hour), and the noise is given by the square root of the expected counts.

Returns:

  • astropy.table.QTable – The input table with two additional columns: - ‘aperture_area’: calculated area of the aperture - ‘darkcurrent_noise’: computed dark current noise (standard deviation of counts) for 1 hour exposure

  • astropy.units.Quantity – Array of dark current noise values for each aperture.

Raises:

ValueError – If required keys are missing in the description dictionary.

Notes

The dark current noise is calculated as:

noise = sqrt(multiaccum_gain * dark_current_rate * aperture_area * exposure_time)

where:
  • dark_current_rate is in ct/s

  • aperture_area is in pixels (or other consistent units)

  • exposure_time is set to 1 hour

execute()[source]#

Class execution. It runs on call and executes all the task actions returning the outputs. It requires the input with correct keywords

model(signal, aperture_table, description, multiaccum_gain)[source]#

Compute the dark current noise for each aperture using the provided parameters.

This method estimates the dark current noise based on the mean dark current value, the aperture area, and the multiaccum gain. The area of each aperture is taken from the aperture_size column of the input table. The expected dark current counts are computed for a fixed exposure time of 1 hour, and the noise is given by the square root of the expected counts. The result is normalized by the input signal.

The total dark current variance is computed as:

\[\mathrm{dark\_current\_variance} = G \cdot \mu_\mathrm{DC} \cdot A\]

where

  • \(G\) is the multiaccum gain,

  • \(\mu_\mathrm{DC}\) is the mean dark current (in ct/s),

  • \(A\) is the aperture area (in pixels or consistent units).

The dark current noise for a 1 hour exposure is then:

\[\mathrm{dark\_current\_noise} = \sqrt{\frac{\mathrm{dark\_current\_variance}}{3600} \cdot 3600}\]

The result is normalized by the input signal:

\[\mathrm{dark\_current\_noise\_norm} = \frac{\mathrm{dark\_current\_noise}}{S}\]

where \(S\) is the signal.

Parameters:
  • signal (astropy.units.Quantity) – Signal array for normalization.

  • aperture_table (astropy.table.QTable or array-like) – Table containing the aperture information with ‘aperture_size’ column.

  • description (dict) – Dictionary containing the channel description with ‘detector’ key containing ‘dark_current’ and ‘dc_mean’ keys.

  • multiaccum_gain (numpy.ndarray or float) – Multiaccum gain factor for shot noise calculation.

Returns:

  • astropy.table.QTable – The input table with additional ‘dark_current_variance’ and ‘darkcurrent_noise’ columns.

  • astropy.units.Quantity – Array of dark current noise values for each aperture (normalized by the signal).