DcrAssembleCoaddConnections

class lsst.pipe.tasks.dcrAssembleCoadd.DcrAssembleCoaddConnections(*, config=None)

Bases: lsst.pipe.base.PipelineTaskConnections

Attributes Summary

allConnections
brightObjectMask Class used for declaring PipelineTask prerequisite connections
dcrCoadds
dcrNImages
defaultTemplates
dimensions
initInputs
initOutputs
inputWarps
inputs
outputs
prerequisiteInputs
skyMap
templateExposure

Methods Summary

adjustQuantum(datasetRefMap, …) Override to make adjustments to lsst.daf.butler.DatasetRef objects in the lsst.daf.butler.core.Quantum during the graph generation stage of the activator.
buildDatasetRefs(quantum) Builds QuantizedConnections corresponding to input Quantum

Attributes Documentation

allConnections = {'brightObjectMask': PrerequisiteInput(name='brightObjectMask', storageClass='ObjectMaskCatalog', doc='Input Bright Object Mask mask produced with external catalogs to be applied to the mask plane BRIGHT_OBJECT.', multiple=False, dimensions=('tract', 'patch', 'skymap', 'band'), isCalibration=False, deferLoad=False, lookupFunction=None), 'dcrCoadds': Output(name='{fakesType}{outputCoaddName}Coadd{warpTypeSuffix}', storageClass='ExposureF', doc='Output coadded exposure, produced by stacking input warps', multiple=True, dimensions=('tract', 'patch', 'skymap', 'band', 'subfilter'), isCalibration=False), 'dcrNImages': Output(name='{outputCoaddName}Coadd_nImage', storageClass='ImageU', doc='Output image of number of input images per pixel', multiple=True, dimensions=('tract', 'patch', 'skymap', 'band', 'subfilter'), isCalibration=False), 'inputWarps': Input(name='{inputCoaddName}Coadd_{warpType}Warp', storageClass='ExposureF', doc='Input list of warps to be assembled i.e. stacked.WarpType (e.g. direct, psfMatched) is controlled by the warpType config parameter', multiple=True, dimensions=('tract', 'patch', 'skymap', 'visit', 'instrument'), isCalibration=False, deferLoad=True), 'skyMap': Input(name='skyMap', storageClass='SkyMap', doc='Input definition of geometry/bbox and projection/wcs for coadded exposures', multiple=False, dimensions=('skymap',), isCalibration=False, deferLoad=False), 'templateExposure': Input(name='{fakesType}{inputCoaddName}Coadd{warpTypeSuffix}', storageClass='ExposureF', doc='Input coadded exposure, produced by previous call to AssembleCoadd', multiple=False, dimensions=('tract', 'patch', 'skymap', 'band'), isCalibration=False, deferLoad=False)}
brightObjectMask

Class used for declaring PipelineTask prerequisite connections

Parameters:
name : str

The default name used to identify the dataset type

storageClass : str

The storage class used when (un)/persisting the dataset type

multiple : bool

Indicates if this connection should expect to contain multiple objects of the given dataset type

dimensions : iterable of str

The lsst.daf.butler.Butler lsst.daf.butler.Registry dimensions used to identify the dataset type identified by the specified name

deferLoad : bool

Indicates that this dataset type will be loaded as a lsst.daf.butler.DeferredDatasetHandle. PipelineTasks can use this object to load the object at a later time.

lookupFunction: `typing.Callable`, optional

An optional callable function that will look up PrerequisiteInputs using the DatasetType, registry, quantum dataId, and input collections passed to it. If no function is specified, the default temporal spatial lookup will be used.

Notes

Prerequisite inputs are used for datasets that must exist in the data repository before a pipeline including this is run; they cannot be produced by another task in the same pipeline.

In exchange for this limitation, they have a number of advantages relative to regular Input connections:

  • The query used to find them then during QuantumGraph generation can be fully customized by providing a lookupFunction.
  • Failed searches for prerequisites during QuantumGraph generation will usually generate more helpful diagnostics than those for regular Input connections.
  • The default query for prerequisite inputs relates the quantum dimensions directly to the dimensions of its dataset type, without being constrained by any of the other dimensions in the pipeline. This allows them to be used for temporal calibration lookups (which regular Input connections cannot do at present) and to work around QuantumGraph generation limitations involving cases where naive spatial overlap relationships between dimensions are not desired (e.g. a task that wants all detectors in each visit for which the visit overlaps a tract, not just those where that detector+visit combination overlaps the tract).
dcrCoadds
dcrNImages
defaultTemplates = {'fakesType': '', 'inputCoaddName': 'deep', 'outputCoaddName': 'dcr', 'warpType': 'direct', 'warpTypeSuffix': ''}
dimensions = {'tract', 'skymap', 'band', 'patch'}
initInputs = frozenset()
initOutputs = frozenset()
inputWarps
inputs = frozenset({'inputWarps', 'skyMap', 'templateExposure'})
outputs = frozenset({'dcrCoadds', 'dcrNImages'})
prerequisiteInputs = frozenset({'brightObjectMask'})
skyMap
templateExposure

Methods Documentation

adjustQuantum(datasetRefMap: lsst.daf.butler.core.named.NamedKeyDict[lsst.daf.butler.core.datasets.type.DatasetType, typing.Set[lsst.daf.butler.core.datasets.ref.DatasetRef]][lsst.daf.butler.core.datasets.type.DatasetType, Set[lsst.daf.butler.core.datasets.ref.DatasetRef]]) → lsst.daf.butler.core.named.NamedKeyDict[lsst.daf.butler.core.datasets.type.DatasetType, typing.Set[lsst.daf.butler.core.datasets.ref.DatasetRef]][lsst.daf.butler.core.datasets.type.DatasetType, Set[lsst.daf.butler.core.datasets.ref.DatasetRef]]

Override to make adjustments to lsst.daf.butler.DatasetRef objects in the lsst.daf.butler.core.Quantum during the graph generation stage of the activator.

The base class implementation simply checks that input connections with multiple set to False have no more than one dataset.

Parameters:
datasetRefMap : NamedKeyDict

Mapping from dataset type to a set of lsst.daf.butler.DatasetRef objects

Returns:
datasetRefMap : NamedKeyDict

Modified mapping of input with possibly adjusted lsst.daf.butler.DatasetRef objects.

Raises:
ScalarError

Raised if any Input or PrerequisiteInput connection has multiple set to False, but multiple datasets.

Exception

Overrides of this function have the option of raising an Exception if a field in the input does not satisfy a need for a corresponding pipelineTask, i.e. no reference catalogs are found.

buildDatasetRefs(quantum: lsst.daf.butler.core.quantum.Quantum) → Tuple[lsst.pipe.base.connections.InputQuantizedConnection, lsst.pipe.base.connections.OutputQuantizedConnection]

Builds QuantizedConnections corresponding to input Quantum

Parameters:
quantum : lsst.daf.butler.Quantum

Quantum object which defines the inputs and outputs for a given unit of processing

Returns:
retVal : tuple of (InputQuantizedConnection,

OutputQuantizedConnection) Namespaces mapping attribute names (identifiers of connections) to butler references defined in the input lsst.daf.butler.Quantum