Skip to content

Commit 5b6cd83

Browse files
speeding up time_search by calling numpy arrays directly
1 parent 015baaa commit 5b6cd83

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

parcels/_index_search.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,28 +44,28 @@ def _search_time_index(field: Field, time: datetime):
4444
if time not in field.time_interval:
4545
_raise_time_extrapolation_error(time, field=None)
4646

47-
time_index = field.data.time <= time
47+
time_index = field.data.time.data <= time
4848

4949
if time_index.all():
5050
# If given time > last known field time, use
5151
# the last field frame without interpolation
52-
ti = len(field.data.time) - 1
53-
52+
ti = len(field.data.time.data) - 1
5453
elif np.logical_not(time_index).all():
5554
# If given time < any time in the field, use
5655
# the first field frame without interpolation
5756
ti = 0
5857
else:
5958
ti = int(time_index.argmin() - 1) if time_index.any() else 0
60-
if len(field.data.time) == 1:
59+
60+
if len(field.data.time.data) == 1:
6161
tau = 0
62-
elif ti == len(field.data.time) - 1:
62+
elif ti == len(field.data.time.data) - 1:
6363
tau = 1
6464
else:
6565
tau = (
66-
(time - field.data.time[ti]).dt.total_seconds()
67-
/ (field.data.time[ti + 1] - field.data.time[ti]).dt.total_seconds()
68-
if field.data.time[ti] != field.data.time[ti + 1]
66+
(time - field.data.time.data[ti])
67+
/ (field.data.time.data[ti + 1] - field.data.time.data[ti])
68+
if field.data.time.data[ti] != field.data.time.data[ti + 1]
6969
else 0
7070
)
7171
return tau, ti

0 commit comments

Comments
 (0)