pro read_gpm_2adpr,fdir,forbit,lat,lon,dbz,julian_day ;****************** ; Input ;****************** ; GMI filename string file_str='2A.GPM.DPR*' ; Find matching gpm files filesd=file_search(fdir+file_str+forbit+'*.HDF5',count=num_files) ; Set up the map bounds ; ulat=upper latitude of box ; llat=lower latitude of box ; llon=left longitude of box ; rlon=right longitude of box ulat=-50.0 & llat=-70.0 llon=120 & rlon=170 ; colongitude if llon lt 0 then lcolon=360.0+llon else lcolon=llon if rlon lt 0 then rcolon=360.0+rlon else rcolon=rlon ;****************** ; Read data from hdf5 file ;****************** ; ; This is the idl hdf5 ncdump ;presult=h5_parse(fdir+fname) ; Open an existing hdf5 file file_id=h5f_open(filesd[0]) ns_id=h5g_open(file_id,'NS') ;MS ;ns_id=h5g_open(file_id,'HS') dset_id=h5d_open(ns_id,'Latitude') lat=h5d_read(dset_id) h5d_close,dset_id dset_id=h5d_open(ns_id,'Longitude') lon=h5d_read(dset_id) h5d_close,dset_id slv_id=h5g_open(ns_id,'SLV') dset_id=h5d_open(slv_id,'zFactorCorrected') dbz=h5d_read(dset_id) h5d_close,dset_id h5g_close,slv_id time_id=h5g_open(ns_id,'ScanTime') dset_id=h5d_open(time_id,'DayOfYear') doy=h5d_read(dset_id) h5d_close,dset_id dset_id=h5d_open(time_id,'Year') year=h5d_read(dset_id) h5d_close,dset_id dset_id=h5d_open(time_id,'Month') month=h5d_read(dset_id) h5d_close,dset_id dset_id=h5d_open(time_id,'DayOfMonth') day=h5d_read(dset_id) h5d_close,dset_id dset_id=h5d_open(time_id,'Hour') hour=h5d_read(dset_id) h5d_close,dset_id dset_id=h5d_open(time_id,'Minute') minute=h5d_read(dset_id) h5d_close,dset_id dset_id=h5d_open(time_id,'Second') second=h5d_read(dset_id) h5d_close,dset_id dset_id=h5d_open(time_id,'MilliSecond') msecond=h5d_read(dset_id) h5d_close,dset_id h5g_close,time_id h5g_close,ns_id h5f_close,file_id ;**************** ; nbin,nray,nscan ;**************** s=size(dbz,/dimensions) nbin=s[0] ;176 nray=s[1] ;49 nscan=s[2] ;7937 ;***************** ; Calculate colongitude ;***************** colon=lon r=where(lon lt 0,c) if c gt 0 then colon[r]=colon[r]+360.0 ;***************** ; Calculate time ;***************** msecond=msecond*1e-3 second=second+msecond julian_day=julday(month,day,year,hour,minute,second) ; loop through the range bins to see where the data is ;for i=0,nbin-1 do begin ; dbz1=reform(dbz[i,*,*]) ; result=where(dbz1 gt -9999,count) ; if count le 0 then begin ; print,i,count ; endif else if count gt 0 then begin ; print,i,count,min(dbz1[result]),max(dbz1[result]) ; endif ;endfor end