pro dical_insertCalKeywords, hdr ;;----------------------------------------------------------------------------- ;; PURPOSE: ;; Inserts into the FITS header all of the calibration keywords ;; ;; CALLING SEQUENCE: ;; dical_insertCalKeywords, hdr ;; ;; REQUIRED INPUTS: ;; hdr - the FITS header to insert keywords into ;; ;; OUTPUTS: ;; hdr - the header with the new keywords added ;; ;; OPTIONAL INPUT KEYWORDS: ;; ;; EXAMPLE: ;; IDL> dical_insertCalKeywords, hdr ;; ;; PROCEDURES USED (i.e. called directly!): ;; sxaddpar - Adds a keyword ;; ;; MODIFICATION HISTORY: ;; 2004-08-02 M. Desnoyer Created ;; 2005-04-05 B. Carcich Modified default values for some ;; keywords from '' to -999 to match ;; their normal values. The reason for ;; doing this is that some of the values ;; will not be set by the DIcal procedure ;; (e.g. if a module is not run, its ;; component keywords will not be changed ;; from these default values). So, if the ;; default keywords are of a different type ;; from the set keywords, that may cause ;; a problem for any later processing that uses ;; all of the images' keyword values e.g. ;; a database. ;; 2005-06-07 M. Desnoyer Fixed typo in LINBC4 comment ;; ;;----------------------------------------------------------------------------- @version ;; Get the DICAL version number ;; Update keywords for the calibration sxaddpar, hdr, 'BZERO', 0.0, ' Data is 32-bit floating point' sxaddpar, hdr, 'BSCALE', 1.0, ' Data is 32-bit floating point' ;; Remove the "un" from every comment that contains the word "uncalibrated" w = where(strmatch(hdr, 'COMMENT*uncalibrated*') EQ 1,c) IF c GT 0 THEN BEGIN loc = strpos(hdr[w],'uncalibrated') hdr[w] = strmid(hdr[w],0,loc)+strmid(hdr[w],loc+2) ENDIF ;; Insert a temporary value to stack everything on top of sxaddpar, hdr, 'CALTMP', 'T' ;; Insert the first comment stars='***********************************************************************' cmt = '** Calibration information, steps, and files (common to IR and VIS)' sxaddpar, hdr, 'COMMENT', stars, before='CALTMP' sxaddpar, hdr, 'COMMENT', cmt, before='CALTMP' sxaddpar, hdr, 'COMMENT', stars, before='CALTMP' ;; Insert all the common header keywords sxaddpar, hdr, 'FILEVERN', 1.10, ' Version number of file format', before='CALTMP', $ format='(F5.2)' sxaddpar, hdr, 'PGMNAME', 'DICAL', ' Program name that produced this file', before='CALTMP' sxaddpar, hdr, 'PGMVERN', version, ' Version number of the above program', before='CALTMP', $ format='(F5.2)' sxaddpar, hdr, 'DATAQUAL', -999, ' Data quality (1=good, etc)', before='CALTMP' sxaddpar, hdr, 'TMPVLTUP', 'F', ' Physical temps and voltages updated (T/F)', before='CALTMP' sxaddpar, hdr, 'TMPVLTV', '', ' Valid date of physical temps and voltages used', before='CALTMP' sxaddpar, hdr, 'SMOBENT', -1.00, ' Smoothed over time version of OPTBENT [K]', before='CALTMP' sxaddpar, hdr, 'CMPRESSN', 'F', ' Decompression performed (T/F)', before='CALTMP' sxaddpar, hdr, 'LUTTABLE', '', ' Lossy lookup table/algorithm applied', before='CALTMP' sxaddpar, hdr, 'CMPRMETH', -999, ' Decompress method. 1=avg,2=gauss,3=uniform', before='CALTMP' sxaddpar, hdr, 'SATPIX', 'F', ' Saturated pixels flagged (T/F)', before='CALTMP' sxaddpar, hdr, 'SMSATVL', 0L, ' DN value where some pixels are saturated', before='CALTMP' sxaddpar, hdr, 'MSTSATVL', 0L, ' DN value where most pixels are saturated', before='CALTMP' sxaddpar, hdr, 'ADCSATVL', 0L, ' DN value where the ADC encoder is saturated', before='CALTMP' sxaddpar, hdr, 'BITCORR', 'F', ' Uneven bit weighting corrected (T/F)', before='CALTMP' sxaddpar, hdr, 'BITLUT', '', ' Bit weighting lookup table used', before='CALTMP' sxaddpar, hdr, 'DARKCORR', 'F', ' Dark subtration (T/F)', before='CALTMP' sxaddpar, hdr, 'DARKALG', '', ' Algorithm used to create dark', before='CALTMP' sxaddpar, hdr, 'DARKFN', '', ' File name for the frame/model used', before='CALTMP' sxaddpar, hdr, 'BIASFN', '', ' Filename of bias frame used', before='CALTMP' sxaddpar, hdr, 'XTALK', 'F', ' Electrical crosstalk removed (T/F)', before='CALTMP' sxaddpar, hdr, 'XTALKFN', '', ' Filename of crosstalk gains used', before='CALTMP' sxaddpar, hdr, 'GAINCORR', 'F', ' Quadrant Gain correction performed (T/F)', before='CALTMP' sxaddpar, hdr, 'GAINFN', '', ' Filename of gain values used', before='CALTMP' sxaddpar, hdr, 'FLATCORR', 'F', ' Flat fielded', before='CALTMP' sxaddpar, hdr, 'FLATFILE', '', ' Name of flat field applied', before='CALTMP' sxaddpar, hdr, 'BPIXFL', 'F', ' Bad pixels flagged (T/F)', before='CALTMP' sxaddpar, hdr, 'BPIXFILE', '', ' Name of bad pixel map applied', before='CALTMP' sxaddpar, hdr, 'CLEAN', 'F', ' Cleaned/fill small gaps (T/F)', before='CALTMP' sxaddpar, hdr, 'CLEANV', -999, ' Max filled gap size; -999999=>fill failed', before='CALTMP' sxaddpar, hdr, 'CLNBAD', 'F', ' Bad pixels cleaned', before='CALTMP' sxaddpar, hdr, 'CLNMISS', 'F', ' Missing data cleaned', before='CALTMP' sxaddpar, hdr, 'DESPIKE', 'F', ' Despiking applied (T/F)', before='CALTMP' sxaddpar, hdr, 'DESPIKET', -999, ' Despiking threshold used (sigma)', before='CALTMP' sxaddpar, hdr, 'DESPIKEI', -999, ' Number of iterations of despiking', before='CALTMP' sxaddpar, hdr, 'DESPIKEB', -999, ' Boxsize for despiking', before='CALTMP' sxaddpar, hdr, 'DESPIKEM', '', ' Metric used for despiking. Mean or Median', before='CALTMP' sxaddpar, hdr, 'DENOISE', 'F', ' Denoising applied (T/F)', before='CALTMP' sxaddpar, hdr, 'DENOISEV', '', ' Denoise parameter applied', before='CALTMP' sxaddpar, hdr, 'DECON', 'F', ' Deconvolution performed (T/F)', before='CALTMP' sxaddpar, hdr, 'DECONPSF', '', ' Deconvolution psf used', before='CALTMP' sxaddpar, hdr, 'DECONALG', '', ' Deconvolution algorithm used', before='CALTMP' sxaddpar, hdr, 'DECONV', '', ' Deconvolution algorithm-specific parameter', before='CALTMP' ;; Insert second comment cmt = '** Calibration information, steps, and files specific to IR' sxaddpar, hdr, 'COMMENT', stars, before='CALTMP' sxaddpar, hdr, 'COMMENT', cmt, before='CALTMP' sxaddpar, hdr, 'COMMENT', stars, before='CALTMP' ;; Insert IR keywords sxaddpar, hdr, 'LINEARIZ', 'F', ' Linearization applied (T/F)', before='CALTMP' sxaddpar, hdr, 'LINAC0', -999d0, ' Quad A additive constant for linearization', before='CALTMP' sxaddpar, hdr, 'LINAC1', -999d0, ' Quad A coefficient for x term', before='CALTMP' sxaddpar, hdr, 'LINAC2', -999d0, ' Quad A coefficient for x-squared term', before='CALTMP' sxaddpar, hdr, 'LINAC3', -999d0, ' Quad A coefficient for x-cubed term', before='CALTMP' sxaddpar, hdr, 'LINAC4', -999d0, ' Quad A coefficient for x-4th term', before='CALTMP' sxaddpar, hdr, 'LINBC0', -999d0, ' Quad B additive constant for linearization', before='CALTMP' sxaddpar, hdr, 'LINBC1', -999d0, ' Quad B coefficient for x term', before='CALTMP' sxaddpar, hdr, 'LINBC2', -999d0, ' Quad B coefficient for x-squared term', before='CALTMP' sxaddpar, hdr, 'LINBC3', -999d0, ' Quad B coefficient for x-cubed term', before='CALTMP' sxaddpar, hdr, 'LINBC4', -999d0, ' Quad B coefficient for x-4th term', before='CALTMP' sxaddpar, hdr, 'MDARKVER', '', ' Master dark frame version', before='CALTMP' sxaddpar, hdr, 'DRKPMODE', -999, ' Mode of the previous set taken', before='CALTMP' sxaddpar, hdr, 'DARKISG', -999d0, ' Inter-sequence gap [msec]', before='CALTMP' sxaddpar, hdr, 'DARKA0', -999d0, ' Dark level temp coef A_0', before='CALTMP' sxaddpar, hdr, 'DARKA1', -999d0, ' Dark level temp coef A_1', before='CALTMP' sxaddpar, hdr, 'DARKB0', -999d0, ' Dark level temp coef B_0', before='CALTMP' sxaddpar, hdr, 'DARKB1', -999d0, ' Dark level temp coef B_1', before='CALTMP' sxaddpar, hdr, 'DARKC0', -999d0, ' Dark level temp coef C_0', before='CALTMP' sxaddpar, hdr, 'DRKTMSCL', -999d0, ' Dark scaling factor for time dependency', before='CALTMP' sxaddpar, hdr, 'DARKPLAT', '', ' Dark plateau reached', before='CALTMP' sxaddpar, hdr, 'DARKMSCL', -999d0, ' Manually derived scaling factor', before='CALTMP' sxaddpar, hdr, 'CALCORR', 'F', ' Calibration Applied (T/F)', before='CALTMP' sxaddpar, hdr, 'CALCONST', -999d0, ' Calibration Constant Applied', before='CALTMP' sxaddpar, hdr, 'CALNUMB0', -999, ' Number of ZERO calibration factors found', before='CALTMP' sxaddpar, hdr, 'CALMAP1', '', ' Calibration constant map interped (1)', before='CALTMP' sxaddpar, hdr, 'CALMAP2', '', ' Calibration constant map interped (2)', before='CALTMP' sxaddpar, hdr, 'SPECMAP1', '', ' Spectral map interpolated over (1)', before='CALTMP' sxaddpar, hdr, 'SPECMAP2', '', ' Spectral map interpolated over (2)', before='CALTMP' sxaddpar, hdr, 'HLUTFN', '', ' H lambda lookup table used', before='CALTMP' ;; Insert second comment cmt = '** Calibration information, steps, and files specific to VIS' sxaddpar, hdr, 'COMMENT', stars, before='CALTMP' sxaddpar, hdr, 'COMMENT', cmt, before='CALTMP' sxaddpar, hdr, 'COMMENT', stars, before='CALTMP' sxaddpar, hdr, 'SMEAR', 'F', ' Frame-transfer smear removed (T/F)', before='CALTMP' sxaddpar, hdr, 'SMEARV', '', ' Smear removal algorithm applied', before='CALTMP' sxaddpar, hdr, 'RADCAL', 'F', ' Radiance calibration applied (T/F)', before='CALTMP' sxaddpar, hdr, 'RADCALV', -999d0, ' Rad cal constant used [W/(m^2 sr um)/(DN/s)]', before='CALTMP' sxaddpar, hdr, 'RADCALW', '', ' Radiance calib - wavelength used [nm]', before='CALTMP' sxaddpar, hdr, 'IOFCAL', 'F', ' I/F calibration applied (T/F)', before='CALTMP' sxaddpar, hdr, 'IOFCALV', -999d0, ' I/F cal constant used [W/(m^2 sr um) @ 1 AU]', before='CALTMP' sxaddpar, hdr, 'IOFCALW', '', ' I/F calib - wavelength used [nm]', before='CALTMP' sxaddpar, hdr, 'IOFCALD', -999d0, ' I/F calib - Distance used [AU]', before='CALTMP' sxaddpar, hdr, 'GEOMCAL', 'F', ' Geometric calibration performed (T/F)', before='CALTMP' sxaddpar, hdr, 'GEOMFILE', '', ' File used for geometric calibration', before='CALTMP' ;; Insert third comment cmt = '** Image Quality Statistics' sxaddpar, hdr, 'COMMENT', stars, before='CALTMP' sxaddpar, hdr, 'COMMENT', cmt, before='CALTMP' sxaddpar, hdr, 'COMMENT', stars, before='CALTMP' sxaddpar, hdr, 'BADPXCT', -999, ' Number of bad pixels', before='CALTMP' sxaddpar, hdr, 'MISSPXCT', -999, ' Number of missing pixels', before='CALTMP' sxaddpar, hdr, 'DESPIKCT', -999, ' Number of despiked pixels', before='CALTMP' sxaddpar, hdr, 'INTERPCT', -999, ' Number of interpolated pixels', before='CALTMP' sxaddpar, hdr, 'PSATPXCT', -999, ' Num possibly saturated pixels (VIS>=11000DN,IR>=8000DN)', before='CALTMP' sxaddpar, hdr, 'SATPXCT', -999, ' Num likely saturated pixels (VIS>=15000DN,IR>=11000DN)', before='CALTMP' sxaddpar, hdr, 'ASATPXCT', -999, ' Number of ADC saturated pixels', before='CALTMP' sxaddpar, hdr, 'ULTCMPCT', -999, ' Number of ultra-compressed pixels', before='CALTMP' ;; Remove the temporary header item sxdelpar, hdr, 'CALTMP' END