LinearitySolveTask

LinearitySolveTask constructs a linearity correction model (a Linearizer) based on the results stored in the input photon transfer curve (PTC) dataset.

Processing summary

LinearitySolveTask runs these operations:

  1. Convert the input exposure time/photodiode flux measurement to a proxy flux by fitting the low-flux end with a linear fit.

  2. Perform fit against using the observed flux and this linear proxy flux (using either a spline or a polynomial).

  3. Store the correction, such that the corrected flux is equal to the uncorrected flux + the linearity correction as a function of the uncorrected flux.

Python API summary

from lsst.cp.pipe.linearity import LinearitySolveTask
classLinearitySolveTask(*, config=None, log=None, initInputs=None, **kwargs)

Fit the linearity from the PTC dataset...

attributeconfig

Access configuration fields and retargetable subtasks.

methodrun(inputPtc, dummy, camera, inputDims, inputPhotodiodeCorrection=None)

Fit non-linearity to PTC data, returning the correct Linearizer object...

See also

See the LinearitySolveTask API reference for complete details.

Retargetable subtasks

No subtasks.

Configuration fields

applyPhotodiodeCorrection

Default
False
Field type

bool Field

Calculate and apply a correction to the photodiode readings?

connections

Data type

lsst.pipe.base.config.LinearitySolveConfigConnections

Field type

ConfigField

Configurations describing the connections of the PipelineTask to datatypes

ignorePtcMask

Default
False
Field type

bool Field

Ignore the expIdMask set by the PTC solver?

linearityType

Default
'Squared'
Field type

str ChoiceField (optional)

Choices
'LookupTable'

Create a lookup table solution.

'Polynomial'

Create an arbitrary polynomial solution.

'Squared'

Create a single order squared solution.

'Spline'

Create a spline based solution.

'None'

Create a dummy solution.

None

Field is optional

Type of linearizer to construct.

maxLinearAdu

Default
20000.0
Field type

float Field

Maximum DN value to use to estimate linear term.

maxLookupTableAdu

Default
262144
Field type

int Field

Maximum DN value for a LookupTable linearizer.

minLinearAdu

Default
30.0
Field type

float Field

Minimum DN value to use to estimate linear term.

nSigmaClipLinear

Default
5.0
Field type

float Field

Maximum deviation from linear solution for Poissonian noise.

photodiodeCurrentScale

Default
-1.0
Field type

float Field

Scale factor to apply to photodiode current values for the CHARGE_SUM integration method. Deprecated: This config has been moved to cpExtractPtcTask, and will be removed after v26.

photodiodeIntegrationMethod

Default
'DIRECT_SUM'
Field type

str ChoiceField (optional)

Choices
'DIRECT_SUM'

Use numpy’s trapz integrator on all photodiode readout entries

'TRIMMED_SUM'

Use numpy’s trapz integrator, clipping the leading and trailing entries, which are nominally at zero baseline level.

'CHARGE_SUM'

Treat the current values as integrated charge over the sampling interval and simply sum the values, after subtracting a baseline level.

None

Field is optional

Integration method for photodiode monitoring data. Deprecated: This config has been moved to cpExtractPtcTask, and will be removed after v26.

polynomialOrder

Default
3
Field type

int RangeField

Range

[2,inf)

Degree of polynomial to fit. Must be at least 2.

saveLogOutput

Default
True
Field type

bool Field

Flag to enable/disable saving of log output for a task, enabled by default.

saveMetadata

Default
True
Field type

bool Field

Flag to enable/disable metadata saving for a task, enabled by default. Deprecated: This field is deprecated and will be removed after v26.

splineFitMaxIter

Default
20
Field type

int Field

Maximum number of iterations for spline fit.

splineFitMaxRejectionPerIteration

Default
5
Field type

int Field

Maximum number of rejections per iteration for spline fit.

splineFitMinIter

Default
3
Field type

int Field

Minimum number of iterations for spline fit.

splineGroupingColumn

Default
None
Field type

str Field (optional)

Column to use for grouping together points for Spline mode, to allow for different proportionality constants. If not set, no grouping will be done.

splineGroupingMinPoints

Default
100
Field type

int Field

Minimum number of linearity points to allow grouping together points for Spline mode with splineGroupingColumn. This configuration is here to prevent misuse of the Spline code to avoid over-fitting.

splineKnots

Default
10
Field type

int Field

Number of spline knots to use in fit.

usePhotodiode

Default
False
Field type

bool Field

Use the photodiode info instead of the raw expTimes?

Debugging

linearFit

Display the linearity solution after the initial linear fit (bool)?

polyFit

Display the linearity solution after generating the polynomial fit (bool)?

splineFit

Display the linearity solution after generating the spline fit (bool)?

solution

Display the final linearity solution (bool)?