LinearitySolveTask¶
- 
class lsst.cp.pipe.LinearitySolveTask(*, config: Optional[PipelineTaskConfig] = None, log: Optional[Union[logging.Logger, LsstLogAdapter]] = None, initInputs: Optional[Dict[str, Any]] = None, **kwargs)¶
- Bases: - lsst.pipe.base.PipelineTask- Fit the linearity from the PTC dataset. - Attributes Summary - canMultiprocess- Methods Summary - debugFit(stepname, xVector, yVector, yModel, …)- Debug method for linearity fitting. - emptyMetadata()- Empty (clear) the metadata for this Task and all sub-Tasks. - fillBadAmp(linearizer, fitOrder, inputPtc, amp)- getFullMetadata()- Get metadata for all tasks. - getFullName()- Get the task name as a hierarchical name including parent task names. - getName()- Get the name of the task. - getResourceConfig()- Return resource configuration for this task. - getTaskDict()- Get a dictionary of all tasks as a shallow copy. - makeField(doc)- Make a - lsst.pex.config.ConfigurableFieldfor this task.- makeSubtask(name, **keyArgs)- Create a subtask as a new instance as the - nameattribute of this task.- run(inputPtc, dummy, camera, inputDims[, …])- Fit non-linearity to PTC data, returning the correct Linearizer object. - runQuantum(butlerQC, inputRefs, outputRefs)- Ensure that the input and output dimensions are passed along. - timer(name, logLevel)- Context manager to log performance data for an arbitrary block of code. - Attributes Documentation - 
canMultiprocess= True¶
 - Methods Documentation - 
debugFit(stepname, xVector, yVector, yModel, mask, ampName)¶
- Debug method for linearity fitting. - Parameters: - stepname : str
- A label to use to check if we care to debug at a given line of code. 
- xVector : numpy.array, (N,)
- The values to use as the independent variable in the linearity fit. 
- yVector : numpy.array, (N,)
- The values to use as the dependent variable in the linearity fit. 
- yModel : numpy.array, (N,)
- The values to use as the linearized result. 
- mask : numpy.array[bool], (N,) , optional
- A mask to indicate which entries of - xVectorand- yVectorto keep.
- ampName : str
- Amplifier name to lookup linearity correction values. 
 
- stepname : 
 - 
emptyMetadata() → None¶
- Empty (clear) the metadata for this Task and all sub-Tasks. 
 - 
fillBadAmp(linearizer, fitOrder, inputPtc, amp)¶
 - 
getFullMetadata() → lsst.pipe.base._task_metadata.TaskMetadata¶
- Get metadata for all tasks. - Returns: - metadata : TaskMetadata
- The keys are the full task name. Values are metadata for the top-level task and all subtasks, sub-subtasks, etc. 
 - Notes - The returned metadata includes timing information (if - @timer.timeMethodis used) and any metadata set by the task. The name of each item consists of the full task name with- .replaced by- :, followed by- .and the name of the item, e.g.:- topLevelTaskName:subtaskName:subsubtaskName.itemName - using - :in the full task name disambiguates the rare situation that a task has a subtask and a metadata item with the same name.
- metadata : 
 - 
getFullName() → str¶
- Get the task name as a hierarchical name including parent task names. - Returns: - fullName : str
- The full name consists of the name of the parent task and each subtask separated by periods. For example: - The full name of top-level task “top” is simply “top”.
- The full name of subtask “sub” of top-level task “top” is “top.sub”.
- The full name of subtask “sub2” of subtask “sub” of top-level task “top” is “top.sub.sub2”.
 
 
- fullName : 
 - 
getResourceConfig() → Optional[ResourceConfig]¶
- Return resource configuration for this task. - Returns: - Object of type ResourceConfigorNoneif resource
- configuration is not defined for this task.
 
- Object of type 
 - 
getTaskDict() → Dict[str, weakref.ReferenceType[lsst.pipe.base.task.Task]]¶
- Get a dictionary of all tasks as a shallow copy. - Returns: - taskDict : dict
- Dictionary containing full task name: task object for the top-level task and all subtasks, sub-subtasks, etc. 
 
