pro add_d0_nw_volumes,radar,DPQC=dpqc ; ; *** Use radar structure with Zdr to first calculate D0, ; *** and then use it and DZ to calculate Nw and return ; *** radar structure with both volumes. ; COMMON misc,TRUE,FALSE COMMON dirs,img_dir,uf_dir,hid_img_dir,hid_dir,dsd_dir missing = -32768. if(NOT KEYWORD_SET(DPQC)) Then dpqc=FALSE ; ; *** Extract volumes of interest and add D0, Nw volumes to radar ; dr_vol = rsl_get_volume(radar,'DR') CASE DPQC of TRUE: dz_vol = rsl_get_volume(radar,'CZ') FALSE: dz_vol = rsl_get_volume(radar,'DZ') ENDCASE rsl_add_volume,radar,dr_vol,field='D0' ; 3rd OP from MC3E rsl_add_volume,radar,dr_vol,field='NW' ; ; *** Now apply the regression to D0 ; d0_vol = rsl_get_volume(radar,'D0') nw_vol = rsl_get_volume(radar,'NW') ; ; *** Clean it up ; d0_vol.sweep.ray.range = missing nw_vol.sweep.ray.range = missing ; ; *** There are three sweeps, 800 bins and 14 elevations ; nsweeps = dr_vol.h.nsweeps for iswp=0,nsweeps-1 do begin dr_sweep = dr_vol.sweep[iswp] dz_sweep = dz_vol.sweep[iswp] for iray = 0,dr_sweep.h.nrays-1 do begin dr_ray = dr_sweep.ray[iray] dz_ray = dz_sweep.ray[iray] a = where(dr_ray.range gt -1 and dr_ray.range le 5, count) if (count gt 0) then begin for ii=0,count-1 do begin ix = a[ii] zdr = dr_ray.range[ix] dz = dz_ray.range[ix] zlin = 10D^(0.1*dz) d0 = 0.0215*zdr^3 - 0.0836*zdr^2 + 0.7898*zdr + 0.8019 nw = 20.957 * zlin * d0^(-7.7) if(nw gt 0) then nw = alog10(nw) if(d0 le 0) then d0 = missing if(nw le 0) then nw = missing d0_vol.sweep[iswp].ray[iray].range[ix] = d0 nw_vol.sweep[iswp].ray[iray].range[ix] = nw endfor endif endfor ; Rays endfor ; Sweeps ; ; *** Store new volumes in radar structure. ; all_fields = radar.volume.h.field_type a = where(all_fields eq 'D0') radar.volume[a[0]] = d0_vol a = where(all_fields eq 'NW') radar.volume[a[0]] = nw_vol return end