소스 검색

initial version

Markus Spring 1 년 전
부모
커밋
ff629982f6
3개의 변경된 파일50개의 추가작업 그리고 0개의 파일을 삭제
  1. 0 0
      apps/helpers/cols2drop.py
  2. 2 0
      apps/helpers/download_garmin_and_convert.sh
  3. 48 0
      apps/helpers/garmindb2bikecsv.py

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
apps/helpers/cols2drop.py


+ 2 - 0
apps/helpers/download_garmin_and_convert.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+garmindb_cli.py -d -l && /apps/helpers/garmindb2bikecsv.py /root/HealthData/FitFiles/Activities /root/HealthData/garmin_bike.csv

+ 48 - 0
apps/helpers/garmindb2bikecsv.py

@@ -0,0 +1,48 @@
+#!/usr/local/bin/python
+"""
+Mit GarminDB importierte Radfahr-activities in eine CSV-Datei schreiben 
+"""
+import argparse
+import json
+import os
+import pandas as pd
+from pandas import DataFrame, Series
+
+import cols2drop
+
+tours = []
+df = DataFrame()
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser(description="Write GarminDB cycling data to csv-file")
+    parser.add_argument("activities_dir", type=str, help="directory of activities files")
+    parser.add_argument("csv_file", type=str, help="output csv file", default='garmin_bike.csv')
+    args = parser.parse_args()
+
+    cnt = 0
+    for subdir, dirs, files in os.walk(args.activities_dir):
+        for file in files:
+            filepath = subdir + os.sep + file
+            if filepath.endswith(".json") and "#" not in filepath and "_details_" not in filepath and "_types" not in filepath :
+                with open(filepath) as f:
+                    activity_json = json.load(f)
+                    if activity_json['activityType']['parentTypeId'] == 2: # Radfahren
+                        activity_json['startTimeLocal'] = pd.to_datetime(activity_json['startTimeLocal'])
+                        tours.append(activity_json)
+                    cnt = cnt + 1
+                    df = DataFrame(tours)
+                    
+    df.drop( cols2drop.cols2drop.split() , axis=1, inplace=True) # drop unnecessary columns
+    
+    df['distance'] = round(df['distance'], 3)
+    df['maxSpeed'] = round(df['maxSpeed'], 2)
+    df['averageSpeed'] = round(df['averageSpeed'], 4)
+    df['elevationGain'] = round(df['elevationGain'],0)
+    df['maxElevation'] = round(df['maxElevation'],0 )
+    df['activityTrainingLoad'] = round(df['activityTrainingLoad'],0)
+    df['movingDuration'] = round(df['movingDuration'], 0)
+    df['duration'] = round(df['duration'], 0)
+    df['distance'] = round(df['distance'], 0)
+
+    df.to_csv(args.csv_file)
+

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.