; given an XO FITS header, it extracts the keywords of interest in ; a standard way and sends them back as a vector v ; ; .r bnkeys ; key1=bnkeys(headfits('/data/sps/test/c002752101'+'.0h')) function bnkeys,header nan = !values.f_nan ; 0=master, 1=slave d = sxpar(header,'INSTID') if d eq 'SN 2324 CCD' then camera = 0 if d eq 'SN 2325 CCD' then camera = 1 ; decode the DDD HHMM Hawaii time from the UTC in header d = sxpar(header,'date-obs') t = sxpar(header,'time-obs') dv = date_conv(d+' '+t,'real') dv = date_conv(dv-10./24.,'vector') v = fltarr(65) + nan v( 0) = sxpar(header,'jd') ; this jd is only good to 0.25 day ; because we use floating point v( 1) = sxpar(header,'mjd-obs') v( 2) = sxpar(header,'naxis2d')/1000 v( 3) = dv[1] v( 4) = dv[2]*100 + dv[3] + round(dv[4]/60.) v( 5) = camera ; v(6) = 0.0 to use this epoch, otherwise it's a flag for why it is rejected. v( 6) = 0.0 ;v( 7) = resistant mean mag for each epoch before star-by-star calibration ; this is provided by bnphotcalib with ncal=0 v( 7) = 0.0 ;v( 8) = resistant sigma mag for each epoch after star-by-star calibration ; this is provided by bnphotcalib v( 8) = 0.0 ;v( 9) = Heliocentric Julian date for center of field of view ; this is provided by bnarrange v( 9) = 0.0 v(12) = sxpar(header,'naxis2') v(13) = sxpar(header,'gain') v(14) = sxpar(header,'ccdtemp') v(15) = sxpar(header,'lst') v(16) = sxpar(header,'sunra') v(17) = sxpar(header,'sundec') v(18) = sxpar(header,'sunalt') v(19) = sxpar(header,'sunazi') v(20) = sxpar(header,'moonra') v(21) = sxpar(header,'moondec') v(22) = sxpar(header,'moonalt') v(23) = sxpar(header,'moonazi') v(24) = sxpar(header,'moonphas') v(25) = sxpar(header,'mountra') v(26) = sxpar(header,'mountdec') v(27) = sxpar(header,'scanrate') v(28) = sxpar(header,'naxis2d') v(29) = sxpar(header,'naxis2t') v(30) = sxpar(header,'n_sps') v(31) = sxpar(header,'latency1') v(32) = sxpar(header,'tambient') v(33) = sxpar(header,'humidity') v(34) = sxpar(header,'dewpoint') v(35) = sxpar(header,'windspee') v(36) = sxpar(header,'winddire') v(37) = sxpar(header,'rain1') v(38) = sxpar(header,'rain2') v(39) = sxpar(header,'pressure') v(40) = sxpar(header,'nowcast') v(41) = sxpar(header,'forecast') v(42) = sxpar(header,'crval1') v(43) = sxpar(header,'crval2') v(44) = sxpar(header,'crpix1') v(45) = sxpar(header,'crpix2') v(46) = sxpar(header,'cd1_1') v(47) = sxpar(header,'cd1_2') v(48) = sxpar(header,'cd2_1') v(49) = sxpar(header,'cd2_2') v(50) = sxpar(header,'cdelt1') v(51) = sxpar(header,'crota1') v(52) = sxpar(header,'n_astrom') v(53) = sxpar(header,'skymean') v(54) = sxpar(header,'skystdv') v(55) = sxpar(header,'hourangl') v(56) = sxpar(header,'zenith') v(57) = sxpar(header,'altitude') v(58) = sxpar(header,'azimuth') v(59) = sxpar(header,'airmass') v(60) = sxpar(header,'moondist') v(61) = sxpar(header,'sundist') v(62) = sxpar(header,'gl') v(63) = sxpar(header,'gb') v(64) = sxpar(header,'moonsb') return,v end