Skip to content

Commit c5cbb92

Browse files
committed
Split ParticleFile.write into ParticleFile._write_particle_data
1 parent 21b7c62 commit c5cbb92

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

parcels/particlefile.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,16 @@ def write(self, pset: ParticleSet, time, indices=None):
131131
Time at which to write ParticleSet (same time object as fieldset)
132132
"""
133133
pclass = pset._ptype
134-
vars_to_write = _get_vars_to_write(pclass)
135134
time_interval = pset.fieldset.time_interval
135+
particle_data = pset._data
136136
time = timedelta_to_float(time - time_interval.left)
137-
particle_data = _convert_particle_data_time_to_float_seconds(pset._data, time_interval)
137+
particle_data = _convert_particle_data_time_to_float_seconds(particle_data, time_interval)
138+
139+
self._write_particle_data(
140+
particle_data=particle_data, pclass=pclass, time_interval=time_interval, time=time, indices=indices
141+
)
138142

143+
def _write_particle_data(self, *, particle_data, pclass, time_interval, time, indices=None):
139144
# if pset._data._ncount == 0:
140145
# warnings.warn(
141146
# f"ParticleSet is empty on writing as array at time {time:g}",
@@ -144,6 +149,7 @@ def write(self, pset: ParticleSet, time, indices=None):
144149
# )
145150
# return
146151

152+
vars_to_write = _get_vars_to_write(pclass)
147153
if indices is None:
148154
indices_to_write = _to_write_particles(particle_data, time)
149155
else:

tests/v4/test_particlefile.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
from parcels import AdvectionRK4, Field, FieldSet, Particle, ParticleSet, Variable, VectorField
1212
from parcels._datasets.structured.generic import datasets
1313
from parcels.particlefile import ParticleFile
14+
from parcels.particle import create_particle_data
15+
from parcels._core.utils.time import TimeInterval
1416
from parcels.xgrid import XGrid
1517
from tests.common_kernels import DoNothing
1618

@@ -361,3 +363,7 @@ def test_particlefile_init(store):
361363
def test_particlefile_init_invalid(store): # TODO: Add test for read only store
362364
with pytest.raises(ValueError, match="chunks must be a tuple"):
363365
ParticleFile(store, outputdt=np.timedelta64(1, "s"), chunks=1)
366+
367+
368+
@pytest.mark.new
369+
def test_particlefile_writing(store): ...

0 commit comments

Comments
 (0)