Exemplo n.º 1
0
def test_open_domcfg_multi_files():
    """Test opening of multi files from processors"""
    open_domain_cfg(
        datadir="xnemogcm/test/data/domcfg_multi_files",
        load_from_saved=False,
        save=False,
        saving_name=None,
    )
Exemplo n.º 2
0
def test_open_domcfg_1_file():
    """Test opening of 1 file"""
    open_domain_cfg(
        datadir="xnemogcm/test/data/domcfg_1_file",
        load_from_saved=False,
        save=False,
        saving_name=None,
    )
Exemplo n.º 3
0
def test_save_domcfg_1_file():
    """Test that saving works"""
    open_domain_cfg(
        datadir="xnemogcm/test/data/domcfg_1_file",
        load_from_saved=False,
        save=True,
        saving_name=None,
    )
Exemplo n.º 4
0
def test_compare_domcfg_1_multi():
    domcfg_1 = open_domain_cfg(
        datadir="xnemogcm/test/data/domcfg_1_file",
        load_from_saved=False,
        save=False,
        saving_name=None,
    )
    domcfg_multi = open_domain_cfg(
        datadir="xnemogcm/test/data/domcfg_multi_files",
        load_from_saved=False,
        save=False,
        saving_name=None,
    )
    assert (domcfg_1 == domcfg_multi).all()
Exemplo n.º 5
0
def test_open_from_save():
    """Test that the saved domcfg is the same as the original"""
    domcfg1 = open_domain_cfg(
        datadir="xnemogcm/test/data/domcfg_1_file",
        load_from_saved=False,
        save=True,
        saving_name=None,
    )
    domcfg2 = open_domain_cfg(
        datadir="xnemogcm/test/data/domcfg_1_file",
        load_from_saved=True,
        save=False,
        saving_name=None,
    )
    assert (domcfg1 == domcfg2).all()
Exemplo n.º 6
0
def test_open_nemo_surface():
    """Test opening of nemo surface files (no depth dimension)"""
    domcfg = open_domain_cfg(datadir=TEST_PATH / "data/domcfg_1_file", )
    nemo_ds = open_nemo(
        datadir=TEST_PATH / "data/surface_fields",
        domcfg=domcfg,
    )
Exemplo n.º 7
0
def test_merge_non_linear_free_surface():
    datadir_dom = TEST_PATH / "data/domcfg_1_file"
    datadir_nemo = TEST_PATH / "data/nemo"
    domcfg_kwargs = dict(datadir=datadir_dom)
    domcfg = open_domain_cfg(**domcfg_kwargs)
    nemo_kwargs = dict(
        datadir=datadir_nemo,
        domcfg=domcfg,
    )
    nemo_ds = open_nemo(**nemo_kwargs)
    ds = _merge_nemo_and_domain_cfg(nemo_ds, domcfg, linear_free_surface=False)
    assert "e3t" in ds
    assert "e3t_0" in ds
    assert "t" in ds.e3t.coords
    assert "e3f" not in ds
    ds2 = open_nemo_and_domain_cfg(
        nemo_files=datadir_nemo,
        domcfg_files=datadir_dom,
        nemo_kwargs=nemo_kwargs,
        domcfg_kwargs=domcfg_kwargs,
        linear_free_surface=False,
    )
    assert (ds == ds2).all()
    p = TEST_PATH / "data/open_and_merge"
    ds2 = open_nemo_and_domain_cfg(
        nemo_files=p, domcfg_files=p, linear_free_surface=False
    )
    assert (ds == ds2).all()
Exemplo n.º 8
0
def test_no_add_coordinates():
    """Test that the lat/lon/depth variables are set as coordinates"""
    domcfg = open_domain_cfg(
        datadir=(TEST_PATH / "data/domcfg_1_file"), add_coordinates=False
    )
    assert not "glamt" in domcfg.coords
    assert not "gphiu" in domcfg.coords
    assert not "gdept_0" in domcfg.coords
Exemplo n.º 9
0
def test_open_nemo():
    """Test opening of nemo files"""
    domcfg = open_domain_cfg(
        datadir=TEST_PATH / "data/domcfg_1_file",
    )
    nemo_ds = open_nemo(
        datadir=TEST_PATH / "data/nemo",
        domcfg=domcfg,
    )
