From 60814a606824044e103c371e194c25ac12e24567 Mon Sep 17 00:00:00 2001 From: Raphael Hagen Date: Fri, 30 Aug 2024 17:00:33 -0700 Subject: [PATCH 1/3] local files for testing --- conftest.py | 95 +++++++++++------- virtualizarr/tests/data/test_ds_netcdf3.nc | Bin 0 -> 12364 bytes .../tests/data/test_ds_netcdf4_full_time.nc | Bin 0 -> 29091 bytes .../tests/data/test_ds_netcdf4_group.nc | Bin 0 -> 29445 bytes .../tests/data/test_ds_netcdf4_split_time1.nc | Bin 0 -> 23791 bytes .../tests/data/test_ds_netcdf4_split_time2.nc | Bin 0 -> 23791 bytes .../tests/data/test_ds_non_datetime_time.nc | Bin 0 -> 530944 bytes virtualizarr/tests/test_integration.py | 22 ++-- virtualizarr/tests/test_xarray.py | 7 +- 9 files changed, 71 insertions(+), 53 deletions(-) create mode 100644 virtualizarr/tests/data/test_ds_netcdf3.nc create mode 100644 virtualizarr/tests/data/test_ds_netcdf4_full_time.nc create mode 100644 virtualizarr/tests/data/test_ds_netcdf4_group.nc create mode 100644 virtualizarr/tests/data/test_ds_netcdf4_split_time1.nc create mode 100644 virtualizarr/tests/data/test_ds_netcdf4_split_time2.nc create mode 100644 virtualizarr/tests/data/test_ds_non_datetime_time.nc diff --git a/conftest.py b/conftest.py index 32b3581..e9c631d 100644 --- a/conftest.py +++ b/conftest.py @@ -12,6 +12,57 @@ def pytest_addoption(parser): ) +def generate_test_filepath_dict() -> dict: + return { + "full_time_netcdf4": "virtualizarr/tests/data/test_ds_netcdf4_full_time.nc", + "time_1_netcdf4": "virtualizarr/tests/data/test_ds_netcdf4_split_time1.nc", + "time_2_netcdf4": "virtualizarr/tests/data/test_ds_netcdf4_split_time2.nc", + "netcdf3": "virtualizarr/tests/data/test_ds_netcdf3.nc", + "netcdf4_group": "virtualizarr/tests/data/test_ds_netcdf4_group.nc", + "netcdf4_non_standard_time": "virtualizarr/tests/data/test_ds_non_datetime_time.nc", + } + + +def generate_small_xr_datasets(): + """This function can be used to re-generate the locally stored dataset for testing + It's 43kB instead of the full 31MB air_temperature tutorial dataset""" + import numpy as np + + # building our test dataset from the air_temp dataset, but saving a subset + ds = xr.tutorial.open_dataset("air_temperature").isel(time=slice(0, 4)) + + lats = np.arange(-90, 90, 1) + lons = np.arange(-180, 180, 1) + + data = np.random.randint(0, 2, size=(4, 180, 360), dtype=np.int16) + + # create a dataset with non-standard time + non_standard_date_ds = xr.Dataset( + data_vars=dict(air=(["time", "lat", "lon"], data)), + coords=dict(time=[0, 1, 2, 3], lat=lats, lon=lons), + ) + + # Add attributes to the time coordinate + non_standard_date_ds.time.attrs["units"] = "days since '2000-01-01'" + non_standard_date_ds.time.attrs["calendar"] = "standard" + + # write datasets + ds.to_netcdf("virtualizarr/tests/data/test_ds_netcdf4_full_time.nc") + ds.isel(time=slice(0, 2)).to_netcdf( + "virtualizarr/tests/data/test_ds_netcdf4_split_time1.nc" + ) + ds.isel(time=slice(2, 4)).to_netcdf( + "virtualizarr/tests/data/test_ds_netcdf4_split_time2.nc" + ) + + ds.to_netcdf("virtualizarr/tests/data/test_ds_netcdf3.nc", engine="scipy") + ds.to_netcdf("virtualizarr/tests/data/test_ds_netcdf4_group.nc", group="test/group") + + non_standard_date_ds.to_netcdf( + "virtualizarr/tests/data/test_ds_non_datetime_time.nc" + ) + + def pytest_runtest_setup(item): # based on https://stackoverflow.com/questions/47559524 if "network" in item.keywords and not item.config.getoption("--run-network-tests"): @@ -21,49 +72,19 @@ def pytest_runtest_setup(item): @pytest.fixture -def netcdf4_file(tmpdir): - # Set up example xarray dataset - ds = xr.tutorial.open_dataset("air_temperature") - - # Save it to disk as netCDF (in temporary directory) - filepath = f"{tmpdir}/air.nc" - ds.to_netcdf(filepath, format="NETCDF4") - ds.close() - - return filepath +def netcdf4_file() -> str: + return generate_test_filepath_dict()["full_time_netcdf4"] @pytest.fixture -def hdf5_groups_file(tmpdir): - # Set up example xarray dataset - ds = xr.tutorial.open_dataset("air_temperature") - - # Save it to disk as netCDF (in temporary directory) - filepath = f"{tmpdir}/air.nc" - ds.to_netcdf(filepath, format="NETCDF4", group="test/group") - ds.close() - - return filepath +def hdf5_groups_file() -> str: + return generate_test_filepath_dict()["netcdf4_group"] @pytest.fixture -def netcdf4_files(tmpdir): - # Set up example xarray dataset - ds = xr.tutorial.open_dataset("air_temperature") - - # split inrto equal chunks so we can concatenate them back together later - ds1 = ds.isel(time=slice(None, 1460)) - ds2 = ds.isel(time=slice(1460, None)) - - # Save it to disk as netCDF (in temporary directory) - filepath1 = f"{tmpdir}/air1.nc" - filepath2 = f"{tmpdir}/air2.nc" - ds1.to_netcdf(filepath1) - ds2.to_netcdf(filepath2) - ds1.close() - ds2.close() - - return filepath1, filepath2 +def netcdf4_files(): + test_filepath_dict = generate_test_filepath_dict() + return test_filepath_dict["time_1_netcdf4"], test_filepath_dict["time_2_netcdf4"] @pytest.fixture diff --git a/virtualizarr/tests/data/test_ds_netcdf3.nc b/virtualizarr/tests/data/test_ds_netcdf3.nc new file mode 100644 index 0000000000000000000000000000000000000000..f58689a3037d29e5e9e4eaec94a7c86ad92e5c56 GIT binary patch literal 12364 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 ~fh?fp6o)`DLfpuOW{(plxFCDVyc#C91w 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 MfVsZqPsaoQA3o;EQ~&?~ literal 0 HcmV?d00001 diff --git a/virtualizarr/tests/data/test_ds_netcdf4_group.nc b/virtualizarr/tests/data/test_ds_netcdf4_group.nc new file mode 100644 index 0000000000000000000000000000000000000000..03dc4cf5451ffbf2906db411c30c40382248a635 GIT binary patch literal 29445 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 literal 0 HcmV?d00001 diff --git a/virtualizarr/tests/data/test_ds_netcdf4_split_time1.nc b/virtualizarr/tests/data/test_ds_netcdf4_split_time1.nc new file mode 100644 index 0000000000000000000000000000000000000000..d34284882cfd938a3f4d87b331eb9e78a9f61af6 GIT binary patch literal 23791 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 anznU_biSmH@ujry0}Fs%@A1R2!2bcwV`M@A literal 0 HcmV?d00001 diff --git a/virtualizarr/tests/data/test_ds_netcdf4_split_time2.nc b/virtualizarr/tests/data/test_ds_netcdf4_split_time2.nc new file mode 100644 index 0000000000000000000000000000000000000000..0afa035e94ea1760ffd686156372eb3634de21b8 GIT binary patch literal 23791 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 literal 0 HcmV?d00001 diff --git a/virtualizarr/tests/data/test_ds_non_datetime_time.nc b/virtualizarr/tests/data/test_ds_non_datetime_time.nc new file mode 100644 index 0000000000000000000000000000000000000000..0d9213f27489eaf6d43441d7289604baeff93d6a GIT binary patch literal 530944 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

