I have the first part of my new Python project (reading and analyzing data from my Garmin): it can now extract (or calculate) distance, time, moving time, maximum speed, average speed, average moving speed, maximum and average heart rates, time in each heart rate zone, and calories for the overall ride and each lap, as well as a linestring of the path taken, and starting points for each lap. For now I only store some of these in my database, but I may add them later — that’s a database task. Here is the output for a ride where I hit the “lap” button a lot:
Processing /home/don/Desktop/temp_stuff/zippy_towpath.fit
Overall Ride Stats:
Start Time: 2019-03-15 18:32:22
Distance: 25.48 mi
Elapsed Time: 2:01:10 Average Speed: 12.62 mph
Moving Time: 2:01:08 Moving Average Speed 12.62 mph
Maximum Speed: 28.62 mph
Avg Heart Rate: 143 Max Heart Rate: 160
Calories: 977
Time in zones: ['0:00:00', '0:02:29', '0:53:39', '1:02:17', '0:00:00']
Estimated MET calories (dirt road): 975
Estimated MET calories (generic MTB): 1429
Lap 1 Stats:
Start Time: 2019-03-15 18:32:22
Distance: 2.55 mi
Elapsed Time: 0:10:14 Average Speed: 14.96 mph
Moving Time: 0:10:13 Moving Average Speed 14.98 mph
Maximum Speed: 28.62 mph
Avg Heart Rate: 121 Max Heart Rate: 149
Calories: 78
Time in zones: ['0:00:00', '0:02:29', '0:03:09', '0:01:49', '0:00:00']
Estimated MET calories (dirt road): 82
Estimated MET calories (generic MTB): 120
Lap 2 Stats:
Start Time: 2019-03-15 18:42:36
Distance: 3.55 mi
Elapsed Time: 0:14:22 Average Speed: 14.84 mph
Moving Time: 0:14:22 Moving Average Speed 14.84 mph
Maximum Speed: 18.94 mph
Avg Heart Rate: 156 Max Heart Rate: 160
Calories: 160
Time in zones: ['0:00:00', '0:00:00', '0:00:00', '0:14:22', '0:00:00']
Estimated MET calories (dirt road): 116
Estimated MET calories (generic MTB): 169
Lap 3 Stats:
Start Time: 2019-03-15 18:56:58
Distance: 0.40 mi
Elapsed Time: 0:01:51 Average Speed: 13.05 mph
Moving Time: 0:01:51 Moving Average Speed 13.01 mph
Maximum Speed: 15.24 mph
Avg Heart Rate: 149 Max Heart Rate: 156
Calories: 19
Time in zones: ['0:00:00', '0:00:00', '0:00:00', '0:01:51', '0:00:00']
Estimated MET calories (dirt road): 15
Estimated MET calories (generic MTB): 22
Lap 4 Stats:
Start Time: 2019-03-15 18:58:49
Distance: 3.89 mi
Elapsed Time: 0:17:07 Average Speed: 13.65 mph
Moving Time: 0:17:07 Moving Average Speed 13.64 mph
Maximum Speed: 18.08 mph
Avg Heart Rate: 145 Max Heart Rate: 153
Calories: 172
Time in zones: ['0:00:00', '0:00:00', '0:03:21', '0:13:46', '0:00:00']
Estimated MET calories (dirt road): 138
Estimated MET calories (generic MTB): 202
Lap 5 Stats:
Start Time: 2019-03-15 19:15:56
Distance: 2.33 mi
Elapsed Time: 0:10:21 Average Speed: 13.50 mph
Moving Time: 0:10:21 Moving Average Speed 13.52 mph
Maximum Speed: 18.29 mph
Avg Heart Rate: 139 Max Heart Rate: 147
Calories: 83
Time in zones: ['0:00:00', '0:00:00', '0:08:44', '0:01:37', '0:00:00']
Estimated MET calories (dirt road): 83
Estimated MET calories (generic MTB): 122
Lap 6 Stats:
Start Time: 2019-03-15 19:26:17
Distance: 5.73 mi
Elapsed Time: 0:28:15 Average Speed: 12.17 mph
Moving Time: 0:28:16 Moving Average Speed 12.16 mph
Maximum Speed: 22.55 mph
Avg Heart Rate: 142 Max Heart Rate: 152
Calories: 196
Time in zones: ['0:00:00', '0:00:00', '0:19:47', '0:08:29', '0:00:00']
Estimated MET calories (dirt road): 227
Estimated MET calories (generic MTB): 333
Lap 7 Stats:
Start Time: 2019-03-15 19:54:33
Distance: 6.32 mi
Elapsed Time: 0:32:54 Average Speed: 11.53 mph
Moving Time: 0:32:55 Moving Average Speed 11.52 mph
Maximum Speed: 14.50 mph
Avg Heart Rate: 143 Max Heart Rate: 150
Calories: 230
Time in zones: ['0:00:00', '0:00:00', '0:16:08', '0:16:47', '0:00:00']
Estimated MET calories (dirt road): 265
Estimated MET calories (generic MTB): 388
Lap 8 Stats:
Start Time: 2019-03-15 20:27:28
Distance: 0.70 mi
Elapsed Time: 0:06:05 Average Speed: 6.94 mph
Moving Time: 0:06:03 Moving Average Speed 6.99 mph
Maximum Speed: 12.39 mph
Avg Heart Rate: 146 Max Heart Rate: 158
Calories: 39
Time in zones: ['0:00:00', '0:00:00', '0:02:30', '0:03:36', '0:00:00']
Estimated MET calories (dirt road): 49
Estimated MET calories (generic MTB): 71
Done
There’s a little room for improvement — rounding errors cause a few problems with moving vs total times in some laps, for instance — but this is what I’m looking for. My next question is: do I want this to be a standalone program, with its own GUI and everything, or do I want to build a web interface?