Exemplo n.º 10
0
def test_use_preprocess():
    """Test opening of one nemo file and preprocess it by hand"""
    domcfg = open_domain_cfg(
        datadir=TEST_PATH / "data/domcfg_1_file",
    )
    ds_raw = xr.open_dataset(TEST_PATH / "data/nemo/BASIN_grid_T.nc")
    ds_raw.encoding["source"] = "BASIN_grid_T.nc"
    ds = nemo_preprocess(ds_raw, domcfg)
    assert "x_c" in ds
    assert "t" in ds
    assert ds.thetao.attrs["arakawa_point_type"] == "T"
Exemplo n.º 11
0
def test_open_nemo():
    """Test opening of nemo files"""
    domcfg = open_domain_cfg(
        datadir=TEST_PATH / "data/domcfg_1_file",
    )
    nemo_ds = open_nemo(
        datadir=TEST_PATH / "data/nemo",
        domcfg=domcfg,
    )
    for i in ["uo", "so", "thetao"]:
        assert nemo_ds[i].chunks is not None
Exemplo n.º 12
0
def test_open_nemo_chunks():
    """Test opening of nemo files, with chunks"""
    domcfg = open_domain_cfg(
        datadir=TEST_PATH / "data/domcfg_1_file",
    )
    nemo_ds = open_nemo(
        datadir=TEST_PATH / "data/nemo",
        domcfg=domcfg,
        chunks={"time_counter": 1},
    )
    for i in ["uo", "so", "thetao"]:
        assert nemo_ds[i].chunks is not None
    assert nemo_ds.chunks["t"] == (1, 1, 1)
Exemplo n.º 13
0
def test_no_file_provided_or_wrong_name():
    """Test exception raised if no file is found"""
    domcfg = open_domain_cfg(
        datadir=TEST_PATH / "data/domcfg_1_file",
    )
    try:
        open_nemo(datadir=TEST_PATH, domcfg=domcfg)
    except FileNotFoundError:
        pass
    try:
        open_nemo(
            files=(TEST_PATH / "data/domcfg_1_file").glob("domain*"), domcfg=domcfg
        )
    except ValueError:
        pass
Exemplo n.º 14
0
def test_open_nemo():
    """Test opening of nemo files"""
    domcfg = open_domain_cfg(
        datadir="xnemogcm/test/data/domcfg_1_file",
        load_from_saved=False,
        save=False,
        saving_name=None,
    )
    nemo_ds = open_nemo(
        datadir="xnemogcm/test/data/nemo",
        domcfg=domcfg,
        load_from_saved=False,
        save=False,
        saving_name=None,
    )
Exemplo n.º 15
0
def test_options_for_files():
    """Test options to provide files"""
    domcfg = open_domain_cfg(
        datadir=TEST_PATH / "data/domcfg_1_file",
    )
    datadir = TEST_PATH / "data/nemo"
    # 1. Provide datadir and no files
    open_nemo(datadir=datadir, files=None, domcfg=domcfg)
    open_nemo(datadir=datadir, files="", domcfg=domcfg)
    open_nemo(datadir=datadir, files=[], domcfg=domcfg)
    # 2. Provide datadir and files
    files = ["BASIN_grid_T.nc", "BASIN_grid_U.nc"]
    open_nemo(datadir=datadir, files=files, domcfg=domcfg)
    # 3. Don't provide datadir but files
    open_nemo(datadir=None, files=datadir.glob("*grid*.nc"), domcfg=domcfg)
    open_nemo(datadir="", files=datadir.glob("*grid*.nc"), domcfg=domcfg)
    open_nemo(datadir=[], files=datadir.glob("*grid*.nc"), domcfg=domcfg)
    # 4. Don't provide anything => error
    try:
        open_nemo(datadir=None, files=None, domcfg=domcfg)
    except FileNotFoundError:
        pass
