Exemplo 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))
Exemplo n.º 2
0
def test_netcdf_multi_indexed_values():
    nc = mv.read(file_in_testdir('xs_date_mv5.nc'))
    mv.setcurrent(nc, 't')
    assert (mv.attributes(nc)['long_name'] == "Temperature")
    assert (np.isclose(mv.values(nc, [0, 0, 0]), 234.7144))
    assert (np.isclose(mv.values(nc, [0, 0, 4]), 237.4377))
    assert (np.isclose(mv.values(nc, [0, 1, 0]), 248.7220))
    assert (np.isclose(mv.values(nc, [0, 1, 1]), 249.3030))
Exemplo n.º 3
0
def test_netcdf_multi_indexed_values_with_all():
    nc = mv.read(file_in_testdir('xs_date_mv5.nc'))
    mv.setcurrent(nc, 't')
    assert (mv.attributes(nc)['long_name'] == "Temperature")
    v = mv.values(nc, [0, 0, 'all'])
    assert (len(v) == 64)
    assert (np.isclose(v[0], 234.714))
    assert (np.isclose(v[63], 258.979))
    v = mv.values(nc, [0, 'all', 0])
    assert (len(v) == 5)
    assert (np.isclose(v[0], 234.714))
    assert (np.isclose(v[4], 260.484))
Exemplo n.º 4
0
def test_get_vector_from_grib():
    v = mv.values(TEST_FIELDSET[0])
    assert (isinstance(v, np.ndarray))
    assert (v.dtype == np.dtype('float64'))
    assert (len(v) == 115680)
    assert (np.isclose(min(v), 206.93560791))
    assert (np.isclose(max(v), 316.06060791))
Exemplo n.º 5
0
    def values(self):
        """
        Property to access the values key of the GRIB file as a numpy
        array.

        :rtype: numpy.ndarray
        """

        return metview.values(self)
Exemplo n.º 6
0
def test_get_vector_float32_from_grib():
    if supports_float32_vectors():
        mv.vector_set_default_type('float32')
        v = mv.values(TEST_FIELDSET[0])
        assert (isinstance(v, np.ndarray))
        assert (v.dtype == np.dtype('float32'))
        assert (len(v) == 115680)
        assert (np.isclose(min(v), 206.93560791))
        assert (np.isclose(max(v), 316.06060791))
        mv.vector_set_default_type(
            'float64')  # reset to default type for the other tests
Exemplo n.º 7
0
def test_fieldset_nonequality_operator():
    a = mv.read(os.path.join(PATH, 'test.grib'))
    v = mv.values(a)
    v[10] = -29
    v[13] = -31
    v[15] = -33
    b = a.set_values(v)
    diff = (a != b)
    assert (type(diff) == mv.Fieldset)
    vdiff = diff.values()
    assert (mv.sum(vdiff) == 3)  # there should be exactly 3 differences
    assert (vdiff[5] == 0)
    assert (vdiff[10] == 1)
    assert (vdiff[11] == 0)
    assert (vdiff[12] == 0)
    assert (vdiff[13] == 1)
    assert (vdiff[14] == 0)
    assert (vdiff[15] == 1)
Exemplo n.º 8
0
def test_fieldset_equality_operator():
    a = mv.read(os.path.join(PATH, 'test.grib'))
    v = mv.values(a)
    v[10] = -29
    v[13] = -31
    v[15] = -33
    b = a.set_values(v)
    same = (a == b)
    assert (type(same) == mv.Fieldset)
    vsame = same.values()
    assert (mv.sum(vsame) == len(vsame) - 3)  # all but 3 should be the same
    assert (vsame[5] == 1)
    assert (vsame[10] == 0)
    assert (vsame[11] == 1)
    assert (vsame[12] == 1)
    assert (vsame[13] == 0)
    assert (vsame[14] == 1)
    assert (vsame[15] == 0)
Exemplo n.º 9
0
def test_geopoints_nonequality_operator():
    a = mv.read(file_in_testdir('t2m_3day.gpt'))
    assert (mv.type(a) == 'geopoints')
    v = mv.values(a)
    v[10] = -29
    v[13] = -31
    v[15] = -33
    b = a.set_values(v)
    diff = (a != b)
    assert (mv.type(diff) == 'geopoints')
    vdiff = diff.values()
    assert (mv.sum(vdiff) == 3)  # there should be exactly 3 differences
    assert (vdiff[5] == 0)
    assert (vdiff[10] == 1)
    assert (vdiff[11] == 0)
    assert (vdiff[12] == 0)
    assert (vdiff[13] == 1)
    assert (vdiff[14] == 0)
    assert (vdiff[15] == 1)
Exemplo n.º 10
0
def test_geopoints_equality_operator():
    a = mv.read(file_in_testdir('t2m_3day.gpt'))
    assert (mv.type(a) == 'geopoints')
    v = mv.values(a)
    v[10] = -29
    v[13] = -31
    v[15] = -33
    b = a.set_values(v)
    same = (a == b)
    assert (mv.type(same) == 'geopoints')
    vsame = same.values()
    assert (mv.sum(vsame) == len(vsame) - 3)  # all but 3 should be the same
    assert (vsame[5] == 1)
    assert (vsame[10] == 0)
    assert (vsame[11] == 1)
    assert (vsame[12] == 1)
    assert (vsame[13] == 0)
    assert (vsame[14] == 1)
    assert (vsame[15] == 0)
Exemplo n.º 11
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)
Exemplo n.º 12
0
def test_get_vector_from_multi_field_grib():
    g = mv.read(os.path.join(PATH, 't_for_xs.grib'))
    v = mv.values(g)
    assert (isinstance(v, np.ndarray))
    assert (v.shape == (6, 2664))