Source code for exosim.tasks.radiometric.multiaccum

from exosim.tasks.task import Task


[docs]class Multiaccum(Task): """ It computes the MULTIACCUM gain factor from Rauscher and Fox 2007 (http://iopscience.iop.org/article/10.1086/520887/pdf) with the correction from Robberto 2009, also reported in Batalha 2017 (https://doi.org/10.1088/1538-3873/aa65b0) Returns --------- float: read noise gain factor float: shot noise gain factor """ def __init__(self): """ Parameters __________ parameters: dict dictionary containing the MULTIACCUM channel parameters. This is usually parsed from :class:`~exosim.tasks.load.loadOptions.LoadOptions` """ self.add_task_param("parameters", "multiaccum parameters dict")
[docs] def execute(self): self.debug("computing MULTIACCUM") parameters = self.get_task_param("parameters") n = parameters["n"] m = parameters["m"] tf = parameters["tf"] tg = parameters["tg"] if n < 2: n = 2.0 # Force to CDS in nRead < 2 read_gain = 12.0 * (n - 1.0) / (m * (n**2 + n)) shot_gain = ( 6.0 / 5.0 * (n**2 + 1.0) / (n**2 + n) * (n - 1.0) * tg + (m**2 - 1.0) * (n - 1.0) / (m * (n**2 + n)) * tf ) self.set_output([read_gain, shot_gain])