Exemplo n.º 16
0
def test_save_nemo():
    """Test saving of nemo files"""
    domcfg = open_domain_cfg(
        datadir="xnemogcm/test/data/domcfg_1_file",
        load_from_saved=False,
        save=False,
        saving_name=None,
    )
    nemo_ds0 = open_nemo(
        datadir="xnemogcm/test/data/nemo",
        domcfg=domcfg,
        load_from_saved=False,
        save=True,
        saving_name=None,
    )
    nemo_ds1 = open_nemo(
        datadir="xnemogcm/test/data/nemo",
        domcfg=domcfg,
        load_from_saved=True,
        save=False,
        saving_name=None,
    )
    assert (nemo_ds0 == nemo_ds1).all()
Exemplo n.º 17
0
def test_compare_domcfg_1_multi():
    domcfg_1 = open_domain_cfg(datadir=(TEST_PATH / "data/domcfg_1_file"))
    domcfg_multi = open_domain_cfg(datadir=(TEST_PATH / "data/domcfg_multi_files"))
    assert domcfg_1.equals(domcfg_multi)
Exemplo n.º 18
0
def test_no_file_provided():
    """Test exception raised if no file is found"""
    try:
        open_domain_cfg(datadir=TEST_PATH)
    except FileNotFoundError:
        pass
Exemplo n.º 19
0
def test_domcfg_meshmask():
    """Test merging domain_cfg_out and mesh_mask"""
    domcfg = open_domain_cfg(datadir=(TEST_PATH / "data/domcfg_mesh_mask"))
    assert "fmask" in domcfg
Exemplo n.º 20
0
def test_open_domcfg_1_file():
    """Test opening of 1 file"""
    open_domain_cfg(datadir=(TEST_PATH / "data/domcfg_1_file"))
Exemplo n.º 21
0
def test_options_for_files():
    """Test options to provide files"""
    datadir = TEST_PATH / "data/domcfg_mesh_mask"
    # 1. Provide datadir and no files
    open_domain_cfg(datadir=datadir, files=None)
    open_domain_cfg(datadir=datadir, files="")
    open_domain_cfg(datadir=datadir, files=[])
    # 2. Provide datadir and files
    files = [
        "domain_cfg_out_0000.nc",
        "domain_cfg_out_0001.nc",
        "domain_cfg_out_0002.nc",
        "domain_cfg_out_0003.nc",
        "mesh_mask_0000.nc",
        "mesh_mask_0001.nc",
        "mesh_mask_0002.nc",
        "mesh_mask_0003.nc",
    ]
    open_domain_cfg(datadir=datadir, files=files)
    # 3. Don't provide datadir but files
    open_domain_cfg(datadir=None, files=datadir.glob("*domain*.nc"))
    open_domain_cfg(datadir="", files=datadir.glob("*domain*.nc"))
    open_domain_cfg(datadir=[], files=datadir.glob("*domain*.nc"))
    # 4. Don't provide anything => error
    try:
        open_domain_cfg(datadir=None, files=None)
    except FileNotFoundError:
        pass
Exemplo n.º 22
0
def test_open_domcfg_1_file_provide_files():
    """Test opening of 1 file"""
    open_domain_cfg(
        files=(TEST_PATH / "data/domcfg_1_file").glob("*domain_cfg_out*.nc")
    )
Exemplo n.º 23
0
def test_open_domcfg_multi_files():
    """Test opening of multi files from processors"""
    open_domain_cfg(datadir=(TEST_PATH / "data/domcfg_multi_files"))
Exemplo n.º 24
0
def test_open_domcfg_multi_files_mesh_mask():
    """Test opening of multi files from processors, using mesh_mask files"""
    open_domain_cfg(datadir=(TEST_PATH / "data/mesh_mask_multi_files"))
Exemplo n.º 25
0
def test_compare_domcfg_mesh_mask():
    """Test that the data of mesh_mask are the same as in domain_cfg_out"""
    domcfg_1 = open_domain_cfg(datadir=(TEST_PATH / "data/domcfg_1_file"))
    domcfg_multi = open_domain_cfg(datadir=(TEST_PATH / "data/mesh_mask_multi_files"))
    assert (domcfg_1 == domcfg_multi).all()