From 20caa6def79d3358d9d86ed1f33fac47be2ae493 Mon Sep 17 00:00:00 2001 From: Jeroen Date: Tue, 6 Feb 2024 19:26:34 +0100 Subject: [PATCH] Use year filter first to avoid errors in old data --- src/framework/processing/py/port/script.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/framework/processing/py/port/script.py b/src/framework/processing/py/port/script.py index 41e05344..4f193c3d 100644 --- a/src/framework/processing/py/port/script.py +++ b/src/framework/processing/py/port/script.py @@ -30,11 +30,6 @@ def parse_json_to_dataframe(parsed_dict): continue segment = obj["activitySegment"] - activity_type = segment["activityType"] - - if activity_type not in {"WALKING", "CYCLING", "RUNNING"}: - continue - start_timestamp_str = segment["duration"]["startTimestamp"] start_timestamp = datetime.fromisoformat( start_timestamp_str[:-1] @@ -43,6 +38,11 @@ def parse_json_to_dataframe(parsed_dict): if start_timestamp < filter_start_date: continue + activity_type = segment["activityType"] + + if activity_type not in {"WALKING", "CYCLING", "RUNNING"}: + continue + if meters := get_in(segment, "waypointPath", "distanceMeters"): distance_meters = meters elif meters := get_in(segment, "simplifiedRawPath", "distanceMeters"): @@ -74,6 +74,8 @@ def aggregate_distance_by_day_activity(df): def extract(df): + if df.empty: + return [] aggregated_df = aggregate_distance_by_day_activity(df) aggregated_df["Afstand in m"] = aggregated_df["distanceMeters"].apply(np.ceil)