pro go_map_fraction, datelist, output_path common CPR_Freq, CPR_Occ_Grid, lat_vector, lon_vector, height_vector, $ dbz_vector, daytime_vector, Geoprof_occ_grid common count_cc_modis, count_cc_cloudless_global, count_cc_cloudy_global, $ count_cc_nc_global, count_modis_cloudy_top_global, $ count_modis_cloudless_top_global, count_modis_nc_top_global common global_frac_occ, raw_cc_frac, wt_cc_frac, raw_modis_frac, wt_modis_frac ; ========================================================================= ; n_america_flag=0 eurasia_flag=0 atl_europe_flag=0 north_pacific_flag=0 eq_south_america_flag=0 eq_africa_flag=0 eq_IndoPacific_flag=0 eq_Pacific_flag=0 south_america_flag=0 africa_flag=0 Australia_flag=0 s_Pacific_flag=0 n_s_Pacific_flag=0 n_s_america_flag=0 europe_africa_flag=0 Indian_Asia_flag=0 arctic_flag=1 antarctic_flag=1 world_flag=1 sourthern_ocean_flag=0 if world_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=+70. & min_lat=-70. & comin_lon=0. & comax_lon=359. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.],[13.,16.],[15.,18.]] colon_vector=lon_vector result=where(colon_vector lt 0,count) if count gt 0 then colon_vector[result]=360.0+colon_vector[result] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] colon_vector2=comin_lon & while max(colon_vector2) le comax_lon do colon_vector2=[colon_vector2,(max(colon_vector2))+(2.*dlon)] lon_vector2=colon_vector2 result=where(lon_vector2 gt 180., count) if count gt 0. then lon_vector2[result]=colon_vector2[result]-360. max_lon=comax_lon & if comax_lon gt 180. then max_lon=comax_lon-360. min_lon=comin_lon & if comin_lon gt 180. then min_lon=comin_lon-360. if max_lon lt min_lon then begin t=max_lon & max_lon=min_lon & min_lon=t endif fraction_array=fltarr(n_elements(colon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(colon_vector2)-1 do begin i=0 if colon_vector2[k] lt 180 then begin while colon_vector[i] ne 0.0 do i=i+1 endif while colon_vector[i] le colon_vector2[k]-dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_start_index=i while colon_vector[i] lt colon_vector2[k]+dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_end_index=i if lon_start_index eq 180 then lon_start_index=177 if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 ;!p.background=!d.n_colors-1 ;set_plot, 'z' ;device, set_resolution=[1000,600] set_plot, 'x' WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg',xpos=100, ypos=100 !p.background=!d.n_colors-1 ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right !p.multi=[0,2,2] & !p.charsize=2.0 ;!p.charsize=3.0 clat=(max_lat+min_lat)/2.0 clon=(comax_lon+comin_lon)/2.0 if clon gt 180. then clon=clon-360. ;clon=clon-180. ;clat=0.0 & clon=180. map_set,0,clon,limit=[min_lat,max_lon,max_lat,min_lon],/mercator,position=[0.1,0.15,0.9,0.85], $ /isotropic;,limit=[min_lat,max_lon,max_lat,min_lon] ;map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,$ ;limit=[min_lat,max_lon,max_lat,min_lon] dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set,0.,clon,limit=[min_lat,max_lon,max_lat,min_lon],/mercator,/continents,$ /grid,position=[0.1,0.15,0.9,0.85], $ /noerase, /isotropic,color=255;,limit=[min_lat,max_lon,max_lat,min_lon],color=155 ;map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,$ ;limit=[min_lat,max_lon,max_lat,min_lon] ;map_grid,/label,color=255 ;map_continents, color=255 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, output_path+'CloudSat_Vol_Occ_Freq_Map-World_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if world_flag eq 1 then begin ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;=============================================================================; ;=============================================================================; if sourthern_ocean_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=-40. & min_lat=-75. & comin_lon=0. & comax_lon=359. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.],[13.,16.]] colon_vector=lon_vector result=where(colon_vector lt 0,count) if count gt 0 then colon_vector[result]=360.0+colon_vector[result] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] colon_vector2=comin_lon & while max(colon_vector2) le comax_lon do colon_vector2=[colon_vector2,(max(colon_vector2))+(2.*dlon)] lon_vector2=colon_vector2 result=where(lon_vector2 gt 180., count) if count gt 0. then lon_vector2[result]=colon_vector2[result]-360. max_lon=comax_lon & if comax_lon gt 180. then max_lon=comax_lon-360. min_lon=comin_lon & if comin_lon gt 180. then min_lon=comin_lon-360. if max_lon lt min_lon then begin t=max_lon & max_lon=min_lon & min_lon=t endif fraction_array=fltarr(n_elements(colon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(colon_vector2)-1 do begin i=0 if colon_vector2[k] lt 180 then begin while colon_vector[i] ne 0.0 do i=i+1 endif while colon_vector[i] le colon_vector2[k]-dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_start_index=i while colon_vector[i] lt colon_vector2[k]+dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_end_index=i if lon_start_index eq 180 then lon_start_index=177 if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 ;!p.background=!d.n_colors-1 ;set_plot, 'z' ;device, set_resolution=[1000,600] set_plot, 'x' WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg',xpos=100, ypos=100 !p.background=!d.n_colors-1 ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right !p.multi=[0,2,2] & !p.charsize=2.0 ;!p.charsize=3.0 clat=(max_lat+min_lat)/2.0 clon=(comax_lon+comin_lon)/2.0 if clon gt 180. then clon=clon-360. ;clon=clon-180. ;clat=0.0 & clon=180. map_set,0,clon,limit=[min_lat,max_lon,max_lat,min_lon],/mercator,position=[0.1,0.15,0.9,0.85], $ /isotropic;,limit=[min_lat,max_lon,max_lat,min_lon] ;map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,$ ;limit=[min_lat,max_lon,max_lat,min_lon] dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set,0.,clon,limit=[min_lat,max_lon,max_lat,min_lon],/mercator,/continents,$ /grid,position=[0.1,0.15,0.9,0.85], $ /noerase, /isotropic,color=255;,limit=[min_lat,max_lon,max_lat,min_lon],color=155 ;map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,$ ;limit=[min_lat,max_lon,max_lat,min_lon] ;map_grid,/label,color=255 ;map_continents, color=255 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, output_path+'CloudSat_Vol_Occ_Freq_Map-SouthernOcean_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if southern_ocean eq 1 then begin ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;=============================================================================; ;=============================================================================; if antarctic_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=-60. & min_lat=-90. & comin_lon=0. & comax_lon=359. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] colon_vector=lon_vector result=where(colon_vector lt 0,count) if count gt 0 then colon_vector[result]=360.0+colon_vector[result] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] colon_vector2=comin_lon & while max(colon_vector2) le comax_lon do colon_vector2=[colon_vector2,(max(colon_vector2))+(2.*dlon)] lon_vector2=colon_vector2 result=where(lon_vector2 gt 180., count) if count gt 0. then lon_vector2[result]=colon_vector2[result]-360. max_lon=comax_lon & if comax_lon gt 180. then max_lon=comax_lon-360. min_lon=comin_lon & if comin_lon gt 180. then min_lon=comin_lon-360. if max_lon lt min_lon then begin t=max_lon & max_lon=min_lon & min_lon=t endif fraction_array=fltarr(n_elements(colon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(colon_vector2)-1 do begin i=0 if colon_vector2[k] lt 180 then begin while colon_vector[i] ne 0.0 do i=i+1 endif while colon_vector[i] le colon_vector2[k]-dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_start_index=i while colon_vector[i] lt colon_vector2[k]+dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_end_index=i if lon_start_index eq 180 then lon_start_index=177 if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 set_plot, 'x' WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg',xpos=100, ypos=100 ;WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' !p.background=!d.n_colors-1 ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=2.0 clat=(max_lat+min_lat)/2.0 clon=(comax_lon+comin_lon)/2.0 if clon gt 180. then clon=clon-360. ;clon=clon-180. ;clat=0.0 & clon=180. map_set,-90,90,limit=[-90,0,-60,360],/cylindrical,position=[0.1,0.15,0.9,0.85], /isotropic;,limit=[min_lat,max_lon,max_lat,min_lon] ;map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,$ ;limit=[min_lat,max_lon,max_lat,min_lon] dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set,-90,90,limit=[-90,0,-60,360],/cylindrical,/continents,/grid,position=[0.1,0.15,0.9,0.85], $ /noerase, /isotropic,color=255;,limit=[min_lat,max_lon,max_lat,min_lon] ;map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,$ ;limit=[min_lat,max_lon,max_lat,min_lon] ;map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, output_path+'CloudSat_Vol_Occ_Freq_Map-Antarctic_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if antarctic_flag eq 1 then begin if arctic_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=90. & min_lat=60 & comin_lon=0. & comax_lon=359. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] colon_vector=lon_vector result=where(colon_vector lt 0,count) if count gt 0 then colon_vector[result]=360.0+colon_vector[result] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] colon_vector2=comin_lon & while max(colon_vector2) le comax_lon do colon_vector2=[colon_vector2,(max(colon_vector2))+(2.*dlon)] lon_vector2=colon_vector2 result=where(lon_vector2 gt 180., count) if count gt 0. then lon_vector2[result]=colon_vector2[result]-360. max_lon=comax_lon & if comax_lon gt 180. then max_lon=comax_lon-360. min_lon=comin_lon & if comin_lon gt 180. then min_lon=comin_lon-360. if max_lon lt min_lon then begin t=max_lon & max_lon=min_lon & min_lon=t endif fraction_array=fltarr(n_elements(colon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(colon_vector2)-1 do begin i=0 if colon_vector2[k] lt 180 then begin while colon_vector[i] ne 0.0 do i=i+1 endif while colon_vector[i] le colon_vector2[k]-dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_start_index=i while colon_vector[i] lt colon_vector2[k]+dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_end_index=i if lon_start_index eq 180 then lon_start_index=177 if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 ;WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' set_plot, 'x' WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg',xpos=100, ypos=100 ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=2.0 !p.background=!d.n_colors-1 clat=(max_lat+min_lat)/2.0 clon=(comax_lon+comin_lon)/2.0 if clon gt 180. then clon=clon-360. ;clon=clon-180. ;clat=0.0 & clon=180. map_set,90,90,limit=[90,0,60,360],/cylindrical,position=[0.1,0.15,0.9,0.85], /isotropic;,limit=[min_lat,max_lon,max_lat,min_lon] ;map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,$ ;limit=[min_lat,max_lon,max_lat,min_lon] dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set,90,90,limit=[90,0,60,360],/cylindrical,/continents,/grid,position=[0.1,0.15,0.9,0.85], $ /noerase, /isotropic, color=255;,limit=[min_lat,max_lon,max_lat,min_lon] ;map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,$ ;limit=[min_lat,max_lon,max_lat,min_lon] ;map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, output_path+'CloudSat_Vol_Occ_Freq_Map-Arctic_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if arctic_flag eq 1 then begin if Indian_Asia_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=60. & min_lat=-60. & max_lon=170. & min_lon=-10. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] lon_vector2=min_lon & while max(lon_vector2) le max_lon do lon_vector2=[lon_vector2,(max(lon_vector2))+(2.*dlon)] fraction_array=fltarr(n_elements(lon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(lon_vector2)-1 do begin i=0 & while lon_vector[i] le lon_vector2[k]-dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_start_index=i while lon_vector[i] lt lon_vector2[k]+dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 ;WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' set_plot, 'x' WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg',xpos=100, ypos=100 ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=2.0 !p.background=!d.n_colors-1 clat=(max_lat+min_lat)/2.0 clon=(max_lon+min_lon)/2.0 ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,limit=[min_lat,min_lon,max_lat,max_lon] ;map_set,clat,clon,/stereographic,/usa,$ ; limit=[min_lat,min_lon,max_lat,max_lon],$ ; /grid,/continents, color=255,position=[0.1,0.1,0.9,0.8] ;map_grid,/box_axes,color=255 dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,limit=[min_lat,min_lon,max_lat,max_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-Indian_Asia_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if Indian_Asia_flag eq 1 then begin ;=============================================================================; if europe_africa_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=60. & min_lat=-60 & max_lon=100. & min_lon=-40. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] lon_vector2=min_lon & while max(lon_vector2) le max_lon do lon_vector2=[lon_vector2,(max(lon_vector2))+(2.*dlon)] fraction_array=fltarr(n_elements(lon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(lon_vector2)-1 do begin i=0 & while lon_vector[i] le lon_vector2[k]-dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_start_index=i while lon_vector[i] lt lon_vector2[k]+dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(max_lon+min_lon)/2.0 ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,limit=[min_lat,min_lon,max_lat,max_lon] ;map_set,clat,clon,/stereographic,/usa,$ ; limit=[min_lat,min_lon,max_lat,max_lon],$ ; /grid,/continents, color=255,position=[0.1,0.1,0.9,0.8] ;map_grid,/box_axes,color=255 dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,limit=[min_lat,min_lon,max_lat,max_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-EuroAfrica_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if europe_africa_flag eq 1 then begin if n_s_america_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=60. & min_lat=-60 & max_lon=0. & min_lon=-155. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] lon_vector2=min_lon & while max(lon_vector2) le max_lon do lon_vector2=[lon_vector2,(max(lon_vector2))+(2.*dlon)] fraction_array=fltarr(n_elements(lon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(lon_vector2)-1 do begin i=0 & while lon_vector[i] le lon_vector2[k]-dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_start_index=i while lon_vector[i] lt lon_vector2[k]+dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(max_lon+min_lon)/2.0 ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,limit=[min_lat,min_lon,max_lat,max_lon] ;map_set,clat,clon,/stereographic,/usa,$ ; limit=[min_lat,min_lon,max_lat,max_lon],$ ; /grid,/continents, color=255,position=[0.1,0.1,0.9,0.8] ;map_grid,/box_axes,color=255 dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,limit=[min_lat,min_lon,max_lat,max_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-Americas_Hemis_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if n_s_america_flag eq 1 then begin if n_s_Pacific_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=60. & min_lat=-60 & comin_lon=110. & comax_lon=290. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] colon_vector=lon_vector result=where(colon_vector lt 0,count) if count gt 0 then colon_vector[result]=360.0+colon_vector[result] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] colon_vector2=comin_lon & while max(colon_vector2) le comax_lon do colon_vector2=[colon_vector2,(max(colon_vector2))+(2.*dlon)] lon_vector2=colon_vector2 result=where(lon_vector2 gt 180., count) if count gt 0. then lon_vector2[result]=colon_vector2[result]-360. max_lon=comax_lon & if comax_lon gt 180. then max_lon=comax_lon-360. min_lon=comin_lon & if comin_lon gt 180. then min_lon=comin_lon-360. if max_lon lt min_lon then t=max_lon & max_lon=min_lon & min_lon=t fraction_array=fltarr(n_elements(colon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(colon_vector2)-1 do begin i=0 if colon_vector2[k] lt 180 then begin while colon_vector[i] ne 0.0 do i=i+1 endif while colon_vector[i] le colon_vector2[k]-dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_start_index=i while colon_vector[i] lt colon_vector2[k]+dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(comax_lon+comin_lon)/2.0 if clon gt 180. then clon=clon-360. ;clon=clon-180. ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,$ limit=[min_lat,max_lon,max_lat,min_lon] dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,$ limit=[min_lat,max_lon,max_lat,min_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-Pacific_Hemis_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if n_s_Pacific_flag eq 1 then begin if s_Pacific_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=10. & min_lat=-60 & comin_lon=130. & comax_lon=290. & dlat=1. & dlon=2.5 ; Calculate co longitude limits. This solves the -180/180 ; discontinuity ;cominlon=min_lon ;comaxlon=max_lon ;if min_lon lt 0 then cominlon=360.0+cominlon ;if max_lon lt 0 then comaxlon=360.0+comaxlon ; Calculate the center lon and then adjust for the ; conversion to continuously increasing lon ; if cominlon lt comaxlon then begin ; clon=(min_lon-max_lon)/2.0 ; endif else begin ; clon=(cominlon+comaxlon)/2.0 ; if clon gt 180 then clon=clon-360.0 ; endelse ;;if clon lt 0. then clon=360.+clon height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] colon_vector=lon_vector result=where(colon_vector lt 0,count) if count gt 0 then colon_vector[result]=360.0+colon_vector[result] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] colon_vector2=comin_lon & while max(colon_vector2) le comax_lon do colon_vector2=[colon_vector2,(max(colon_vector2))+(2.*dlon)] lon_vector2=colon_vector2 result=where(lon_vector2 gt 180., count) if count gt 0. then lon_vector2[result]=colon_vector2[result]-360. max_lon=comax_lon & if comax_lon gt 180. then max_lon=comax_lon-360. min_lon=comin_lon & if comin_lon gt 180. then min_lon=comin_lon-360. if max_lon lt min_lon then t=max_lon & max_lon=min_lon & min_lon=t ;colon_vector2=cominlon ;colon_vector2=lon_vector2 ;while min(colon_vector2) ge comaxlon do begin ; colon_vector2=[colon_vector2,(min(colon_vector2))-(2.*dlon)] ;endwhile ; Calculate longitude as 0 to 360 ; ; colon_vector2=lon_vector2 ; result=where(colon_vector2 lt 0,count) ; if count gt 0 then colon_vector2[result]=360.0+colon_vector2[result] ;colon_vector=lon_vector ; result=where(colon_vector lt 0,count) ; if count gt 0 then colon_vector[result]=360.0+colon_vector[result] fraction_array=fltarr(n_elements(colon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(colon_vector2)-1 do begin i=0 if colon_vector2[k] lt 180 then begin while colon_vector[i] ne 0.0 do i=i+1 endif while colon_vector[i] le colon_vector2[k]-dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_start_index=i while colon_vector[i] lt colon_vector2[k]+dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(comax_lon+comin_lon)/2.0 if clon gt 180. then clon=clon-360. ;clon=clon-180. ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,$ limit=[min_lat,max_lon,max_lat,min_lon] dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,$ limit=[min_lat,max_lon,max_lat,min_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-South_Pacific_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if s_Pacific_flag eq 1 then begin if Australia_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=10. & min_lat=-60 & max_lon=180. & min_lon=60. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] lon_vector2=min_lon & while max(lon_vector2) le max_lon do lon_vector2=[lon_vector2,(max(lon_vector2))+(2.*dlon)] fraction_array=fltarr(n_elements(lon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(lon_vector2)-1 do begin i=0 & while lon_vector[i] le lon_vector2[k]-dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_start_index=i while lon_vector[i] lt lon_vector2[k]+dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(max_lon+min_lon)/2.0 ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,limit=[min_lat,min_lon,max_lat,max_lon] ;map_set,clat,clon,/stereographic,/usa,$ ; limit=[min_lat,min_lon,max_lat,max_lon],$ ; /grid,/continents, color=255,position=[0.1,0.1,0.9,0.8] ;map_grid,/box_axes,color=255 dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,limit=[min_lat,min_lon,max_lat,max_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-Australia_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if Australia_flag eq 1 then begin if africa_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=40. & min_lat=-60 & max_lon=100. & min_lon=-50. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] lon_vector2=min_lon & while max(lon_vector2) le max_lon do lon_vector2=[lon_vector2,(max(lon_vector2))+(2.*dlon)] fraction_array=fltarr(n_elements(lon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(lon_vector2)-1 do begin i=0 & while lon_vector[i] le lon_vector2[k]-dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_start_index=i while lon_vector[i] lt lon_vector2[k]+dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(max_lon+min_lon)/2.0 ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,limit=[min_lat,min_lon,max_lat,max_lon] ;map_set,clat,clon,/stereographic,/usa,$ ; limit=[min_lat,min_lon,max_lat,max_lon],$ ; /grid,/continents, color=255,position=[0.1,0.1,0.9,0.8] ;map_grid,/box_axes,color=255 dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,limit=[min_lat,min_lon,max_lat,max_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-Africa_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if africa_flag eq 1 then begin if south_america_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=10. & min_lat=-60 & max_lon=0. & min_lon=-135. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] lon_vector2=min_lon & while max(lon_vector2) le max_lon do lon_vector2=[lon_vector2,(max(lon_vector2))+(2.*dlon)] fraction_array=fltarr(n_elements(lon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(lon_vector2)-1 do begin i=0 & while lon_vector[i] le lon_vector2[k]-dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_start_index=i while lon_vector[i] lt lon_vector2[k]+dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(max_lon+min_lon)/2.0 ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,limit=[min_lat,min_lon,max_lat,max_lon] ;map_set,clat,clon,/stereographic,/usa,$ ; limit=[min_lat,min_lon,max_lat,max_lon],$ ; /grid,/continents, color=255,position=[0.1,0.1,0.9,0.8] ;map_grid,/box_axes,color=255 dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,limit=[min_lat,min_lon,max_lat,max_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-South_America_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if south_america_flag eq 1 then begin if eq_Pacific_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=30. & min_lat=-30 & comin_lon=100. & comax_lon=270. & dlat=1. & dlon=2.5 ; Calculate co longitude limits. This solves the -180/180 ; discontinuity ;cominlon=min_lon ;comaxlon=max_lon ;if min_lon lt 0 then cominlon=360.0+cominlon ;if max_lon lt 0 then comaxlon=360.0+comaxlon ; Calculate the center lon and then adjust for the ; conversion to continuously increasing lon ; if cominlon lt comaxlon then begin ; clon=(min_lon-max_lon)/2.0 ; endif else begin ; clon=(cominlon+comaxlon)/2.0 ; if clon gt 180 then clon=clon-360.0 ; endelse ;;if clon lt 0. then clon=360.+clon height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] colon_vector=lon_vector result=where(colon_vector lt 0,count) if count gt 0 then colon_vector[result]=360.0+colon_vector[result] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] colon_vector2=comin_lon & while max(colon_vector2) le comax_lon do colon_vector2=[colon_vector2,(max(colon_vector2))+(2.*dlon)] lon_vector2=colon_vector2 result=where(lon_vector2 gt 180., count) if count gt 0. then lon_vector2[result]=colon_vector2[result]-360. max_lon=comax_lon & if comax_lon gt 180. then max_lon=comax_lon-360. min_lon=comin_lon & if comin_lon gt 180. then min_lon=comin_lon-360. if max_lon lt min_lon then t=max_lon & max_lon=min_lon & min_lon=t ;colon_vector2=cominlon ;colon_vector2=lon_vector2 ;while min(colon_vector2) ge comaxlon do begin ; colon_vector2=[colon_vector2,(min(colon_vector2))-(2.*dlon)] ;endwhile ; Calculate longitude as 0 to 360 ; ; colon_vector2=lon_vector2 ; result=where(colon_vector2 lt 0,count) ; if count gt 0 then colon_vector2[result]=360.0+colon_vector2[result] ;colon_vector=lon_vector ; result=where(colon_vector lt 0,count) ; if count gt 0 then colon_vector[result]=360.0+colon_vector[result] fraction_array=fltarr(n_elements(colon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(colon_vector2)-1 do begin i=0 if colon_vector2[k] lt 180 then begin while colon_vector[i] ne 0.0 do i=i+1 endif while colon_vector[i] le colon_vector2[k]-dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_start_index=i while colon_vector[i] lt colon_vector2[k]+dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(comax_lon+comin_lon)/2.0 if clon gt 180. then clon=clon-360. ;clon=clon-180. ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,$ limit=[min_lat,max_lon,max_lat,min_lon] dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,$ limit=[min_lat,max_lon,max_lat,min_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-Eq_Pacific_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if eq_Pacific_flag eq 1 then begin if eq_IndoPacific_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=30. & min_lat=-30 & max_lon=180. & min_lon=60. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] lon_vector2=min_lon & while max(lon_vector2) le max_lon do lon_vector2=[lon_vector2,(max(lon_vector2))+(2.*dlon)] fraction_array=fltarr(n_elements(lon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(lon_vector2)-1 do begin i=0 & while lon_vector[i] le lon_vector2[k]-dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_start_index=i while lon_vector[i] lt lon_vector2[k]+dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(max_lon+min_lon)/2.0 ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,limit=[min_lat,min_lon,max_lat,max_lon] ;map_set,clat,clon,/stereographic,/usa,$ ; limit=[min_lat,min_lon,max_lat,max_lon],$ ; /grid,/continents, color=255,position=[0.1,0.1,0.9,0.8] ;map_grid,/box_axes,color=255 dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,limit=[min_lat,min_lon,max_lat,max_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-IndoPacific_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if eq_IndoPacific_flag eq 1 then begin if eq_africa_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=30. & min_lat=-30 & max_lon=90. & min_lon=-60. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] lon_vector2=min_lon & while max(lon_vector2) le max_lon do lon_vector2=[lon_vector2,(max(lon_vector2))+(2.*dlon)] fraction_array=fltarr(n_elements(lon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(lon_vector2)-1 do begin i=0 & while lon_vector[i] le lon_vector2[k]-dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_start_index=i while lon_vector[i] lt lon_vector2[k]+dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(max_lon+min_lon)/2.0 ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,limit=[min_lat,min_lon,max_lat,max_lon] ;map_set,clat,clon,/stereographic,/usa,$ ; limit=[min_lat,min_lon,max_lat,max_lon],$ ; /grid,/continents, color=255,position=[0.1,0.1,0.9,0.8] ;map_grid,/box_axes,color=255 dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,limit=[min_lat,min_lon,max_lat,max_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-Eq_Africa_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if eq_africa_flag eq 1 then begin if eq_south_america_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=30. & min_lat=-30 & max_lon=-10. & min_lon=-179. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] lon_vector2=min_lon & while max(lon_vector2) le max_lon do lon_vector2=[lon_vector2,(max(lon_vector2))+(2.*dlon)] fraction_array=fltarr(n_elements(lon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(lon_vector2)-1 do begin i=0 & while lon_vector[i] le lon_vector2[k]-dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_start_index=i while lon_vector[i] lt lon_vector2[k]+dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(max_lon+min_lon)/2.0 ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,limit=[min_lat,min_lon,max_lat,max_lon] ;map_set,clat,clon,/stereographic,/usa,$ ; limit=[min_lat,min_lon,max_lat,max_lon],$ ; /grid,/continents, color=255,position=[0.1,0.1,0.9,0.8] ;map_grid,/box_axes,color=255 dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,limit=[min_lat,min_lon,max_lat,max_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-Eq_South_America_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if south_america_flag eq 1 then begin if north_pacific_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=60. & min_lat=-10. & comin_lon=90. & comax_lon=270. & dlat=1. & dlon=2.5 ;max_lat=30. & min_lat=-30 & comin_lon=100. & comax_lon=270. & dlat=2.5 & dlon=2.5 ; Calculate co longitude limits. This solves the -180/180 ; discontinuity ;cominlon=min_lon ;comaxlon=max_lon ;if min_lon lt 0 then cominlon=360.0+cominlon ;if max_lon lt 0 then comaxlon=360.0+comaxlon ; Calculate the center lon and then adjust for the ; conversion to continuously increasing lon ; if cominlon lt comaxlon then begin ; clon=(min_lon-max_lon)/2.0 ; endif else begin ; clon=(cominlon+comaxlon)/2.0 ; if clon gt 180 then clon=clon-360.0 ; endelse ;;if clon lt 0. then clon=360.+clon height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] colon_vector=lon_vector result=where(colon_vector lt 0,count) if count gt 0 then colon_vector[result]=360.0+colon_vector[result] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] colon_vector2=comin_lon & while max(colon_vector2) le comax_lon do colon_vector2=[colon_vector2,(max(colon_vector2))+(2.*dlon)] lon_vector2=colon_vector2 result=where(lon_vector2 gt 180., count) if count gt 0. then lon_vector2[result]=colon_vector2[result]-360. max_lon=comax_lon & if comax_lon gt 180. then max_lon=comax_lon-360. min_lon=comin_lon & if comin_lon gt 180. then min_lon=comin_lon-360. if max_lon lt min_lon then t=max_lon & max_lon=min_lon & min_lon=t ;colon_vector2=cominlon ;colon_vector2=lon_vector2 ;while min(colon_vector2) ge comaxlon do begin ; colon_vector2=[colon_vector2,(min(colon_vector2))-(2.*dlon)] ;endwhile ; Calculate longitude as 0 to 360 ; ; colon_vector2=lon_vector2 ; result=where(colon_vector2 lt 0,count) ; if count gt 0 then colon_vector2[result]=360.0+colon_vector2[result] ;colon_vector=lon_vector ; result=where(colon_vector lt 0,count) ; if count gt 0 then colon_vector[result]=360.0+colon_vector[result] fraction_array=fltarr(n_elements(colon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(colon_vector2)-1 do begin i=0 if colon_vector2[k] lt 180 then begin while colon_vector[i] ne 0.0 do i=i+1 endif while colon_vector[i] le colon_vector2[k]-dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_start_index=i while colon_vector[i] lt colon_vector2[k]+dlon and i lt n_elements(colon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(comax_lon+comin_lon)/2.0 if clon gt 180. then clon=clon-360. ;clon=clon-180. ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,$ limit=[min_lat,max_lon,max_lat,min_lon] dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,$ limit=[min_lat,max_lon,max_lat,min_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-North_Pacific_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if eq_Pacific_flag eq 1 then begin if atl_europe_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=70. & min_lat=0. & max_lon=90. & min_lon=-60. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] lon_vector2=min_lon & while max(lon_vector2) le max_lon do lon_vector2=[lon_vector2,(max(lon_vector2))+(2.*dlon)] fraction_array=fltarr(n_elements(lon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(lon_vector2)-1 do begin i=0 & while lon_vector[i] le lon_vector2[k]-dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_start_index=i while lon_vector[i] lt lon_vector2[k]+dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(max_lon+min_lon)/2.0 ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,limit=[min_lat,min_lon,max_lat,max_lon] ;map_set,clat,clon,/stereographic,/usa,$ ; limit=[min_lat,min_lon,max_lat,max_lon],$ ; /grid,/continents, color=255,position=[0.1,0.1,0.9,0.8] ;map_grid,/box_axes,color=255 dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,limit=[min_lat,min_lon,max_lat,max_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-Atantic_Europe_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if atl_europe_flag eq 1 then begin if eurasia_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=60. & min_lat=0. & max_lon=170. & min_lon=-10. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] lon_vector2=min_lon & while max(lon_vector2) le max_lon do lon_vector2=[lon_vector2,(max(lon_vector2))+(2.*dlon)] fraction_array=fltarr(n_elements(lon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(lon_vector2)-1 do begin i=0 & while lon_vector[i] le lon_vector2[k]-dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_start_index=i while lon_vector[i] lt lon_vector2[k]+dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(max_lon+min_lon)/2.0 ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,limit=[min_lat,min_lon,max_lat,max_lon] ;map_set,clat,clon,/stereographic,/usa,$ ; limit=[min_lat,min_lon,max_lat,max_lon],$ ; /grid,/continents, color=255,position=[0.1,0.1,0.9,0.8] ;map_grid,/box_axes,color=255 dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,limit=[min_lat,min_lon,max_lat,max_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-Eurasia_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if eurasia_flag eq 1 then begin if n_america_flag eq 1 then begin ; divide the globe into sections, then plot low, middle, and high cloud occurrence ; set up the first map max_lat=70. & min_lat=0. & max_lon=-10. & min_lon=-179. & dlat=1. & dlon=2.5 height_ranges=[[0.,18.],[0.,3.],[3.,6.],[6.,18.],[10.,18.],[0.,12.]] lat_vector2=min_lat & while max(lat_vector2) le max_lat do lat_vector2=[lat_vector2,(max(lat_vector2))+(2.*dlat)] lon_vector2=min_lon & while max(lon_vector2) le max_lon do lon_vector2=[lon_vector2,(max(lon_vector2))+(2.*dlon)] fraction_array=fltarr(n_elements(lon_vector2),n_elements(lat_vector2)) for l=0,n_elements(height_ranges[0,*])-1 do begin i=0 & while height_vector[i] le height_ranges[0,l] do i=i+1 & height_start_index=i while height_vector[i] lt height_ranges[1,l] do i=i+1 & height_end_index=i for j=0,n_elements(lat_vector2)-1 do begin i=0 & while lat_vector[i] le lat_vector2[j]-dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_start_index=i while lat_vector[i] lt lat_vector2[j]+dlat and i lt n_elements(lat_vector)-2 do i=i+1 & lat_end_index=i for k=0,n_elements(lon_vector2)-1 do begin i=0 & while lon_vector[i] le lon_vector2[k]-dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_start_index=i while lon_vector[i] lt lon_vector2[k]+dlon and i lt n_elements(lon_vector)-2 do i=i+1 & lon_end_index=i if total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) ne 0 then begin fraction_array[k,j]=total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,1:n_elements(dbz_vector)-1,*]))/$ total(float(CPR_Occ_Grid[lat_start_index:lat_end_index,lon_start_index:lon_end_index,height_start_index:height_end_index,*,*])) endif else begin ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin fraction_array[k,j]=0.0 endelse ; if total(float(CPR_Occ_Grid[lat_start_indx:lat_end_indx,jj,k,*,*])) ne 0 then begin endfor endfor ; now plot on a map loadct, 15 !p.background=!d.n_colors-1 WINDOW, 1, XSIZE=1000, YSIZE=600,TITLE='1B CPR Lat Avg' ;xl=0.1 & yl=0.2 & xr=0.90 & yr=0.95 ; upper right ;& !p.multi=[0,2,4] & !p.charsize=2.0 !p.charsize=1.0 clat=(max_lat+min_lat)/2.0 clon=(max_lon+min_lon)/2.0 ;clat=0.0 & clon=180. map_set, 0.,clon,/mercator,color=255,/continents,/grid,position=[0.1,0.15,0.9,0.85], /isotropic,limit=[min_lat,min_lon,max_lat,max_lon] ;map_set,clat,clon,/stereographic,/usa,$ ; limit=[min_lat,min_lon,max_lat,max_lon],$ ; /grid,/continents, color=255,position=[0.1,0.1,0.9,0.8] ;map_grid,/box_axes,color=255 dmax=max(fraction_array) & dmin=min(fraction_array) contour_levels=dmin+((findgen(20)*((dmax-dmin)/20.))) color_index=fix((255./(dmax-dmin))*(contour_levels-dmin)) lhgt_string=strtrim(string(fix(height_ranges[0,l]),format='(i2)')) uhgt_string=strtrim(string(fix(height_ranges[1,l]),format='(i2)')) lat_avg_string=strtrim(string(2.*dlat,format='(f3.1)')) lon_avg_string=strtrim(string(2.*dlon,format='(f3.1)')) title_string='Heights: '+lhgt_string+'km-'+uhgt_string+'km. Avg Box: '+$ lat_avg_string+'X'+lon_avg_string+'. For Period '+datelist[0]+'-'+datelist[n_elements(datelist)-1]+'. dBZ Range: All' contour,fraction_array,lon_vector2,lat_vector2,/overplot,/cell_fill,levels=contour_levels,c_colors=color_index,$ title=title_string,color=0 map_set, 0.,clon,/mercator,color=0,/continents,/grid,position=[0.1,0.15,0.9,0.85], /noerase,/isotropic,limit=[min_lat,min_lon,max_lat,max_lon] map_grid,/box_axes,color=0 xyouts, 0.5,0.95,'CloudSat Volumetric Occurrence Frequency',color=0,alignment=0.5, /normal,charsize=1.5 xyouts, 0.5,0.91,title_string,color=0,alignment=0.5, /normal,charsize=1.25 COLORBAR_fanning, NCOLORS=255, POSITION=[0.05, 0.05, 0.9, 0.07],color=0,maxrange=dmax,minrange=dmin,divisions=0.,$ format='(f4.2)',title='Occurrence Frequency' tvlct, red, green,blue, /get write_png, 'e:\cloudsat_data\cloud_occurrence_stats\CloudSat_Vol_Occ_Freq_Map-North_America_'$ +datelist[0]+'-'+datelist[n_elements(datelist)-1]+'_'+lhgt_string+'km-'+uhgt_string+'km'+'_'+$ lat_avg_string+'X'+lon_avg_string+'_'+'dBZ-All.png', tvrd(), red, green, blue print, 'map' endfor ; height_ranges endif ;if n_america_flag eq 1 then begin end