315 fp = source.getFootprint()
316 peaks = fp.getPeaks()
317 peaksF = [pk.getF()
for pk
in peaks]
320 fmask.setXY0(fbb.getMinX(), fbb.getMinY())
321 fp.spans.setMask(fmask, 1)
323 psf = exposure.getPsf()
324 psfSigPix = psf.computeShape(psf.getAveragePosition()).getDeterminantRadius()
326 subimage = afwImage.ExposureF(exposure, bbox=fbb, deep=
True)
327 cpsf = deblendBaseline.CachingPsf(psf)
331 return source.getTable().copyRecord(source)
334 speaks = [(p.getPeakValue(), p)
for p
in peaks]
336 dpeaks = [speaks[0][1], speaks[-1][1]]
345 fpres = deblendBaseline.deblend(fp, exposure.getMaskedImage(), psf, psfFwhmPix,
354 fpres = deblendBaseline.DeblenderResult(fp, exposure.getMaskedImage(), psf, psfFwhmPix, self.
log)
356 for pki, (pk, pkres, pkF)
in enumerate(zip(dpeaks, fpres.deblendedParents[0].peaks, peaksF)):
357 self.
log.debug(
'Peak %i', pki)
358 deblendBaseline._fitPsf(fp, fmask, pk, pkF, pkres, fbb, dpeaks, peaksF, self.
log,
364 deblendedSource = source.getTable().copyRecord(source)
365 deblendedSource.setParent(source.getId())
366 peakList = deblendedSource.getFootprint().getPeaks()
369 for i, peak
in enumerate(fpres.deblendedParents[0].peaks):
370 if peak.psfFitFlux > 0:
374 c = peak.psfFitCenter
375 self.
log.info(
"deblended.centroid.dipole.psf.%s %f %f",
377 self.
log.info(
"deblended.chi2dof.dipole.%s %f",
378 suffix, peak.psfFitChisq / peak.psfFitDof)
379 self.
log.info(
"deblended.flux.dipole.psf.%s %f",
380 suffix, peak.psfFitFlux * np.sum(peak.templateImage.array))
381 peakList.append(peak.peak)
382 return deblendedSource