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(