lsst.meas.extensions.psfex  20.0.0-1-g10df615+65b272dc7c
utils.py
Go to the documentation of this file.
1 import re
2 import numpy as np
3 from astropy.io import fits
4 import lsst.afw.image as afwImage
5 import lsst.afw.display as afwDisplay
6 import lsst.meas.extensions.psfex as psfex
7 
8 afwDisplay.setDefaultMaskTransparency(75)
9 
10 
11 def readSExtractor(filename):
12  with fits.open(filename) as pf:
13  for hdu in pf:
14  if hdu.name == "PRIMARY":
15  pass
16  elif hdu.name == "LDAC_IMHEAD":
17  hdr = hdu.data[0][0] # the fits header from the original fits image
18  print(hdr[3])
19  elif hdu.name == "LDAC_OBJECTS":
20  print("%d objects" % (len(hdu.data)))
21  # Find the VIGNET column
22  ttype = [k for k, v in hdu.header.items() if v == "VIGNET"]
23  if not ttype:
24  raise RuntimeError("Unable to find a VIGNET column")
25  vignetCol = int(re.search(r"^TTYPE(\d+)$", ttype[0]).group(1)) - 1
26 
27  for row in range(len(hdu.data)):
28  pixelData = hdu.data[row][vignetCol]
29  bad = np.where(pixelData < -1e29)
30  sat = np.where(pixelData > 99e3)
31  pixelData[bad] = 0.0
32  mi = afwImage.MaskedImageF(*hdu.data[row][vignetCol].shape)
33  im = mi.getImage()
34  im.getArray()[:] = pixelData
35  msk = mi.getMask().getArray()
36  msk[bad] = afwImage.MaskU.getPlaneBitMask("BAD")
37  msk[sat] = afwImage.MaskU.getPlaneBitMask("SAT")
38  afwDisplay.Display().mtv(mi, title=row)
39  input("Next ")
40 
41 
42 def readPrefs(filename, md=None):
43  return psfex.Prefs(filename, md)
lsst::afw::image
lsst::meas::extensions::psfex.utils.readPrefs
def readPrefs(filename, md=None)
Definition: utils.py:42
lsst::afw::display
lsst::meas::extensions::psfex
Definition: PsfexPsf.h:31
lsst::meas::extensions::psfex.utils.readSExtractor
def readSExtractor(filename)
Definition: utils.py:11
group
table::Key< table::Array< int > > group
Definition: PsfexPsf.cc:359