Esempio n. 1
0
def test_odb():
    if mv.is_feature_available('odb') == 0:
        print(
            'Skipping test_odb because ODB is not enabled in this Metview version'
        )
        return

    db = mv.read(file_in_testdir('temp_u.odb'))
    assert (mv.type(db) == 'odb')

    # assert isinstance(db,mv.Odb)
    assert (mv.count(db) == 88)

    p_val = mv.values(db, 'p')
    assert (mv.count(p_val) == 88)
    assert (np.isclose(p_val[0], 98065.578125))
    assert (np.isclose(p_val[87], 97651.2109375))

    t_val = mv.values(db, 't')
    assert (mv.count(t_val) == 88)
    assert (np.isclose(t_val[0], 144700))
    assert (np.isclose(t_val[87], 94700))

    v_val = mv.values(db, 'val')
    assert (mv.count(v_val) == 88)
    assert (np.isclose(v_val[0], -4.62306786))
    assert (np.isclose(v_val[87], -4.27525187))
Esempio n. 2
0
def test_obsfilter():
    bufr = mv.read(file_in_testdir('obs_3day.bufr'))

    # test two styles of passing parameters
    gpt1 = mv.obsfilter({
        'data': bufr,
        'parameter': '012004',
        'output': "geopoints"
    })
    gpt2 = mv.obsfilter(data=bufr, parameter='012004', output="geopoints")
    assert (mv.type(gpt1) == 'geopoints')
    assert (mv.count(gpt1) == 45)
    assert (mv.type(gpt2) == 'geopoints')
    assert (mv.count(gpt2) == 45)
Esempio n. 3
0
def test_set_vector_float32_from_numpy_array():
    if supports_float32_vectors():
        r = np.arange(1, 21, dtype=np.float32)
        assert (mv.type(r) == 'vector')
        assert (mv.dtype(r) == 'float32')
        assert (mv.count(r) == 20)
        assert (mv.maxvalue(r) == 20)
Esempio n. 4
0
def test_simple_vector_with_nans():
    a = np.array([1, np.nan, 2, 3])
    n = -a
    assert (mv.count(a) == 4)
    assert (mv.sum(a) == 6)  # missing vals Python->Macro
    # seems that comparing numPy arrays that have NaNs in them is not
    # so straightforward, but this works:
    np.testing.assert_array_equal(mv.neg(a), n)  # missing vals Macro->Python
Esempio n. 5
0
def test_read_gptset():
    gpts = mv.read(file_in_testdir('geopointset_1.gpts'))
    assert (mv.type(gpts) == 'geopointset')
    assert (mv.count(gpts) == 6)
    gpt1 = gpts[0]
    assert (mv.type(gpt1) == 'geopoints')
    assert (mv.count(gpt1) == 11)
    assert (mv.metadata(gpt1) is None)
    gpt2 = gpts[1]
    assert (mv.type(gpt2) == 'geopoints')
    assert (mv.count(gpt2) == 1)
    # check the metadata
    md = mv.metadata(gpt2)
    assert (isinstance(md, dict))
    assert (md['mykey1'] == 'val1')
    assert (md['mykey2'] == 5)
    # check that it is iterable
    counts = [mv.count(c) for c in gpts]
    assert (counts == [11.0, 1.0, 44.0, 11.0, 1.0, 44.0])
    # test the filtering
    bad_filter = mv.filter(gpts, {'badkey': 7})
    assert (bad_filter is None)
    good_filter = mv.filter(gpts, {'mykey2': 5})
    assert (mv.type(good_filter) == 'geopointset')
    assert (mv.count(good_filter) == 1)
    assert (mv.count(good_filter[0]) == 1)
    lats = good_filter[0].latitudes()
    assert (len(lats) == 1)
    assert (lats[0] == 60.82)
Esempio n. 6
0
def test_odb_filter():
    if mv.is_feature_available('odb') == 0:
        print(
            'Skipping test_odb_filter because ODB is not enabled in this Metview version'
        )
        return

    db = mv.read(file_in_testdir('temp_u.odb'))
    # assert isinstance(db,mv.Odb)
    assert (mv.count(db) == 88)

    db_res = mv.odb_filter({
        'odb_data': db,
        'odb_query': "select p, t, val where val < -8",
    })

    # assert isinstance(db_res,mv.Odb)
    assert (mv.count(db_res) == 6)
    val = mv.values(db_res, 'val')
    a = np.array([
        -9.11442089, -8.16880512, -8.07200909, -8.06602955, -8.49743557,
        -8.21722794
    ])
    np.testing.assert_allclose(val, a)
Esempio n. 7
0
def test_filter_gpt():
    filter_out = TEST_GEOPOINTS.filter(TEST_GEOPOINTS >= 280)
    assert mv.type(filter_out) == 'geopoints'
    assert mv.count(filter_out) == 38
Esempio n. 8
0
def test_read_gpt():
    gpt = mv.read(file_in_testdir('t2m_3day.gpt'))
    assert (mv.type(gpt) == 'geopoints')
    assert (mv.count(gpt) == 45)
Esempio n. 9
0
def test_count():
    out = mv.count(TEST_FIELDSET)
    assert out == 1
Esempio n. 10
0
def test_zero_length_vector_from_numpy():
    a = np.array([])
    assert (mv.type(a) == 'vector')
    assert (mv.count(a) == 0)
Esempio n. 11
0
def test_set_vector_from_numpy_array():
    r = np.arange(1, 21, dtype=np.float64)
    assert (mv.type(r) == 'vector')
    assert (mv.dtype(r) == 'float64')
    assert (mv.count(r) == 20)
    assert (mv.maxvalue(r) == 20)