Exemplo n.º 1
0
def test_matlab_io(make_data=False):
    nens = 100
    td_vec = drop_config(read('vector_data_imu01.VEC', nens=nens))
    td_rdi_bt = drop_config(read('RDI_withBT.000', nens=nens))

    # This read should trigger a warning about the declination being
    # defined in two places (in the binary .ENX files), and in the
    # .userdata.json file. NOTE: DOLfYN defaults to using what is in
    # the .userdata.json file.
    with pytest.warns(UserWarning, match='magnetic_var_deg'):
        td_vm = drop_config(read('vmdas01.ENX', nens=nens))

    if make_data:
        save_matlab(td_vec, 'dat_vec')
        save_matlab(td_rdi_bt, 'dat_rdi_bt')
        save_matlab(td_vm, 'dat_vm')
        return

    mat_vec = load_matlab('dat_vec.mat')
    mat_rdi_bt = load_matlab('dat_rdi_bt.mat')
    mat_vm = load_matlab('dat_vm.mat')

    assert_allclose(td_vec, mat_vec, atol=1e-6)
    assert_allclose(td_rdi_bt, mat_rdi_bt, atol=1e-6)
    assert_allclose(td_vm, mat_vm, atol=1e-6)
Exemplo n.º 2
0
def test_io_adv(make_data=False):
    nens = 100
    td = tb.drop_config(read('vector_data01.VEC', nens=nens))
    tdm = tb.drop_config(
        read('vector_data_imu01.VEC', userdata=False, nens=nens))
    tdb = tb.drop_config(read('burst_mode01.VEC', nens=nens))
    tdm2 = tb.drop_config(
        read('vector_data_imu01.VEC',
             userdata=tb.exdt('vector_data_imu01.userdata.json'),
             nens=nens))

    # These values are not correct for this data but I'm adding them for
    # test purposes only.
    set_inst2head_rotmat(tdm, np.eye(3), inplace=True)
    tdm.attrs['inst2head_vec'] = [-1.0, 0.5, 0.2]

    if make_data:
        save(td, 'vector_data01.nc')
        save(tdm, 'vector_data_imu01.nc')
        save(tdb, 'burst_mode01.nc')
        save(tdm2, 'vector_data_imu01-json.nc')
        return

    assert_allclose(td, dat, atol=1e-6)
    assert_allclose(tdm, dat_imu, atol=1e-6)
    assert_allclose(tdb, dat_burst, atol=1e-6)
    assert_allclose(tdm2, dat_imu_json, atol=1e-6)
Exemplo n.º 3
0
def test_io_nortek2(make_data=False):
    nens = 100
    td_sig = tb.drop_config(read('BenchFile01.ad2cp', nens=nens))
    td_sig_i = tb.drop_config(
        read('Sig1000_IMU.ad2cp', userdata=False, nens=nens))
    td_sig_i_ud = tb.drop_config(read('Sig1000_IMU.ad2cp', nens=nens))
    td_sig_ieb = tb.drop_config(read('VelEchoBT01.ad2cp', nens=nens))
    td_sig_ie = tb.drop_config(read('Sig500_Echo.ad2cp', nens=nens))
    td_sig_tide = tb.drop_config(read('Sig1000_tidal.ad2cp', nens=nens))

    with pytest.warns(UserWarning):
        # This issues a warning...
        td_sig_skip = tb.drop_config(read('Sig_SkippedPings01.ad2cp'))

    with pytest.warns(UserWarning):
        # Note: this datafile has a missing time value only - data is whole
        td_sig_badt = tb.drop_config(
            sig.read_signature(tb.rfnm('Sig1000_BadTime01.ad2cp')))

    # Make sure we read all the way to the end of the file.
    # This file ends exactly at the end of an ensemble.
    td_sig5_leiw = tb.drop_config(read('Sig500_last_ensemble_is_whole.ad2cp'))

    os.remove(tb.exdt('BenchFile01.ad2cp.index'))
    os.remove(tb.exdt('Sig1000_IMU.ad2cp.index'))
    os.remove(tb.exdt('VelEchoBT01.ad2cp.index'))
    os.remove(tb.exdt('Sig500_Echo.ad2cp.index'))
    os.remove(tb.exdt('Sig1000_tidal.ad2cp.index'))
    os.remove(tb.exdt('Sig_SkippedPings01.ad2cp.index'))
    os.remove(tb.exdt('Sig500_last_ensemble_is_whole.ad2cp.index'))
    os.remove(tb.rfnm('Sig1000_BadTime01.ad2cp.index'))

    if make_data:
        save(td_sig, 'BenchFile01.nc')
        save(td_sig_i, 'Sig1000_IMU.nc')
        save(td_sig_i_ud, 'Sig1000_IMU_ud.nc')
        save(td_sig_ieb, 'VelEchoBT01.nc')
        save(td_sig_ie, 'Sig500_Echo.nc')
        save(td_sig_tide, 'Sig1000_tidal.nc')
        save(td_sig_skip, 'Sig_SkippedPings01.nc')
        save(td_sig_badt, 'Sig1000_BadTime01.nc')
        save(td_sig5_leiw, 'Sig500_last_ensemble_is_whole.nc')
        return

    assert_allclose(td_sig, dat_sig, atol=1e-6)
    assert_allclose(td_sig_i, dat_sig_i, atol=1e-6)
    assert_allclose(td_sig_i_ud, dat_sig_i_ud, atol=1e-6)
    assert_allclose(td_sig_ieb, dat_sig_ieb, atol=1e-6)
    assert_allclose(td_sig_ie, dat_sig_ie, atol=1e-6)
    assert_allclose(td_sig_tide, dat_sig_tide, atol=1e-6)
    assert_allclose(td_sig5_leiw, dat_sig5_leiw, atol=1e-6)
    assert_allclose(td_sig_skip, dat_sig_skip, atol=1e-6)
    assert_allclose(td_sig_badt, dat_sig_badt, atol=1e-6)
