Skip to content

Commit 1e61fe5

Browse files
committed
update feeding_buzzes
1 parent 0bc968d commit 1e61fe5

1 file changed

Lines changed: 24 additions & 14 deletions

File tree

src/post_processing/utils/fpod_utils.py

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from osekit.utils.timestamp_utils import strftime_osmose_format, strptime_from_text
1414
from pandas import (
1515
DataFrame,
16+
NaT,
1617
Timedelta,
1718
concat,
1819
date_range,
@@ -398,28 +399,37 @@ def feeding_buzz(
398399
399400
"""
400401
df["microsec"] /= 1e6
401-
df["ICI"] = df["microsec"].diff()
402+
403+
try:
404+
df["Minute"].astype(int)
405+
df["datetime"] = (
406+
to_datetime("1900-01-01")
407+
+ to_timedelta(df["Minute"], unit="min")
408+
+ to_timedelta(df["microsec"], unit="us")
409+
- to_timedelta(2, unit="D")
410+
)
411+
df["start_datetime"] = df["datetime"].dt.floor("min")
412+
except (ValueError, TypeError):
413+
df["datetime"] = (df["Minute"]).astype(str) + ":" + (df["microsec"]).astype(str)
414+
df["datetime"] = to_datetime(df["datetime"], dayfirst=True)
415+
df["start_datetime"] = to_datetime(df["Minute"], dayfirst=True)
416+
417+
df["ICI"] = df["datetime"].diff()
418+
df["ICI"] = to_timedelta(df["ICI"], errors="coerce")
419+
420+
mask = df["ICI"] > Timedelta("1 days")
421+
df.loc[mask, "ICI"] = NaT
402422

403423
if species == "Dauphin": # Herzing et al., 2014
404-
df["Buzz"] = (df["ICI"].between(0, 0.02)).astype(int)
424+
df["Buzz"] = (df["ICI"] < Timedelta(seconds=0.02)).astype(int)
405425
elif species == "Marsouin": # Nuuttila et al., 2013
406-
df["Buzz"] = (df["ICI"].between(0, 0.01)).astype(int)
426+
df["Buzz"] = (df["ICI"] < Timedelta(seconds=0.01)).astype(int)
407427
elif species == "Commerson": # Reyes Reyes et al., 2015
408-
df["Buzz"] = (df["ICI"].between(0, 0.005)).astype(int)
428+
df["Buzz"] = (df["ICI"] < Timedelta(seconds=0.005)).astype(int)
409429
else:
410430
msg = "This species is not supported"
411431
raise ValueError(msg)
412432

413-
try:
414-
df["Minute"].astype(int)
415-
df["datetime"] = (to_datetime("1900-01-01") +
416-
to_timedelta(df["Minute"], unit="min") +
417-
to_timedelta(df["microsec"], unit="us") -
418-
to_timedelta(2, unit="D"))
419-
df["start_datetime"] = df["datetime"].dt.floor("min")
420-
except (ValueError, TypeError):
421-
df["start_datetime"] = to_datetime(df["Minute"], dayfirst=True)
422-
423433
f = df.groupby(["start_datetime"])["Buzz"].sum().reset_index()
424434

425435
f["Foraging"] = to_numeric(f["Buzz"] != 0, downcast="integer").astype(int)

0 commit comments

Comments
 (0)