pro xdisp_fits, h_out, img_out, img3_out, $ summary=summary, margin=margin, $ infil=infil0, dir=dir0, disp_size=disp_size ; ; common xdisp_fits_blk1b, infil, dir, files, images, h, img, img2, dirarr, tit common xdisp_fits_blk3, bkg, bkg_fil common xdisp_fits_blk4c, comment, align_comm, max_cross_corr, cross_smoo, fmedian_width common xdisp_fits_blk5b, img3, logfil ; progver = 'XDISP_FITS V1.24' img=0 img2=0 img3=0 h = '' comment = '' comment2 = '' align_comm = '' if (n_elements(bkg) eq 0) then bkg = 0b if (n_elements(bkg_fil) eq 0) then bkg_fil = '' if (n_elements(sttim0) eq 0) then sttim = '' else sttim = sttim0 if (n_elements(entim0) eq 0) then entim = '' else entim = entim0 if (n_elements(max_cross_corr) eq 0) then max_cross_corr = 10 if (n_elements(cross_smoo) eq 0) then cross_smoo = 0 if (n_elements(fmedian_width) eq 0) then fmedian_width = 6 if (n_elements(dirarr) eq 0) then dirarr = '' ; if (n_elements(dir0) eq 0) then begin case 1 of keyword_set(getenv('XDISP_FITS_BASE_DIR')): begin bdir = getenv('XDISP_FITS_BASE_DIR') dirarr = get_subdirs(bdir) end keyword_set(getenv('XDISP_FITS_DIRS')): begin bdir = getenv('XDISP_FITS_DIRS') dirarr = str2arr(bdir) end else: endcase end else begin dir = dir0 end ; if (n_elements(infil0) ne 0) then begin infil = infil0 break_file, infil0, dsk_log, dir end else begin infil = '' end files = '' file_list00 = file_list(dir, '*.fit*', file=files) files = reverse(files) if (max(strlen(files)) lt 10) then files = files + ' ' if (n_elements(disp_size) eq 0) then disp_size = 512 if (!d.window eq -1) or (!d.window eq 32) then wdef, next_window(/user), disp_size ; logfil = concat_dir('$HOME', ex2fid(anytim2ex(!stime))+'.xdisplog') file_append, logfil, ['XDISP_FITS Started: ' + !stime, ' '] ; font = get_xfont(closest=12,/only_one,/fixed) if (getenv('MDI_DEF_FONT') ne "") then font = getenv('MDI_DEF_FONT') widget_control, default_font=font device, font=font base00=widget_base(/column,title=progver, xoff=0, yoff=0) xmenu, ['QUIT', 'Set Directory', $ 'List Directory', 'Sel Dir From Array', $ 'Set Printer', 'Print Header'], base00, buttons=main_buts, /row xmenu, ['Create a new Window', 'Redisplay Image', 'Redisplay Orig Image', $ 'Hardcopy', 'Save2GIF'], base00, buttons=main_buts, /row xmenu, ['ReSet Image Min/Max and Sigma', 'Run PROFILES', 'Save to FITS'], base00, buttons=main_buts, /row xmenu, ['Copy Img to Bkg Buff', 'Clear Bkg Buff', 'Do Bkg Subtraction'], $ base00, buttons=main_buts, /row xmenu, ['Median Filter', 'Box Stats', 'Do Cross Corr', 'Find Grid'], $ base00, buttons=main_buts, /row linebase = widget_base(base00, /row) xx = widget_label(linebase, value = 'Bkg File:') id_bkg = widget_text(linebase, xsize=30, ysize=1, value=bkg_fil) ; linebase = widget_base(base00, /row) xx = widget_label(linebase, value = 'FMEDIAN Width:') id_fmed = widget_text(linebase, xsize=5, ysize=1, value=strtrim(fmedian_width,2), /editable) xx = widget_label(linebase, value = 'Max Cross Corr (pixels):') id_cc = widget_text(linebase, xsize=5, ysize=1, value=strtrim(max_cross_corr,2), /editable) xx = widget_label(linebase, value = 'CC Smooth:') id_cc_smoo= widget_text(linebase, xsize=5, ysize=1, value=strtrim(cross_smoo,2), /editable) xmenu, ['Extract Sub-Image', 'Fixed Extract', 'Clear Extract'], base00, buttons=main_buts, /row linebase = widget_base(base00, /row) xx = widget_label(linebase, value = 'Extract Info:') id_ext = widget_text(linebase, xsize=30, ysize=1, value='') xmenu, ['Display simple image', $ 'Display as IMG_SUMMARY'], $ base00, /row, /exclusive, /frame base0=widget_base(base00, /row) base_col1 = widget_base(base00, /column, /frame) linebase = widget_base(base_col1, /row) xx = widget_label(linebase, value = 'Image Min:') id_imin = widget_text(linebase, xsize=12, ysize=1) xx = widget_label(linebase, value = ' Max:') id_imax = widget_text(linebase, xsize=12, ysize=1) linebase = widget_base(base_col1, /row) xx = widget_label(linebase, value = 'Scale Min:') id_smin = widget_text(linebase, xsize=12, ysize=1, /editable) xx = widget_label(linebase, value = ' Max:') id_smax = widget_text(linebase, xsize=12, ysize=1, /editable) xx = widget_label(linebase, value = ' Sigma:') id_sig = widget_text(linebase, xsize=12, ysize=1, /editable) ;------------------------- base_group3=widget_base(base0, /row, /frame) base3_col1 = widget_base(base_group3, /column, /frame) xx = widget_label(base3_col1, value = 'File List') id_filelist = widget_list(base3_col1, ysize=20, value=files) ;widget_control, id_info, /append base3_col2 = widget_base(base_group3, /column, /frame) xx = widget_label(base3_col2, value = 'Current Image Info') id_img_info = widget_list(base3_col2, ysize=20, xsiz=45, value=' ') ;------------------------- base_col2 = widget_base(base00, /column, /frame) linebase = widget_base(base_col2, /row) xx = widget_label(linebase, value = 'Info:') id_info = widget_text(linebase, xsize=60, ysize=1) linebase = widget_base(base_col2, /row) xx = widget_label(linebase, value = 'Comments:') id_comm = widget_text(linebase, xsize=60, ysize=1, /editable) ;-------------------------- if (n_elements(sigma) eq 0) then sigma = 0 all = {base:base0, $ id_filelist: id_filelist, $ id_img_info: id_img_info, $ disp_size: disp_size, $ style: keyword_set(summary), $ sigma: sigma, $ id_imin: id_imin, id_imax: id_imax, $ id_smin: id_smin, id_smax: id_smax, id_sig: id_sig, $ id_bkg: id_bkg, $ id_info: id_info, id_comm: id_comm, $ id_ext: id_ext, e_x0: 0, e_y0: 0, e_n: 0, e_str: ' ', $ id_fmed: id_fmed, id_cc: id_cc, id_cc_smoo:id_cc_smoo, $ junk:0} widget_control,set_uvalue=all, base00 widget_control,base0,/realize widget_control,set_uvalue=all, base00 xmanager, 'xdisp_fits', base00 if (n_elements(h) ne 0) then begin h_out = temporary(h) img_out = temporary(img) img3_out = temporary(img3) end return end