LSST Applications g0d97872fb5+4fd969bb9d,g1653933729+34a971ddd9,g28da252d5a+072f89fe25,g2bbee38e9b+a99b0ab4cd,g2bc492864f+a99b0ab4cd,g2ca4be77d2+c0e3b27cd8,g2cdde0e794+704103fe75,g3156d2b45e+6e87dc994a,g347aa1857d+a99b0ab4cd,g35bb328faa+34a971ddd9,g3a166c0a6a+a99b0ab4cd,g3e281a1b8c+8ec26ec694,g4005a62e65+ba0306790b,g414038480c+9ed5ed841a,g569e0e2b34+cb4faa46ad,g5a97de2502+520531a62c,g717e5f8c0f+29153700a5,g7ede599f99+367733290c,g80478fca09+17051a22cc,g82479be7b0+f2f1ea0a87,g858d7b2824+29153700a5,g8b782ad322+29153700a5,g8cd86fa7b1+05420e7f7d,g9125e01d80+34a971ddd9,ga5288a1d22+e7f674aaf3,gae0086650b+34a971ddd9,gae74b0b5c6+45ef5cdc51,gb58c049af0+ace264a4f2,gc28159a63d+a99b0ab4cd,gcf0d15dbbd+8051a81198,gda6a2b7d83+8051a81198,gdaeeff99f8+7774323b41,gdf4d240d4a+34a971ddd9,ge2409df99d+cb167bac99,ge33fd446bb+29153700a5,ge79ae78c31+a99b0ab4cd,gf0baf85859+890af219f9,gf5289d68f6+9faa5c5784,w.2024.36
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 667 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 687 of file linearize.py.

687 def __call__(self, image, **kwargs):
688 """Correct non-linearity.
689
690 Parameters
691 ----------
692 image : `lsst.afw.image.Image`
693 Image to be corrected
694 kwargs : `dict`
695 Dictionary of parameter keywords:
696
697 ``coeffs``
698 Coefficient vector (`list` or `numpy.array`).
699 If the order of the polynomial is n, this list
700 should have a length of n-1 ("k0" and "k1" are
701 not needed for the correction).
702 ``log``
703 Logger to handle messages (`logging.Logger`).
704
705 Returns
706 -------
707 output : `tuple` [`bool`, `int`]
708 If true, a correction was applied successfully. The
709 integer indicates the number of pixels that were
710 uncorrectable by being out of range.
711 """
712 if not np.any(np.isfinite(kwargs['coeffs'])):
713 return False, 0
714 if not np.any(kwargs['coeffs']):
715 return False, 0
716
717 ampArray = image.getArray()
718 correction = np.zeros_like(ampArray)
719 for order, coeff in enumerate(kwargs['coeffs'], start=2):
720 correction += coeff * np.power(ampArray, order)
721 ampArray += correction
722
723 return True, 0
724
725

Member Data Documentation

◆ LinearityType

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

Definition at line 685 of file linearize.py.


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