def psffit2(img, fwhm, psfstars, hdr, _datamax, psffun='gauss', fixaperture=False): ''' giving an image, a psffile, calculate the magnitudes of strs in the file _psf.coo ''' import lsc _ron = lsc.util.readkey3(hdr, 'ron') _gain = lsc.util.readkey3(hdr, 'gain') if not _ron: _ron = 1 print 'warning ron not defined' if not _gain: _gain = 1 print 'warning ron not defined' iraf.digiphot(_doprint=0) iraf.daophot(_doprint=0) zmag = 0. varord = 0 # -1 analitic 0 - numeric if fixaperture: print 'use fix aperture 5 8 10' hdr = lsc.util.readhdr(img+'.fits') _pixelscale = lsc.util.readkey3(hdr, 'PIXSCALE') a1, a2, a3, a4, = float(5. / _pixelscale), float(5. / _pixelscale), float(8. / _pixelscale), float( 10. / _pixelscale) else: a1, a2, a3, a4, = int(fwhm + 0.5), int(fwhm * 2 + 0.5), int(fwhm * 3 + 0.5), int(fwhm * 4 + 0.5) iraf.fitskypars.annulus = a4 iraf.fitskypars.salgori = 'mean' #mode,mean,gaussian iraf.photpars.apertures = '%d,%d,%d' % (a2, a3, a4) iraf.datapars.datamin = -100 iraf.datapars.datamax = _datamax iraf.datapars.readnoise = _ron iraf.datapars.epadu = _gain iraf.datapars.exposure = 'EXPTIME' iraf.datapars.airmass = '' iraf.datapars.filter = '' iraf.photpars.zmag = zmag iraf.centerpars.calgori = 'centroid' iraf.centerpars.cbox = a2 iraf.daopars.recenter = 'yes' iraf.delete('_psf2.ma*', verify=False) iraf.phot(img+'[0]', '_psf2.coo', '_psf2.mag', interac=False, verify=False, verbose=False) iraf.daopars.psfrad = a4 iraf.daopars.functio = psffun iraf.daopars.fitrad = a1 iraf.daopars.fitsky = 'yes' iraf.daopars.sannulus = a4 iraf.daopars.recenter = 'yes' iraf.daopars.varorder = varord iraf.delete("_als2,_psf.grp,_psf.nrj", verify=False) iraf.group(img + '[0]', '_psf2.mag', img + '.psf', '_psf.grp', verify=False, verbose=False) iraf.nstar(img + '[0]', '_psf.grp', img + '.psf', '_als2', '_psf.nrj', verify=False, verbose=False) photmag = iraf.txdump("_psf2.mag", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) fitmag = iraf.txdump("_als2", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) return photmag, fitmag
def psffit2(img, fwhm, psfstars, hdr, _datamax=45000, psffun='gauss', fixaperture=False): ''' giving an image, a psffile, calculate the magnitudes of strs in the file _psf.coo ''' import lsc _ron = lsc.util.readkey3(hdr, 'ron') _gain = lsc.util.readkey3(hdr, 'gain') if not _ron: _ron = 1 print 'warning ron not defined' if not _gain: _gain = 1 print 'warning ron not defined' iraf.digiphot(_doprint=0) iraf.daophot(_doprint=0) zmag = 0. varord = 0 # -1 analitic 0 - numeric if fixaperture: print 'use fix aperture 5 8 10' hdr = lsc.util.readhdr(img+'.fits') _pixelscale = lsc.util.readkey3(hdr, 'PIXSCALE') a1, a2, a3, a4, = float(5. / _pixelscale), float(5. / _pixelscale), float(8. / _pixelscale), float( 10. / _pixelscale) else: a1, a2, a3, a4, = int(fwhm + 0.5), int(fwhm * 2 + 0.5), int(fwhm * 3 + 0.5), int(fwhm * 4 + 0.5) iraf.fitskypars.annulus = a4 iraf.fitskypars.salgori = 'mean' #mode,mean,gaussian iraf.photpars.apertures = '%d,%d,%d' % (a2, a3, a4) iraf.datapars.datamin = -100 iraf.datapars.datamax = _datamax iraf.datapars.readnoise = _ron iraf.datapars.epadu = _gain iraf.datapars.exposure = 'EXPTIME' iraf.datapars.airmass = '' iraf.datapars.filter = '' iraf.photpars.zmag = zmag iraf.centerpars.calgori = 'centroid' iraf.centerpars.cbox = a2 iraf.daopars.recenter = 'yes' iraf.delete('_psf2.ma*', verify=False) iraf.phot(img+'[0]', '_psf2.coo', '_psf2.mag', interac=False, verify=False, verbose=False) iraf.daopars.psfrad = a4 iraf.daopars.functio = psffun iraf.daopars.fitrad = a1 iraf.daopars.fitsky = 'yes' iraf.daopars.sannulus = a4 iraf.daopars.recenter = 'yes' iraf.daopars.varorder = varord iraf.delete("_als2,_psf.grp,_psf.nrj", verify=False) iraf.group(img + '[0]', '_psf2.mag', img + '.psf', '_psf.grp', verify=False, verbose=False) iraf.nstar(img + '[0]', '_psf.grp', img + '.psf', '_als2', '_psf.nrj', verify=False, verbose=False) photmag = iraf.txdump("_psf2.mag", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) fitmag = iraf.txdump("_als2", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) return photmag, fitmag
def psffit2(img, fwhm, psfstars, hdr, _datamax=45000, psffun='gauss', fixaperture=False): import agnkey iraf.digiphot(_doprint=0) iraf.daophot(_doprint=0) zmag = 0. varord = 0 # -1 analitic 0 - numeric if fixaperture: print 'use fix aperture 5 8 10' hdr = agnkey.util.readhdr(img+'.fits') _pixelscale = agnkey.util.readkey3(hdr, 'PIXSCALE') a1, a2, a3, a4, = float(5. / _pixelscale), float(5. / _pixelscale), float(8. / _pixelscale), float( 10. / _pixelscale) else: a1, a2, a3, a4, = int(fwhm + 0.5), int(fwhm * 2 + 0.5), int(fwhm * 3 + 0.5), int(fwhm * 4 + 0.5) _center='no' iraf.fitskypars.annulus = a4 iraf.fitskypars.dannulus = a4 iraf.noao.digiphot.daophot.daopars.sannulus = int(a4) iraf.noao.digiphot.daophot.daopars.wsannul = int(a4) iraf.fitskypars.salgori = 'mean' #mode,mean,gaussian iraf.photpars.apertures = '%d,%d,%d' % (a2, a3, a4) # iraf.photpars.apertures = '%d,%d,%d'%(a2,a3,a4) iraf.datapars.datamin = -100 iraf.datapars.datamax = _datamax iraf.datapars.readnoise = agnkey.util.readkey3(hdr, 'ron') iraf.datapars.epadu = agnkey.util.readkey3(hdr, 'gain') iraf.datapars.exposure = 'exptime' #agnkey.util.readkey3(hdr,'exptime') iraf.datapars.airmass = 'airmass' iraf.datapars.filter = 'filter2' iraf.centerpars.calgori = 'gauss' iraf.centerpars.cbox = 1 iraf.daopars.recenter = _center iraf.photpars.zmag = zmag iraf.delete('_psf2.ma*', verify=False) iraf.phot(img+'[0]', '_psf2.coo', '_psf2.mag', interac=False, verify=False, verbose=False) iraf.daopars.psfrad = a4 iraf.daopars.functio = psffun iraf.daopars.fitrad = a1 iraf.daopars.fitsky = 'yes' iraf.daopars.sannulus = int(a4) iraf.daopars.wsannul = int(a4) iraf.daopars.recenter = _center iraf.daopars.varorder = varord iraf.delete("_als,_psf.grp,_psf.nrj", verify=False) iraf.group(img+'[0]', '_psf2.mag', img + '.psf', '_psf.grp', verify=False, verbose=False) iraf.nstar(img+'[0]', '_psf.grp', img + '.psf', '_als', '_psf.nrj', verify=False, verbose=False) photmag = iraf.txdump("_psf2.mag", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) fitmag = iraf.txdump("_als", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) return photmag, fitmag
def psffit(img, fwhm, psfstars, hdr, interactive, _datamax=45000, psffun='gauss', fixaperture=False): ''' giving an image, a psffile compute the psf using the file _psf.coo ''' import lsc _ron = lsc.util.readkey3(hdr, 'ron') _gain = lsc.util.readkey3(hdr, 'gain') if not _ron: _ron = 1 print 'warning ron not defined' if not _gain: _gain = 1 print 'warning ron not defined' iraf.digiphot(_doprint=0) iraf.daophot(_doprint=0) zmag = 0. varord = 0 # -1 analitic 0 - numeric if fixaperture: print 'use fix aperture 5 8 10' hdr = lsc.util.readhdr(img+'.fits') _pixelscale = lsc.util.readkey3(hdr, 'PIXSCALE') a1, a2, a3, a4, = float(5. / _pixelscale), float(5. / _pixelscale), float(8. / _pixelscale), float( 10. / _pixelscale) else: a1, a2, a3, a4, = int(fwhm + 0.5), int(fwhm * 2 + 0.5), int(fwhm * 3 + 0.5), int(fwhm * 4 + 0.5) iraf.fitskypars.annulus = a4 iraf.fitskypars.salgori = 'mean' #mode,mean,gaussian iraf.photpars.apertures = '%d,%d,%d' % (a2, a3, a4) iraf.datapars.datamin = -100 iraf.datapars.datamax = _datamax iraf.datapars.readnoise = _ron iraf.datapars.epadu = _gain iraf.datapars.exposure = 'EXPTIME' iraf.datapars.airmass = '' iraf.datapars.filter = '' iraf.centerpars.calgori = 'centroid' iraf.centerpars.cbox = a2 iraf.daopars.recenter = 'yes' iraf.photpars.zmag = zmag iraf.delete('_psf.ma*,' + img + '.psf.fit?,_psf.ps*,_psf.gr?,_psf.n*,_psf.sub.fit?', verify=False) iraf.phot(img+'[0]', '_psf.coo', '_psf.mag', interac=False, verify=False, verbose=False) iraf.daopars.psfrad = a4 iraf.daopars.functio = psffun iraf.daopars.fitrad = a1 iraf.daopars.fitsky = 'yes' iraf.daopars.sannulus = a4 iraf.daopars.recenter = 'yes' iraf.daopars.varorder = varord if interactive: shutil.copyfile('_psf.mag', '_psf.pst') print '_' * 80 print '>>> Mark good stars with "a" or "d"-elete. Then "f"-it,' + \ ' "w"-write and "q"-uit (cursor on ds9)' print '-' * 80 else: iraf.pstselect(img+'[0]', '_psf.mag', '_psf.pst', psfstars, interac=False, verify=False) iraf.psf(img + '[0]', '_psf.mag', '_psf.pst', img + '.psf', '_psf.psto', '_psf.psg', interac=interactive, verify=False, verbose=False) iraf.group(img + '[0]', '_psf.mag', img + '.psf', '_psf.grp', verify=False, verbose=False) iraf.nstar(img + '[0]', '_psf.grp', img + '.psf', '_psf.nst', '_psf.nrj', verify=False, verbose=False) photmag = iraf.txdump("_psf.mag", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) pst = iraf.txdump("_psf.pst", 'xcenter,ycenter,id', expr='yes', Stdout=1) fitmag = iraf.txdump("_psf.nst", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) return photmag, pst, fitmag
def psffit(img, fwhm, psfstars, hdr, interactive, _datamax, psffun='gauss', fixaperture=False): ''' giving an image, a psffile compute the psf using the file _psf.coo ''' import lsc _ron = lsc.util.readkey3(hdr, 'ron') _gain = lsc.util.readkey3(hdr, 'gain') if not _ron: _ron = 1 print 'warning ron not defined' if not _gain: _gain = 1 print 'warning ron not defined' iraf.digiphot(_doprint=0) iraf.daophot(_doprint=0) zmag = 0. varord = 0 # -1 analitic 0 - numeric if fixaperture: print 'use fix aperture 5 8 10' hdr = lsc.util.readhdr(img+'.fits') _pixelscale = lsc.util.readkey3(hdr, 'PIXSCALE') a1, a2, a3, a4, = float(5. / _pixelscale), float(5. / _pixelscale), float(8. / _pixelscale), float( 10. / _pixelscale) else: a1, a2, a3, a4, = int(fwhm + 0.5), int(fwhm * 2 + 0.5), int(fwhm * 3 + 0.5), int(fwhm * 4 + 0.5) iraf.fitskypars.annulus = a4 iraf.fitskypars.salgori = 'mean' #mode,mean,gaussian iraf.photpars.apertures = '%d,%d,%d' % (a2, a3, a4) iraf.datapars.datamin = -100 iraf.datapars.datamax = _datamax iraf.datapars.readnoise = _ron iraf.datapars.epadu = _gain iraf.datapars.exposure = 'EXPTIME' iraf.datapars.airmass = '' iraf.datapars.filter = '' iraf.centerpars.calgori = 'centroid' iraf.centerpars.cbox = a2 iraf.daopars.recenter = 'yes' iraf.photpars.zmag = zmag iraf.delete('_psf.ma*,' + img + '.psf.fit?,_psf.ps*,_psf.gr?,_psf.n*,_psf.sub.fit?', verify=False) iraf.phot(img+'[0]', '_psf.coo', '_psf.mag', interac=False, verify=False, verbose=False) # removes saturated stars from the list (IRAF just issues a warning) with open('_psf.mag') as f: text = f.read() text = re.sub('(.*\n){6}.*BadPixels\* \n', '', text) with open('_psf.mag', 'w') as f: f.write(text) iraf.daopars.psfrad = a4 iraf.daopars.functio = psffun iraf.daopars.fitrad = a1 iraf.daopars.fitsky = 'yes' iraf.daopars.sannulus = a4 iraf.daopars.recenter = 'yes' iraf.daopars.varorder = varord if interactive: # not possible to run pstselect or psf interactively on 64-bit linux (Error 851) shutil.copyfile('_psf.mag', '_psf.pst') print '_' * 80 print '>>> Mark good stars with "a" or "d"-elete. Then "f"-it,' + \ ' "w"-write and "q"-uit (cursor on ds9)' print '-' * 80 else: iraf.pstselect(img+'[0]', '_psf.mag', '_psf.pst', psfstars, interac=False, verify=False) iraf.psf(img + '[0]', '_psf.mag', '_psf.pst', img + '.psf', '_psf.psto', '_psf.psg', interac=interactive, verify=False, verbose=False) iraf.group(img + '[0]', '_psf.mag', img + '.psf', '_psf.grp', verify=False, verbose=False) iraf.nstar(img + '[0]', '_psf.grp', img + '.psf', '_psf.nst', '_psf.nrj', verify=False, verbose=False) photmag = iraf.txdump("_psf.mag", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) pst = iraf.txdump("_psf.pst", 'xcenter,ycenter,id', expr='yes', Stdout=1) fitmag = iraf.txdump("_psf.nst", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) return photmag, pst, fitmag
def psffit(img, fwhm, psfstars, hdr, interactive, _datamin, _datamax, psffun='gauss', fixaperture=False): ''' giving an image, a psffile compute the psf using the file _psf.coo ''' import lsc _ron = lsc.util.readkey3(hdr, 'ron') _gain = lsc.util.readkey3(hdr, 'gain') if not _ron: _ron = 1 print 'warning ron not defined' if not _gain: _gain = 1 print 'warning gain not defined' iraf.digiphot(_doprint=0) iraf.daophot(_doprint=0) zmag = 0. varord = 0 # -1 analitic 0 - numeric if fixaperture: print 'use fix aperture 5 8 10' hdr = lsc.util.readhdr(img + '.fits') _pixelscale = lsc.util.readkey3(hdr, 'PIXSCALE') a1, a2, a3, a4, = float(5. / _pixelscale), float( 5. / _pixelscale), float(8. / _pixelscale), float(10. / _pixelscale) else: a1, a2, a3, a4, = int(fwhm + 0.5), int(fwhm * 2 + 0.5), int(fwhm * 3 + 0.5), int(fwhm * 4 + 0.5) iraf.fitskypars.annulus = a4 iraf.fitskypars.salgori = 'mean' #mode,mean,gaussian iraf.photpars.apertures = '%d,%d,%d' % (a2, a3, a4) iraf.datapars.datamin = _datamin iraf.datapars.datamax = _datamax iraf.datapars.readnoise = _ron iraf.datapars.epadu = _gain iraf.datapars.exposure = 'EXPTIME' iraf.datapars.airmass = '' iraf.datapars.filter = '' iraf.centerpars.calgori = 'centroid' iraf.centerpars.cbox = a2 iraf.daopars.recenter = 'yes' iraf.photpars.zmag = zmag psfout = img.replace('.zogypsf', '') + '.psf.fits' iraf.delete('_psf.ma*,_psf.ps*,_psf.gr?,_psf.n*,_psf.sub.fit?,' + psfout, verify=False) iraf.phot(img + '[0]', '_psf.coo', '_psf.mag', interac=False, verify=False, verbose=False) # removes saturated stars from the list (IRAF just issues a warning) with open('_psf.mag') as f: text = f.read() text = re.sub('(.*\n){6}.*BadPixels\* \n', '', text) with open('_psf.mag', 'w') as f: f.write(text) iraf.daopars.psfrad = a4 iraf.daopars.functio = psffun iraf.daopars.fitrad = a1 iraf.daopars.fitsky = 'yes' iraf.daopars.sannulus = a4 iraf.daopars.recenter = 'yes' iraf.daopars.varorder = varord if interactive: # not possible to run pstselect or psf interactively on 64-bit linux (Error 851) os.system('cp _psf.mag _psf.pst') print '_' * 80 print '>>> Mark good stars with "a" or "d"-elete. Then "f"-it,' + \ ' "w"-write and "q"-uit (cursor on ds9)' print '-' * 80 else: iraf.pstselect(img + '[0]', '_psf.mag', '_psf.pst', psfstars, interac=False, verify=False) iraf.psf(img + '[0]', '_psf.mag', '_psf.pst', psfout, '_psf.psto', '_psf.psg', interac=interactive, verify=False, verbose=False) iraf.group(img + '[0]', '_psf.mag', psfout, '_psf.grp', verify=False, verbose=False) iraf.nstar(img + '[0]', '_psf.grp', psfout, '_psf.nst', '_psf.nrj', verify=False, verbose=False) photmag = iraf.txdump("_psf.mag", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) pst = iraf.txdump("_psf.pst", 'xcenter,ycenter,id', expr='yes', Stdout=1) fitmag = iraf.txdump("_psf.nst", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) return photmag, pst, fitmag
def psffit(img, fwhm, psfstars, hdr, interactive, _datamax=45000, psffun='gauss', fixaperture=False): import agnkey iraf.digiphot(_doprint=0) iraf.daophot(_doprint=0) zmag = 0. varord = 0 # -1 analitic 0 - numeric if fixaperture: print 'use fix aperture 5 8 10' hdr = agnkey.util.readhdr(img+'.fits') _pixelscale = agnkey.util.readkey3(hdr, 'PIXSCALE') a1, a2, a3, a4, = float(5. / _pixelscale), float(5. / _pixelscale), float(8. / _pixelscale), float( 10. / _pixelscale) # a1, a2, a3, a4, = int(5), int(8), int(10), int(12) else: a1, a2, a3, a4, = int(fwhm + 0.5), int(fwhm * 2 + 0.5), int(fwhm * 3 + 0.5), int(fwhm * 4 + 0.5) _center='no' iraf.fitskypars.annulus = a4 iraf.fitskypars.dannulus = a4 iraf.noao.digiphot.daophot.daopars.sannulus = int(a4) iraf.noao.digiphot.daophot.daopars.wsannul = int(a4) iraf.fitskypars.salgori = 'mean' #mode,mean,gaussian iraf.photpars.apertures = '%d,%d,%d' % (a2, a3, a4) # iraf.photpars.apertures = '%d,%d,%d'%(a2,a3,a4) iraf.datapars.datamin = -100 iraf.datapars.datamax = _datamax iraf.datapars.readnoise = agnkey.util.readkey3(hdr, 'ron') iraf.datapars.epadu = agnkey.util.readkey3(hdr, 'gain') iraf.datapars.exposure = 'exptime' #agnkey.util.readkey3(hdr,'exptime') iraf.datapars.airmass = 'airmass' iraf.datapars.filter = 'filter2' iraf.centerpars.calgori = 'gauss' iraf.centerpars.cbox = 1 iraf.daopars.recenter = _center iraf.photpars.zmag = zmag iraf.delete('_psf.ma*,' + img + '.psf.fit?,_psf.ps*,_psf.gr?,_psf.n*,_psf.sub.fit?', verify=False) iraf.phot(img+'[0]', '_psf.coo', '_psf.mag', interac=False, verify=False, verbose=False) iraf.daopars.psfrad = a4 iraf.daopars.functio = psffun iraf.daopars.fitrad = a1 iraf.daopars.fitsky = 'yes' iraf.daopars.sannulus = int(a4) iraf.daopars.wsannul = int(a4) iraf.daopars.recenter = _center iraf.daopars.varorder = varord if interactive: shutil.copyfile('_psf.mag', '_psf.pst') print '_' * 80 print '>>> Mark good stars with "a" or "d"-elete. Then "f"-it,' + \ ' "w"-write and "q"-uit (cursor on ds9)' print '-' * 80 else: iraf.pstselect(img+'.fits[0]', '_psf.mag', '_psf.pst', psfstars, interac=False, verify=False) iraf.psf(img+'.fits[0]', '_psf.mag', '_psf.pst', img + '.psf', '_psf.psto', '_psf.psg', interac=interactive, verify=False, verbose=False) # if os.path.isfile(img + '.psf.fits'): # print 'file there' iraf.group(img+'.fits[0]', '_psf.mag', img + '.psf.fits', '_psf.grp', verify=False, verbose=False) iraf.nstar(img+'.fits[0]', '_psf.grp', img + '.psf.fits', '_psf.nst', '_psf.nrj', verify=False, verbose=False) photmag = iraf.txdump("_psf.mag", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) pst = iraf.txdump("_psf.pst", 'xcenter,ycenter,id', expr='yes', Stdout=1) fitmag = iraf.txdump("_psf.nst", 'xcenter,ycenter,id,mag,merr', expr='yes', Stdout=1) return photmag, pst, fitmag