Skip to content

Commit df8cb75

Browse files
committed
fix for dataset/time requested case
1 parent 08fd40c commit df8cb75

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/preprocessor.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -927,13 +927,17 @@ def crop_date_range(self, case_date_range: util.DateRange, xr_ds, time_coord) ->
927927
date_range_cf_start = self.cast_to_cftime(case_date_range.start.lower, cal)
928928
date_range_cf_end = self.cast_to_cftime(case_date_range.end.lower, cal)
929929

930+
# dataset has no overlap with the user-specified date range
930931
if ds_start < date_range_cf_start and ds_end < date_range_cf_start or \
931932
ds_end > date_range_cf_end and ds_start > date_range_cf_end:
932933
new_xr_ds = None
933934
# dataset falls entirely within user-specified date range
934935
elif ds_start >= date_range_cf_start and ds_end <= date_range_cf_end:
935936
new_xr_ds = xr_ds.sel({time_coord.name: slice(ds_start, ds_end)})
936-
# dataset overlaps user-specified date range start
937+
# dataset overlaps user-specified date range start (corrected)
938+
elif ds_start <= date_range_cf_start <= ds_end <= date_range_cf_end:
939+
new_xr_ds = xr_ds.sel({time_coord.name: slice(date_range_cf_start, ds_end)})
940+
# dataset overlaps user-specified date range start (orig)
937941
elif date_range_cf_start < ds_start and \
938942
date_range_cf_start <= ds_end <= date_range_cf_end:
939943
new_xr_ds = xr_ds.sel({time_coord.name: slice(date_range_cf_start, ds_end)})
@@ -943,6 +947,12 @@ def crop_date_range(self, case_date_range: util.DateRange, xr_ds, time_coord) ->
943947
# dataset contains all of requested date range
944948
elif date_range_cf_start >= ds_start and date_range_cf_end <= ds_end:
945949
new_xr_ds = xr_ds.sel({time_coord.name: slice(date_range_cf_start, date_range_cf_end)})
950+
else:
951+
print(f'ERROR: new_xr_ds is unset because of incompatibility of time:')
952+
print(f' Dataset start: {ds_start=}')
953+
print(f' Dataset end : {ds_end=}')
954+
print(f' Requested start: {date_range_cf_start=}')
955+
print(f' Requested end : {date_range_cf_end=}')
946956

947957
return new_xr_ds
948958

0 commit comments

Comments
 (0)