CalcZernikesTask¶
- class lsst.ts.wep.task.CalcZernikesTask(**kwargs)¶
- Bases: - PipelineTask- Base class for calculating Zernike coeffs from pairs of DonutStamps. - This class joins the EstimateZernikes and CombineZernikes subtasks to be run on sets of DonutStamps. - Attributes Summary - Methods Summary - createZkTable(extraStamps, intraStamps, ...)- Create the Zernike table to store Zernike Coefficients. - Create the metadata for the Zernike table. - empty([qualityTable, zernikeTable])- Return empty results if no donuts are available. - Empty (clear) the metadata for this Task and all sub-Tasks. - Get metadata for all tasks. - Get the task name as a hierarchical name including parent task names. - getName()- Get the name of the task. - Get a dictionary of all tasks as a shallow copy. - Initialize the table to store the Zernike coefficients - 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(donutStampsExtra, donutStampsIntra[, ...])- Run task algorithm on in-memory data. - runQuantum(butlerQC, inputRefs, outputRefs)- Do butler IO and transform to provide in memory objects for tasks - runmethod.- timer(name[, logLevel])- Context manager to log performance data for an arbitrary block of code. - Attributes Documentation - canMultiprocess: ClassVar[bool] = True¶
 - Methods Documentation - createZkTable(extraStamps: DonutStamps, intraStamps: DonutStamps, zkCoeffRaw: Struct, zkCoeffCombined: Struct) QTable¶
- Create the Zernike table to store Zernike Coefficients. - Note this is written with the assumption that either extraStamps or intraStamps MIGHT be empty. This is because calcZernikesUnpairedTask also uses this method. - Parameters¶- extraStamps: DonutStamps
- The extrafocal stamps 
- intraStamps: DonutStamps
- The intrafocal stamps 
- zkCoeffRaw: pipeBase.Struct
- All zernikes returned by self.estimateZernikes.run(…) 
- zkCoeffCombined
- Combined zernikes returned by self.combineZernikes.run(…) 
 - Returns¶- tableastropy.table.QTable
- Table with the Zernike coefficients 
 
 - createZkTableMetadata()¶
- Create the metadata for the Zernike table. - Returns¶- metadatadict
- Metadata for the Zernike table 
 
 - empty(qualityTable=None, zernikeTable=None) Struct¶
- Return empty results if no donuts are available. If it is a result of no quality donuts we still include the quality table results instead of an empty quality table. - Parameters¶- qualityTableastropy.table.QTable
- Quality table created with donut stamp input. 
- zernikeTableastropy.table.QTable
- Zernike table created with donut stamp input. 
 - Returns¶- lsst.pipe.base.Struct
- Empty output tables for zernikes. Empty quality table if no donuts. Otherwise contains quality table with donuts that all failed to pass quality check. 
 
 - emptyMetadata() None¶
- Empty (clear) the metadata for this Task and all sub-Tasks. 
 - getFullMetadata() TaskMetadata¶
- Get metadata for all tasks. - Returns¶- metadataTaskMetadata
- 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¶- fullNamestr
- 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
 - getName() str¶
- Get the name of the task. - Returns¶- taskNamestr
- Name of the task. 
 - See Also¶- getFullName : Get the full name of the task. 
- taskName
 - getTaskDict() dict[str, weakref.ReferenceType[lsst.pipe.base.task.Task]]¶
- Get a dictionary of all tasks as a shallow copy. - Returns¶- taskDictdict
- Dictionary containing full task name: task object for the top-level task and all subtasks, sub-subtasks, etc. 
 
- taskDict
 - initZkTable() QTable¶
- Initialize the table to store the Zernike coefficients - Returns¶- tableastropy.table.QTable
- Table to store the Zernike coefficients 
 
- table
 - classmethod makeField(doc: str) ConfigurableField¶
- Make a - lsst.pex.config.ConfigurableFieldfor this task.- Parameters¶- docstr
- Help text for the field. 
 - Returns¶- configurableFieldlsst.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: Any) None¶
- Create a subtask as a new instance as the - nameattribute of this task.- Parameters¶- namestr
- 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(donutStampsExtra: DonutStamps, donutStampsIntra: DonutStamps, numCores: int = 1) Struct¶
- Run task algorithm on in-memory data. - This method should be implemented in a subclass. This method will receive keyword-only arguments whose names will be the same as names of connection fields describing input dataset types. Argument values will be data objects retrieved from data butler. If a dataset type is configured with - multiplefield set to- Truethen the argument value will be a list of objects, otherwise it will be a single object.- If the task needs to know its input or output DataIds then it also has to override the - runQuantummethod.- This method should return a - Structwhose attributes share the same name as the connection fields describing output dataset types.- Parameters¶- **kwargsAny
- Arbitrary parameters accepted by subclasses. 
 - Returns¶- structStruct
- Struct with attribute names corresponding to output connection fields. 
 - Examples¶- Typical implementation of this method may look like: - def run(self, *, input, calib): # "input", "calib", and "output" are the names of the # connection fields. # Assuming that input/calib datasets are `scalar` they are # simple objects, do something with inputs and calibs, produce # output image. image = self.makeImage(input, calib) # If output dataset is `scalar` then return object, not list return Struct(output=image) 
- **kwargs
 - runQuantum(butlerQC: QuantumContext, inputRefs: InputQuantizedConnection, outputRefs: OutputQuantizedConnection)¶
- Do butler IO and transform to provide in memory objects for tasks - runmethod.- Parameters¶- butlerQCQuantumContext
- A butler which is specialized to operate in the context of a - lsst.daf.butler.Quantum.
- inputRefsInputQuantizedConnection
- Datastructure whose attribute names are the names that identify connections defined in corresponding - PipelineTaskConnectionsclass. The values of these attributes are the- lsst.daf.butler.DatasetRefobjects associated with the defined input/prerequisite connections.
- outputRefsOutputQuantizedConnection
- Datastructure whose attribute names are the names that identify connections defined in corresponding - PipelineTaskConnectionsclass. The values of these attributes are the- lsst.daf.butler.DatasetRefobjects associated with the defined output connections.
 
- butlerQC
 - timer(name: str, logLevel: int = 10) Iterator[None]¶
- Context manager to log performance data for an arbitrary block of code. - Parameters¶- namestr
- Name of code being timed; data will be logged using item name: - Startand- End.
- logLevelint
- A - logginglevel constant.
 - Examples¶- Creating a timer context: - with self.timer("someCodeToTime"): pass # code to time - See Also¶- lsst.utils.timer.logInfo : Implementation function. 
- name