23 """Convert gen2 to gen3 photocalib files.
26 import lsst.pipe.base
as pipeBase
27 from lsst.pipe.base
import connectionTypes
28 import lsst.afw.table
as afwTable
29 import lsst.daf.base
as dafBase
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 def _getMetadataName(self):
76 @utils.inheritDoc(pipeBase.PipelineTask)
78 visit = butlerQC.quantum.dataId[
'visit']
80 schema = afwTable.ExposureTable.makeMinimalSchema()
81 schema.addField(
'visit', type=
'I', doc=
'visit number')
83 metadata = dafBase.PropertyList()
84 metadata.add(
"COMMENT",
"Catalog id is detector id, sorted")
85 metadata.add(
"COMMENT",
"Only detectors with data have entries")
87 photoCalibCat = afwTable.ExposureCatalog(schema)
88 photoCalibCat.setMetadata(metadata)
89 photoCalibCat.reserve(len(inputRefs.photoCalibList))
91 photoCalibList = butlerQC.get(inputRefs.photoCalibList)
92 for dataRef
in photoCalibList:
93 detector = dataRef.dataId[
'detector']
94 photoCalib = dataRef.get()
95 rec = photoCalibCat.addNew()
98 rec.setPhotoCalib(photoCalib)
102 butlerQC.put(photoCalibCat, outputRefs.photoCalibGlobalCatalog)
106 dimensions=(
"instrument",
"visit",
108 skyWcsList = connectionTypes.Input(
109 doc=
"Per-tract, per-detector wcs calibrations.",
112 dimensions=(
"instrument",
"visit",
"detector",
"tract",
"skymap"),
116 skyWcsTractCatalog = connectionTypes.Output(
117 doc=
"Per-tract, per-visit wcs calibrations.",
118 name=
"jointcalSkyWcsCatalog",
119 storageClass=
"ExposureCatalog",
120 dimensions=(
"instrument",
"visit",
"tract"),
125 pipelineConnections=SkyWcsConsolidateGen2Gen3Connections):
131 """Consolidate gen2 skywcss into gen3 skywcss."""
132 ConfigClass = SkyWcsConsolidateGen2Gen3Config
133 _DefaultName =
"skyWcsConsolidateGen2Gen3"
138 def _getMetadataName(self):
141 @utils.inheritDoc(pipeBase.PipelineTask)
143 visit = butlerQC.quantum.dataId[
'visit']
145 schema = afwTable.ExposureTable.makeMinimalSchema()
146 schema.addField(
'visit', type=
'I', doc=
'visit number')
148 metadata = dafBase.PropertyList()
149 metadata.add(
"COMMENT",
"Catalog id is detector id, sorted")
150 metadata.add(
"COMMENT",
"Only detectors with data have entries")
152 skyWcsCat = afwTable.ExposureCatalog(schema)
153 skyWcsCat.setMetadata(metadata)
154 skyWcsCat.reserve(len(inputRefs.skyWcsList))
156 skyWcsList = butlerQC.get(inputRefs.skyWcsList)
157 for dataRef
in skyWcsList:
158 detector = dataRef.dataId[
'detector']
159 skyWcs = dataRef.get()
160 rec = skyWcsCat.addNew()
167 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)