pro tvcontour,data,x,y,interval s=size(data,/dimensions) contour,data,/device,/noerase,xrange=[0,s[0]],yrange=[0,s[1]],/follow,xstyle=5,ystyle=5,position=[x,y,x+s[0],y+s[1]],levels=(findgen(60)-30)*interval end pro tm_show,data,sza,n,label,interval s=size(data,/dimensions) x=0 y=s[1]*n tvscl,/nan,data,x,y tvcontour,sza,x,y,interval xyouts,s[0],y+s[1]/2,label,/device end pro load_data,trial_num=trial_num,orbit_num=orbit_num,user_name=user_name, $ data=data,tiles=tiles,initial_guess=initial_guess ; data=get_1c_data(trial_num=trial_num,orbit_num=orbit_num,user_name=user_name) ; tiles=get_debug_data("tile",trial_num=trial_num,orbit_num=orbit_num,user_name=user_name) end pro ind_microscope,data,tiles,initial_guess,n_clicks=n_clicks,zoom=zoom ;Clear the window, and get the rainbow+white color bar window,0,xpos=100,ypos=0,xsize=1800,ysize=1170,title="IDL 0 - Click here" erase device,decomposed=0 loadct,39 window,1,xpos=1921,ypos=0,xsize=1280,ysize=1024,title="IDL 1 - X-Y values" erase device,decomposed=0 loadct,39 ;zoom is number of display pixels per tile if n_elements(zoom) eq 0 then zoom=3 ;Cut out a bounding box level_1c_lat_lon,data,lat=lat,lon=lon c=*(data.ozone_col_density[0])<100 s=size(c,/dimensions) h=*(data.scale_height_ratio[0])<2 a=*(data.albedo[0])<100 cloud_a_no_phase=*(data.cloud_no_phase[0])<100 r=*(data.particle_radius[0])<100 sza_flat=*(data.zenith_angle[0])<100 layer_good=intarr(s) tic assumed_c=39 assumed_sigma=0.708 for xx=0,s[0]-1 do begin for yy=0,s[1]-1 do begin this_layer_good=where(finite(tiles.ssa[xx,yy,*]),n_good) layer_good[xx,yy]=n_good end end i_layer_good=layer_good gt 6 bbox=findbbox(i_layer_good) c=c[bbox[0]:bbox[2],bbox[1]:bbox[3]] h=h[bbox[0]:bbox[2],bbox[1]:bbox[3]] a=a[bbox[0]:bbox[2],bbox[1]:bbox[3]] r=r[bbox[0]:bbox[2],bbox[1]:bbox[3]] lat=lat[bbox[0]:bbox[2],bbox[1]:bbox[3]] lon=lon[bbox[0]:bbox[2],bbox[1]:bbox[3]] cloud_a_no_phase=cloud_a_no_phase[bbox[0]:bbox[2],bbox[1]:bbox[3]] layer_good=layer_good[bbox[0]:bbox[2],bbox[1]:bbox[3]] i_layer_good=i_layer_good[bbox[0]:bbox[2],bbox[1]:bbox[3]] alb=tiles.alb[bbox[0]:bbox[2],bbox[1]:bbox[3],*] ssa=tiles.ssa[bbox[0]:bbox[2],bbox[1]:bbox[3],*] sva=tiles.sva[bbox[0]:bbox[2],bbox[1]:bbox[3],*] sza=tiles.sza[bbox[0]:bbox[2],bbox[1]:bbox[3],*] sza_flat=sza_flat[bbox[0]:bbox[2],bbox[1]:bbox[3]] wset,0 !p.multi=0 s=size(c,/dimensions) c_disp=rebin(c,s[0]*zoom,s[1]*zoom,/sample) h_disp=rebin(h,s[0]*zoom,s[1]*zoom,/sample) a_disp=rebin(a,s[0]*zoom,s[1]*zoom,/sample) r_disp=rebin(r,s[0]*zoom,s[1]*zoom,/sample) sza_disp=rebin(sza_flat,s[0]*zoom,s[1]*zoom,/sample) lat_disp=rebin(lat,s[0]*zoom,s[1]*zoom,/sample) tm_show,c_disp,sza_disp,3,"Ozone Column Density",5 tm_show,h_disp,sza_disp,2,"Scale height ratio",5 tm_show,a_disp,sza_disp,1,"Cloud albedo",5 tm_show,r_disp,sza_disp,0,"Cloud particle size",5 tm_show,sza_disp,sza_disp,4,"Cloud particle size",5 tvcontour,lat_disp,0,0,5 if n_elements(n_clicks) eq 0 then n_clicks=1 ;Get n mouse clicks for i_click=1,n_clicks do begin wset,0 !p.multi=0 ;Get the mouse click if i_click gt 1 or n_elements(x) eq 0 then begin cursor,x,y,/device,/up x=x/zoom y=(y/zoom) mod s[1] end print,x,y ;X marks the spot for i_mark=0,3 do begin plots,([x-5,x+5])*zoom+zoom/2,([y-5,y+5]+s[1]*i_mark)*zoom+zoom/2,/device,color=255 plots,([x-5,x+5])*zoom+zoom/2,([y+5,y-5]+s[1]*i_mark)*zoom+zoom/2,/device,color=255 xyouts,(x+5)*zoom,(y+s[1]*i_mark)*zoom,string(i_click,format='(%"%2d")'),charsize=3,/device,color=255 end wset,1 !p.multi=[(n_clicks-i_click+1),1,n_clicks] layer_good=where(finite(ssa[x,y,*])) alb_good=alb[x,y,layer_good] ssa_good=ssa[x,y,layer_good] print,string(x,y,format='(%"ssa[%03d,%03d,good]:")') print,string(ssa_good,format='(%"%20.6f")') print,string(x,y,format='(%"alb[%03d,%03d,good] (G):")') print,string(alb_good,format='(%"%20.6f")') sva_good=sva[x,y,layer_good] sza_good=sza[x,y,layer_good] rp=rayleigh_phase(ssa_good) calc_xy,alb_good,ssa_good,sva_good,sza_good,data_x=data_x,data_y=data_y plot,data_x,data_y,/ynoz,charsize=3,psym=-1,title=string(sza_flat[x,y],format='(%"SZA: %0.1f")') end end