Skip to content

Commit 9ebb44b

Browse files
Support time being None or timedelta object
1 parent 399ae10 commit 9ebb44b

1 file changed

Lines changed: 14 additions & 10 deletions

File tree

parcels/particleset.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -116,17 +116,21 @@ def __init__(
116116
depth = convert_to_flat_array(depth)
117117
assert lon.size == lat.size and lon.size == depth.size, "lon, lat, depth don't all have the same lenghts"
118118

119-
time = convert_to_flat_array(time)
120-
time = np.repeat(time, lon.size) if time.size == 1 else time
119+
if time is not None:
120+
time = convert_to_flat_array(time)
121+
time = np.repeat(time, lon.size) if time.size == 1 else time
122+
123+
if time.size > 0 and type(time[0]) in [np.datetime64, np.timedelta64]:
124+
pass # already in the right format
125+
elif time.size > 0 and type(time[0]) in [datetime, date]:
126+
time = np.array([np.datetime64(t) for t in time])
127+
elif time.size > 0 and type(time[0]) in [timedelta]:
128+
time = np.array([np.timedelta64(t) for t in time])
129+
else:
130+
raise NotImplementedError("particle time must be a datetime, timedelta, or date object")
121131

122-
if time.size > 0 and type(time[0]) in [np.datetime64, np.timedelta64]:
123-
pass # already in the right format
124-
elif time.size > 0 and type(time[0]) in [datetime, date]:
125-
time = np.array([np.datetime64(t) for t in time])
126-
else:
127-
raise NotImplementedError("particle time must be a datetime or date object")
132+
time = np.array([self.time_origin.reltime(t) if _convert_to_reltime(t) else t for t in time])
128133

129-
time = np.array([self.time_origin.reltime(t) if _convert_to_reltime(t) else t for t in time])
130134
assert lon.size == time.size, "time and positions (lon, lat, depth) do not have the same lengths."
131135
if fieldset.time_interval:
132136
_warn_particle_times_outside_fieldset_time_bounds(time, fieldset.time_interval)
@@ -153,7 +157,7 @@ def __init__(
153157
time=time,
154158
lonlatdepth_dtype=lonlatdepth_dtype,
155159
pid_orig=pid_orig,
156-
ngrid=fieldset.gridset_size,
160+
ngrid=len(fieldset.gridset),
157161
**kwargs,
158162
)
159163

0 commit comments

Comments
 (0)