#552 Detector non-linearity and reciprocity failure

A basic method to apply any desired non-linearity on an Image has been included to begin with. The non-linearity can be specified by a LookupTable or as a function, possibly with parameters, that can act on NumPy arrays. In addition, it also includes a feature to correct for reciprocity failure. A basic unit test to test these functionalities have also been built.
Hi all,

The equation for reciprocity failure comes from an unpublished paper by
Jason -- I've attached the relevant page, which also defines the
variables.  The equation seems to be empirically motivated.  I showed Arun
this paper ( http://arxiv.org/abs/1106.1090v1 ) where the power law
behavior breaks down at very low or high fluxes.

p'/T' (a.k.a. base_flux?) is some flux (e-/sec) where the reciprocity
failure correction factor is normalized to 1 - this is an empirically
determined property of the detector itself.  You'd want to let the user
specify this parameter (as well as alpha) but provide sensible default
values for the non-experts.  According to the paper, apparently p'/T'=1 is
sensible.

Is this helpful, or did you need something else?

Chaz



---
Sent from Gmail

On Fri, Nov 21, 2014 at 9:38 PM, Mike Jarvis <notifications@github.com>
wrote:

> In galsim/detectors.py:
>
> > +
> > +
> > +def addReciprocityFailure(self, exp_time, alpha):
> > +    """
> > +    Accounts for the reciprocity failure and corrects the original Image for it directly.
> > +
> > +    Reciprocity failure is identified as a change in the rate of charge accumulation with photon
> > +    flux, resulting in loss of sensitivity at low signal levels. The reciprocity failure results
> > +    in mapping the original image to a new one that is equal to the original `im` multiplied by
> > +    `(1+alpha*log10(im/exp_time))`, where the parameter `alpha` and the exposure time are given
> > +    as keyword arguments.  Because of how this function is defined, the input image must have
> > +    strictly positive pixel values for the resulting image to be well defined.
> > +
> > +    The functional form for the reciprocity failure is motivated empirically from the tests
> > +    carried out on H2RG detectors. See Fig. 1 and Fig. 2 of http://arxiv.org/abs/1106.1090
> > +    for reference.
>
> Now I'm even more confused. What is base_flux?
>
> In particular, how would someone know what the base_flux is supposed to be
> for their image? What about the image is supposed to have a flux of
> 1e'/sec? The average pixel? It's way too low if that's what it is supposed
> to be. Most images have more than that flux level just in the sky, never
> mind the objects with flux you care about. (Well, from the ground anyway --
> probably not for WFirst.)
>
> You refer to it as p'/T', but those letters don't mean anything to me
> either. So I'm completely at a loss for how to interpret this.
>
> --
> Reply to this email directly or view it on GitHub
> <https://github.com/GalSim-developers/GalSim/pull/606/files#r20754982>.
>