312 fp = source.getFootprint()
313 peaks = fp.getPeaks()
314 peaksF = [pk.getF()
for pk
in peaks]
317 fmask.setXY0(fbb.getMinX(), fbb.getMinY())
318 fp.spans.setMask(fmask, 1)
320 psf = exposure.getPsf()
321 psfSigPix = psf.computeShape(psf.getAveragePosition()).getDeterminantRadius()
323 subimage = afwImage.ExposureF(exposure, bbox=fbb, deep=
True)
324 cpsf = deblendBaseline.CachingPsf(psf)
328 return source.getTable().copyRecord(source)
331 speaks = [(p.getPeakValue(), p)
for p
in peaks]
333 dpeaks = [speaks[0][1], speaks[-1][1]]
342 fpres = deblendBaseline.deblend(fp, exposure.getMaskedImage(), psf, psfFwhmPix,
351 fpres = deblendBaseline.DeblenderResult(fp, exposure.getMaskedImage(), psf, psfFwhmPix, self.
log)
353 for pki, (pk, pkres, pkF)
in enumerate(
zip(dpeaks, fpres.deblendedParents[0].peaks, peaksF)):
354 self.
log.debug(
'Peak %i', pki)
355 deblendBaseline._fitPsf(fp, fmask, pk, pkF, pkres, fbb, dpeaks, peaksF, self.
log,
361 deblendedSource = source.getTable().copyRecord(source)
362 deblendedSource.setParent(source.getId())
363 peakList = deblendedSource.getFootprint().getPeaks()
366 for i, peak
in enumerate(fpres.deblendedParents[0].peaks):
367 if peak.psfFitFlux > 0:
371 c = peak.psfFitCenter
372 self.
log.
info(
"deblended.centroid.dipole.psf.%s %f %f",
374 self.
log.
info(
"deblended.chi2dof.dipole.%s %f",
375 suffix, peak.psfFitChisq / peak.psfFitDof)
376 self.
log.
info(
"deblended.flux.dipole.psf.%s %f",
377 suffix, peak.psfFitFlux * np.sum(peak.templateImage.array))
378 peakList.append(peak.peak)
379 return deblendedSource