- taskDict : 
 - 
classmethod makeField(doc: str) → lsst.pex.config.configurableField.ConfigurableField¶
- Make a - lsst.pex.config.ConfigurableFieldfor this task.- Parameters: - doc : str
- Help text for the field. 
 - Returns: - configurableField : lsst.pex.config.ConfigurableField
- A - ConfigurableFieldfor this task.
 - Examples - Provides a convenient way to specify this task is a subtask of another task. - Here is an example of use: - class OtherTaskConfig(lsst.pex.config.Config): aSubtask = ATaskClass.makeField("brief description of task") 
- doc : 
 - 
makeSubtask(name: str, **keyArgs) → None¶
- Create a subtask as a new instance as the - nameattribute of this task.- Parameters: - name : str
- Brief name of the subtask. 
- keyArgs
- Extra keyword arguments used to construct the task. The following arguments are automatically provided and cannot be overridden: - “config”.
- “parentTask”.
 
 - Notes - The subtask must be defined by - Task.config.name, an instance of- ConfigurableFieldor- RegistryField.
- name : 
 - 
run(inputPtc, dummy, camera, inputDims, inputPhotodiodeData=None, inputPhotodiodeCorrection=None)¶
- Fit non-linearity to PTC data, returning the correct Linearizer object. - Parameters: - inputPtc : lsst.ip.isr.PtcDataset
- Pre-measured PTC dataset. 
- dummy : lsst.afw.image.Exposure
- The exposure used to select the appropriate PTC dataset. In almost all circumstances, one of the input exposures used to generate the PTC dataset is the best option. 
- inputPhotodiodeCorrection : lsst.ip.isr.PhotodiodeCorrection
- Pre-measured photodiode correction used in the case when applyPhotodiodeCorrection=True. 
- camera : lsst.afw.cameraGeom.Camera
- Camera geometry. 
- inputPhotodiodeData : dict[str,lsst.ip.isr.PhotodiodeCalib]
- Photodiode readings data. 
- inputDims : lsst.daf.butler.DataCoordinateordict
- DataIds to use to populate the output calibration. 
 - Returns: - results : lsst.pipe.base.Struct
- The results struct containing: - outputLinearizer
- Final linearizer calibration ( - lsst.ip.isr.Linearizer).
- outputProvenance
- Provenance data for the new calibration ( - lsst.ip.isr.IsrProvenance).
 
 - Notes - This task currently fits only polynomial-defined corrections, where the correction coefficients are defined such that: \(corrImage = uncorrImage + \sum_i c_i uncorrImage^(2 + i)\) These \(c_i\) are defined in terms of the direct polynomial fit: \(meanVector ~ P(x=timeVector) = \sum_j k_j x^j\) such that \(c_(j-2) = -k_j/(k_1^j)\) in units of DN^(1-j) (c.f., Eq. 37 of 2003.05978). The - config.polynomialOrderor- config.splineKnotsdefine the maximum order of \(x^j\) to fit. As \(k_0\) and \(k_1\) are degenerate with bias level and gain, they are not included in the non-linearity correction.
- inputPtc : 
 - 
runQuantum(butlerQC, inputRefs, outputRefs)¶
- Ensure that the input and output dimensions are passed along. - Parameters: - butlerQC : lsst.daf.butler.butlerQuantumContext.ButlerQuantumContext
- Butler to operate on. 
- inputRefs : lsst.pipe.base.InputQuantizedConnection
- Input data refs to load. 
- ouptutRefs : lsst.pipe.base.OutputQuantizedConnection
- Output data refs to persist. 
 
- butlerQC : 
 - 
timer(name: str, logLevel: int = 10) → Iterator[None]¶
- Context manager to log performance data for an arbitrary block of code. - Parameters: - See also - timer.logInfo
 - Examples - Creating a timer context: - with self.timer("someCodeToTime"): pass # code to time 
 
-