pro gpm_overpasses_2019_v2,forbit ;************************************* ; Input ;************************************* ;path_prefix='/uufs/chpc.utah.edu/common/home/' path_prefix='/Volumes/' ; Choose which ship track to use region='investigator_2019' ;region='investigator_2018' ; This is the region covering the entire ship track of the experiment if region eq 'investigator_2019' then begin ulat=-42.0 & llat=-67.0 & llon=137.0 & rlon=157.0;153.0 ;big region for 2019 shipdir=path_prefix+'u0079358/gpm/' shipfilename='investigator_ship_track.20190118.210915.20190304.211315.1min.cdf' ship_search='2019' endif else if region eq 'investigator_2018' then begin ulat=-42.0 & llat=-66.0 & llon=130.0 & rlon=152.0 ;big region for 2018 shipdir=path_prefix+'mace-group4/field_programs/socrates/ship_track/' shipfilename='socrates_ship_track.20180110.232300.20180221.052900.cdf' ship_search='2018' endif ; If you put in a gpm orbit, this is the only one that will run ;forbit='022218' ;20180125 ;forbit='022245' ;20180127 ;no cband ;forbit='022263' ;20180128 ;forbit='022353' ;20180203.13 ;forbit='022368' ;20180204.12 ;forbit='022370' ;20180204.13 ;forbit='022398' ;20180206 ;forbit='022429' ;20180208 ;forbit='022432' ;20180208 ;forbit='022445' ;20180209 ;forbit='022448' ;20180209 ;forbit='022460' ;20180210 ;forbit='022463' ;20180210 ;forbit='022479' ;20100211 ;forbit='022494' ;20180212 ;forbit='022509' ;20180213 ;forbit='022522' ;20180214 ;forbit='022525' ;20180214 ;forbit='022567' ;20180217 ; 2019 investigator overpasses ;forbit='027858' ;20190123.09 ;forbit='027869' ;20190124.03 ;forbit='027873' ;20190124.08 ;forbit='027885' ;20190125.04 ;forbit='027888' ;20190125.07 ;forbit='027903' ;20190126.06 ;forbit='027932' ;20190128.04 ;forbit='027947' ;20190129.03 ;forbit='027949' ;20190129.05 ;forbit='027964' ;20190130.04 ;forbit='028085' ;20190207.00 ;forbit='028087' ;20190207.02 ;forbit='028102' ;20190208.01 ;forbit='028146' ;20190210.23 ;forbit='028162' ;20190211.23 ;forbit='028193' ;20190213.23 ;forbit='028225' ;20190215.23 ;forbit='028392' ;20190226.18 ; Output file directories output_dir='' imagedir=path_prefix+'u0079358/gpm/' imagedir='./' ;imagedir='/uufs/chpc.utah.edu/common/home/u0079358/gpm/' ;imagedir='/uufs/chpc.utah.edu/common/home/u0079358/public_html/gpm/overpasses_power/' ;************************************* ; Constants ;************************************* ; Choose which radar radar='ku' ;radar='ka' if radar eq 'ku' then begin radarname='KuPR' radarfreq='13.6 GHz' radarswath='245 km' gpm_dir='mace-group5/gpm/GPM_L2/GPM_2AKu.06/' ; Sub satellite point sub_pt=24 deltah=250 sfc_idx=175 endif else if radar eq 'ka' then begin radarname='KaPR' radarfreq='35.5 GHz' radarswath='120 km' gpm_dir='mace-group5/gpm/GPM_L2/GPM_2AKa.05/' ; Sub satellite point sub_pt=12 ;deltah=250 ;m for MS deltah=500 ;m for HS sfc_idx=87 ;surface plane endif ; GMI ***choose the channel** 10-183ghz gmi_dir=path_prefix+'mace-group5/gpm/GPM_L1B/GPM_1BGMI.05/' chan=8 ;channel 7-89V 8-89H ; Raw power directory pow_dir=path_prefix+'/mace-group5/gpm/GPM_L1B/GPM_PRL1KU.05/' ;***************************** ; Read in the ship track file ;***************************** fid=ncdf_open(shipdir+shipfilename) xid=ncdf_varid(fid,'julian_day') & ncdf_varget,fid,xid,julian_day_ship xid=ncdf_varid(fid,'lat') & ncdf_varget,fid,xid,lat_ship xid=ncdf_varid(fid,'lon') & ncdf_varget,fid,xid,lon_ship ncdf_close,fid ;****************************************************************************************** ; Calculate co-lon coordinates ;****************************************************************************************** lcolon=llon if lcolon lt 0 then lcolon=lcolon+360.0 rcolon=rlon if rcolon lt 0 then rcolon=rcolon+360.0 print,ulat,llat print,llon,lcolon,rlon,rcolon print,llon,rlon,rlon,llon,llon,'*',ulat,ulat,llat,llat,ulat ;****************************************************************************************** ; FIND HOW MANY ORBIT FILES THERE ARE FOR THIS DATE...THEN LOOP THROUGH THE ORBITS! ;****************************************************************************************** ; gpm directory and filename fdir=path_prefix+gpm_dir;+syear+'/'+sdoy3+'/' if forbit eq !null then begin file_string='2A.GPM.Ku.V8-20180723.'+ship_search+'02*HDF5' ;file_string='2A.GPM.Ku.V8-20180723.*HDF5' endif else begin ;file_string='2A.GPM.Ku.V8-20180723.2019*'+forbit+'*.HDF5' file_string='2A.GPM.Ku.V8-20180723.*'+forbit+'*.HDF5' endelse ; Find matching gpm files filesd=file_search(fdir+file_string,count=num_files) if num_files eq 0 then print,'NO FILES AT ALL' ;*********************************************** ; Loop through each gpm file ;*********************************************** ; If gpm files exist if num_files gt 0 then begin ; Loop through gpm files for i=0,num_files-1 do begin print,filesd[i] if radar eq 'ku' then read_gpm_2aku,filesd[i],sub_pt,forbit,$ lat_sub,lon_sub,colon_sub,julian_day,dbz,lat,lon,colon,nbin,$ dbz_measured ; nray has to be the correct size to continue ;if nray ge sub_pt*2 then begin ;************************************************ ; Check to see if this orbit track is in our big region during the experiment ;************************************************* ; Check for big region overpass idx_profiles=where(lat_sub ge llat and lat_sub le ulat and $ colon_sub ge lcolon and colon_sub le rcolon and $ julian_day ge julian_day_ship[0] and $ julian_day le julian_day_ship[-1],count_profiles) print,count_profiles,' profiles in big region during experiment' if count_profiles eq 0 then print,' overpass not in big region' if count_profiles gt 1 then begin print,'overpass in big region',count_profiles,'count_profiles' ;************************************************ ; Find the ships location at this time ; Calculate an average position and time for the ship location during overpass ; julian_day must be monotonic increasing ;************************************************ result_ship=where(julian_day_ship ge julian_day[idx_profiles[0]] and $ julian_day_ship le julian_day[idx_profiles[-1]],count_ship) ; Ship was out at this time if count_ship gt 0 then begin print,count_ship,'ship times in gpm overpass time interval' ; Average time and location of ship during gpm overpass julian_day_ship_ovp=total(julian_day_ship[result_ship])/float(count_ship) lat_ship_ovp=total(lat_ship[result_ship])/float(count_ship) lon_ship_ovp=total(lon_ship[result_ship])/float(count_ship) colon_ship_ovp=lon_ship_ovp if colon_ship_ovp lt 0 then colon_ship_ovp=colon_ship_ovp+360.0 ; Check the times caldat,julian_day[0],smm,sdd,syy,shh,smi,sss print,syy,smm,sdd,shh,smi,sss,'gpm start' caldat,julian_day_ship_ovp,omm,odd,oyy,ohh,omi,oss print,oyy,omm,odd,ohh,omi,oss,'ship' caldat,julian_day[-1],emm,edd,eyy,ehh,emi,ess print,eyy,emm,edd,ehh,emi,ess,'gpm end' ; Find the closest distance between ship track and gpm sub point delta_dist=make_array(n_elements(lon_sub),/float,value=1e7) for ii=0,n_elements(lon_sub)-1 do begin if lon_sub[ii] gt -9999 and lat_sub[ii] gt -9999 then begin delta_dist[ii]=map_2points(lon_ship_ovp,lat_ship_ovp,$ lon_sub[ii],lat_sub[ii],/meters) endif endfor ; Pick out the time and location of gpm closest approach min_dist=min(delta_dist,didx) julian_day_ovp=julian_day[didx] lat_ovp=lat_sub[didx] lon_ovp=lon_sub[didx] colon_ovp=colon_sub[didx] print,'min_dist between satillite and ship track ',min_dist/1000.0,'km' print,'min_dist idx',didx ; The satellite needs to pass close to the ship to be in cband range ; Calculate ovp box to be delta_degrees aroud the ship delta_degree=0.5 ulat_ovp=lat_ship_ovp+delta_degree & llat_ovp=lat_ship_ovp-delta_degree llon_ovp=lon_ship_ovp-2.0*delta_degree & rlon_ovp=lon_ship_ovp+2.0*delta_degree lcolon_ovp=colon_ship_ovp-2.0*delta_degree & rcolon_ovp=colon_ship_ovp+2.0*delta_degree ; Check again to see if closest approach is close enough to ship idx_ovp=where(lat_sub ge llat_ovp and lat_sub le ulat_ovp and $ colon_sub ge lcolon_ovp and colon_sub le rcolon_ovp,count_ovp) if count_ovp eq 0 then begin print,'no satellite in small ship ovp box' endif if count_ovp gt 1 then begin print,'satellite data in small ship ovp box',count_ovp,' count_ovp' ; Calculate plotting ovp box to be delta_degrees around the ship delta_degree=2.0 ulat_ovp=lat_ship_ovp+delta_degree & llat_ovp=lat_ship_ovp-delta_degree llon_ovp=lon_ship_ovp-2.0*delta_degree & rlon_ovp=lon_ship_ovp+2.0*delta_degree lcolon_ovp=colon_ship_ovp-2.0*delta_degree & rcolon_ovp=colon_ship_ovp+2.0*delta_degree idx_ovp=where(lat_sub ge llat_ovp and lat_sub le ulat_ovp and $ colon_sub ge lcolon_ovp and colon_sub le rcolon_ovp,count_ovp) ; calculate range rings around ship location (25km) lon_cir=fltarr(4,360) lat_cir=fltarr(4,360) for r=1,4 do begin arc_dist=(float(r)*25000.0)/(6371D*1000D) ;m for s=0,359 do begin result=ll_arc_distance([lon_ship_ovp,lat_ship_ovp],arc_dist,s,/degrees) lon_cir[r-1,s]=result[0] lat_cir[r-1,s]=result[1] endfor endfor ; Calculate regular grid array of the 2degree plotting overpass box delta=0.01 ynum=fix((ulat_ovp-llat_ovp)/delta) grid_lat=findgen(ynum)*delta+llat_ovp xnum=fix((rcolon_ovp-lcolon_ovp)/delta) grid_colon=findgen(xnum)*delta+lcolon_ovp grid_lon=grid_colon result=where(grid_lon gt 180,count) if count gt 0 then grid_lon[result]=grid_lon[result]-360.0 ; gpm height array height_radar=(findgen(nbin)*deltah)/1000.0 ;************************ ; Set up the plot ;************************ ; Set up plot size pxdim=1500 & pydim=900 ; Position the plots xl=0.05 & xr=0.95 yb=0.08 & yt=0.90 sx=0.05 sy=0.12 numplots_x=5 numplots_y=2 position_plots,xl,xr,yb,yt,sx,sy,numplots_x,numplots_y,pos ; Colorbar position cbpos=pos ;cbpos[*,0]=pos[*,2]+0.08 ;vertical ;cbpos[*,2]=cbpos[*,0]+0.01 cbpos[*,1]=pos[*,3]+0.019 ;horizontal cbpos[*,3]=cbpos[*,1]+0.01 ; Top is the last color to scale 256 colors, 0-255 top_color=252 ; Colortable 0-252 253=white mytable=colortable(39,ncolors=254) ;254=hot pink ;gray=255 mytable=[mytable,transpose([238,18,137]),transpose([180,180,180])] mycbtable=mytable[0:top_color,*] ; Strings dx=0.01 & dy=0.01 fs1=12 x_above_cb=3.5 ;Clear plot space pnum=0 p0=plot([0,1],[0,1],position=pos[pnum,*],/buffer,dimensions=[pxdim,pydim],axis_style=4,/nodata) d=p0.convertcoord([pos[pnum,0],pos[pnum,2]],[pos[pnum,1],pos[pnum,3]],/normal,/to_device) isx=(d[0,1,0]-d[0,0,0]) isy=(d[1,1,0]-d[1,0,0]) if 1 eq 1 then begin ;***************************** ; Plot map - Ku or Ka - dbz ;***************************** pnum=5 dmin_dbz=10 dmax_dbz=35 plot_map_gpm_dbz,pnum,dbz,sfc_idx,lat,lon,colon,grid_colon,grid_lat,$ dmin_dbz,dmax_dbz,top_color,llat_ovp,lcolon_ovp,ulat_ovp,rcolon_ovp,$ pxdim,pydim,mytable,pos,lon_cir,lat_cir,lon_sub,lat_sub,idx_ovp,$ mycbtable,cbpos,fs1,p0,p1 ;t1=text(pos[pnum,0]+0*dx,pos[pnum,3]+x_above_cb*dy,'ZFactorCorrected (dBZ)',font_size=fs1) t3=text(pos[pnum,0]+0*dx,pos[pnum,3]+x_above_cb*dy,'Reflectivity Factor with attenuation correction (dBZ)',font_size=fs1) ;***************************** ; Plot curtain - Ku or Ka - dbz ;***************************** pnum=6 plot_curtain_gpm_dbz,pnum,dbz,sub_pt,idx_ovp,top_color,dmin_dbz,dmax_dbz,$ height_radar,isx,isy,pos,mytable,lon_sub,fs1,p0,p1 t1=text(pos[pnum,0]+0*dx,pos[pnum,3]+1.5*dy,'Sub Satellite point',font_size=fs1) ;************************** ; Plot map - Ku or Ka - z factor measured ;sfc_idx-15 ;************************** pnum=7 dmin_dbz_measured=-10 dmax_dbz_measured=50 plot_map_gpm_dbz,pnum,dbz_measured,sfc_idx-14,lat,lon,colon,grid_colon,grid_lat,$ dmin_dbz_measured,dmax_dbz_measured,top_color,llat_ovp,lcolon_ovp,ulat_ovp,rcolon_ovp,$ pxdim,pydim,mytable,pos,lon_cir,lat_cir,lon_sub,lat_sub,idx_ovp,$ mycbtable,cbpos,fs1,p0,p1 t3=text(pos[pnum,0]+0*dx,pos[pnum,3]+x_above_cb*dy,'Reflectivity Factor as measured (dBZ)',font_size=fs1) ;***************************** ; Plot curtain - Ku or Ka - z factor measured ;***************************** pnum=8 plot_curtain_gpm_dbz,pnum,dbz_measured,sub_pt,idx_ovp,top_color,$ dmin_dbz_measured,dmax_dbz_measured,$ height_radar,isx,isy,pos,mytable,lon_sub,fs1,p0,p1 t1=text(pos[pnum,0]+0*dx,pos[pnum,3]+1.5*dy,'Sub Satellite point',font_size=fs1) ;************** ; ku power map ;************** pnum=2 read_gpm_prl1ku,pow_dir,syear,sdoy3,ulat_ovp,llat_ovp,llon_ovp,rlon_ovp,$ lcolon_ovp,rcolon_ovp,$ colon_pow,lat_pow,lon_pow,pow,forbit,bin_size_pow,nbin_pow,bin_echo_peak,$ lat_sub_pow,colon_sub_pow,lon_sub_pow ;idx_ovp_pow=where(lat_sub_pow ge llat_ovp and lat_sub_pow le ulat_ovp and $ ; colon_sub_pow ge lcolon_ovp and colon_sub_pow le rcolon_ovp,count_ovp_pow) idx_ovp_pow=where(lat_sub_pow ge min(lat_sub[idx_ovp]) and $ lat_sub_pow le max(lat_sub[idx_ovp]) and $ lon_sub_pow ge min(lon_sub[idx_ovp]) and $ lon_sub_pow le max(lon_sub[idx_ovp]),count_ovp_pow) ; pull out surface bin_echo_peak_sub=reform(bin_echo_peak[sub_pt,*]) sfc_echo_idx=min(bin_echo_peak_sub[idx_ovp_pow]) dmin_pow=-114 dmax_pow=-105;-95 plot_map_gpm_dbz,pnum,pow,sfc_echo_idx-10,lat_pow,lon_pow,colon_pow,$ grid_colon,grid_lat,$ dmin_pow,dmax_pow,top_color,llat_ovp,lcolon_ovp,ulat_ovp,rcolon_ovp,$ pxdim,pydim,mytable,pos,lon_cir,lat_cir,lon_sub_pow,lat_sub_pow,idx_ovp_pow,$ mycbtable,cbpos,fs1,p0,p1 t3=text(pos[pnum,0],pos[pnum,3]+x_above_cb*dy,'L1 Echo Power (dBm)',font_size=fs1) ; pow_sub1=reform(pow[*,sub_pt,*]) ; p8=image(pow_sub1,rgb_table=mytable,max_value=dmax_pow,min_value=dmin_pow,$ ; image_dimensions=[400,400]) ; pow_sub2=pow_sub1[0:sfc_echo_idx,*] ; p9=image(pow_sub2,rgb_table=mytable,max_value=dmax_pow,min_value=dmin_pow,$ ; image_dimensions=[400,400]) ;************** ; ku power curtain ;************** pnum=3 ; Subset and make height array for pow pow_sub=pow[0:sfc_echo_idx,*,*] s=size(pow_sub,/dimensions) nbin_sfc=s[0] height_pow=(findgen(nbin_sfc)*deltah)/1000.0 plot_curtain_gpm_dbz,pnum,pow_sub,sub_pt,idx_ovp_pow,top_color,$ dmin_pow,dmax_pow,$ height_pow,isx,isy,pos,mytable,lon_sub_pow,fs1,p0,p1 t1=text(pos[pnum,0]+0*dx,pos[pnum,3]+1.5*dy,'Sub Satellite point',font_size=fs1) endif ;****************** ; Get the cband radar ;****************** pnum=0 read_cband_pyart,julian_day_ship_ovp,$ ulat_ovp,llat_ovp,llon_ovp,rlon_ovp,dbz_cband,$ lat_cband,lon_cband,alt_cband,julian_day_cband,colon_cband,path_prefix if dbz_cband ne !null then begin sidx=4 ;cband surface dmin_cband=-10 & dmax_cband=25 data_var=reform(dbz_cband[*,*,sidx]) lat_var=reform(lat_cband[*,*,sidx]) lon_var=reform(lon_cband[*,*,sidx]) data_image=bytscl(data_var,top=top_color,min=dmin_cband,max=dmax_cband) result=where(data_var lt -9000 or data_var gt 1e36,count) if count gt 0 then data_image[result]=255 ;gray ;p2=image(data_var,lon_var,lat_var,$ p2=image(data_image,lon_var,lat_var,$ limit=[llat_ovp,llon_ovp,ulat_ovp,rlon_ovp],$ /current,dimensions=[pxdim,pydim],grid_units='degrees',$ ;center_longitude=(rlon_ovp-llon_ovp)/2.0,$ rgb_table=mytable,$;min_value=dmin_cband,max_value=dmax_cband,$ ;label_format='MapGrid_Labels', /box_axes,label_position=0,label_show=1,irregular=0,$ map_projection='Mercator',position=pos[pnum,*],font_size=fs1) ;p0.save,'test_test_3.png',height=pydim ;stop p3=mapcontinents(color='black',/hires) p2.mapgrid.label_color='black' p2.mapgrid.linestyle='dot' for r=0,3 do begin p7=plot(lon_cir[r,*],lat_cir[r,*],/current,/overplot) endfor p8=plot(lon_sub[idx_ovp],lat_sub[idx_ovp],/overplot,color='black',linestyle=2,thick=2) c2=colorbar(orientation=0,rgb_table=mycbtable,range=[dmin_cband,dmax_cband],$ position=reform(cbpos[pnum,*]),font_size=10,tickdir=1,border_on=1) caldat,julian_day_cband[0],mm,dd,yy,hh,mi,ss date_time=string(yy,format='(I04)')+string(mm,format='(I02)')+string(dd,format='(I02)')+$ ' '+string(hh,format='(I02)')+':'+string(mi,format='(I02)')+':'+string(ss,format='(I02)') t1=text(pos[pnum,0]+0*dx,pos[pnum,3]+x_above_cb*dy,string(alt_cband[0,0,sidx]/1000.0,format='(F4.2)')+'km'+$ ' CBand '+date_time,font_size=fs1) ;************************** ; Plot cband curtain ;************************** if 1 eq 1 then begin pnum=1 ; Pull data out along gpm subsatellite point height_cband=alt_cband[0,0,*]/1000.0 lat1=reform(lat_cband[0,*,0]) lon1=reform(lon_cband[*,0,0]) data_var=make_array(count_ovp,n_elements(height_cband),value=-8888,/float) for k=0,count_ovp-1 do begin closest_lat=min(abs(lat_sub[idx_ovp[k]]-lat1),idx_lat) closest_lon=min(abs(lon_sub[idx_ovp[k]]-lon1),idx_lon) ;print,closest_lat,closest_lon if closest_lon lt 0.1 and closest_lat le 0.1 then begin data_var[k,*]=dbz_cband[idx_lon,idx_lat,*] endif endfor ; Plot the curtain hidx=where(height_cband lt 10) data_image=bytscl(data_var,top=top_color,min=dmin_cband,max=dmax_cband) result=where(data_var eq -9999 or data_var gt 1e36,count) if count gt 0 then data_image[result]=255 ;gray result=where(data_var eq -8888,count) if count gt 0 then data_image[result]=253 ;white p11=image(data_image[*,hidx],/current,image_dimensions=[isx,isy],$ position=pos[pnum,*],rgb_table=mytable) c1=contour(data_var[*,hidx],lon_sub[idx_ovp],height_cband[hidx],$ ytitle='height (km)',xtitle='Longitude',irregular=0,xtickdir=1,ytickdir=1,$ xstyle=1,ystyle=1,/nodata,/current,position=pos[pnum,*],font_size=fs1,$ axis_style=2,$ yrange=[height_cband[hidx[0]],height_cband[hidx[-1]]]);,xrange=[lat_var[0,0],lat_var[-1,0]]) ;xaxis=axis('X',location=-2,title='Latitude',target=c1,$ ; coord_transform=[intercept,slope_m],tickfont_size=fs1) p8=plot(lon_sub[idx_ovp],make_array(count_ovp,value=height_cband[sidx]),$ /overplot,color='gray',thick=2,linestyle=2) endif endif else begin ;cband_dbz array exists pnum=0 t1=text(pos[pnum,0]+dx,pos[pnum,3]-2*dy,'no cband file',font_size=fs1) endelse ;************** ; GMI ;************** if 1 eq 1 then begin pnum=4 read_gpm_1bgmi,gmi_dir,syear,sdoy3,ulat_ovp,llat_ovp,llon_ovp,rlon_ovp,lcolon_ovp,$ rcolon_ovp,colon_gmi,lat_gmi,tb_gmi,channel_gmi,do_sub,forbit,chan if n_elements(tb_gmi) gt 5 then begin qhull,colon_gmi,lat_gmi,triangles,/delaunay,sphere=s grid_tb=griddata(colon_gmi,lat_gmi,tb_gmi,xout=grid_colon,yout=grid_lat,$ /grid,/degrees,/sphere,$ /KRIGING,min_points=10,sectors=8,empty_sectors=4,$ missing=-9999,triangles=triangles) ;missing=!values.f_nan) ; Bytscal the data result=where(grid_tb ne -9999) dmin=min(grid_tb[result]) ;190 dmax=max(grid_tb[result]) ;265 data_image=bytscl(grid_tb,top=top_color,min=dmin,max=dmax) result=where(grid_tb eq -9999,count) if count gt 0 then data_image[result]=253 p5=image(data_image,grid_colon,grid_lat,limit=[llat_ovp,lcolon_ovp,ulat_ovp,rcolon_ovp],$ /current,dimensions=[pxdim,pydim],grid_units='degrees',$ center_longitude=(rcolon_ovp-lcolon_ovp)/2.0,$ rgb_table=mytable,$;,min_value=dmin,max_value=dmax, /box_axes,label_position=0,$ map_projection='Mercator',position=pos[pnum,*],font_size=fs1) p6=mapcontinents(color='black',/hires) p5.mapgrid.linestyle='dot' for r=0,3 do begin p7=plot(lon_cir[r,*],lat_cir[r,*],/current,/overplot) endfor p8=plot(lon_sub[idx_ovp],lat_sub[idx_ovp],/overplot,color='white',linestyle=2,thick=2) c0=colorbar(rgb_table=mycbtable,range=[dmin,dmax],orientation=0,$ position= reform(cbpos[pnum,*]),font_size=10,tickdir=1,border_on=1) t1=text(pos[pnum,0]+0*dx,pos[pnum,3]+x_above_cb*dy,$ 'GMI Channel: '+channel_gmi+' Kelvin',font_size=fs1) endif ;endough gmi points to plot endif ;********************* ; Map of big region and ship track ;********************* pnum=9 p7=map('mercator',limit=[llat,llon-2.0,ulat,rlon+2.0],$ position=pos[pnum,*],/current,/box_axes,label_position=0,font_size=fs1,$ linestyle='dot') p1=mapcontinents(color='black',/hires) s0=symbol(lon_ovp,lat_ovp,'star',/data,/sym_filled,sym_color='red',sym_size=1) p2=plot(lon_ship,lat_ship,/overplot,color='gray') ;************** ; Image strings ;************** stime=min(julian_day) etime=max(julian_day) caldat,stime,smm,sdd,syy,shh,smi,sss caldat,etime,emm,edd,eyy,ehh,emi,ess sdate_str=string(syy,format='(I4)')+string(smm,format='(I02)')+string(sdd,format='(I02)') stime_str=string(shh,format='(I02)')+string(smi,format='(I02)')+string(sss,format='(I02)') edate_str=string(eyy,format='(I4)')+string(emm,format='(I02)')+string(edd,format='(I02)') etime_str=string(ehh,format='(I02)')+string(emi,format='(I02)')+string(ess,format='(I02)') stime_cstr=string(shh,format='(I02)')+':'+string(smi,format='(I02)')+':'+string(sss,format='(I02)') etime_cstr=string(ehh,format='(I02)')+':'+string(emi,format='(I02)')+':'+string(ess,format='(I02)') datastream=file_basename(filesd[i]) datastream=strmid(datastream,0,9) caldat,julian_day_ovp,omm,odd,oyy,ohh,omi,oss odate_str=string(oyy,format='(I4)')+string(omm,format='(I02)')+string(odd,format='(I02)') otime_str=string(ohh,format='(I02)')+':'+string(omi,format='(I02)')+':'+string(oss,format='(I02)') otime_str2=string(ohh,format='(I02)')+string(omi,format='(I02)')+string(oss,format='(I02)') t1=text(0.1,0.98-0*dy,odate_str+' '+otime_str+' '+datastream+' '+$ radarname+' '+radarfreq+' '+radarswath+' swath',font_size=fs1) ;t2=text(0.1,0.93,'Dual-Frequency Precipitation Radar (DPR)') ;t2=text(0.1,0.98-2.*dy,radarname+' '+radarfreq+' '+radarswath,font_size=fs1) ; Imagename imagename='ovp.'+datastream+'.dbz.'+odate_str+'.'+otime_str2+'.'+forbit+'.'+channel_gmi imagename=imagename+'.new.png' print,imagedir+imagename p0.save,imagedir+imagename,height=pydim ;*************************** ; Write out ovp to a file ;*************************** ;openw,1,imagedir+'ship_gpm_overpasses_'+ship_search+'.txt',/append ;printf,1,oyy,omm,odd,ohh,omi,oss,forbit,lon_ship_ovp,lat_ship_ovp,min_dist/1000.0,$ ; format='(I4,5(1X,I02),1X,I6,2X,F8.2,2X,F8.2,2X,F8.2)' ;close,1 endif ;gpm profiles in small ship overpass box endif ;ship was out at this time endif ; gpm profiles in big region endfor ;end of loop through gpm radar files files endif ;files exist end