exosim.tasks.radiometric.compute_custom_noise#

Classes#

ComputeCustomNoise

Computes custom noise contributions for radiometric calculations.

Module Contents#

class ComputeCustomNoise[source]#

Bases: exosim.tasks.task.Task

Computes custom noise contributions for radiometric calculations.

This task processes user-defined noise sources that can be added to the radiometric noise budget. It supports three different input formats to accommodate various noise specification methods:

  1. Spectral data tables: wavelength-dependent noise from data files

  2. Multiple noise sources: Using OrderedDict for several contributions

  3. Single noise source: Simple dictionary for one contribution

The task combines multiple noise contributions using quadrature addition: \(\\sigma_{total} = \\sqrt{\\sigma_1^2 + \\sigma_2^2 + ... + \\sigma_n^2}\)

Parameters:
  • wavelength (astropy.units.Quantity) – wavelength array defining the spectral grid for noise calculation. Must have units of length (e.g., micron, nm, angstrom).

  • description (dict, optional) – Channel description dictionary containing the custom noise specification under description["radiometric"]["custom_noise"]. If None or if custom_noise is not present, returns zero noise.

  • radiometric_table (astropy.table.QTable, optional) – Radiometric table that may be used for noise calculations if needed.

Returns:

Table containing: - custom_noise : Combined noise from all sources (units: hr**0.5) - Individual noise columns for each named source (units: hr**0.5)

Return type:

astropy.table.QTable

Notes

  • For spectral data, noise values are rebinned to the target wavelength grid using the Signal class spectral_rebin method

  • For constant values (OrderedDict and simple dict), the value field is assumed to be in ppm and is converted using a 1e-6 factor

  • All noise contributions are combined in quadrature

  • The output table includes both individual noise components and the total

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(wl, description, radiometric_table)[source]#

Compute custom noise contributions for the given wavelengths.

Parameters:
  • wl (astropy.units.Quantity) – wavelength array with shape (N,) and units of length.

  • description (dict or None) – Channel specification dictionary. Custom noise should be located at description["radiometric"]["custom_noise"].

  • radiometric_table (astropy.table.QTable or None) – Radiometric table for potential use in noise calculations.

Returns:

(noise_table, total_custom_noise) where: - noise_table : QTable with individual noise contributions (no total column) - total_custom_noise : Quantity array with total combined noise

Return type:

tuple

process_contribution(contrib_data, wl, custom_noise_table, total_variance, radiometric_table=None)[source]#
parse_constants(contrib_data, wl)[source]#
load_from_file(custom, wl, custom_noise_table)[source]#