LSST Applications 24.1.5,g02d81e74bb+fa3a7a026e,g180d380827+a53a32eff8,g2079a07aa2+86d27d4dc4,g2305ad1205+c0501b3732,g295015adf3+7d3e92f0ec,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g33d1c0ed96+0e5473021a,g3a166c0a6a+0e5473021a,g3ddfee87b4+5dd1654d75,g48712c4677+3bf1020dcb,g487adcacf7+065c13d9cf,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+d7ac436cfb,g5a732f18d5+53520f316c,g64a986408d+fa3a7a026e,g858d7b2824+fa3a7a026e,g8a8a8dda67+585e252eca,g99cad8db69+a5a909b84f,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+4cf350ccb2,gb0e22166c9+60f28cb32d,gba4ed39666+c2a2e4ac27,gbb8dafda3b+f991a0b59f,gc120e1dc64+9ccbfdb8be,gc28159a63d+0e5473021a,gcf0d15dbbd+5dd1654d75,gd96a1ce819+42fd0ee607,gdaeeff99f8+f9a426f77a,ge6526c86ff+0d71447b4b,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gff1a9f87cc+fa3a7a026e
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
lsst.ip.isr.linearize.LinearizePolynomial Class Reference
Inheritance diagram for lsst.ip.isr.linearize.LinearizePolynomial:
lsst.ip.isr.linearize.LinearizeBase

Public Member Functions

 __call__ (self, image, **kwargs)
 

Static Public Attributes

str LinearityType = "Polynomial"
 

Detailed Description

Correct non-linearity with a polynomial mode.

.. code-block::

    corrImage = uncorrImage + sum_i c_i uncorrImage^(2 + i)

where ``c_i`` are the linearity coefficients for each amplifier.
Lower order coefficients are not included as they duplicate other
calibration parameters:

``k0``
    A coefficient multiplied by ``uncorrImage**0`` is equivalent to
    bias level.  Irrelevant for correcting non-linearity.
``k1``
    A coefficient multiplied by ``uncorrImage**1`` is proportional
    to the gain.  Not necessary for correcting non-linearity.

Definition at line 620 of file linearize.py.

Member Function Documentation

◆ __call__()

lsst.ip.isr.linearize.LinearizePolynomial.__call__ ( self,
image,
** kwargs )
Correct non-linearity.

Parameters
----------
image : `lsst.afw.image.Image`
    Image to be corrected
kwargs : `dict`
    Dictionary of parameter keywords:

    ``coeffs``
        Coefficient vector (`list` or `numpy.array`).
        If the order of the polynomial is n, this list
        should have a length of n-1 ("k0" and "k1" are
        not needed for the correction).
    ``log``
        Logger to handle messages (`logging.Logger`).

Returns
-------
output : `tuple` [`bool`, `int`]
    If true, a correction was applied successfully.  The
    integer indicates the number of pixels that were
    uncorrectable by being out of range.

Reimplemented from lsst.ip.isr.linearize.LinearizeBase.

Definition at line 640 of file linearize.py.

640 def __call__(self, image, **kwargs):
641 """Correct non-linearity.
642
643 Parameters
644 ----------
645 image : `lsst.afw.image.Image`
646 Image to be corrected
647 kwargs : `dict`
648 Dictionary of parameter keywords:
649
650 ``coeffs``
651 Coefficient vector (`list` or `numpy.array`).
652 If the order of the polynomial is n, this list
653 should have a length of n-1 ("k0" and "k1" are
654 not needed for the correction).
655 ``log``
656 Logger to handle messages (`logging.Logger`).
657
658 Returns
659 -------
660 output : `tuple` [`bool`, `int`]
661 If true, a correction was applied successfully. The
662 integer indicates the number of pixels that were
663 uncorrectable by being out of range.
664 """
665 if not np.any(np.isfinite(kwargs['coeffs'])):
666 return False, 0
667 if not np.any(kwargs['coeffs']):
668 return False, 0
669
670 ampArray = image.getArray()
671 correction = np.zeros_like(ampArray)
672 for order, coeff in enumerate(kwargs['coeffs'], start=2):
673 correction += coeff * np.power(ampArray, order)
674 ampArray += correction
675
676 return True, 0
677
678

Member Data Documentation

◆ LinearityType

str lsst.ip.isr.linearize.LinearizePolynomial.LinearityType = "Polynomial"
static

Definition at line 638 of file linearize.py.


The documentation for this class was generated from the following file: