lsst.cp.pipe  22.0.0-15-gcbf119a+5bcef16d7b
Functions
lsst.cp.pipe._lookupStaticCalibration Namespace Reference

Functions

def lookupStaticCalibration (datasetType, registry, quantumDataId, collections)
 

Function Documentation

◆ lookupStaticCalibration()

def lsst.cp.pipe._lookupStaticCalibration.lookupStaticCalibration (   datasetType,
  registry,
  quantumDataId,
  collections 
)
A lookup function override for QuantumGraph generation that allows a
PipelineTask to have an input dataset (usually a camera) that is formally a
calibration with a validity range, without having a temporal data ID for
the lookup, by asserting that there is in fact only dataset for all time.

Parameters
----------
datasetType : `lsst.daf.butler.DatasetType`
    Dataset type to look up.
registry : `lsst.daf.butler.Registry`
    Registry for the data repository being searched.
quantumDataId : `lsst.daf.butler.DataCoordinate`
    Data ID for the quantum of the task this dataset will be passed to.
    This must include an "instrument" key, and should also include any
    keys that are present in ``datasetType.dimensions``.  If it has an
    ``exposure`` or ``visit`` key, that's a sign that this function is
    not actually needed, as those come with the temporal information that
    would allow a real validity-range lookup.
collections : `lsst.daf.butler.registry.CollectionSearch`
    Collections passed by the user when generating a QuantumGraph.  Ignored
    by this function (see notes below).

Returns
-------
refs : `list` [ `DatasetRef` ]
    A zero- or single-element list containing the matching dataset, if one
    was found.

Notes
-----
This works by looking in the `~CollectionType.RUN` collection
that `lsst.obs.base.Instrument.writeCuratedCalibrations` (currently!) uses,
instead of the collections passed into it.  This may be considered
surprising by users (but will usually go unnoticed because the dataset
returned _is_ actually in those given input colllections, too).  It may
stop working entirely once we have data repositories with multiple
calibration collections; a better workaround or a more principled change
to the PipelineTasks that use this function (which are by definition asking
for something ill-defined) will ultimately be needed.

Definition at line 27 of file _lookupStaticCalibration.py.