Ejemplo n.º 1
0
def test_compute_climatology_multi_drop_time_bound(ds):
    dset = open_dataset(ds, decode_times=False)
    dset_time_bound = dset.time.attrs['bounds']
    dset = dset.drop(dset_time_bound)
    del dset.time.attrs['bounds']

    computed_dset = compute_mon_climatology(dset)
    assert isinstance(computed_dset, xr.Dataset)
    assert computed_dset.time.dtype == dset.time.dtype
    for key, value in dset.time.attrs.items():
        assert key in computed_dset.time.attrs
        assert value == computed_dset.time.attrs[key]

    computed_dset = compute_ann_mean(dset)
    assert isinstance(computed_dset, xr.Dataset)
    assert computed_dset.time.dtype == dset.time.dtype
    for key, value in dset.time.attrs.items():
        assert key in computed_dset.time.attrs
        assert value == computed_dset.time.attrs[key]

    computed_dset = compute_mon_anomaly(dset)
    assert isinstance(computed_dset, xr.Dataset)
    assert computed_dset.time.dtype == dset.time.dtype
    assert (dset.time.values == computed_dset.time.values).all()
    for key, value in dset.time.attrs.items():
        assert key in computed_dset.time.attrs
        assert value == computed_dset.time.attrs[key]
Ejemplo n.º 2
0
def test_regrid_regrid():

    R = regridder(name_grid_src="T62",
                  name_grid_dst="CAM_f09",
                  method="bilinear",
                  overwrite_existing=False)
    ds = open_dataset(name="ncep_forecast_tseries")
    dao = R(ds.t_10)
    print(dao)
    assert isinstance(dao, xr.DataArray)
Ejemplo n.º 3
0
def test_resample_ann_mean_values_missing(ds, weights):
    dset = open_dataset(ds, decode_times=False, decode_coords=False)
    dset.variable_2.data[0:3, :, :] = np.nan
    computed_dset = esmlab.resample(dset, freq='ann', weights=weights)
    assert isinstance(computed_dset, xr.Dataset)
    assert computed_dset.time.dtype == dset.time.dtype
    expected = np.array([1.0, 1.0, 1.0, 1.0, 0, 0, 0, 0], dtype=np.float32)
    np.testing.assert_allclose(computed_dset.variable_2.data.ravel().astype(
        np.float32),
                               expected,
                               rtol=1e-6)
Ejemplo n.º 4
0
def test_weighted_sum_float32():
    from esmlab.datasets import open_dataset

    with open_dataset('cesm_pop_monthly') as ds:
        weights = ds['TAREA'].astype(np.float32)
        tmp_data = ds['TLAT']
        tmp_data.values = np.where(np.greater_equal(ds['KMT'].values, 1),
                                   ds['TLAT'], np.nan)
        tmp_data = tmp_data.astype(np.float32)
    w_sum = esmlab.weighted_sum(tmp_data, dim=None, weights=weights)
    assert tmp_data.attrs == w_sum.attrs
    assert tmp_data.encoding == w_sum.encoding
Ejemplo n.º 5
0
def test_compute_climatology_daisy_chain(ds):
    dset = open_dataset(ds, decode_times=False)

    computed_dset = compute_mon_climatology(dset)
    assert isinstance(computed_dset, xr.Dataset)

    computed_dset2 = compute_mon_anomaly(computed_dset)
    assert isinstance(computed_dset2, xr.Dataset)

    computed_dset3 = compute_ann_mean(computed_dset)
    assert isinstance(computed_dset3, xr.Dataset)

    computed_dset3 = compute_ann_mean(computed_dset2)
    assert isinstance(computed_dset3, xr.Dataset)
Ejemplo n.º 6
0
def test_compute_climatology_multi(ds):
    dset = open_dataset(ds, decode_times=False)
    print(dset)
    computed_dset = compute_mon_climatology(dset)
    print(computed_dset)
    print()
    assert isinstance(computed_dset, xr.Dataset)
    computed_dset = compute_ann_mean(dset)
    print(computed_dset)
    print()
    assert isinstance(computed_dset, xr.Dataset)
    computed_dset = compute_mon_anomaly(dset)
    print(computed_dset)
    print()
    assert isinstance(computed_dset, xr.Dataset)
Ejemplo n.º 7
0
def test_regrid_regrid(grid_src, grid_dst, method, data_in, xr_type):

    R = regridder(name_grid_src=grid_src,
                  name_grid_dst=grid_dst,
                  method=method,
                  overwrite_existing=False)
    ds = open_dataset(name=data_in)
    dao = R(ds.t_10)
    assert isinstance(dao, xr_type)
    assert dao.data.shape == (1, 192, 288)

    with pytest.raises(NotImplementedError):
        dao = R(ds)

    with pytest.raises(ValueError):
        a = np.ones(10)
        dao = R(a)
Ejemplo n.º 8
0
def test_compute_climatology_multi_decoded(ds):
    dset = open_dataset(ds, decode_times=True)

    computed_dset = compute_mon_climatology(dset)
    assert isinstance(computed_dset, xr.Dataset)
    assert computed_dset.time.dtype == dset.time.dtype
    for key, value in dset.time.attrs.items():
        assert key in computed_dset.time.attrs
        assert value == computed_dset.time.attrs[key]

    computed_dset = compute_ann_mean(dset)
    assert isinstance(computed_dset, xr.Dataset)
    assert computed_dset.time.dtype == dset.time.dtype
    for key, value in dset.time.attrs.items():
        assert key in computed_dset.time.attrs
        assert value == computed_dset.time.attrs[key]

    computed_dset = compute_mon_anomaly(dset)
    assert isinstance(computed_dset, xr.Dataset)
    assert computed_dset.time.dtype == dset.time.dtype
    assert (dset.time.values == computed_dset.time.values).all()
    for key, value in dset.time.attrs.items():
        assert key in computed_dset.time.attrs
        assert value == computed_dset.time.attrs[key]
Ejemplo n.º 9
0
def test_open_dataset_cache():
    ds = open_dataset('ncep_forecast_tseries', cache=False)
    assert isinstance(ds, xr.Dataset)
    filepath = _default_cache_dir + '/ncep_forecast_tseries.nc'
    assert not os.path.exists(os.path.abspath(filepath))
Ejemplo n.º 10
0
def test_open_dataset():
    ds = open_dataset('cesm_pop_yearly')
    assert isinstance(ds, xr.Dataset)
Ejemplo n.º 11
0
def test_open_dataset():
    ds = open_dataset('cesm_cice_daily')
    assert isinstance(ds, xr.Dataset)