LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
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

def __call__ (self, image, **kwargs)
 

Static Public Attributes

string LinearityType = "Polynomial"
 

Detailed Description

Correct non-linearity with a polynomial mode.

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 595 of file linearize.py.

Member Function Documentation

◆ __call__()

def 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 612 of file linearize.py.

612  def __call__(self, image, **kwargs):
613  """Correct non-linearity.
614 
615  Parameters
616  ----------
617  image : `lsst.afw.image.Image`
618  Image to be corrected
619  kwargs : `dict`
620  Dictionary of parameter keywords:
621  ``"coeffs"``
622  Coefficient vector (`list` or `numpy.array`).
623  If the order of the polynomial is n, this list
624  should have a length of n-1 ("k0" and "k1" are
625  not needed for the correction).
626  ``"log"``
627  Logger to handle messages (`logging.Logger`).
628 
629  Returns
630  -------
631  output : `tuple` [`bool`, `int`]
632  If true, a correction was applied successfully. The
633  integer indicates the number of pixels that were
634  uncorrectable by being out of range.
635  """
636  if not np.any(np.isfinite(kwargs['coeffs'])):
637  return False, 0
638  if not np.any(kwargs['coeffs']):
639  return False, 0
640 
641  ampArray = image.getArray()
642  correction = np.zeros_like(ampArray)
643  for order, coeff in enumerate(kwargs['coeffs'], start=2):
644  correction += coeff * np.power(ampArray, order)
645  ampArray += correction
646 
647  return True, 0
648 
649 

Member Data Documentation

◆ LinearityType

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

Definition at line 610 of file linearize.py.


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