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.",
38 name=
"initial_stars_footprints_detector",
39 storageClass=
"SourceCatalog",
40 dimensions=[
"instrument",
"visit",
"detector"],
42 dummy_exposure = pipeBase.connectionTypes.Output(
43 doc=
"Placeholder connection to guarantee visit-exposure-group mapping. "
44 "This output is never produced and need not be registered.",
45 name=
"getRegionTimeFromVisit_dummy2",
47 dimensions={
"instrument",
"exposure",
"detector"},
50 output = pipeBase.connectionTypes.Output(
51 doc=
"The region and time associated with this group's visit.",
52 name=
"regionTimeInfo",
53 storageClass=
"RegionTimeInfo",
54 dimensions={
"instrument",
"group",
"detector"},
58class GetRegionTimeFromVisitConfig(pipeBase.PipelineTaskConfig,
59 pipelineConnections=GetRegionTimeFromVisitConnections):
63class GetRegionTimeFromVisitTask(pipeBase.PipelineTask):
64 """A converter that reads metadata from visit-dimension records and writes
65 it to a Butler dataset.
67 _DefaultName =
"getRegionTimeFromVisit"
68 ConfigClass = GetRegionTimeFromVisitConfig
71 def runQuantum(self, butlerQC, inputRefs, outputRefs):
72 """Convert the passed dataset refs to persistable metadata.
75 times = inputRefs.dummy_visit.dataId.records[
"visit"].timespan
76 region = inputRefs.dummy_visit.dataId.records[
"visit_detector_region"].region
77 self.log.info(
"Associated visit for this group is %d", inputRefs.dummy_visit.dataId[
"visit"])
78 self.metadata[
"visit"] = inputRefs.dummy_visit.dataId[
"visit"]
79 outputs = pipeBase.Struct(
80 output=RegionTimeInfo(region=region, timespan=times),
83 butlerQC.put(outputs, outputRefs)