BrighterFatterKernelSolveTask

class lsst.cp.pipe.BrighterFatterKernelSolveTask(*, config: Optional[PipelineTaskConfig] = None, log: Optional[Union[logging.Logger, LsstLogAdapter]] = None, initInputs: Optional[Dict[str, Any]] = None, **kwargs)

Bases: lsst.pipe.base.PipelineTask

Measure appropriate Brighter-Fatter Kernel from the PTC dataset.

Attributes Summary

canMultiprocess

Methods Summary

averageCorrelations(xCorrList, name) Average input correlations.
emptyMetadata() Empty (clear) the metadata for this Task and all sub-Tasks.
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.ConfigurableField for this task.
makeSubtask(name, **keyArgs) Create a subtask as a new instance as the name attribute of this task.
quadraticCorrelations(xCorrList, fluxList, name) Measure a quadratic correlation model.
run(inputPtc, dummy, camera, inputDims) Combine covariance information from PTC into brighter-fatter kernels.
runQuantum(butlerQC, inputRefs, outputRefs) Ensure that the input and output dimensions are passed along.
successiveOverRelax(source[, maxIter, eLevel]) An implementation of the successive over relaxation (SOR) method.
timer(name, logLevel) Context manager to log performance data for an arbitrary block of code.

Attributes Documentation

canMultiprocess = True

Methods Documentation

averageCorrelations(xCorrList, name)

Average input correlations.

Parameters:
xCorrList : list [numpy.array]

List of cross-correlations. These are expected to be square arrays.

name : str

Name for log messages.

Returns:
meanXcorr : numpy.array, (N, N)

The averaged cross-correlation.

emptyMetadata() → None

Empty (clear) the metadata for this Task and all sub-Tasks.

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.timeMethod is 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.

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”.
getName() → str

Get the name of the task.

Returns:
taskName : str

Name of the task.

See also

getFullName
getResourceConfig() → Optional[ResourceConfig]

Return resource configuration for this task.

Returns:
Object of type ResourceConfig or None if resource
configuration is not defined for this task.
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.

classmethod makeField(doc: str) → lsst.pex.config.configurableField.ConfigurableField

Make a lsst.pex.config.ConfigurableField for this task.

Parameters:
doc : str

Help text for the field.

Returns:
configurableField : lsst.pex.config.ConfigurableField

A ConfigurableField for 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")
makeSubtask(name: str, **keyArgs) → None

Create a subtask as a new instance as the name attribute 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 ConfigurableField or RegistryField.

quadraticCorrelations(xCorrList, fluxList, name)

Measure a quadratic correlation model.

Parameters:
xCorrList : list [numpy.array]

List of cross-correlations. These are expected to be square arrays.

fluxList : numpy.array, (Nflux,)

Associated list of fluxes.

name : str

Name for log messages.

Returns:
meanXcorr : numpy.array, (N, N)

The averaged cross-correlation.

run(inputPtc, dummy, camera, inputDims)

Combine covariance information from PTC into brighter-fatter kernels.

Parameters:
inputPtc : lsst.ip.isr.PhotonTransferCurveDataset

PTC data containing per-amplifier covariance measurements.

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.

camera : lsst.afw.cameraGeom.Camera

Camera to use for camera geometry information.

inputDims : lsst.daf.butler.DataCoordinate or dict

DataIds to use to populate the output calibration.

Returns:
results : lsst.pipe.base.Struct

The resulst struct containing:

outputBfk

Resulting Brighter-Fatter Kernel (lsst.ip.isr.BrighterFatterKernel).

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.

successiveOverRelax(source, maxIter=None, eLevel=None)

An implementation of the successive over relaxation (SOR) method.

A numerical method for solving a system of linear equations with faster convergence than the Gauss-Seidel method.

Parameters:
source : numpy.ndarray, (N, N)

The input array.

maxIter : int, optional

Maximum number of iterations to attempt before aborting.

eLevel : float, optional

The target error level at which we deem convergence to have occurred.

Returns:
output : numpy.ndarray, (N, N)

The solution.

timer(name: str, logLevel: int = 10) → Iterator[None]

Context manager to log performance data for an arbitrary block of code.

Parameters:
name : str

Name of code being timed; data will be logged using item name: Start and End.

logLevel

A logging level constant.

See also

timer.logInfo

Examples

Creating a timer context:

with self.timer("someCodeToTime"):
    pass  # code to time