;======================================================== ;disp_smoke_nocld.pro ;display GOES-12 smoke AOD and combined AOD and density ;without displaying clouds and no-smoke aerosols ;written by Jian Zeng (ERT) ;2007-07-16 ;======================================================== pro disp1,dir_Image,data,lat,lon,outfile=outfile,title=tit,range=range,$ barformat=barformat,bartitle=bartitle,ct=ct,latdel=latdel,londel=londel,$ bottom=bottom,top=top,div=div,limit=limit,file_mv=file_mv if keyword_set(range) then begin ncolors=top-bottom+1 img=bytscl(data >range(0) < range(1),top=ncolors-1)+bottom ;set the nonsmoke area into white ind=where(data le -9.0,cp,compl=alldata) if cp gt 0 then begin img(ind)=0 endif ;cloudy ind=where(data eq -1.,cp) if cp gt 0 then img(ind)=0 ind=where(data eq -2.,cp) ;nonsmoke ind=where(data eq -3. or data eq -2,cp) if cp gt 0 then img(ind)=0 endif else img=data ;plotting lengthen=20 widen=20 new_element=800 new_line=600 set_plot,'Z' device,set_resolution=[new_element+2*widen,new_line+lengthen+50],z_buffer=0 loadct,ct tvlct,r,g,b,/get ;basic r(0) = 255 g(0) = 255 b(0) = 255 r(255) = 0 g(255) = 0 b(255) = 0 r(1) = 200 g(1) = 200 b(1) = 200 r(3) = 100 g(3) = 255 b(3) = 255 r(2) = 255 g(2) = 100 b(2) = 255 r(4) = 0 g(4) = 180 b(4) = 0 r(5) = 250 g(5) = 0 b(5) = 0 r(6) = 255 g(6) = 200 b(6) = 100 r(7) = 0 g(7) = 0 b(7) = 255 tvlct,r,g,b !p.charthick=4.0 !p.charsize=1.5 !p.thick=1.0 erase imagemap_unscl_proj,img,lat,lon,limit=limit,missing=0,$ position=[0.08,0.18,0.92,0.9],mapcolor=255,/noborder map_grid,latdel=latdel,londel=londel,/box_axes,color=255;,/nogrid if keyword_set(range) then begin colorbar,position=[0.15,0.06,0.85,0.08],range=range,$ format=barformat,title=bartitle,div=div,ticklen=1,$ bottom = bottom,ncolors=ncolors,chars = 2,color=255 xyouts,0.87,0.02,'>',/norm,charsize=2,color=8 endif else begin dd=0.1 name=['Cloud','Unknown AOD','0','1','5','20','100'] for i=0,6 do begin polyfill,[0.15+i*dd,0.25+i*dd,0.25+i*dd,0.15+i*dd,0.15+i*dd],$ [0.06,0.06,0.08,0.08,0.06],color=i+1,/norm if i le 1 then xyouts,0.15+i*dd,0.015,/norm,name(i),color=0,charsize=0.8 else $ xyouts,0.15+i*dd,0.015,/norm,name(i),color=8,charsize=1.0 endfor xyouts,0.8,0.02,'>',/norm,charsize=1.2 xyouts,0.35,0.1,bartitle,/norm,charsize=1.2,color=8 endelse map_continents,/usa,/cont,/HIRS,/noerase,color=255,mlinethick=3 xyouts,0.05,0.96,/norm,tit,color=8,charsize=2.0 make_png,outfile+'.png' print,'creating----',outfile+'.png' if file_mv eq 1 then begin ; file_move,outfile+'.jpg','/net/www/aftp/pub/smcd/spb/shobha/GOES_AOD/IMAGE/',/overwrite file_move,outfile+'.jpg',dir_Image,/overwrite print,'move '+outfile+'.jpg'+' to'+dir_Image ; print,'move '+outfile+'.jpg'+' to /net/www/aftp/pub/smcd/spb/shobha/GOES_AOD/IMAGE/' endif end ;================================================================================= pro disp_smoke_nocld,dir_Image,glat,glon,combaod,yr,month,nday,time,limit=limit,$ data_suffix=data_suffix,file_mv=file_mv,pref=pref,latdel=latdel,londel=londel if not keyword_set(latdel) then latdel=20 if not keyword_set(londel) then londel=20 date=yr+month+nday+time outfile=dir_Image+'/G13smokeaod_'+date+'.combaod2' ; outfile='~/NWS_EPA/GOES/SMOKE/Image/AOD/2SKEMES/'+yr+'/'+pref+'smokeaod_'+date+'.combaod2' ; if keyword_set(data_suffix) then outfile='~/NWS_EPA/GOES/SMOKE/Image/AOD/2SKEMES/'+yr+'/'+data_suffix+pref+'smokeaod_'+date colortable=39 bartit='Smoke Aerosol Optical Thickness' tit='GOES-13 Smoke Observation ('+yr+' '+month+' '+nday+' '+time+'Z)' sz=size(glat,/dim) nx_g=sz(0) ny_g=sz(1) if latdel gt 5 and londel gt 5 then begin indgoes=where(glat gt -90. and glon gt -180.) disp1,dir_Image,combaod(indgoes),glat(indgoes),glon(indgoes),outfile=outfile,$ title=tit,range=[0,1.2],bottom=50,top=249,$ barformat='(f3.1)',bartitle=bartit,ct=colortable,$ limit=limit,div=6,file_mv=file_mv,latdel=latdel,londel=londel endif else begin ind=where(glat gt limit(0)-1 and glat lt limit(2)+1 and glon gt limit(1)-1 and glon lt limit(3)+1) yy=ind/nx_g xx=ind-ind/nx_g*nx_g iy1=min(yy) iy2=max(yy) ix1=min(xx) ix2=max(xx) aod_=combaod(ix1:ix2,iy1:iy2) glat_=glat(ix1:ix2,iy1:iy2) glon_=glon(ix1:ix2,iy1:iy2) ind0=where(glat_ gt -90 and glon_ gt -180.,ncomp=nnull) xmag=8 ymag=8 sz0=size(aod_,/dim) nx=sz0(0) ny=sz0(1) img_=congrid(aod_,xmag*nx,ymag*ny) lat_=congrid(glat_,xmag*nx,ymag*ny, cubic=-0.5,/center,/interp) lon_=congrid(glon_,xmag*nx,ymag*ny, cubic=-0.5,/center,/interp) ind00=where(lat_ ge min(glat_(ind0)) and lat_ le max(glat_(ind0)) and lon_ ge min(glon_(ind0)) and lon_ le max(glon_(ind0))) disp1,img_(ind00),lat_(ind00),lon_(ind00),outfile=outfile,$ title=tit,range=[0,1.2],bottom=50,top=249,$ barformat='(f3.1)',bartitle=bartit,ct=colortable,$ limit=limit,div=6,latdel=latdel,londel=londel,file_mv=file_mv endelse end