79 config: SingleFrameCompensatedTophatFluxConfig,
86 super().
__init__(config, name, schema, metadata, logName, **kwds)
94 for aperture
in config.apertures:
95 base_key = f
"{name}_{aperture}"
98 flux_str = f
"{base_key}_instFlux"
99 flux_key = schema.addField(
102 doc=
"Compensated Tophat flux measurement.",
107 err_str = f
"{base_key}_instFluxErr"
108 err_key = schema.addField(
111 doc=
"Compensated Tophat flux error.",
116 mask_str = f
"{base_key}_mask_bits"
117 mask_key = schema.addField(mask_str, type=np.int32, doc=
"Mask bits set within aperture.")
120 failure_flag = flagDefs.add(f
"{aperture}_flag",
"Compensated Tophat measurement failed")
121 oob_flag = flagDefs.add(f
"{aperture}_flag_bounds",
"Compensated Tophat out-of-bounds")
123 self.
aperture_keys[aperture] = (flux_key, err_key, mask_key, failure_flag, oob_flag)
136 center = measRecord.getCentroid()
137 bbox = exposure.getBBox()
139 y = center.getY() - bbox.beginY
140 x = center.getX() - bbox.beginX
142 y_floor = math.floor(y)
143 x_floor = math.floor(x)
147 for aperture, (flux_key, err_key, mask_key, failure_flag, oob_flag)
in self.
aperture_keys.items():
148 rad = self.
_rads[aperture]
152 if Point2I(center)
not in exposure.getBBox().erodedBy(rad):
153 self.
flagHandler.setValue(measRecord, failure_flag.number,
True)
154 self.
flagHandler.setValue(measRecord, oob_flag.number,
True)
159 y_slice = slice(y_floor - rad, y_floor + rad + 1, 1)
160 x_slice = slice(x_floor - rad, x_floor + rad + 1, 1)
164 sub_mask = exposure.mask.array[y_slice, x_slice]
166 if sub_mask.size == 0
or sub_mask.shape[0] != sub_mask.shape[1]
or (sub_mask.shape[0] % 2) == 0:
167 self.
flagHandler.setValue(measRecord, failure_flag.number,
True)
168 self.
flagHandler.setValue(measRecord, oob_flag.number,
True)
173 float(aperture), 0.0),
175 tophat = ApertureFluxAlgorithm.computeFlux(exposure.maskedImage, ellipse, ctrl)
177 inner = ApertureFluxAlgorithm.computeFlux(exposure.maskedImage, ellipse, ctrl)
179 outer = ApertureFluxAlgorithm.computeFlux(exposure.maskedImage, ellipse, ctrl)