LSST Applications g011c388f00+f985364e28,g0265f82a02+cefac37fe7,g16a3bce237+cefac37fe7,g2079a07aa2+b9108c1c87,g2bbee38e9b+cefac37fe7,g337abbeb29+cefac37fe7,g3ddfee87b4+425a3f5e02,g4cf46543a9+2ef32aa566,g50ff169b8f+8309cf5058,g52b1c1532d+43dac7135f,g5d89126706+46afc7f72d,g83996f0134+2fb8039c37,g858d7b2824+59f22cc8bb,g87e100324b+59f22cc8bb,g8a8a8dda67+43dac7135f,g99855d9996+1ea0a8cf94,g9d147d8712+4559cd7206,g9ddcbc5298+389b8f2b7e,ga1e77700b3+4bafba478f,ga8c6da7877+1b58c58f75,gae46bcf261+cefac37fe7,gb700894bec+f0b514b300,gb8350603e9+4979c46fed,gba4ed39666+fb465f0d3e,gbeb006f7da+bf3b4a8997,gc86a011abf+59f22cc8bb,gcf0d15dbbd+425a3f5e02,gd162630629+d0c22ff203,gd44f2fa1a7+91fd017016,gdaeeff99f8+6b435c3f92,ge79ae78c31+cefac37fe7,ge9008a0c34+425a3f5e02,gee10cc3b42+43dac7135f,gf041782ebf+713927f999,gf1cff7945b+59f22cc8bb,w.2024.07
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
lsst.ip.diffim.diffimTools.NbasisEvaluator Class Reference
Inheritance diagram for lsst.ip.diffim.diffimTools.NbasisEvaluator:

Public Member Functions

 __init__ (self, psfMatchConfig, psfFwhmPixTc, psfFwhmPixTnc)
 
 __call__ (self, kernelCellSet, log)
 

Public Attributes

 psfMatchConfig
 
 psfFwhmPixTc
 
 psfFwhmPixTnc
 

Detailed Description

A functor to evaluate the Bayesian Information Criterion for the number of basis sets
going into the kernel fitting

Definition at line 535 of file diffimTools.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.ip.diffim.diffimTools.NbasisEvaluator.__init__ (   self,
  psfMatchConfig,
  psfFwhmPixTc,
  psfFwhmPixTnc 
)

Definition at line 539 of file diffimTools.py.

539 def __init__(self, psfMatchConfig, psfFwhmPixTc, psfFwhmPixTnc):
540 self.psfMatchConfig = psfMatchConfig
541 self.psfFwhmPixTc = psfFwhmPixTc
542 self.psfFwhmPixTnc = psfFwhmPixTnc
543 if not self.psfMatchConfig.kernelBasisSet == "alard-lupton":
544 raise RuntimeError("BIC only implemnted for AL (alard lupton) basis")
545

Member Function Documentation

◆ __call__()

lsst.ip.diffim.diffimTools.NbasisEvaluator.__call__ (   self,
  kernelCellSet,
  log 
)

Definition at line 546 of file diffimTools.py.

546 def __call__(self, kernelCellSet, log):
547 d1, d2, d3 = self.psfMatchConfig.alardDegGauss
548 bicArray = {}
549 for d1i in range(1, d1 + 1):
550 for d2i in range(1, d2 + 1):
551 for d3i in range(1, d3 + 1):
552 dList = [d1i, d2i, d3i]
553 bicConfig = type(self.psfMatchConfig)(self.psfMatchConfig, alardDegGauss=dList)
554 kList = makeKernelBasisList(bicConfig, self.psfFwhmPixTc, self.psfFwhmPixTnc)
555 k = len(kList)
556 visitor = diffimLib.BuildSingleKernelVisitorF(kList,
557 pexConfig.makePropertySet(bicConfig))
558 visitor.setSkipBuilt(False)
559 kernelCellSet.visitCandidates(visitor, bicConfig.nStarPerCell)
560
561 for cell in kernelCellSet.getCellList():
562 for cand in cell.begin(False): # False = include bad candidates
563 if cand.getStatus() != afwMath.SpatialCellCandidate.GOOD:
564 continue
565 diffIm = cand.getDifferenceImage(diffimLib.KernelCandidateF.RECENT)
566 bbox = cand.getKernel(diffimLib.KernelCandidateF.RECENT).shrinkBBox(
567 diffIm.getBBox(afwImage.LOCAL))
568 diffIm = type(diffIm)(diffIm, bbox, True)
569 chi2 = diffIm.image.array**2/diffIm.variance.array
570 n = chi2.shape[0]*chi2.shape[1]
571 bic = np.sum(chi2) + k*np.log(n)
572 if cand.getId() not in bicArray:
573 bicArray[cand.getId()] = {}
574 bicArray[cand.getId()][(d1i, d2i, d3i)] = bic
575
576 bestConfigs = []
577 for candId in bicArray:
578 cconfig, cvals = list(bicArray[candId].keys()), list(bicArray[candId].values())
579 idx = np.argsort(cvals)
580 bestConfig = cconfig[idx[0]]
581 bestConfigs.append(bestConfig)
582
583 counter = Counter(bestConfigs).most_common(3)
584 log.info("B.I.C. prefers basis complexity %s %d times; %s %d times; %s %d times",
585 counter[0][0], counter[0][1],
586 counter[1][0], counter[1][1],
587 counter[2][0], counter[2][1])
588 return counter[0][0], counter[1][0], counter[2][0]
table::Key< int > type
Definition Detector.cc:163
daf::base::PropertyList * list
Definition fits.cc:932

Member Data Documentation

◆ psfFwhmPixTc

lsst.ip.diffim.diffimTools.NbasisEvaluator.psfFwhmPixTc

Definition at line 541 of file diffimTools.py.

◆ psfFwhmPixTnc

lsst.ip.diffim.diffimTools.NbasisEvaluator.psfFwhmPixTnc

Definition at line 542 of file diffimTools.py.

◆ psfMatchConfig

lsst.ip.diffim.diffimTools.NbasisEvaluator.psfMatchConfig

Definition at line 540 of file diffimTools.py.


The documentation for this class was generated from the following file: