pro master ; This is the master widget program for the SCF suite. @varld.cb common GUI_BLOCK top=widget_base(title='Spectral Correlation Function',/column,$ xoffset=100,yoffset=150) base=widget_base(top,/column) load=widget_button(base, value='Load Data...',uvalue=1) uvals=widget_button(base, value='Establish SCF Values',uvalue=4) q=outputs.qval s2n=outputs.s2n if outputs.smooth eq 'Yes' then flag2=1 else flag2=0 roiex=widget_button(base, value='Perform SCF only on a ROI', uvalue=7) gfits=widget_button(base, value='Fit Line Parameters',uvalue=3) scf=widget_button(base, value='Run Full SCF...',uvalue=5) scfmin=widget_button(base,value='Run Only S_0...',uvalue=8) data=widget_button(base, value='Analyze Data...',uvalue=6) quit=widget_button(base, value='Quit',uvalue=2) ;calculate=widget_button(base2, value='Calculate',uvalue=6) widget_control,/realize,top xmanager,'master',top return end ;--------------------------------------------------- pro master_event, event @varld.cb common GUI_BLOCK widget_control, event.id, get_uvalue=buttonpress if (buttonpress eq 5) then begin if (progress(1) ne 1.) then begin oops1=widget_message('You must first load data.') goto,skipout1 endif if (progress(2) ne 1.) then begin if ((whichfunc(3) eq 1) and (total(whichfunc(0:2) eq 0.)))$ then goto,skipout3 oops2=widget_message('You must first Fit Line Parameters') goto,skipout1 endif yorn2=widget_message('SCF Procedure will take time. Continue?'$ ,/question) if (yorn2 eq 'No') then goto, skipout1 else begin if flag2 eq 1 then begin widget_control,/hourglass newdata=evennoise(1) shade_surf,fitparams(*,*,8)*(fitparams(*,*,5) eq 0),$ title='Final Signal-To-Noise Value',ztitle='T/!4r!3!N' data0=newdata done=widget_message($ 'Noise Added to Data for uniform signal to noise!'$ ,/information) endif skipout3: sc7 if flag3 eq 1 then begin ;outdata=fltarr(res,res,16) save,filename=outfilenorm,outdata,fitparams ; data0=randomize(data0) randomize2 sc7 widget_control,/hourglass save,filename=outfilerand,outdata,fitparams finis1=widget_message(['SCF Calculations are complete.',$ 'Data have been saved in the following files:',$ outfilenorm+' <-- Original Data',$ outfilerand+' <-- Randomized Data'],/information) goto,skipout1 endif save,filename=outfilenorm,outdata,fitparams finis2=widget_message(['SCF Calculations are complete.',$ 'Data have been saved in the '+outfilenorm+' file.'],$ /information) endelse skipout1: endif if (buttonpress eq 4) then uservalues if (buttonpress eq 3) then begin if (progress(1) ne 1.) then begin oops3=widget_message('You Must First Load Data') goto,skipout endif yorn=widget_message('Procedure will take time. Continue?',/question) if (yorn eq 'No') then goto, skipout else begin widget_control,/hourglass fitparams=loopfit(data0,v0,dv0,q,s2n) progress(2)=1. endelse skipout: endif if (buttonpress eq 2) then widget_control,/reset if (buttonpress eq 1) then begin loading progress(1)=1. endif if (buttonpress eq 6) then analysis if (buttonpress eq 7) then begin if (progress(1) ne 1.) then begin oops9=widget_message('You Must First Load Data') goto,skipout4 endif widget_control,/hourglass selroi skipout4: endif if (buttonpress eq 8) then begin if (progress(1) ne 1.) then begin oops9=widget_message('You Must First Load Data') goto,skipout5 endif altcalcs skipout5: endif return end