#!/bin/env python """write out the important header information from a block of fits files""" from pyfits import getheader import sys,os,glob def deg2sex(dec): degree = int(dec) minute = int((dec - degree)*60) second = ((dec - degree)*60 - minute)*60 secint = int(second) secdec = int((second - secint)*100) return "%02i:%02i:%.02i.%02i" % (degree, minute, secint, secdec) def hr2sex(ra): decimalhour = ra / 15. hour = int(decimalhour) minute = int((decimalhour - hour)*60) second = ((decimalhour - hour)*60 - minute)*60 secint = int(second) secdec = int((second - secint)*100) return "%02i:%02i:%.02i.%02i" % (hour, minute, secint, secdec) def nirccat(files): for f in files: if f == '': continue h = getheader(f) s = '' file = f[f.rfind('/')+1:] file = file[:file.rfind('.fits')] try: tstart = h['STRT_CPU'].strip() tstop = h['STOP_CPU'].strip() target = h['TRGTNAME'].strip() object = h['OBJECT'].strip() try: airmass = "%.2f" % h['AIRMASS'] except: airmass = "??" exp = "%.2f" % h['EXPTIME'] #coadd = "%3i" % h['frmcoadd'] filt = h['FILTER'] except: #if this is not a standard file, ignore it print f + ' appears non-standard' continue filtarr = filt.split() filt = filtarr[0] if filt == 'K': filt = filt + filtarr[1][0] s = s + f.ljust(36) + ' ' #s = s + coadd.ljust(2) + 'x' s = s + exp.ljust(4)[0:4] + ' ' s = s + filt.ljust(2) + ' ' #s = s + ra.ljust(11) + ' ' #s = s + dec.ljust(11) + ' ' s = s + airmass.ljust(5) + ' ' s = s + tstart.ljust(21) + ' ' s = s + tstop.ljust(25) + ' ' print s ################### def main(): argv = sys.argv verbose = 1 input = '' input2 = '' fileselector = ["*.fits"] #default if (len(argv)>=2): for v in argv[1:]: if v[0] != '-': fileselector.append(v) if len(fileselector) > 1: fileselector = fileselector[1:] files = [] for fs in fileselector: files += glob.glob(fs) nbadfilenames = 0 for i in range(len(files)): f = files[i] #print f if f.find('.fit') < 0: if (len(argv)>=2): print f + ' is not a fits file.' files[i] = '' nbadfilenames = nbadfilenames + 1 if len(files) - nbadfilenames <= 0: print 'Error: No valid .fits files specified.' return 1 nirccat(files) ################### if __name__=='__main__': main()