@@ -158,7 +158,10 @@ def write(self, pset: ParticleSet, time, indices=None):
158158 pclass = pset ._ptype
159159 time_interval = pset .fieldset .time_interval
160160 particle_data = pset ._data
161- time = timedelta_to_float (time - time_interval .left )
161+ if time_interval is None :
162+ time = timedelta_to_float (time )
163+ else :
164+ time = timedelta_to_float (time - time_interval .left )
162165 particle_data = _convert_particle_data_time_to_float_seconds (particle_data , time_interval )
163166
164167 self ._write_particle_data (
@@ -309,7 +312,12 @@ def _convert_particle_data_time_to_float_seconds(particle_data, time_interval):
309312 #! Important that this is a shallow copy, so that updates to this propogate back to the original data
310313 particle_data = particle_data .copy ()
311314
312- particle_data ["time" ] = ((particle_data ["time" ] - time_interval .left ) / np .timedelta64 (1 , "s" )).astype (np .float64 )
315+ if time_interval is None :
316+ particle_data ["time" ] = (particle_data ["time" ] / np .timedelta64 (1 , "s" )).astype (np .float64 )
317+ else :
318+ particle_data ["time" ] = ((particle_data ["time" ] - time_interval .left ) / np .timedelta64 (1 , "s" )).astype (
319+ np .float64
320+ )
313321 particle_data ["dt" ] = (particle_data ["dt" ] / np .timedelta64 (1 , "s" )).astype (np .float64 )
314322 return particle_data
315323
@@ -326,10 +334,11 @@ def _maybe_convert_time_dtype(dtype: np.dtype | _SAME_AS_FIELDSET_TIME_INTERVAL)
326334def _get_calendar_and_units (time_interval : TimeInterval ) -> dict [str , str ]:
327335 calendar = None
328336 units = "seconds"
329- if isinstance (time_interval .left , (np .datetime64 , datetime )):
330- calendar = "standard"
331- elif isinstance (time_interval .left , cftime .datetime ):
332- calendar = time_interval .left .calendar
337+ if time_interval :
338+ if isinstance (time_interval .left , (np .datetime64 , datetime )):
339+ calendar = "standard"
340+ elif isinstance (time_interval .left , cftime .datetime ):
341+ calendar = time_interval .left .calendar
333342
334343 if calendar is not None :
335344 units += f" since { time_interval .left } "
0 commit comments