Skip to content

Commit 46e77ef

Browse files
committed
Add time slicing before .load() for performance
- Addresses performance bottleneck associated with attempting to load large datasets into memory. Time slicing reduces the size before loading into memory
1 parent 09e853c commit 46e77ef

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

e3sm_diags/driver/utils/dataset_xr.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1132,15 +1132,16 @@ def _subset_time_series_dataset(self, ds: xr.Dataset, var: str) -> xr.Dataset:
11321132
-------
11331133
xr.Dataset
11341134
The subsetted time series dataset.
1135-
"""
1136-
ds_sub = self._subset_vars_and_load(ds, var)
11371135
1138-
time_slice = self._get_time_slice(ds_sub)
1139-
ds_sub = ds_sub.sel(time=time_slice).squeeze()
1136+
"""
1137+
time_slice = self._get_time_slice(ds)
1138+
ds_sub = ds.sel(time=time_slice).squeeze()
11401139

11411140
if self.is_sub_monthly:
11421141
ds_sub = self._exclude_sub_monthly_coord_spanning_year(ds_sub)
11431142

1143+
ds_sub = self._subset_vars_and_load(ds, var)
1144+
11441145
return ds_sub
11451146

11461147
def _get_time_slice(self, ds: xr.Dataset) -> slice:

0 commit comments

Comments
 (0)