#!/bin/env python """write out the important header information from a block of fits files""" import pyfits import sys,os,glob def getval(h,lis): for k in lis: val = h.get(k) if val!=None: break if val == None: val = '' return str(val) def fitscat(files): for f in files: if f == '': continue u = pyfits.open(f) h = u[0].header u.close() s = '' telkeys = ['TELESCOP'] datekeys = ['UTC', 'UT', 'TIME-OBS', 'DATE-OBS'] expkeys = ['EXPOSURE', 'EXP', 'EXPTIME', 'ELAPTIME', 'TTIME'] filtkeys = ['FILTERS', 'FILTER', 'FILTER2', 'FILTER1', 'DWFILNAM', 'REDFILT', 'FILTNAM'] objkeys = ['OBJECT'] #targkeys = rakeys = ['RA'] deckeys = ['DEC'] airkeys = ['AIRMASS'] tel = getval(h,telkeys) date = getval(h,datekeys) exp = getval(h,expkeys) filt = getval(h,filtkeys) obj = getval(h,objkeys) ra = getval(h,rakeys) dec = getval(h,deckeys) air = getval(h,airkeys) s = s + f.ljust(20) + ' ' s = s + tel.strip().ljust(11) + ' ' s = s + date.strip().ljust(11) + ' ' s = s + obj.strip().ljust(13) + ' ' s = s + ra.strip().ljust(12) + ' ' s = s + dec.strip().ljust(12) + ' ' s = s + exp.strip().ljust(6) + ' ' s = s + filt.strip()[0:3] + ' ' s = s + air.ljust(5)[0:4] + ' ' 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 and f.find('.fts') < 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 fitscat(files) ################### if __name__=='__main__': main()