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: Optional[PipelineTaskConfig] = None, log: Optional[Union[logging.Logger, LsstLogAdapter]] = None, initInputs: Optional[Dict[str, Any]] = None, **kwargs)

Fit the linearity from the PTC dataset...

attributeconfig

Access configuration fields and retargetable subtasks.

methodrun(inputPtc, dummy, camera, inputDims, inputPhotodiodeData=None, 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.Connections
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.

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.
None
Field is optional
Integration method for photodiode monitoring data.

polynomialOrder

Default
3
Field type
int Field
Degree of polynomial to fit.

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.

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)?