23__all__ = [
"GetRegionTimeFromVisitTask",
"GetRegionTimeFromVisitConfig"]
26import lsst.pipe.base
as pipeBase
27from lsst.pipe.base.utils
import RegionTimeInfo
28from lsst.utils.timer
import timeMethod
32 dimensions={
"instrument",
"group",
"detector"},
33 defaultTemplates={
"coaddName":
"goodSeeing",
"fakesType":
""}):
35 dummy_visit = pipeBase.connectionTypes.Input(
36 doc=
"Placeholder connection to provide visit-detector records and "
37 "constrain data IDs to images we're processing. Use of a catalog "
38 "dataset lets us also control how late in the pipeline the task "
40 name=
"{fakesType}{coaddName}Diff_diaSrcTable",
41 storageClass=
"DataFrame",
42 dimensions={
"instrument",
"visit",
"detector"},
44 dummy_exposure = pipeBase.connectionTypes.Output(
45 doc=
"Placeholder connection to guarantee visit-exposure-group mapping. "
46 "This output is never produced and need not be registered.",
47 name=
"getRegionTimeFromVisit_dummy",
49 dimensions={
"instrument",
"exposure"},
52 output = pipeBase.connectionTypes.Output(
53 doc=
"The region and time associated with this group's visit.",
54 name=
"regionTimeInfo",
55 storageClass=
"RegionTimeInfo",
56 dimensions={
"instrument",
"group",
"detector"},
60class GetRegionTimeFromVisitConfig(pipeBase.PipelineTaskConfig,
61 pipelineConnections=GetRegionTimeFromVisitConnections):
65class GetRegionTimeFromVisitTask(pipeBase.PipelineTask):
66 """A converter that reads metadata from visit-dimension records and writes
67 it to a Butler dataset.
69 _DefaultName =
"getRegionTimeFromVisit"
70 ConfigClass = GetRegionTimeFromVisitConfig
73 def runQuantum(self, butlerQC, inputRefs, outputRefs):
74 """Convert the passed dataset refs to persistable metadata.
77 times = inputRefs.dummy_visit.dataId.records[
"visit"].timespan
78 region = inputRefs.dummy_visit.dataId.records[
"visit_detector_region"].region
79 outputs = pipeBase.Struct(
80 output=RegionTimeInfo(region=region, timespan=times),
83 butlerQC.put(outputs, outputRefs)