oI;X 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 F{~Hnw;WYpN literal 0 HcmV?d00001 diff --git a/virtualizarr/tests/test_integration.py b/virtualizarr/tests/test_integration.py index 5894f64..1e33127 100644 --- a/virtualizarr/tests/test_integration.py +++ b/virtualizarr/tests/test_integration.py @@ -36,7 +36,6 @@ def test_numpy_arrays_to_inlined_kerchunk_refs( netcdf4_file, loadable_variables=vars_to_inline, indexes={} ) refs = vds.virtualize.to_kerchunk(format="dict") - # TODO I would just compare the entire dicts but kerchunk returns inconsistent results - see https://github.com/TomNicholas/VirtualiZarr/pull/73#issuecomment-2040931202 # assert refs == expected assert refs["refs"]["air/0.0.0"] == expected["refs"]["air/0.0.0"] @@ -47,15 +46,11 @@ def test_numpy_arrays_to_inlined_kerchunk_refs( @pytest.mark.parametrize("format", ["dict", "json", "parquet"]) class TestKerchunkRoundtrip: - def test_kerchunk_roundtrip_no_concat(self, tmpdir, format): - # set up example xarray dataset - ds = xr.tutorial.open_dataset("air_temperature", decode_times=False) - - # save it to disk as netCDF (in temporary directory) - ds.to_netcdf(f"{tmpdir}/air.nc") + def test_kerchunk_roundtrip_no_concat(self, netcdf4_file, tmpdir, format): + ds = xr.open_dataset(netcdf4_file, decode_times=False) # use open_dataset_via_kerchunk to read it as references - vds = open_virtual_dataset(f"{tmpdir}/air.nc", indexes={}) + vds = open_virtual_dataset(netcdf4_file, indexes={}) if format == "dict": # write those references to an in-memory kerchunk-formatted references dictionary @@ -76,12 +71,17 @@ def test_kerchunk_roundtrip_no_concat(self, tmpdir, format): xrt.assert_identical(roundtrip, ds) @pytest.mark.parametrize("decode_times,time_vars", [(False, []), (True, ["time"])]) - def test_kerchunk_roundtrip_concat(self, tmpdir, format, decode_times, time_vars): + def test_kerchunk_roundtrip_concat( + self, netcdf4_file, netcdf4_files, tmpdir, format, decode_times, time_vars + ): + netcdf1, netcdf2 = netcdf4_files + # set up example xarray dataset - ds = xr.tutorial.open_dataset("air_temperature", decode_times=decode_times) + ds = xr.open_dataset(netcdf4_file, decode_times=decode_times) # split into two datasets - ds1, ds2 = ds.isel(time=slice(None, 1460)), ds.isel(time=slice(1460, None)) + ds1 = xr.open_dataset(netcdf1, decode_times=decode_times) + ds2 = xr.open_dataset(netcdf2, decode_times=decode_times) # save it to disk as netCDF (in temporary directory) ds1.to_netcdf(f"{tmpdir}/air1.nc") diff --git a/virtualizarr/tests/test_xarray.py b/virtualizarr/tests/test_xarray.py index 9db6e3a..4d2f83a 100644 --- a/virtualizarr/tests/test_xarray.py +++ b/virtualizarr/tests/test_xarray.py @@ -230,10 +230,7 @@ def test_combine_by_coords(self, netcdf4_files): vds1 = open_virtual_dataset(filepath1) with pytest.warns(UserWarning, match="will create in-memory pandas indexes"): vds2 = open_virtual_dataset(filepath2) - - combined_vds = xr.combine_by_coords( - [vds2, vds1], - ) + combined_vds = xr.combine_by_coords([vds2, vds1]) assert combined_vds.xindexes["time"].to_pandas_index().is_monotonic_increasing @@ -278,7 +275,7 @@ def local_to_s3_url(old_local_path: str) -> str: renamed_vds = vds.virtualize.rename_paths(local_to_s3_url) assert ( renamed_vds["air"].data.manifest.dict()["0.0.0"]["path"] - == "s3://bucket/air.nc" + == "s3://bucket/test_ds_netcdf4_full_time.nc" ) def test_invalid_type(self, netcdf4_file): From aff8cfabae32ea48accc1ba1af3aedc85a51c36e Mon Sep 17 00:00:00 2001 From: Raphael Hagen Date: Fri, 30 Aug 2024 20:49:38 -0700 Subject: [PATCH 2/3] wip --- virtualizarr/tests/test_integration.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/virtualizarr/tests/test_integration.py b/virtualizarr/tests/test_integration.py index 1e33127..db7fc37 100644 --- a/virtualizarr/tests/test_integration.py +++ b/virtualizarr/tests/test_integration.py @@ -12,8 +12,8 @@ @pytest.mark.parametrize( "inline_threshold, vars_to_inline", [ - (5e2, ["lat", "lon"]), - (5e4, ["lat", "lon", "time"]), + (16, ["lat", "lon"]), + (5e3, ["lat", "lon", "time"]), pytest.param( 5e7, ["lat", "lon", "time", "air"], @@ -38,9 +38,11 @@ def test_numpy_arrays_to_inlined_kerchunk_refs( refs = vds.virtualize.to_kerchunk(format="dict") # TODO I would just compare the entire dicts but kerchunk returns inconsistent results - see https://github.com/TomNicholas/VirtualiZarr/pull/73#issuecomment-2040931202 # assert refs == expected + assert refs["refs"]["air/0.0.0"] == expected["refs"]["air/0.0.0"] assert refs["refs"]["lon/0"] == expected["refs"]["lon/0"] assert refs["refs"]["lat/0"] == expected["refs"]["lat/0"] + assert refs["refs"]["time/0"] == expected["refs"]["time/0"] From d73b373166bd061d56ec60d4d792448b5256ea0c Mon Sep 17 00:00:00 2001 From: Raphael Hagen Date: Fri, 30 Aug 2024 21:16:44 -0700 Subject: [PATCH 3/3] added time as a loadable variable to the first parametrization -- TODO: --- virtualizarr/tests/test_integration.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/virtualizarr/tests/test_integration.py b/virtualizarr/tests/test_integration.py index db7fc37..70f01e9 100644 --- a/virtualizarr/tests/test_integration.py +++ b/virtualizarr/tests/test_integration.py @@ -12,7 +12,7 @@ @pytest.mark.parametrize( "inline_threshold, vars_to_inline", [ - (16, ["lat", "lon"]), + (500, ["time", "lat", "lon"]), (5e3, ["lat", "lon", "time"]), pytest.param( 5e7, @@ -38,11 +38,9 @@ def test_numpy_arrays_to_inlined_kerchunk_refs( refs = vds.virtualize.to_kerchunk(format="dict") # TODO I would just compare the entire dicts but kerchunk returns inconsistent results - see https://github.com/TomNicholas/VirtualiZarr/pull/73#issuecomment-2040931202 # assert refs == expected - assert refs["refs"]["air/0.0.0"] == expected["refs"]["air/0.0.0"] assert refs["refs"]["lon/0"] == expected["refs"]["lon/0"] assert refs["refs"]["lat/0"] == expected["refs"]["lat/0"] - assert refs["refs"]["time/0"] == expected["refs"]["time/0"]