12 Helper functions for making fake sources 17 """A version of lsst.pipe.base.DataIdContainer specialized for loading a skyMap 18 in the make fake source catalog scripts. These scripts use the data id in a 19 unique way, such that they only need a tract number. This class supports that 20 use case and should not be used in any other contexts in the LSST stack. 21 Required because butler.subset does not support only tract 25 """Make self.refList from self.idList 28 for dataId
in self.idList:
29 if "tract" not in dataId:
30 raise RuntimeError(
"id must specify which tract to process tract")
34 namespace.log.warn(
"'{}' specified in --id is unused and will be ignored".
format(key))
37 self.refList += [namespace.butler.dataRef(datasetType=
"deepCoadd_skyMap", dataId=addId)
43 Crops the Fake image to fit inside the exposure BBox 44 Note that the bboxes need to have the correct offsets applied 46 fakeImage: fake image object 47 expBBox: bounding box for CCD exposure (integer type, BBoxI) 48 and with offsets applied 51 New cropped fake image 53 fakeBBox = fakeImage.getBBox(lsst.afw.image.PARENT)
55 if not expBBox.contains(fakeBBox):
56 newBBox = fakeImage.getBBox(lsst.afw.image.PARENT)
58 fakeImage = fakeImage.Factory(fakeImage, newBBox,
59 lsst.afw.image.PARENT)
63 def addNoise(galImage, detector, rand_gen=None):
65 adds noise to the the image and returns a variance plane 66 INPUT: image to add noise to 67 detector where the image will be located, this sets the gain 68 NOTE: this assumes float type images and will break if given doubles 69 RETURN: a MaskedImageF with the image with additional noise and the 71 giving the variance due to the object 74 varImage = galImage.Factory(galImage,
True)
77 scale = np.sqrt(np.abs(varImage.getArray())) + 1e-12
78 noiseArray = rand_gen.normal(loc=0.0,
80 size=(galImage.getHeight(),
82 noiseImage = lsst.afw.image.ImageF(noiseArray.astype(np.float32))
83 galImage += noiseImage
85 return lsst.afw.image.MaskedImageF(galImage,
None, varImage)
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
def cropFakeImage(fakeImage, expBBox)
def addNoise(galImage, detector, rand_gen=None)
def makeDataRefList(self, namespace)
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects...