tcgoetz / GarminDB

Download and parse data from Garmin Connect or a Garmin watch, FitBit CSV, and MS Health CSV files into and analyze data in Sqlite serverless databases with Jupyter notebooks.
GNU General Public License v2.0
1.16k stars 142 forks source link

Getting time for each length in swimming #151

Open tamkaho opened 2 years ago

tamkaho commented 2 years ago

Is there any way to get the time of each length (not each lap) from swimming activities? This is something I can download from the Garmin Connect website.

tcgoetz commented 2 years ago

If that data doesn't come from laps, then I'm not sure what it comes from. Can you give me some example data? Screen capture of what Garmin connect shows and the FIT file that goes with it?

tamkaho commented 2 years ago

My main interest is how to get these blue bar plots. I'm not familiar with how to obtain them from the FIT file, or whether they are saved in the FIT files at all. https://imgur.com/a/jvpWp3o

Garmin Connect -> Export Splits CSV: https://imgur.com/LV1r9J3

activity_details: https://pastebin.com/raw/jp4FWVqS

activity: https://pastebin.com/raw/ffHSYvD4

tcgoetz commented 2 years ago

Everything in Garmin Connect should be coming from the FIT file for the activity.

For the blue bar, Pace, the average value is the average pace for the whole activity. The instantaneous values in the blue bar graph come from the speed field of the activity records. garmindb has conversion function to go from speed to pace.

If you view you activity records table and filter on activity_id == 8352829530, do the records look like the splits?

tamkaho commented 2 years ago

activity.ipynb does give the splits but I'm not sure how to tap into the instantaneous values. For swimming, splits are defined by whenever I press pause on the watch. Whereas the instantaneous values are the times each time I turn around. I'm interested in the instantaneous values because Garmin sometimes mistook me overtaking other people in the pool as one length so I'd like to do my own processing to get a more accurate total swim distance.

tcgoetz commented 2 years ago

You need to look at the activity_records table with a tool like "SQLite browser like SQLite Studio or DB Browser for SQLite" as described on the GarminDb project page. Or you could extend the Jupyter notebook activity.ipynb to show them.