;+ ; NAME ftsdif.pro ; ; PURPOSE Compute the difference between two FITS images. ; ; SYNTAX ftsdif, fits_reference_file, fits_image_list ; ; HISTORY Andrew L. Stanger HAO/NCAR 10 Sep 1998 ;- pro ftsdif, ref_name, cme_list cme_name = '' ref_hdu = '' cme_hdu = '' print, 'ref_name: ', ref_name lct,'/home/stanger/color/dif.lut' ; load difference color table. ;--- Read reference image. ref_img = rfits (ref_name, header=ref_hdu, /scale) ref_date = fxpar (ref_hdu, "DATE-OBS") ref_time = fxpar (ref_hdu, "TIME-OBS") ref_hour = strmid (ref_time, 0, 2) ref_minute = strmid (ref_time, 3, 2) ref_min = MIN (ref_img, max=ref_max) print, FORMAT = '("ref_min/max: ", E10.3, E10.3)', ref_min, ref_max CLOSE, 1 OPENR, 1, cme_list WHILE (NOT EOF (1)) DO $ BEGIN ;{ READF, 1, cme_name ; Get file name. print, 'cme_name: ', cme_name cme_img = rfits (cme_name, header=cme_hdu, /scale) ; Read CME image. cme_date = fxpar (cme_hdu, "DATE-OBS") cme_time = fxpar (cme_hdu, "TIME-OBS") cme_day = strmid (cme_date, 0, 2) cme_month = strmid (cme_date, 3, 2) cme_year = strmid (cme_date, 6, 2) cme_hour = strmid (cme_time, 0, 2) cme_minute = strmid (cme_time, 3, 2) dif_name = 'mk3.' + cme_year + cme_month + cme_day + '.' + $ cme_hour + cme_minute + '-' + $ ref_hour + ref_minute + '.fts' cme_min = MIN (cme_img, max=cme_max) print, FORMAT = '("cme_min/max: ", E10.3, E10.3)', cme_min, cme_max dif_img = cme_img - ref_img ; Compute difference. dif_min = min (dif_img, max=dif_max) ; Get image min/max. print, FORMAT = '("dif_min/max: ", E10.3, E10.3)', dif_min, dif_max IF (dif_min LT 0.0) THEN $ ; Symmetric about zero. IF (-dif_min LT dif_max) THEN dif_min = -dif_max ELSE dif_max = -dif_min print, FORMAT = '("dif_min/max: ", E10.3, E10.3)', dif_min, dif_max dif_min = -1.0e-7 dif_max = 1.0e-7 print, FORMAT = '("dif_min/max: ", E10.3, E10.3)', dif_min, dif_max byt_img = bytscl (dif_img, min=dif_min, max=dif_max, top=249); Convert to byte. tv, byt_img ; Display image. dif_hdu = cme_hdu fxaddpar, dif_hdu, "DATAMIN", dif_min, "BSUN UNITS" fxaddpar, dif_hdu, "DATAMAX", dif_max, "BSUN UNITS" fxaddpar, dif_hdu, "DISPMIN", 0.0 fxaddpar, dif_hdu, "DISPMAX", 249.0 fxaddpar, dif_hdu, "BSCALE", 1.0 fxaddpar, dif_hdu, "BZERO", 0.0 dif_comment = 'IMAGE AT ' + string (cme_hour) + ':' + string (cme_minute) + $ 'WAS SUBTRACTED FROM EVENT FRAME.' fxaddpar, dif_hdu, "HISTORY", dif_comment print, 'Write Difference image : ', dif_name writefits, dif_name, byt_img, dif_hdu ; Write diff. image. END ;} CLOSE, 1 END