LSST Applications g0265f82a02+c6dfa2ddaf,g1162b98a3f+ffe7eabc7e,g2079a07aa2+1b2e822518,g2bbee38e9b+c6dfa2ddaf,g337abbeb29+c6dfa2ddaf,g36da64cc00+ea84795170,g3ddfee87b4+955a963fd8,g50ff169b8f+2eb0e556e8,g52b1c1532d+90ebb246c7,g555ede804d+955a963fd8,g591dd9f2cf+bac198a2cb,g5ec818987f+420292cfeb,g858d7b2824+d6c9a0a3b8,g876c692160+aabc49a3c3,g8a8a8dda67+90ebb246c7,g8cdfe0ae6a+4fd9e222a8,g99cad8db69+e6cd765486,g9ddcbc5298+a1346535a5,ga1e77700b3+df8f93165b,ga8c6da7877+acd47f83f4,gae46bcf261+c6dfa2ddaf,gb0e22166c9+8634eb87fb,gb3f2274832+12c8382528,gba4ed39666+1ac82b564f,gbb8dafda3b+0574160a1f,gbeb006f7da+dea2fbb49f,gc28159a63d+c6dfa2ddaf,gc86a011abf+d6c9a0a3b8,gcf0d15dbbd+955a963fd8,gdaeeff99f8+1cafcb7cd4,gdc0c513512+d6c9a0a3b8,ge79ae78c31+c6dfa2ddaf,geb67518f79+ba1859f325,gee10cc3b42+90ebb246c7,gf1cff7945b+d6c9a0a3b8,w.2024.13
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
lsst.ip.isr.linearize.LinearizeSpline Class Reference
Inheritance diagram for lsst.ip.isr.linearize.LinearizeSpline:
lsst.ip.isr.linearize.LinearizeBase

Public Member Functions

 __call__ (self, image, **kwargs)
 

Static Public Attributes

str LinearityType = "Spline"
 

Detailed Description

Correct non-linearity with a spline model.

corrImage = uncorrImage - Spline(coeffs, uncorrImage)

Notes
-----

The spline fit calculates a correction as a function of the
expected linear flux term.  Because of this, the correction needs
to be subtracted from the observed flux.

Definition at line 720 of file linearize.py.

Member Function Documentation

◆ __call__()

lsst.ip.isr.linearize.LinearizeSpline.__call__ ( self,
image,
** kwargs )
Correct for 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`).
    ``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 735 of file linearize.py.

735 def __call__(self, image, **kwargs):
736 """Correct for non-linearity.
737
738 Parameters
739 ----------
740 image : `lsst.afw.image.Image`
741 Image to be corrected
742 kwargs : `dict`
743 Dictionary of parameter keywords:
744
745 ``coeffs``
746 Coefficient vector (`list` or `numpy.array`).
747 ``log``
748 Logger to handle messages (`logging.Logger`).
749
750 Returns
751 -------
752 output : `tuple` [`bool`, `int`]
753 If true, a correction was applied successfully. The
754 integer indicates the number of pixels that were
755 uncorrectable by being out of range.
756 """
757 splineCoeff = kwargs['coeffs']
758 centers, values = np.split(splineCoeff, 2)
759 # If the spline is not anchored at zero, remove the offset
760 # found at the lowest flux available, and add an anchor at
761 # flux=0.0 if there's no entry at that point.
762 if values[0] != 0:
763 offset = values[0]
764 values -= offset
765 if centers[0] != 0.0:
766 centers = np.concatenate(([0.0], centers))
767 values = np.concatenate(([0.0], values))
768
769 interp = afwMath.makeInterpolate(centers.tolist(), values.tolist(),
770 afwMath.stringToInterpStyle("AKIMA_SPLINE"))
771
772 ampArr = image.getArray()
773 delta = interp.interpolate(ampArr.flatten())
774 ampArr -= np.array(delta).reshape(ampArr.shape)
775
776 return True, 0
777
778
Interpolate::Style stringToInterpStyle(std::string const &style)
Conversion function to switch a string to an Interpolate::Style.
std::shared_ptr< Interpolate > makeInterpolate(std::vector< double > const &x, std::vector< double > const &y, Interpolate::Style const style=Interpolate::AKIMA_SPLINE)
A factory function to make Interpolate objects.

Member Data Documentation

◆ LinearityType

str lsst.ip.isr.linearize.LinearizeSpline.LinearityType = "Spline"
static

Definition at line 733 of file linearize.py.


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