def test_find_time():
    """ find_time_in_interp_sonde test """
    target = datetime.datetime(2011, 5, 10, 11, 30, 8)
    interp_sounde = netCDF4.Dataset(SONDNAME)
    t = dealias.find_time_in_interp_sonde(interp_sounde, target)
    height, speed, direction = t

    assert height.shape == (316,)
    assert speed.shape == (316,)
    assert direction.shape == (316,)

    assert height.dtype == 'float32'
    assert speed.dtype == 'float32'
    assert direction.dtype == 'float32'

    assert round(height[100], 2) == 2.32
    assert round(speed[100], 2) == 15.54
    assert round(direction[100], 2) == 231.8
def test_find_time():
    """ find_time_in_interp_sonde test """
    target = datetime.datetime(2011, 5, 10, 11, 30, 8)
    interp_sounde = netCDF4.Dataset(SONDNAME)
    t = dealias.find_time_in_interp_sonde(interp_sounde, target)
    height, speed, direction = t

    assert height.shape == (316, )
    assert speed.shape == (316, )
    assert direction.shape == (316, )

    assert height.dtype == 'float32'
    assert speed.dtype == 'float32'
    assert direction.dtype == 'float32'

    assert round(height[100], 2) == 2.32
    assert round(speed[100], 2) == 15.54
    assert round(direction[100], 2) == 231.8
def test_dealias_ncf():
    """ Dealias data from a NetCDF file """

    # read in the data
    radar = pyart.io.read_netcdf(NCFNAME)

    # find and extract the sonde data
    target = netCDF4.num2date(radar.time['data'][0], radar.time['units'])
    interp_sounde = netCDF4.Dataset(SONDNAME)
    t = dealias.find_time_in_interp_sonde(interp_sounde, target)
    height, speed, direction = t

    # perform dealiasing
    dealias_data = dealias.dealias_fourdd(radar, height * 1000.0, speed,
                                          direction, target)

    # compare against know good data
    reference_data = np.load(REFNAME)
    assert_array_equal(reference_data, dealias_data['data'].data)
def test_dealias_ncf():
    """ Dealias data from a NetCDF file """

    # read in the data
    radar = pyart.io.read_netcdf(NCFNAME)

    # find and extract the sonde data
    target = netCDF4.num2date(radar.time['data'][0], radar.time['units'])
    interp_sounde = netCDF4.Dataset(SONDNAME)
    t = dealias.find_time_in_interp_sonde(interp_sounde, target)
    height, speed, direction = t

    # perform dealiasing
    dealias_data = dealias.dealias_fourdd(radar, height * 1000.0, speed,
                                          direction, target)

    # compare against know good data
    reference_data = np.load(REFNAME)
    assert_array_equal(reference_data, dealias_data['data'].data)
    # parse command line arguments
    filename = sys.argv[1]
    outdir = sys.argv[2]
    params, metadata = parse_prefs(sys.argv[3])
    is_dir = params['sounding_dir']

    # read in radar data
    myradar = radar.Radar(py4dd.RSL_anyformat_to_radar(filename))
    myradar.metadata.update(metadata)

    # dealias
    target = netCDF4.num2date(myradar.time['data'][0], myradar.time['units'])
    fname = 'sgpinterpolatedsondeC1.c1.%(year)04d%(month)02d%(day)02d.000000.cdf' % radar.dt_to_dict(target)
    print fname
    interp_sonde = netCDF4.Dataset(is_dir + fname)
    myheight, myspeed, mydirection = dealias.find_time_in_interp_sonde(
        interp_sonde, target)
    my_new_field = dealias.dealias(myradar, myheight * 1000.0, myspeed,
                                   mydirection, target)
    myradar.fields.update({'corrected_mean_doppler_velocity': my_new_field})
    interp_sonde.close()

    # process Phase
    gates = myradar.range['data'][1] - myradar.range['data'][0]
    rge = 10.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'}
Example #6
0
    filename = sys.argv[1]
    outdir = sys.argv[2]
    params, metadata = parse_prefs(sys.argv[3])
    is_dir = params['sounding_dir']

    # read in radar data
    myradar = pyart.io.read_rsl(filename)
    #myradar = radar.Radar(py4dd.RSL_anyformat_to_radar(filename))
    #myradar.metadata.update(metadata)

    # dealias
    target = netCDF4.num2date(myradar.time['data'][0], myradar.time['units'])
    fname = ('sgpinterpolatedsondeC1.c1.%(year)04d%(month)02d%(day)02d.000000.cdf' % nc_utils.dt_to_dict(target))
    print fname
    interp_sonde = netCDF4.Dataset(is_dir + fname)
    myheight, myspeed, mydirection = dealias.find_time_in_interp_sonde(
        interp_sonde, target)
    my_new_field = pyart.correct.dealias_fourdd(myradar, myheight * 1000.0, myspeed,
                                 mydirection, target)
    myradar.fields.update({'corrected_mean_doppler_velocity': my_new_field})
    interp_sonde.close()
    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'}