This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

245M wrong lap time, distance jumping 0.5km in custom Run workout, creates wrong Record times

On firmware v5.50.

Custom Run Workout in my calendar today, for a 5k run, in 2 halves, with steps:

a. Warmup 10min

b. Run 2.5k, custom target HR

c. Run 2.5k, different custom target HR

d. Cool Down 5min

For step (b), GC shows there are 3 laps (laps #3,4,5 on the Garmin Connect website view of this run, in Intervals page).

The problem is lap #5 of 0.5km shows a very very long time of 1193:02:31 (which seems to be 1193h02m31s). 

I have auto lap set for every 1km. 

=> this jump also results in WRONG Records - Best 1k=2m50s, 5k also wrong

Why? To investigate more, I exported the TCX file and looked at lap #5:

Lap #5  <Lap StartTime="2020-11-28T22:53:15.000Z">

Lap #6  <Lap StartTime="2020-11-28T22:56:11.000Z">

So, Lap #5 length should be 2m56s, not 1193h02m31s

An error in recording the file appears to be at the end of step (b) , near the end of 2.5km step:

These two consecutive Trackpoints, 1s apart (recording set at 1s in Settings), is where DISTANCE JUMPS 500m??

<Trackpoint>
<Time>2020-11-28T22:56:09.000Z</Time>
<Position>
<LatitudeDegrees>-34.88580588251352</LatitudeDegrees>
<LongitudeDegrees>138.61083403229713</LongitudeDegrees>
</Position>
<AltitudeMeters>59.20000076293945</AltitudeMeters>
<DistanceMeters>3630.300048828125</DistanceMeters>
<HeartRateBpm>
<Value>165</Value>
</HeartRateBpm>
<Extensions>
<ns3:TPX>
<ns3:Speed>2.8459999561309814</ns3:Speed>
<ns3:RunCadence>86</ns3:RunCadence>
</ns3:TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2020-11-28T22:56:10.000Z</Time>
<Position>
<LatitudeDegrees>-34.88582918420434</LatitudeDegrees>
<LongitudeDegrees>138.61083679832518</LongitudeDegrees>
</Position>
<AltitudeMeters>59.20000076293945</AltitudeMeters>
<DistanceMeters>4132.8701171875</DistanceMeters>
<HeartRateBpm>
<Value>166</Value>
</HeartRateBpm>
<Extensions>
<ns3:TPX>
<ns3:Speed>2.8550000190734863</ns3:Speed>
<ns3:RunCadence>86</ns3:RunCadence>
</ns3:TPX>
</Extensions>
</Trackpoint>

  • The wrong best 1k also shows in Strava.

    I think I should be able to fix it in the TCX, if I subtracted 500 from the 4132.8701171875 and every Trackpoint in the file after that. Seems like many points, and a lot of work though! Any tools to do this?

  • Anyone else had this happen, and know how to PREVENT it in the future?

  • I subtracted 500 from all the distance values > 4000.0, using this

    https://gist.github.com/mlindgren/c313f6daea6e7ddbbf321986552ef564

    Just modified to parse all Laps, and only worried about distances not times. Re-uploaded new TCX fine to GC and Strava :)

  • Also had to fiddle with the new tcx file for Strava - fix up the header and ns0: references to match the old file.

  • distancefix.py to run in Python:

    import argparse
    import datetime
    import xml.etree.ElementTree as ET

    # To do: should set this up dynamically from the xmlns in the file
    ns = {'tcx' : "">www.garmin.com/.../v2"}
    time_format = '%Y-%m-%dT%H:%M:%S.000Z'

    tree = ET.parse("activity_xxxxxxxx.tcx")

    activities = tree.getroot().find('tcx:Activities', ns)
    activity = activities.find('tcx:Activity', ns)

    laps = activity.findall('tcx:Lap', ns)
    # loop through all laps
    for lap in laps:

        track = lap.find('tcx:Track', ns)
        trackpoints = track.findall('tcx:Trackpoint', ns)

        for point in trackpoints:
            
            distance_so_far = point.find('tcx:DistanceMeters', ns)
            distance_old_f = float(distance_so_far.text)
            if distance_old_f > 4000.0 :
                distance_new_f = distance_old_f - 500.0
            else:
                distance_new_f = distance_old_f
            
            distance_so_far.text = str(distance_new_f)

    # finally write new file
    tree.write('out.tcx')