def test_phase_rsl_fast():

    # read in the data
    radar = pyart.io.read_rsl(RSLNAME)

    # hack to make the radar object appear to only have a single sweep
    radar.sweep_start_ray_index['data'] = np.array([0])
    radar.nsweeps = 1
    data = radar.fields['dp_phase_shift']['data']
    radar.fields['dp_phase_shift']['data'] = data[:360, :]
    data = radar.fields['copol_coeff']['data']
    radar.fields['copol_coeff']['data'] = data[:360, :]

    # process phase
    gates = radar.range['data'][1] - radar.range['data'][0]
    rge = 10.0 * 1000.0
    ng = rge / gates
    reproc_phase, sob_kdp = phase_proc.phase_proc_lp(
        radar, 8.6, sys_phase=332.0, overide_sys_phase=True, debug=True,
        nowrap=ng)

    # compare to known good data
    ref_sob_kdp = np.load(SOB_SINGLE)
    ref_reproc_phase = np.load(PHASE_SINGLE)
    assert_array_equal(ref_reproc_phase, reproc_phase['data'])
    assert_array_equal(ref_sob_kdp, sob_kdp['data'])
Esempio n. 2
0
def test_phase_rsl():

    # read in the data
    radar = pyart.io.read_rsl(RSLNAME)

    # process phase
    gates = radar.range['data'][1] - radar.range['data'][0]
    rge = 10.0 * 1000.0
    ng = rge / gates

    reproc_phase, sob_kdp = phase_proc.phase_proc_lp(
        radar, 8.6, sys_phase=332.0, overide_sys_phase=True, debug=True,
        nowrap=ng)

    # compare to known good data
    ref_sob_kdp = np.load(SOBNAME)
    ref_reproc_phase = np.load(PHASENAME)
    assert_array_equal(ref_reproc_phase, reproc_phase['data'])
    assert_array_equal(ref_sob_kdp, sob_kdp['data'])
Esempio n. 3
0
 print("done")
 # process Phase
 gates = myradar.range['data'][1] - myradar.range['data'][0]
 rge = 20.0 * 1000.0
 ng = rge / gates
 # append a datetime object
 mydatetime = netCDF4.num2date(myradar.time['data'][0],
                               myradar.time['units'],
                               calendar=myradar.time['calendar'])
 mydict = dt_to_dict(mydatetime)
 mydict.update({'scanmode': {'ppi': 'sur', 'rhi': 'rhi'}
               [myradar.sweep_mode[0]], 'fac': metadata['facility'],
               'name':metadata['instrument_name']})
 ofilename = outdir + '%(name)s%(scanmode)scmac%(fac)s.c0.%(year)04d%(month)02d%(day)02d.%(hour)02d%(minute)02d%(second)02d.nc' % mydict
 reproc_phase, sob_kdp = phase_proc.phase_proc_lp(
     myradar, params['reflectivity_offset'], sys_phase=params['sys_phase'],
     overide_sys_phase=params['overide_sys_phase'], debug=True, nowrap=ng)
 myradar.fields.update({'recalculated_diff_phase': sob_kdp,
                      'proc_dp_phase_shift': reproc_phase})
 #attenuation correction
 spec_at, cor_z = attenuation.calculate_attenuation(
    myradar, params['reflectivity_offset'], debug=True, a_coef=0.17)
 myradar.fields.update({'specific_attenuation': spec_at})
 myradar.fields.update({'corrected_reflectivity_horizontal': cor_z})
 R = 51.3 * (myradar.fields['specific_attenuation']['data']) ** 0.81
 rainrate = copy.deepcopy(myradar.fields['diff_phase'])
 rainrate['data'] = R
 rainrate['valid_min'] = 0.0
 rainrate['valid_max'] = 400.0
 rainrate['standard_name'] = 'rainfall_rate'
 rainrate['long_name'] = 'rainfall_rate'