;12/14/2009 ;This program was written because I will be using data from WIRO, BOK, and CTIO ;0.9m telescopes and want to use one program to write header information for ;both sets of data. The header information written are: exptime, filter, ;observers, and airmass for all telescopes. WIRO also requires the telescope, ;instrument, gain, and readnoise to be added to the header. ; ;This will utilize hedit in IRAF by writing an output file that can be read ;into IRAF ex- cl < header.bin. The program output is called header.bin ; ;execute ;idl> .r mkheaderv2 ;idl> mkheaderv2 ; ;You will be prompted to enter which observatory, the log file, and ;which observers took the data. pro mkheaderv2 ;declare inputs as strings observatory='' log='' observers='' ;prompt user for observing info read,'Name of observatory (BOK,WIRO,CTIO09m) : ',observatory read,'Enter name of observation log : ',log read,'Enter name of observers (no spaces) :',observers if (strmatch(observatory,'*ctio*',/fold_case) eq 1) then begin readcol,log,F='(a,a,a,a,a,a)',file,object,filt,exptime,UT,secz,$ stringskip='#' endif else begin readcol,log,F=('A,A,A,A,A,A,A,A'),file,object,filt,secz,$ skipline=2,stringskip=';' endelse nimages=N_ELEMENTS(file) openw,U,'header.bin',/GET_LUN IF (strmatch(observatory,'*wiro*',/FOLD_CASE)) THEN BEGIN printf,U,'hedit *.fit TELESCOP 2.3m update+ verify-' printf,U,'hedit *.fit INSTRUME WIROprime update+ verify-' printf,U,'hedit *.fit GAIN 2.5 update+ verify- add+' printf,U,'hedit *.fit RDNOISE 4.5 update+ verify- add+' printf,U,'hedit *.fit OBSERVER ',observers,' update+ verify- add+' ENDIF IF (strmatch(observatory,'*bok*',/FOLD_CASE)) THEN BEGIN printf,U,'hedit *[0].fits OBSERVER ',observers,' update+ verify-' ENDIF FOR i=0, nimages-1 DO BEGIN IF (strmatch(observatory,'*wiro*',/FOLD_CASE)) THEN BEGIN IF (strmatch(object[i],'*flat*',/FOLD_CASE)) THEN BEGIN printf,U,'hedit ',file[i],' OBJECT ',object[i], ' add+ verify-' printf,U,'hedit ',file[i],' FILTER ',filt[i],' add+ verify-' printf,U,'hedit ',file[i],' CCDTYPE flat add+ verify-' printf,U,'hedit ',file[i],' IMAGETYP flat add+ verify-' ENDIF ELSE IF (strmatch(object[i],'*bias*',/FOLD_CASE)) THEN BEGIN printf,U,'hedit ',file[i],' OBJECT ',object[i],' update+ verify-' printf,U,'hedit ',file[i],' CCDTYPE bias add+ verify-' printf,U,'hedit ',file[i],' IMAGETYP zero add+ verify-' ENDIF ELSE IF (strmatch(object[i],'*dark*',/FOLD_CASE)) THEN BEGIN printf,U,'hedit ',file[i],' OBJECT ',object[i],' update+ verify-' printf,U,'hedit ',file[i],' CCDTYPE dark add+ verify-' printf,U,'hedit ',file[i],' IMAGETYP dark add+ verify-' ENDIF ELSE BEGIN printf,U,'hedit ',file[i],' OBJECT ',object[i],' add+ verify-' printf,U,'hedit ',file[i],' CCDTYPE object add+ verify-' printf,U,'hedit ',file[i],' IMAGETYP object add+ verify-' printf,U,'hedit ',file[i],' FILTER ',filt[i],' add+ verify-' ENDELSE ENDIF IF (strmatch(observatory,'*bok*',/fold_case) eq 1) THEN BEGIN;add object name for bok telescope printf,U,'hedit ',file[i]+'[0]',' OBJECT ',object[i],' add+ verify-' printf,U,'hedit ',file[i]+'[0]',' FILTER ',filt[i],' add+ verify-' ENDIF IF (strmatch(observatory,'*ctio*',/fold_case) eq 1) THEN BEGIN;add object name for bok telescope temp=(strsplit(file[i],'n',/extract))(0) if (strmatch(object[i],'*zero*',/FOLD_CASE) eq 1) then begin file[i]='b'+temp endif ELSE IF (strmatch(object[i],'*dark*',/FOLD_CASE) eq 1) THEN BEGIN file[i]='d'+temp endif ELSE IF (strmatch(object[i],'*flat*',/FOLD_CASE) eq 1) THEN BEGIN file[i]='f'+temp ENDIF ELSE BEGIN file[i]='a'+temp ENDELSE printf,U,'hedit ',file[i]+'[0]',' AIRMASS ',secz[i],' add+ verify-' printf,U,'hedit ',file[i]+'[0]',' FILTER ',strupcase(filt[i]),' add+ verify-' ENDIF ENDFOR FREE_LUN,U STOP END