From 022da69ed4d7040eb0a0937aa96a253cc7eb8c40 Mon Sep 17 00:00:00 2001 From: Erik van Sebille Date: Mon, 21 Oct 2024 11:18:08 +0200 Subject: [PATCH 1/3] Fixing loaded_time_indices to support more advanced compute() functions --- parcels/field.py | 3 ++- parcels/fieldset.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/parcels/field.py b/parcels/field.py index 7546a27835..3f71129c62 100644 --- a/parcels/field.py +++ b/parcels/field.py @@ -205,6 +205,7 @@ def __init__( else: raise ValueError("Unsupported mesh type. Choose either: 'spherical' or 'flat'") self.timestamps = timestamps + self.loaded_time_indices: Iterable[int] = [] # type: ignore if isinstance(interp_method, dict): if self.name in interp_method: self.interp_method = interp_method[self.name] @@ -261,6 +262,7 @@ def __init__( if not self.grid.defer_load: self.data = self.reshape(self.data, transpose) + self.loaded_time_indices = range(self.grid.tdim) # Hack around the fact that NaN and ridiculously large values # propagate in SciPy's interpolators @@ -284,7 +286,6 @@ def __init__( self.dataFiles = np.append(self.dataFiles, self.dataFiles[0]) self._field_fb_class = kwargs.pop("FieldFileBuffer", None) self.netcdf_engine = kwargs.pop("netcdf_engine", "netcdf4") - self.loaded_time_indices: Iterable[int] = [] # type: ignore self.creation_log = kwargs.pop("creation_log", "") self.chunksize = kwargs.pop("chunksize", None) self.netcdf_chunkdims_name_map = kwargs.pop("chunkdims_name_map", None) diff --git a/parcels/fieldset.py b/parcels/fieldset.py index c21c1f79ac..8c0d2c44c4 100644 --- a/parcels/fieldset.py +++ b/parcels/fieldset.py @@ -1444,6 +1444,7 @@ def computeTimeChunk(self, time=0.0, dt=1): for f in self.get_fields(): if isinstance(f, (VectorField, NestedField)) or not f.grid.defer_load or f.dataFiles is None: continue + f.loaded_time_indices = [] # reset loaded time indices g = f.grid if g.update_status == "first_updated": # First load of data if f.data is not None and not isinstance(f.data, DeferredArray): From ec1fa4360f273d4f9e8ee2cd768b5e28d3ab9a8b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 09:39:37 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- parcels/field.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/parcels/field.py b/parcels/field.py index 7c7608336a..9bbc041739 100644 --- a/parcels/field.py +++ b/parcels/field.py @@ -339,9 +339,9 @@ def creation_log(self): @property @deprecated_made_private # TODO: Remove 6 months after v3.1.0 - def - - + def + + (self): return self._loaded_time_indices From e801751bf13a5c9555768c92200b5dd4ddb22e2e Mon Sep 17 00:00:00 2001 From: Erik van Sebille Date: Mon, 21 Oct 2024 11:41:14 +0200 Subject: [PATCH 3/3] Fixing merge errors --- parcels/field.py | 5 +---- parcels/fieldset.py | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/parcels/field.py b/parcels/field.py index 9bbc041739..ed907747a6 100644 --- a/parcels/field.py +++ b/parcels/field.py @@ -339,10 +339,7 @@ def creation_log(self): @property @deprecated_made_private # TODO: Remove 6 months after v3.1.0 - def - - - (self): + def loaded_time_indices(self): return self._loaded_time_indices @property diff --git a/parcels/fieldset.py b/parcels/fieldset.py index 7443adfdb3..e62ef45a88 100644 --- a/parcels/fieldset.py +++ b/parcels/fieldset.py @@ -1538,7 +1538,7 @@ def computeTimeChunk(self, time=0.0, dt=1): for f in self.get_fields(): if isinstance(f, (VectorField, NestedField)) or not f.grid.defer_load or f._dataFiles is None: continue - f.loaded_time_indices = [] # reset loaded time indices + f._loaded_time_indices = [] # reset loaded time indices g = f.grid if g._update_status == "first_updated": # First load of data if f.data is not None and not isinstance(f.data, DeferredArray):