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
30 import 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 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)