Exemplo n.º 4
0
def test_io_nortek(make_data=False):
    nens = 100
    with pytest.warns(UserWarning):
        td_awac = tb.drop_config(
            read('AWAC_test01.wpr', userdata=False, nens=[0, nens]))
    td_awac_ud = tb.drop_config(read('AWAC_test01.wpr', nens=nens))
    td_hwac = tb.drop_config(read('H-AWAC_test01.wpr'))

    if make_data:
        save(td_awac, 'AWAC_test01.nc')
        save(td_awac_ud, 'AWAC_test01_ud.nc')
        save(td_hwac, 'H-AWAC_test01.nc')
        return

    assert_allclose(td_awac, dat_awac, atol=1e-6)
    assert_allclose(td_awac_ud, dat_awac_ud, atol=1e-6)
    assert_allclose(td_hwac, dat_hwac, atol=1e-6)
Exemplo n.º 5
0
def test_io_rdi(make_data=False):
    warnings.simplefilter('ignore', UserWarning)
    nens = 100
    td_rdi = tb.drop_config(read('RDI_test01.000'))
    td_7f79 = tb.drop_config(read('RDI_7f79.000'))
    td_rdi_bt = tb.drop_config(read('RDI_withBT.000', nens=nens))
    td_vm = tb.drop_config(read('vmdas01.ENX', nens=nens))
    td_wr1 = tb.drop_config(read('winriver01.PD0'))
    td_wr2 = tb.drop_config(read('winriver02.PD0'))

    if make_data:
        save(td_rdi, 'RDI_test01.nc')
        save(td_7f79, 'RDI_7f79.nc')
        save(td_rdi_bt, 'RDI_withBT.nc')
        save(td_vm, 'vmdas01.nc')
        save(td_wr1, 'winriver01.nc')
        save(td_wr2, 'winriver02.nc')
        return

    assert_allclose(td_rdi, dat_rdi, atol=1e-6)
    assert_allclose(td_7f79, dat_rdi_7f79, atol=1e-6)
    assert_allclose(td_rdi_bt, dat_rdi_bt, atol=1e-6)
    assert_allclose(td_vm, dat_rdi_vm, atol=1e-6)
    assert_allclose(td_wr1, dat_wr1, atol=1e-6)
    assert_allclose(td_wr2, dat_wr2, atol=1e-6)
Exemplo n.º 6
0
def test_nortek2_crop(make_data=False):
    # Test file cropping function
    crop_ensembles(infile=tb.exdt('Sig500_Echo.ad2cp'),
                   outfile=tb.exdt('Sig500_Echo_crop.ad2cp'),
                   range=[50, 100])
    td_sig_ie_crop = tb.drop_config(read('Sig500_Echo_crop.ad2cp'))

    if make_data:
        save(td_sig_ie_crop, 'Sig500_Echo_crop.nc')
        return

    os.remove(tb.exdt('Sig500_Echo.ad2cp.index'))
    os.remove(tb.exdt('Sig500_Echo_crop.ad2cp'))
    os.remove(tb.exdt('Sig500_Echo_crop.ad2cp.index'))

    cd_sig_ie_crop = load('Sig500_Echo_crop.nc')
    assert_allclose(td_sig_ie_crop, cd_sig_ie_crop, atol=1e-6)
Exemplo n.º 7
0
 def debug_output(f, func, datafile, nens, *args, **kwargs):
     with contextlib.redirect_stdout(f):
         drop_config(func(exdt(datafile), nens=nens, *args, **kwargs))