pro exroi common ROI_BLOCK,index,draw,data,plot,progs,newdata,filename3,filename4,$ moments2 window,1,title='Histograms',xsize=450,ysize=300 window,2,xsize=150,ysize=400,title='Color Bar' progs=fltarr(3) top=widget_base(/column,title='Examine ROI') draw=widget_draw(top,xsize=600,ysize=600,/button,/motion,uvalue=5) label=widget_text(top,value='Select a Map to examine:') buttons=widget_base(top,/column) row1=widget_base(buttons,/row) TAb=widget_button(row1,value='Antenna Temperature',uvalue=18) vlsrb=widget_button(row1,value='Velocity Centroid',uvalue=20) vdispb=widget_button(row1,value='Est. Line Width',uvalue=19) noiseb=widget_button(row1,value='Noise',uvalue=22) s2nb=widget_button(row1,value='Signal to Noise',uvalue=23) row2=widget_base(buttons,/row) sij=widget_button(row2,value='S_ij',uvalue=10) slij=widget_button(row2,value='S^l_ij',uvalue=13) ssij=widget_button(row2,value='S^s_ij',uvalue=15) s0ij=widget_button(row2,value='S^0_ij',uvalue=17) select=widget_button(top,value='Select Region of Interest...',uvalue=2) mom=widget_button(top,value=$ 'Perform a Moment Analysis on Region of Interest.',uvalue=3) base1=widget_base(top,/row) exp1=widget_button(base1,value=$ 'Export SCF Values to LaTeX Table',uvalue=8) filename3=cw_field(base1,value='table.tex'$ ,title='File Name:') base2=widget_base(top,/row) exp2=widget_button(base2,value=$ 'Export Full Analysis Table to Latex',uvalue=9) filename4=cw_field(base2,value='table2.tex',$ title='File Name:') bye=widget_button(top,value='Done.',uvalue=1) widget_control,/realize,top widget_control,get_value=index, draw wset,index xmanager, 'exroi', top end ;----------------------------- pro exroi_event,event @varld.cb common ROI_BLOCK common GUI_BLOCK widget_control, event.id, get_uvalue=buttonpress if (buttonpress eq 1) then begin wdelete,1 wdelete,2 widget_control,event.top,/destroy endif if (buttonpress eq 2) then begin if progs(0) ne 1. then begin oops=widget_message('Please Choose a Map to Examine') goto,skipout1 endif if progs(1) eq 1. then begin selscrplot,outdata,plot,index,2 endif subs=cw_defroi(draw) sz=size(data) sx=float(sz(1)) sy=float(sz(2)) asp=(sy/sx) ; xnorm=sx/(max([sy,sx])) ; ynorm=sy/(max([sy,sx])) if asp ge 1 then begin xmarg=1-0.8/asp pos=[xmarg/2,0.1, 1-xmarg/2,0.9] endif else begin ymarg=1-0.8*asp pos=[0.1,ymarg/2,0.9,1-ymarg/2] endelse corners=600*pos x=floor(((subs mod 600)-corners(0))*(sx/(corners(2)-corners(0)))) y=floor((long(subs)/600-corners(1))*(sy/(corners(3)-corners(1)))) inbounds=(x ge 0)*(x le sx-1)*(y ge 0)*(y le sy-1) if total(inbounds) eq 0 then begin gotcha=widget_message('No Data in ROI') goto,skipout1 endif x=x(where(inbounds eq 1)) y=y(where(inbounds eq 1)) num=size(x) newdata=fltarr(num(1),16) for i=long(0),num(1)-1 do begin newdata(i,*)=outdata(x(i),y(i),*) endfor selscrhist,newdata,plot progs(1)=1. skipout1: endif if (buttonpress eq 3) then begin if progs(1) ne 1. then begin oops=widget_message('Please Select a ROI.') goto,skipout2 endif moments2=momentcube(newdata) moments2=sigfigarr(moments2,3) wset,index erase qvec=[0,3,5,7,8,9,10,13] ttles=['!8S!Iij!3','!8l!8!Iij!3','!8s!Iij!3','!8S!Iij!El!3',$ '!8l!8!Iij!El!3','!8S!Iij!Es!N!3','!8s!Iij!Es!N!3','!8S!Iij!E0!N!3',$ '!8T!IA!E*!N!3','!4D!8v!3','!8v!ILSR!3','!8T!Iint!3','!4r!8!Irms!3',$ '!8T!E*!IA!N/!4r!8!Irms!3','!10"!8l!8!Iij!N!10"!3',$ '!10"!8l!8!El!Iij!N!10"!3','!10"!8l!8!Iij!N!10"!3',$ '!10"!8l!8!El!Iij!N!10"!3'] xyouts,200,550,'Mean Value',/device,charsize=2. xyouts,400,550,'Dispersion',/device,charsize=2. for i=0,7 do begin xyouts,100,(500-i*60),ttles(qvec(i)),/device,charsize=2. xyouts,200,(500-i*60),moments2(0,qvec(i)),/device,charsize=2. xyouts,400,(500-i*60),moments2(1,qvec(i)),/device,charsize=2. endfor skipout2: endif if (buttonpress ge 10) and (buttonpress le 25) then begin plot=buttonpress-10 if (total(outdata(*,*,plot) ne 99999.0) eq 0) then begin wset,index erase xyouts,0.2,0.5,'No Valid Data to Plot',/normal,charsize=3. goto,skipout endif selscrplot,outdata,plot,index,2 selscrhist,outdata,plot data=outdata(*,*,plot) progs(1)=0. progs(0)=1. skipout: endif if (buttonpress eq 8) then begin if n_elements(moments2) eq 0 then begin oops=widget_message('You must first calculate moments.') goto,skipout7 endif widget_control,filename3,get_value=filenom titles1=['Mean','Dispersion','Skewness','Kurtosis'] openw,1,filenom(0) printf,1,'\documentclass{article}' printf,1,'\pagestyle{empty}' printf,1,'\begin{document}' printf,1,'\begin{table}[h]' printf,1,'\begin{center} printf,1,'\begin{tabular}{|c|c|c|c|c|}' printf,1,'\hline' printf,1,'& $S$ & $S^{l}$ & $S^s$ & $S^0$ \\ \hline ' for i=0,3 do begin printf,1,titles1(i),' & ',moments2(i,0),' & ',moments2(i,3),$ ' & ', moments2(i,5),' & ',moments2(i,7),' \\' printf,1,'\hline' endfor printf,1,'\end{tabular}' printf,1,'\end{center}' printf,1,'\end{table}' printf,1,'\end{document}' close,1 okay=widget_message('Data exported to file '+filenom(0),/information) skipout7: endif if (buttonpress eq 9) then begin if n_elements(moments2) eq 0 then begin oops1=widget_message('You must first calculate moments.') goto,skipout8 endif params=['$S$','$s$','$l$','$S^l$','$l^l$','$S^s$','$s$',$ '$S^0$','$T_A$','$\Delta v$','$v_{LSR}$','$T_{int}$','$\sigma$',$ '$T/\sigma$','$|l|$','$|l^l|$'] widget_control,filename4,get_value=filenom1 openw,1,filenom1(0) printf,1,'\documentclass{article}' printf,1,'\pagestyle{empty}' printf,1,'\begin{document}' printf,1,'\begin{table}[h]' printf,1,'\begin{center} printf,1,'\begin{tabular}{|c|c|c|c|c|}' printf,1,'\hline' printf,1,'& Mean & Dispersion & Skewness & Kurtosis \\ \hline ' for i=0,15 do begin printf,1,params(i),' & ',moments2(0,i), ' & ', moments2(1,i),' & ',$ moments2(2,i), ' & ', moments2(3,i), ' \\' printf,1,'\hline' endfor printf,1,'\end{tabular}' printf,1,'\end{center}' printf,1,'\end{table}' printf,1,'\end{document}' close,1 okay=widget_message('Data exported to file '+filenom1(0),/information) skipout8: endif return end