23"""Convert gen2 to gen3 photocalib files.
26import lsst.pipe.base
as pipeBase
27from lsst.pipe.base
import connectionTypes
28import lsst.afw.table
as afwTable
29import lsst.daf.base
as dafBase
30import lsst.utils
as utils
33__all__ = [
'PhotoCalibConsolidateGen2Gen3Config',
34 'PhotoCalibConsolidateGen2Gen3Connections',
35 'PhotoCalibConsolidateGen2Gen3Task',
36 'SkyWcsConsolidateGen2Gen3Config',
37 'SkyWcsConsolidateGen2Gen3Connections',
38 'SkyWcsConsolidateGen2Gen3Task']
42 dimensions=(
"instrument",
"visit")):
43 photoCalibList = connectionTypes.Input(
44 doc=
"Per-detector photocalibs from fgcm",
45 name=
"fgcm_photoCalib",
46 storageClass=
"PhotoCalib",
47 dimensions=(
"instrument",
"visit",
"detector"),
51 photoCalibGlobalCatalog = connectionTypes.Output(
52 doc=
"Global per-visit photocalibs.",
53 name=
"fgcmPhotoCalibCatalog",
54 storageClass=
"ExposureCatalog",
55 dimensions=(
"instrument",
"visit"),
60 pipelineConnections=PhotoCalibConsolidateGen2Gen3Connections):
66 """Consolidate gen2 photocalibs into gen3 photocalibs."""
67 ConfigClass = PhotoCalibConsolidateGen2Gen3Config
68 _DefaultName =
"photoCalibConsolidateGen2Gen3"
73 @utils.inheritDoc(pipeBase.PipelineTask)
75 visit = butlerQC.quantum.dataId[
'visit']
77 schema = afwTable.ExposureTable.makeMinimalSchema()
78 schema.addField(
'visit', type=
'I', doc=
'visit number')
80 metadata = dafBase.PropertyList()
81 metadata.add(
"COMMENT",
"Catalog id is detector id, sorted")
82 metadata.add(
"COMMENT",
"Only detectors with data have entries")
84 photoCalibCat = afwTable.ExposureCatalog(schema)
85 photoCalibCat.setMetadata(metadata)
86 photoCalibCat.reserve(len(inputRefs.photoCalibList))
88 photoCalibList = butlerQC.get(inputRefs.photoCalibList)
89 for dataRef
in photoCalibList:
90 detector = dataRef.dataId[
'detector']
91 photoCalib = dataRef.get()
92 rec = photoCalibCat.addNew()
95 rec.setPhotoCalib(photoCalib)
99 butlerQC.put(photoCalibCat, outputRefs.photoCalibGlobalCatalog)
103 dimensions=(
"instrument",
"visit",
105 skyWcsList = connectionTypes.Input(
106 doc=
"Per-tract, per-detector wcs calibrations.",
109 dimensions=(
"instrument",
"visit",
"detector",
"tract",
"skymap"),
113 skyWcsTractCatalog = connectionTypes.Output(
114 doc=
"Per-tract, per-visit wcs calibrations.",
115 name=
"jointcalSkyWcsCatalog",
116 storageClass=
"ExposureCatalog",
117 dimensions=(
"instrument",
"visit",
"tract"),
122 pipelineConnections=SkyWcsConsolidateGen2Gen3Connections):
128 """Consolidate gen2 skywcss into gen3 skywcss."""
129 ConfigClass = SkyWcsConsolidateGen2Gen3Config
130 _DefaultName =
"skyWcsConsolidateGen2Gen3"
135 @utils.inheritDoc(pipeBase.PipelineTask)
137 visit = butlerQC.quantum.dataId[
'visit']
139 schema = afwTable.ExposureTable.makeMinimalSchema()
140 schema.addField(
'visit', type=
'I', doc=
'visit number')
142 metadata = dafBase.PropertyList()
143 metadata.add(
"COMMENT",
"Catalog id is detector id, sorted")
144 metadata.add(
"COMMENT",
"Only detectors with data have entries")
146 skyWcsCat = afwTable.ExposureCatalog(schema)
147 skyWcsCat.setMetadata(metadata)
148 skyWcsCat.reserve(len(inputRefs.skyWcsList))
150 skyWcsList = butlerQC.get(inputRefs.skyWcsList)
151 for dataRef
in skyWcsList:
152 detector = dataRef.dataId[
'detector']
153 skyWcs = dataRef.get()
154 rec = skyWcsCat.addNew()
161 butlerQC.put(skyWcsCat, outputRefs.skyWcsTractCatalog)
def runQuantum(self, butlerQC, inputRefs, outputRefs)
def __init__(self, butler=None, **kwargs)
def __init__(self, butler=None, **kwargs)
def runQuantum(self, butlerQC, inputRefs, outputRefs)