LSST Applications  21.0.0+04719a4bac,21.0.0-1-ga51b5d4+f5e6047307,21.0.0-11-g2b59f77+a9c1acf22d,21.0.0-11-ga42c5b2+86977b0b17,21.0.0-12-gf4ce030+76814010d2,21.0.0-13-g1721dae+760e7a6536,21.0.0-13-g3a573fe+768d78a30a,21.0.0-15-g5a7caf0+f21cbc5713,21.0.0-16-g0fb55c1+b60e2d390c,21.0.0-19-g4cded4ca+71a93a33c0,21.0.0-2-g103fe59+bb20972958,21.0.0-2-g45278ab+04719a4bac,21.0.0-2-g5242d73+3ad5d60fb1,21.0.0-2-g7f82c8f+8babb168e8,21.0.0-2-g8f08a60+06509c8b61,21.0.0-2-g8faa9b5+616205b9df,21.0.0-2-ga326454+8babb168e8,21.0.0-2-gde069b7+5e4aea9c2f,21.0.0-2-gecfae73+1d3a86e577,21.0.0-2-gfc62afb+3ad5d60fb1,21.0.0-25-g1d57be3cd+e73869a214,21.0.0-3-g357aad2+ed88757d29,21.0.0-3-g4a4ce7f+3ad5d60fb1,21.0.0-3-g4be5c26+3ad5d60fb1,21.0.0-3-g65f322c+e0b24896a3,21.0.0-3-g7d9da8d+616205b9df,21.0.0-3-ge02ed75+a9c1acf22d,21.0.0-4-g591bb35+a9c1acf22d,21.0.0-4-g65b4814+b60e2d390c,21.0.0-4-gccdca77+0de219a2bc,21.0.0-4-ge8a399c+6c55c39e83,21.0.0-5-gd00fb1e+05fce91b99,21.0.0-6-gc675373+3ad5d60fb1,21.0.0-64-g1122c245+4fb2b8f86e,21.0.0-7-g04766d7+cd19d05db2,21.0.0-7-gdf92d54+04719a4bac,21.0.0-8-g5674e7b+d1bd76f71f,master-gac4afde19b+a9c1acf22d,w.2021.13
LSST Data Management Base Package
Classes | Functions
lsst.pipe.tasks.measurePsf Namespace Reference

Classes

class  MeasurePsfConfig
 
class  MeasurePsfTask
  More...
 

Functions

def showPsfSpatialCells (exposure, cellSet, showBadCandidates, frame=1)
 
def plotPsfCandidates (cellSet, showBadCandidates=False, frame=1)
 
def plotResiduals (exposure, cellSet, showBadCandidates=False, normalizeResiduals=True, frame=2)
 

Function Documentation

◆ plotPsfCandidates()

def lsst.pipe.tasks.measurePsf.plotPsfCandidates (   cellSet,
  showBadCandidates = False,
  frame = 1 
)

Definition at line 356 of file measurePsf.py.

356 def plotPsfCandidates(cellSet, showBadCandidates=False, frame=1):
357  stamps = []
358  for cell in cellSet.getCellList():
359  for cand in cell.begin(not showBadCandidates): # maybe include bad candidates
360  try:
361  im = cand.getMaskedImage()
362 
363  chi2 = cand.getChi2()
364  if chi2 < 1e100:
365  chi2 = "%.1f" % chi2
366  else:
367  chi2 = float("nan")
368 
369  stamps.append((im, "%d%s" %
370  (maUtils.splitId(cand.getSource().getId(), True)["objId"], chi2),
371  cand.getStatus()))
372  except Exception:
373  continue
374 
375  mos = afwDisplay.utils.Mosaic()
376  disp = afwDisplay.Display(frame=frame)
377  for im, label, status in stamps:
378  im = type(im)(im, True)
379  try:
380  im /= afwMath.makeStatistics(im, afwMath.MAX).getValue()
381  except NotImplementedError:
382  pass
383 
384  mos.append(im, label,
385  afwDisplay.GREEN if status == afwMath.SpatialCellCandidate.GOOD else
386  afwDisplay.YELLOW if status == afwMath.SpatialCellCandidate.UNKNOWN else afwDisplay.RED)
387 
388  if mos.images:
389  disp.mtv(mos.makeMosaic(), title="Psf Candidates")
390 
391 
table::Key< int > type
Definition: Detector.cc:163
Statistics makeStatistics(lsst::afw::image::Image< Pixel > const &img, lsst::afw::image::Mask< image::MaskPixel > const &msk, int const flags, StatisticsControl const &sctrl=StatisticsControl())
Handle a watered-down front-end to the constructor (no variance)
Definition: Statistics.h:354
def plotPsfCandidates(cellSet, showBadCandidates=False, frame=1)
Definition: measurePsf.py:356

◆ plotResiduals()

def lsst.pipe.tasks.measurePsf.plotResiduals (   exposure,
  cellSet,
  showBadCandidates = False,
  normalizeResiduals = True,
  frame = 2 
)

Definition at line 392 of file measurePsf.py.

392 def plotResiduals(exposure, cellSet, showBadCandidates=False, normalizeResiduals=True, frame=2):
393  psf = exposure.getPsf()
394  disp = afwDisplay.Display(frame=frame)
395  while True:
396  try:
397  maUtils.showPsfCandidates(exposure, cellSet, psf=psf, display=disp,
398  normalize=normalizeResiduals,
399  showBadCandidates=showBadCandidates)
400  frame += 1
401  maUtils.showPsfCandidates(exposure, cellSet, psf=psf, display=disp,
402  normalize=normalizeResiduals,
403  showBadCandidates=showBadCandidates,
404  variance=True)
405  frame += 1
406  except Exception:
407  if not showBadCandidates:
408  showBadCandidates = True
409  continue
410  break
411 
412  return frame
def plotResiduals(exposure, cellSet, showBadCandidates=False, normalizeResiduals=True, frame=2)
Definition: measurePsf.py:392

◆ showPsfSpatialCells()

def lsst.pipe.tasks.measurePsf.showPsfSpatialCells (   exposure,
  cellSet,
  showBadCandidates,
  frame = 1 
)

Definition at line 343 of file measurePsf.py.

343 def showPsfSpatialCells(exposure, cellSet, showBadCandidates, frame=1):
344  disp = afwDisplay.Display(frame=frame)
345  maUtils.showPsfSpatialCells(exposure, cellSet,
346  symb="o", ctype=afwDisplay.CYAN, ctypeUnused=afwDisplay.YELLOW,
347  size=4, display=disp)
348  for cell in cellSet.getCellList():
349  for cand in cell.begin(not showBadCandidates): # maybe include bad candidates
350  status = cand.getStatus()
351  disp.dot('+', *cand.getSource().getCentroid(),
352  ctype=afwDisplay.GREEN if status == afwMath.SpatialCellCandidate.GOOD else
353  afwDisplay.YELLOW if status == afwMath.SpatialCellCandidate.UNKNOWN else afwDisplay.RED)
354 
355 
def showPsfSpatialCells(exposure, cellSet, showBadCandidates, frame=1)
Definition: measurePsf.py:343