Skip to content
This repository was archived by the owner on Jan 10, 2025. It is now read-only.

Commit 0882c64

Browse files
committed
update
1 parent 6364b73 commit 0882c64

File tree

2 files changed

+48
-14
lines changed

2 files changed

+48
-14
lines changed

ecml_tools/data.py

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
__all__ = ["open_dataset", "open_zarr", "debug_zarr_loading"]
3434

3535
DEBUG_ZARR_LOADING = int(os.environ.get("DEBUG_ZARR_LOADING", "0"))
36+
DEBUG_ZARR_INDEXING = int(os.environ.get("DEBUG_ZARR_INDEXING", "0"))
3637

3738
DEPTH = 0
3839

@@ -41,25 +42,22 @@ def _debug_indexing(method):
4142
@wraps(method)
4243
def wrapper(self, index):
4344
global DEPTH
44-
if isinstance(index, tuple):
45-
print(" " * DEPTH, "->", self, method.__name__, index)
45+
# if isinstance(index, tuple):
46+
print(" " * DEPTH, "->", self, method.__name__, index)
4647
DEPTH += 1
4748
result = method(self, index)
4849
DEPTH -= 1
49-
if isinstance(index, tuple):
50-
print(" " * DEPTH, "<-", self, method.__name__, result.shape)
50+
# if isinstance(index, tuple):
51+
print(" " * DEPTH, "<-", self, method.__name__, result.shape)
5152
return result
5253

5354
return wrapper
5455

5556

56-
if True:
57-
58-
def debug_indexing(x):
59-
return x
60-
61-
else:
57+
if DEBUG_ZARR_INDEXING:
6258
debug_indexing = _debug_indexing
59+
else:
60+
debug_indexing = lambda x: x # noqa
6361

6462

6563
def debug_zarr_loading(on_off):
@@ -917,9 +915,6 @@ def __init__(self, dataset, indices):
917915

918916
self.dataset = dataset
919917
self.indices = list(indices)
920-
self.slice = _make_slice_or_index_from_list_or_tuple(self.indices)
921-
assert isinstance(self.slice, slice)
922-
print("SUBSET", self.slice)
923918

924919
# Forward other properties to the super dataset
925920
super().__init__(dataset)
@@ -947,7 +942,10 @@ def _get_slice(self, s):
947942
@expand_list_indexing
948943
def _get_tuple(self, n):
949944
index, changes = index_to_slices(n, self.shape)
950-
index, previous = update_tuple(index, 0, self.slice)
945+
indices = [self.indices[i] for i in range(*index[0].indices(self._len))]
946+
index, previous = update_tuple(
947+
index, 0, _make_slice_or_index_from_list_or_tuple(indices)
948+
)
951949
result = self.dataset[index]
952950
result = result[previous]
953951
result = apply_index_to_slices_changes(result, changes)

tests/test_data.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,6 +1041,42 @@ def test_ensemble_2():
10411041
)
10421042

10431043

1044+
def test_ensemble_3():
1045+
test = DatasetTester(
1046+
ensemble=[
1047+
{"dataset": "test-2021-2021-6h-o96-abcd-1-10", "frequency": 12},
1048+
{"dataset": "test-2021-2021-6h-o96-abcd-2-1", "frequency": 12},
1049+
{"dataset": "test-2021-2021-6h-o96-abcd-3-5", "frequency": 12},
1050+
]
1051+
)
1052+
test.run(
1053+
expected_class=Ensemble,
1054+
expected_length=365 * 1 * 2,
1055+
expected_shape=(365 * 1 * 2, 4, 16, VALUES),
1056+
expected_variables="abcd",
1057+
expected_name_to_index={"a": 0, "b": 1, "c": 2, "d": 3},
1058+
date_to_row=lambda date: make_row(
1059+
[_(date, "a", 1, i) for i in range(10)]
1060+
+ [_(date, "a", 2, 0)]
1061+
+ [_(date, "a", 3, i) for i in range(5)],
1062+
[_(date, "b", 1, i) for i in range(10)]
1063+
+ [_(date, "b", 2, 0)]
1064+
+ [_(date, "b", 3, i) for i in range(5)],
1065+
[_(date, "c", 1, i) for i in range(10)]
1066+
+ [_(date, "c", 2, 0)]
1067+
+ [_(date, "c", 3, i) for i in range(5)],
1068+
[_(date, "d", 1, i) for i in range(10)]
1069+
+ [_(date, "d", 2, 0)]
1070+
+ [_(date, "d", 3, i) for i in range(5)],
1071+
ensemble=True,
1072+
),
1073+
start_date=datetime.datetime(2021, 1, 1),
1074+
time_increment=datetime.timedelta(hours=12),
1075+
statistics_reference_dataset=None,
1076+
statistics_reference_variables=None,
1077+
)
1078+
1079+
10441080
def test_grids():
10451081
test = DatasetTester(
10461082
grids=[

0 commit comments

Comments
 (0)