From 04c765ed1c8833c1b83b6ec0c48297d7a4e2778d Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 12 Jul 2020 17:54:23 +0200 Subject: [PATCH] better afternoon/morning/evening/night --- rowers/dataprep.py | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 756038cc..c69102db 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -749,8 +749,33 @@ def clean_df_stats(datadf, workstrokesonly=True, ignorehr=True, return datadf -def getpartofday(dt): - h = dt.hour +def getpartofday(row,r): + try: + latavg = row.df[' latitude'].mean() + lonavg = row.df[' longitude'].mean() + + tf = TimezoneFinder() + try: + timezone_str = tf.timezone_at(lng=lonavg, lat=latavg) + print(timezone_str) + except ValueError: + timezone_str = 'UTC' + if timezone_str == None: + timezone_str = tf.closest_timezone_at(lng=lonavg, + lat=latavg) + if timezone_str == None: + timezone_str = r.defaulttimezone + try: + workoutstartdatetime = pytz.timezone(timezone_str).localize( + row.rowdatetime + ) + except ValueError: + workoutstartdatetime = row.rowdatetime + except KeyError: + timezone_str = r.defaulttimezone + + h = workoutstartdatetime.astimezone(pytz.timezone(timezone_str)).hour + if h < 12: return "Morning" elif h < 18: @@ -1169,7 +1194,7 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower', if title is None or title == '': title = 'Workout' - partofday = getpartofday(row.rowdatetime) + partofday = getpartofday(row,r) if partofday is not None: title = '{partofday} workout {workouttype}'.format(