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.2k stars 143 forks source link

Units for pace in ActivitiesDB incorrect when reading from an account that uses metric #248

Open garenkwan opened 3 weeks ago

garenkwan commented 3 weeks ago

Describe the bug When running activities.ipynb, I noticed that the Pace value is displaying a per mile pace, but the rest of the DB is metric, See attached imaged.

image

To Reproduce Steps to reproduce the behavior:

  1. Garmin Connect units set to kmph
  2. Create database using garmindb_cli.py
  3. Run activities.ipynb
  4. See error

Expected behavior The pace calculations should be per kilometer.

Additional context I have traced this and would like to suggest a change to ActivityFitFileProcessor._write_steps_entry(). My current guess is that GarminConnect stores the pace information as mph which converts nicely to the numbers shown in the attached image. I tried working on a solution for this, but am not sure where to get the measurement system information in this processor file to write an if ... else .. statement to handle this.

tcgoetz commented 3 weeks ago

Is the speed correct? The pace is derived form the speed:

        'avg_pace'                          : fitfile.conversions.perhour_speed_to_pace(message_fields.avg_speed),