diff --git a/parcels/fieldset.py b/parcels/fieldset.py index 186698de48..f29526fe3c 100644 --- a/parcels/fieldset.py +++ b/parcels/fieldset.py @@ -76,7 +76,9 @@ def time_interval(self): time_intervals = (f.time_interval for f in self.fields.values()) # Filter out Nones from constant Fields - time_intervals = (t for t in time_intervals if t is not None) + time_intervals = [t for t in time_intervals if t is not None] + if len(time_intervals) == 0: # All fields are constant fields + return None return functools.reduce(lambda x, y: x.intersection(y), time_intervals) def dimrange(self, dim): diff --git a/tests/v4/test_fieldset.py b/tests/v4/test_fieldset.py index 0c39d84953..7e317266bd 100644 --- a/tests/v4/test_fieldset.py +++ b/tests/v4/test_fieldset.py @@ -93,6 +93,14 @@ def test_fieldset_time_interval(): assert fieldset.time_interval.right == np.datetime64("2001-01-01") +def test_fieldset_time_interval_constant_fields(): + fieldset = FieldSet([]) + fieldset.add_constant_field("constant_field", 1.0) + fieldset.add_constant_field("constant_field2", 2.0) + + assert fieldset.time_interval is None + + def test_fieldset_init_incompatible_calendars(): ds1 = ds.copy() ds1["time"] = xr.date_range("2000", "2001", T_structured, calendar="365_day", use_cftime=True)