From 9c3c0f65bccf65ca46e7eb65b662485c69ec07c7 Mon Sep 17 00:00:00 2001 From: malmans2 Date: Thu, 15 Jan 2026 12:53:06 +0100 Subject: [PATCH] apply sel to each dataset separately --- xarray_esgf/client.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xarray_esgf/client.py b/xarray_esgf/client.py index a53c09e..9f4e626 100644 --- a/xarray_esgf/client.py +++ b/xarray_esgf/client.py @@ -144,7 +144,9 @@ def _open_datasets( drop_variables=drop_variables, storage_options={"ssl": self.verify_ssl}, ) - grouped_objects[file.dataset_id].append(ds.drop_encoding()) + ds = ds.sel({k: v for k, v in sel.items() if k in ds.dims}) + if all(ds.sizes.values()): + grouped_objects[file.dataset_id].append(ds.drop_encoding()) combined_datasets = {} for dataset_id, datasets in grouped_objects.items(): @@ -166,7 +168,6 @@ def _open_datasets( if BOUNDS_DIMS.intersection(da.dims) or "time" not in da.dims ]) ds = ds.expand_dims({dim: [dataset_id_dict[dim]] for dim in concat_dims}) - ds = ds.sel({k: v for k, v in sel.items() if k in ds.dims}) combined_datasets[dataset_id] = ds LOGGER.debug(f"{dataset_id}: {dict(ds.sizes)}")