14 """Make and write an image of an entire focal plane
18 camera : `lsst.afw.cameraGeom.Camera`
20 exposures : `dict` mapping detector ID to `lsst.afw.image.Exposure`
21 CCD exposures, binned by `binning`.
23 Binning size that has been applied to images.
26 """Source of images for makeImageFromCamera"""
27 def __init__(self, exposures):
32 exposures : `dict` mapping detector ID to `lsst.afw.image.Exposure`
33 CCD exposures, already binned.
36 self.exposures = exposures
37 self.background = np.nan
39 def getCcdImage(self, detector, imageFactory, binSize):
40 """Provide image of CCD to makeImageFromCamera"""
41 detId = detector.getId()
42 if detId
not in self.exposures:
43 dims = detector.getBBox().getDimensions()/binSize
44 image = imageFactory(*[int(xx)
for xx
in dims])
45 image.set(self.background)
47 image = self.exposures[detector.getId()]
48 if hasattr(image,
"getMaskedImage"):
49 image = image.getMaskedImage()
50 if hasattr(image,
"getMask"):
51 mask = image.getMask()
52 isBad = mask.getArray() & mask.getPlaneBitMask(
"NO_DATA") > 0
54 image.getImage().getArray()[isBad] = self.background
55 if hasattr(image,
"getImage"):
56 image = image.getImage()
60 return image, detector
64 imageSource=ImageSource(exposures),
65 imageFactory=afwImage.ImageF,