tcgoetz/GarminDB

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

Opened this issue · 2 comments

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.

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

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

Yes the speed is correct in kph, so that's why I'm suspecting it is a conversion issue.
Taking the last row, a 12.3kph speed is a kilometer pace of 4:48.6 and a mile pace of 7:51.2 which is what is being shown in the screen shot.