exosim.tasks.radiometric.compute_constant_dark_current_noise#
Classes#
Computes the dark current noise for each aperture in the provided table. |
Module Contents#
- class ComputeConstantDarkCurrentNoise[source]#
Bases:
exosim.tasks.task.TaskComputes 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_sizecolumn 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).