@@ -102,6 +102,7 @@ def __init__(
102102
103103 lon = np .empty (shape = 0 ) if lon is None else convert_to_flat_array (lon )
104104 lat = np .empty (shape = 0 ) if lat is None else convert_to_flat_array (lat )
105+ time = np .empty (shape = 0 ) if time is None else convert_to_flat_array (time )
105106
106107 if isinstance (pid_orig , (type (None ), bool )):
107108 pid_orig = np .arange (lon .size )
@@ -116,22 +117,22 @@ def __init__(
116117 depth = convert_to_flat_array (depth )
117118 assert lon .size == lat .size and lon .size == depth .size , "lon, lat, depth don't all have the same lenghts"
118119
119- if time is not None :
120- time = convert_to_flat_array (time )
120+ if time .size > 0 :
121121 time = np .repeat (time , lon .size ) if time .size == 1 else time
122122
123- if time . size > 0 and type (time [0 ]) in [np .datetime64 , np .timedelta64 ]:
123+ if type (time [0 ]) in [np .datetime64 , np .timedelta64 ]:
124124 pass # already in the right format
125- elif time . size > 0 and type (time [0 ]) in [datetime , date ]:
125+ elif type (time [0 ]) in [datetime , date ]:
126126 time = np .array ([np .datetime64 (t ) for t in time ])
127- elif time . size > 0 and type (time [0 ]) in [timedelta ]:
127+ elif type (time [0 ]) in [timedelta ]:
128128 time = np .array ([np .timedelta64 (t ) for t in time ])
129129 else :
130130 raise NotImplementedError ("particle time must be a datetime, timedelta, or date object" )
131131
132132 time = np .array ([self .time_origin .reltime (t ) if _convert_to_reltime (t ) else t for t in time ])
133133
134- assert lon .size == time .size , "time and positions (lon, lat, depth) do not have the same lengths."
134+ assert lon .size == time .size , "time and positions (lon, lat, depth) do not have the same lengths."
135+
135136 if fieldset .time_interval :
136137 _warn_particle_times_outside_fieldset_time_bounds (time , fieldset .time_interval )
137138
0 commit comments