Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 2 additions & 134 deletions parcels/field.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
assert_valid_gridindexingtype,
assert_valid_interp_method,
)
from parcels.tools._helpers import default_repr, deprecated_made_private, field_repr, timedelta_to_float
from parcels.tools._helpers import default_repr, field_repr, timedelta_to_float
from parcels.tools.converters import (
TimeConverter,
UnitConverter,
Expand All @@ -50,7 +50,7 @@
DeferredNetcdfFileBuffer,
NetcdfFileBuffer,
)
from .grid import CGrid, Grid, GridType, _calc_cell_areas, _calc_cell_edge_sizes
from .grid import CGrid, Grid, GridType, _calc_cell_areas

if TYPE_CHECKING:
from ctypes import _Pointer as PointerType
Expand Down Expand Up @@ -353,36 +353,6 @@ def __init__(
def __repr__(self) -> str:
return field_repr(self)

@property
@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def dataFiles(self):
return self._dataFiles

@property
@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def chunk_set(self):
return self._chunk_set

@property
@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def c_data_chunks(self):
return self._c_data_chunks

@property
@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def data_chunks(self):
return self._data_chunks

@property
@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def creation_log(self):
return self._creation_log

@property
@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def loaded_time_indices(self):
return self._loaded_time_indices

@property
def dimensions(self):
return self._dimensions
Expand Down Expand Up @@ -431,11 +401,6 @@ def cast_data_dtype(self):
def netcdf_engine(self):
return self._netcdf_engine

@classmethod
@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def get_dim_filenames(cls, *args, **kwargs):
return cls._get_dim_filenames(*args, **kwargs)

@classmethod
def _get_dim_filenames(cls, filenames, dim):
if isinstance(filenames, str) or not isinstance(filenames, collections.abc.Iterable):
Expand All @@ -450,11 +415,6 @@ def _get_dim_filenames(cls, filenames, dim):
else:
return filenames

@staticmethod
@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def collect_timeslices(*args, **kwargs):
return Field._collect_timeslices(*args, **kwargs)

@staticmethod
def _collect_timeslices(
timestamps, data_filenames, _grid_fb_class, dimensions, indices, netcdf_engine, netcdf_decodewarning=None
Expand Down Expand Up @@ -861,10 +821,6 @@ def from_xarray(
**kwargs,
)

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def reshape(self, *args, **kwargs):
return self._reshape(*args, **kwargs)

def _reshape(self, data, transpose=False):
# Ensure that field data is the right data type
if not isinstance(data, (np.ndarray, da.core.Array)):
Expand Down Expand Up @@ -963,51 +919,19 @@ def set_depth_from_field(self, field):
if self.grid != field.grid:
field.grid.depth_field = field

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def calc_cell_edge_sizes(self):
_calc_cell_edge_sizes(self.grid)

def cell_areas(self):
"""Method to calculate cell sizes based on cell_edge_sizes.

Only works for Rectilinear Grids
"""
return _calc_cell_areas(self.grid)

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def search_indices_vertical_z(self, *_):
raise NotImplementedError

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def search_indices_vertical_s(self, *args, **kwargs):
raise NotImplementedError

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def reconnect_bnd_indices(self, *args, **kwargs):
raise NotImplementedError

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def search_indices_rectilinear(self, *_):
raise NotImplementedError

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def search_indices_curvilinear(self, *_):
raise NotImplementedError

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def search_indices(self, *_):
raise NotImplementedError

def _search_indices(self, time, z, y, x, ti=-1, particle=None, search2D=False):
if self.grid._gtype in [GridType.RectilinearSGrid, GridType.RectilinearZGrid]:
return _search_indices_rectilinear(self, time, z, y, x, ti, particle=particle, search2D=search2D)
else:
return _search_indices_curvilinear(self, time, z, y, x, ti, particle=particle, search2D=search2D)

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def interpolator2D(self, *_):
raise NotImplementedError

def _interpolator2D(self, ti, z, y, x, particle=None):
"""Impelement 2D interpolation with coordinate transformations as seen in Delandmeter and Van Sebille (2019), 10.5194/gmd-12-3571-2019.."""
(_, eta, xsi, _, yi, xi) = self._search_indices(-1, z, y, x, particle=particle)
Expand All @@ -1024,10 +948,6 @@ def _interpolator2D(self, ti, z, y, x, particle=None):
raise RuntimeError(self.interp_method + " is not implemented for 2D grids")
return f(ctx)

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def interpolator3D(self, *_):
raise NotImplementedError

def _interpolator3D(self, ti, z, y, x, time, particle=None):
"""Impelement 3D interpolation with coordinate transformations as seen in Delandmeter and Van Sebille (2019), 10.5194/gmd-12-3571-2019.."""
(zeta, eta, xsi, zi, yi, xi) = self._search_indices(time, z, y, x, ti, particle=particle)
Expand Down Expand Up @@ -1060,10 +980,6 @@ def temporal_interpolate_fullfield(self, ti, time):
f1 = self.data[ti + 1, :]
return f0 + (f1 - f0) * ((time - t0) / (t1 - t0))

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def spatial_interpolation(self, *args, **kwargs):
return self._spatial_interpolation(*args, **kwargs)

def _spatial_interpolation(self, ti, z, y, x, time, particle=None):
"""Interpolate horizontal field values using a SciPy interpolator."""
try:
Expand All @@ -1084,10 +1000,6 @@ def _spatial_interpolation(self, ti, z, y, x, time, particle=None):
e = add_note(e, f"Error interpolating field '{self.name}'.", before=True)
raise e

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def time_index(self, *_):
raise NotImplementedError

def _time_index(self, time):
"""Find the index in the time array associated with a given time.

Expand Down Expand Up @@ -1172,10 +1084,6 @@ def eval(self, time, z, y, x, particle=None, applyConversion=True):
else:
return value

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def ccode_eval(self, *args, **kwargs):
return self._ccode_eval(*args, **kwargs)

def _ccode_eval(self, var, t, z, y, x):
self._check_velocitysampling()
ccode_str = (
Expand All @@ -1185,31 +1093,15 @@ def _ccode_eval(self, var, t, z, y, x):
)
return ccode_str

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def ccode_convert(self, *args, **kwargs):
return self._ccode_convert(*args, **kwargs)

def _ccode_convert(self, _, z, y, x):
return self.units.ccode_to_target(z, y, x)

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def get_block_id(self, *args, **kwargs):
return self._get_block_id(*args, **kwargs)

def _get_block_id(self, block):
return np.ravel_multi_index(block, self.nchunks)

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def get_block(self, *args, **kwargs):
return self._get_block(*args, **kwargs)

def _get_block(self, bid):
return np.unravel_index(bid, self.nchunks[1:])

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def chunk_setup(self, *args, **kwargs):
return self._chunk_setup(*args, **kwargs)

def _chunk_setup(self):
if isinstance(self.data, da.core.Array):
chunks = self.data.chunks
Expand Down Expand Up @@ -1240,10 +1132,6 @@ def _chunk_setup(self):
self.grid.chunk_info = sum(self.grid.chunk_info, []) # noqa: RUF017
self._chunk_set = True

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def chunk_data(self, *args, **kwargs):
return self._chunk_data(*args, **kwargs)

def _chunk_data(self):
if not self._chunk_set:
self._chunk_setup()
Expand Down Expand Up @@ -1414,10 +1302,6 @@ def write(self, filename, varname=None):
)
dset.to_netcdf(filepath, unlimited_dims="time_counter")

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def rescale_and_set_minmax(self, *args, **kwargs):
return self._rescale_and_set_minmax(*args, **kwargs)

def _rescale_and_set_minmax(self, data):
data[np.isnan(data)] = 0
if self._scaling_factor:
Expand All @@ -1428,10 +1312,6 @@ def _rescale_and_set_minmax(self, data):
data[data > self.vmax] = 0
return data

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def data_concatenate(self, *args, **kwargs):
return self._data_concatenate(*args, **kwargs)

def _data_concatenate(self, data, data_to_concat, tindex):
if data[tindex] is not None:
if isinstance(data, np.ndarray):
Expand Down Expand Up @@ -1554,14 +1434,6 @@ def _check_grid_dimensions(grid1, grid2):
and np.allclose(grid1.time_full, grid2.time_full)
)

@deprecated_made_private # TODO: Remove 6 months after v3.2.0
def dist(self, *args, **kwargs):
raise NotImplementedError

@deprecated_made_private # TODO: Remove 6 months after v3.2.0
def jacobian(self, *args, **kwargs):
raise NotImplementedError

def spatial_c_grid_interpolation2D(self, ti, z, y, x, time, particle=None, applyConversion=True):
grid = self.U.grid
(_, eta, xsi, zi, yi, xi) = self.U._search_indices(time, z, y, x, ti, particle=particle)
Expand Down Expand Up @@ -2051,10 +1923,6 @@ def __getitem__(self, key):
except tuple(AllParcelsErrorCodes.keys()) as error:
return _deal_with_errors(error, key, vector_type=self.vector_type)

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def ccode_eval(self, *args, **kwargs):
return self._ccode_eval(*args, **kwargs)

def _ccode_eval(self, varU, varV, varW, U, V, W, t, z, y, x):
ccode_str = ""
if "3D" in self.vector_type:
Expand Down
20 changes: 1 addition & 19 deletions parcels/fieldset.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from parcels.grid import Grid
from parcels.gridset import GridSet
from parcels.particlefile import ParticleFile
from parcels.tools._helpers import deprecated_made_private, fieldset_repr
from parcels.tools._helpers import fieldset_repr
from parcels.tools.converters import TimeConverter, convert_xarray_time_units
from parcels.tools.loggers import logger
from parcels.tools.statuscodes import TimeExtrapolationError
Expand Down Expand Up @@ -63,11 +63,6 @@ def __repr__(self):
def particlefile(self):
return self._particlefile

@property
@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def completed(self):
return self._completed

@staticmethod
def checkvaliddimensionsdict(dims):
for d in dims:
Expand Down Expand Up @@ -248,10 +243,6 @@ def add_vector_field(self, vfield):
for f in vfield:
f.fieldset = self

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def add_UVfield(self, *args, **kwargs):
return self._add_UVfield(*args, **kwargs)

def _add_UVfield(self):
if not hasattr(self, "UV") and hasattr(self, "U") and hasattr(self, "V"):
if isinstance(self.U, NestedField):
Expand All @@ -264,10 +255,6 @@ def _add_UVfield(self):
else:
self.add_vector_field(VectorField("UVW", self.U, self.V, self.W))

@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def check_complete(self):
return self._check_complete()

def _check_complete(self):
assert self.U, 'FieldSet does not have a Field named "U"'
assert self.V, 'FieldSet does not have a Field named "V"'
Expand Down Expand Up @@ -345,11 +332,6 @@ def check_velocityfields(U, V, W):
f.grid._depth = depth_data if isinstance(depth_data, np.ndarray) else np.array(depth_data)
self._completed = True

@classmethod
@deprecated_made_private # TODO: Remove 6 months after v3.1.0
def parse_wildcards(cls, *args, **kwargs):
return cls._parse_wildcards(*args, **kwargs)

@classmethod
def _parse_wildcards(cls, paths, filenames, var):
if not isinstance(paths, list):
Expand Down
Loading
Loading