|
20 | 20 | "conservative": DATA_PATH / "cdo_conservative_64b.nc", |
21 | 21 | } |
22 | 22 |
|
| 23 | +CHUNK_SCHEMES = [{}, {"time": 1}, {"longitude": 100, "latitude": 100}] |
| 24 | + |
23 | 25 |
|
24 | 26 | @pytest.fixture(scope="session") |
25 | 27 | def sample_input_data() -> xr.Dataset: |
@@ -71,31 +73,38 @@ def conservative_sample_grid(): |
71 | 73 |
|
72 | 74 |
|
73 | 75 | @pytest.mark.parametrize("method", ["linear", "nearest"]) |
| 76 | +@pytest.mark.parametrize("chunks", CHUNK_SCHEMES) |
74 | 77 | def test_basic_regridders_ds( |
75 | | - sample_input_data, sample_grid_ds, cdo_comparison_data, method |
| 78 | + sample_input_data, sample_grid_ds, cdo_comparison_data, method, chunks |
76 | 79 | ): |
77 | 80 | """Test the dataset regridders (except conservative).""" |
78 | | - regridder = getattr(sample_input_data.regrid, method) |
| 81 | + regridder = getattr(sample_input_data.chunk(chunks).regrid, method) |
79 | 82 | ds_regrid = regridder(sample_grid_ds) |
80 | 83 | ds_cdo = cdo_comparison_data[method] |
81 | 84 | xr.testing.assert_allclose(ds_regrid, ds_cdo, rtol=0.002, atol=2e-5) |
82 | 85 |
|
83 | 86 |
|
84 | 87 | @pytest.mark.parametrize("method", ["linear", "nearest"]) |
| 88 | +@pytest.mark.parametrize("chunks", CHUNK_SCHEMES) |
85 | 89 | def test_basic_regridders_da( |
86 | | - sample_input_data, sample_grid_ds, cdo_comparison_data, method |
| 90 | + sample_input_data, sample_grid_ds, cdo_comparison_data, method, chunks |
87 | 91 | ): |
88 | 92 | """Test the dataarray regridders (except conservative).""" |
89 | | - regridder = getattr(sample_input_data["d2m"].regrid, method) |
| 93 | + regridder = getattr(sample_input_data["d2m"].chunk(chunks).regrid, method) |
90 | 94 | da_regrid = regridder(sample_grid_ds) |
91 | 95 | da_cdo = cdo_comparison_data[method]["d2m"] |
92 | 96 | xr.testing.assert_allclose(da_regrid, da_cdo, rtol=0.002, atol=2e-5) |
93 | 97 |
|
94 | 98 |
|
| 99 | +@pytest.mark.parametrize("chunks", CHUNK_SCHEMES) |
95 | 100 | def test_conservative_regridder( |
96 | | - conservative_input_data, conservative_sample_grid, cdo_comparison_data |
| 101 | + conservative_input_data, |
| 102 | + conservative_sample_grid, |
| 103 | + cdo_comparison_data, |
| 104 | + chunks, |
97 | 105 | ): |
98 | | - ds_regrid = conservative_input_data.regrid.conservative( |
| 106 | + input_data = conservative_input_data.chunk(chunks) |
| 107 | + ds_regrid = input_data.regrid.conservative( |
99 | 108 | conservative_sample_grid, latitude_coord="latitude" |
100 | 109 | ) |
101 | 110 | ds_cdo = cdo_comparison_data["conservative"] |
@@ -201,7 +210,7 @@ def test_conservative_nan_thresholds_against_coarsen(nan_threshold): |
201 | 210 |
|
202 | 211 | @pytest.mark.skipif(xesmf is None, reason="xesmf required") |
203 | 212 | def test_conservative_nan_thresholds_against_xesmf(): |
204 | | - ds = xr.tutorial.open_dataset("ersstv5").sst.compute().isel(time=[0]) |
| 213 | + ds = xr.tutorial.open_dataset("ersstv5").sst.isel(time=[0]).compute() |
205 | 214 | ds = ds.rename(lon="longitude", lat="latitude") |
206 | 215 | new_grid = xarray_regrid.Grid( |
207 | 216 | north=90, |
|
0 commit comments