Add support for pool swimming tcx files from Garmin Connect

When Sport="Other", there is no GPS data but there is distance information
it is assumed the file cames from lap swimming.
They have one Trackpoint per length, which are expanded to one point per second
in similar way to Smart Recording and laps without Trackpoints to signal pauses
which are expanded to one point per second up to 10x Smart Recording HWM.
Added contributed Garmin FR910xt pool swim file to test/rides folder
This commit is contained in:
Alejandro Martinez
2015-02-18 22:16:38 -03:00
parent 5e614aadb4
commit 75f505a3c3
3 changed files with 931 additions and 4 deletions

View File

@@ -64,9 +64,11 @@ TcxParser::startElement( const QString&, const QString&, const QString& qName, c
if (rides) rides->append(rideFile);
// Sport ("Biking", "Running", "Other")
swim = NotSwim;
QString sport = qAttributes.value("Sport");
if (sport == "Biking") rideFile->setTag("Sport", "Bike");
else if (sport == "Running") rideFile->setTag("Sport", "Run");
else if (sport == "Other") swim = MayBeSwim;
} else if (qName == "Lap") {
@@ -110,6 +112,7 @@ TcxParser::endElement( const QString&, const QString&, const QString& qName)
secs = start_time.secsTo(time);
} else if (qName == "DistanceMeters") { distance = buffer.toDouble() / 1000; }
else if (qName == "TotalTimeSeconds") { lapSecs = buffer.toDouble(); }
else if (qName == "Watts" || qName.endsWith( ":Watts")) { power = buffer.toDouble(); } //TCX Extension Fields may use a namespace prefix
else if (qName == "Speed" || qName.endsWith(":Speed")) { speed = buffer.toDouble() * 3.6; } //TCX Extension Fields may use a namespace prefix
else if (qName == "RunCadence" || qName.endsWith( ":RunCadence")) { rcad = buffer.toDouble(); } //TCX Extension Fields may use a namespace prefix
@@ -164,6 +167,13 @@ TcxParser::endElement( const QString&, const QString&, const QString& qName)
if (lat == 0 && lon == 0) badgps = true;
// If sport was Other and we have distance but no GPS data
// we assume it is a pool swimming activity
if (swim == MayBeSwim && badgps && distance > 0) {
swim = Swim;
rideFile->setTag("Sport", "Swim");
}
// for smart recording, the delta_t will not be constant
// average all the calculations based on the previous
// point.
@@ -196,7 +206,7 @@ TcxParser::endElement( const QString&, const QString&, const QString& qName)
if (prevPoint->lat == 0 && prevPoint->lon == 0) badgps = true;
// Smart Recording High Water Mark.
if ((isGarminSmartRecording.toInt() == 0) || (deltaSecs == 1) || (deltaSecs >= GarminHWM.toInt())) {
if ((isGarminSmartRecording.toInt() == 0) || (deltaSecs == 1) || (deltaSecs >= GarminHWM.toInt() && swim != Swim)) {
// no smart recording, or delta exceeds HW treshold, just insert the data
rideFile->appendPoint(secs, cadence, hr, distance, speed, torque, power,
@@ -211,10 +221,11 @@ TcxParser::endElement( const QString&, const QString&, const QString& qName)
} else {
// smart recording is on and delta is less than GarminHWM seconds.
for(int i = 1; i <= deltaSecs; i++) {
// smart recording is on and delta is less than GarminHWM seconds
// or it is pool swimming and we limit expansion for safety
for(int i = 1; i <= deltaSecs && i <= 10*GarminHWM.toInt(); i++) {
double weight = i/ deltaSecs;
double kph = prevPoint->kph + (deltaSpeed *weight);
double kph = (swim == Swim) ? speed : prevPoint->kph + (deltaSpeed *weight);
// need to make sure speed goes to zero
kph = kph > 0.35 ? kph : 0;
double cad = prevPoint->cad + (deltaCad * weight);
@@ -249,6 +260,34 @@ TcxParser::endElement( const QString&, const QString&, const QString& qName)
}
last_distance = distance;
last_time = time;
} else if (qName == "Lap") {
// for pool swimming, laps with distance 0 are pauses, without trackpoints
if (swim == Swim && distance == 0) {
// fill in the pause, partially if too long
for(int i = 1; i <= round(lapSecs) && i <= 10*GarminHWM.toInt(); i++)
rideFile->appendPoint(secs + i,
0.0,
0.0,
last_distance,
0.0,
0.0,
0.0,
0.0,
0.0, // lon
0.0, // lat
0.0, // headwind
0.0,
RideFile::NoTemp,
0.0,
0.0,0.0,0.0,0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0,0.0,
0.0, // vertical oscillation
0.0, // run cadence
0.0, // gct
lap);
last_time = last_time.addSecs(round(lapSecs));
}
}
return true;
}

View File

@@ -54,6 +54,8 @@ private:
double last_distance;
double distance;
double lapSecs; // for pause intervals in pool swimming files
enum { NotSwim, MayBeSwim, Swim } swim; // to detect pool swimming files
bool first; // first ride found, when it may contain collections!
int lap;

View File

@@ -0,0 +1,886 @@
<?xml version="1.0" encoding="UTF-8"?>
<TrainingCenterDatabase
xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd"
xmlns:ns5="http://www.garmin.com/xmlschemas/ActivityGoals/v1"
xmlns:ns3="http://www.garmin.com/xmlschemas/ActivityExtension/v2"
xmlns:ns2="http://www.garmin.com/xmlschemas/UserProfile/v2"
xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="http://www.garmin.com/xmlschemas/ProfileExtension/v1">
<Activities>
<Activity Sport="Other">
<Id>2015-01-31T09:17:02.000Z</Id>
<Lap StartTime="2015-01-31T09:17:02.000Z">
<TotalTimeSeconds>1051.182</TotalTimeSeconds>
<DistanceMeters>1100.0</DistanceMeters>
<MaximumSpeed>1.2660000324249268</MaximumSpeed>
<Calories>248</Calories>
<Intensity>Active</Intensity>
<TriggerMethod>Manual</TriggerMethod>
<Track>
<Trackpoint>
<Time>2015-01-31T09:17:02.000Z</Time>
<DistanceMeters>0.0</DistanceMeters>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:17:24.000Z</Time>
<DistanceMeters>25.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.1139999628067017</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:17:43.000Z</Time>
<DistanceMeters>50.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.2660000324249268</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:18:05.000Z</Time>
<DistanceMeters>75.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.1360000371932983</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:18:28.000Z</Time>
<DistanceMeters>100.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0700000524520874</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:18:51.000Z</Time>
<DistanceMeters>125.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0670000314712524</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:19:13.000Z</Time>
<DistanceMeters>150.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0959999561309814</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:19:37.000Z</Time>
<DistanceMeters>175.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.031000018119812</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:20:00.000Z</Time>
<DistanceMeters>200.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0609999895095825</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:20:23.000Z</Time>
<DistanceMeters>225.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0609999895095825</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:20:46.000Z</Time>
<DistanceMeters>250.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0640000104904175</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:21:09.000Z</Time>
<DistanceMeters>275.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0720000267028809</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:21:32.000Z</Time>
<DistanceMeters>300.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0579999685287476</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:21:56.000Z</Time>
<DistanceMeters>325.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0420000553131104</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:22:19.000Z</Time>
<DistanceMeters>350.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0700000524520874</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:22:43.000Z</Time>
<DistanceMeters>375.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0420000553131104</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:23:08.000Z</Time>
<DistanceMeters>400.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.9850000143051147</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:23:30.000Z</Time>
<DistanceMeters>425.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.1050000190734863</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:23:54.000Z</Time>
<DistanceMeters>450.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0390000343322754</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:24:17.000Z</Time>
<DistanceMeters>475.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0529999732971191</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:24:41.000Z</Time>
<DistanceMeters>500.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0420000553131104</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:25:05.000Z</Time>
<DistanceMeters>525.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0260000228881836</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:25:28.000Z</Time>
<DistanceMeters>550.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0549999475479126</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:25:52.000Z</Time>
<DistanceMeters>575.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0360000133514404</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:26:15.000Z</Time>
<DistanceMeters>600.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0470000505447388</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:26:38.000Z</Time>
<DistanceMeters>625.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0440000295639038</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:27:02.000Z</Time>
<DistanceMeters>650.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.034000039100647</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:27:25.000Z</Time>
<DistanceMeters>675.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0579999685287476</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:27:48.000Z</Time>
<DistanceMeters>700.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0670000314712524</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:28:11.000Z</Time>
<DistanceMeters>725.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0499999523162842</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:28:35.000Z</Time>
<DistanceMeters>750.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0420000553131104</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:28:58.000Z</Time>
<DistanceMeters>775.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0579999685287476</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:29:22.000Z</Time>
<DistanceMeters>800.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.031000018119812</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:29:46.000Z</Time>
<DistanceMeters>825.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0390000343322754</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:30:10.000Z</Time>
<DistanceMeters>850.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.027999997138977</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:30:34.000Z</Time>
<DistanceMeters>875.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0230000019073486</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:30:58.000Z</Time>
<DistanceMeters>900.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.034000039100647</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:31:22.000Z</Time>
<DistanceMeters>925.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0360000133514404</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:31:47.000Z</Time>
<DistanceMeters>950.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.9879999756813049</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:32:10.000Z</Time>
<DistanceMeters>975.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0470000505447388</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:32:34.000Z</Time>
<DistanceMeters>1000.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.031000018119812</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:32:58.000Z</Time>
<DistanceMeters>1025.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.003000020980835</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:33:24.000Z</Time>
<DistanceMeters>1050.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.9279999732971191</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:33:45.000Z</Time>
<DistanceMeters>1075.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.1490000486373901</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:34:10.000Z</Time>
<DistanceMeters>1100.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:34:32.000Z</Time>
<DistanceMeters>1100.0</DistanceMeters>
</Trackpoint>
</Track>
<Extensions>
<LX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<AvgSpeed>1.0499999523162842</AvgSpeed>
</LX>
</Extensions>
</Lap>
<Lap StartTime="2015-01-31T09:34:32.000Z">
<TotalTimeSeconds>149.03</TotalTimeSeconds>
<DistanceMeters>0.0</DistanceMeters>
<Calories>0</Calories>
<Intensity>Active</Intensity>
<TriggerMethod>Manual</TriggerMethod>
<Extensions>
<LX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<AvgSpeed>0.0</AvgSpeed>
</LX>
</Extensions>
</Lap>
<Lap StartTime="2015-01-31T09:37:02.000Z">
<TotalTimeSeconds>189.052</TotalTimeSeconds>
<DistanceMeters>200.0</DistanceMeters>
<MaximumSpeed>1.2269999980926514</MaximumSpeed>
<Calories>45</Calories>
<Intensity>Active</Intensity>
<TriggerMethod>Manual</TriggerMethod>
<Track>
<Trackpoint>
<Time>2015-01-31T09:37:22.000Z</Time>
<DistanceMeters>1125.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.2269999980926514</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:37:44.000Z</Time>
<DistanceMeters>1150.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.1109999418258667</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:38:07.000Z</Time>
<DistanceMeters>1175.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0779999494552612</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:38:32.000Z</Time>
<DistanceMeters>1200.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.9980000257492067</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:38:55.000Z</Time>
<DistanceMeters>1225.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0700000524520874</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:39:19.000Z</Time>
<DistanceMeters>1250.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.027999997138977</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:39:43.000Z</Time>
<DistanceMeters>1275.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.027999997138977</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:40:08.000Z</Time>
<DistanceMeters>1300.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.5320000052452087</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:40:11.000Z</Time>
<DistanceMeters>1300.0</DistanceMeters>
</Trackpoint>
</Track>
<Extensions>
<LX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<AvgSpeed>1.0609999895095825</AvgSpeed>
</LX>
</Extensions>
</Lap>
<Lap StartTime="2015-01-31T09:40:11.000Z">
<TotalTimeSeconds>110.948</TotalTimeSeconds>
<DistanceMeters>0.0</DistanceMeters>
<Calories>0</Calories>
<Intensity>Active</Intensity>
<TriggerMethod>Manual</TriggerMethod>
<Extensions>
<LX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<AvgSpeed>0.0</AvgSpeed>
</LX>
</Extensions>
</Lap>
<Lap StartTime="2015-01-31T09:42:02.000Z">
<TotalTimeSeconds>290.877</TotalTimeSeconds>
<DistanceMeters>300.0</DistanceMeters>
<MaximumSpeed>1.1759999990463257</MaximumSpeed>
<Calories>68</Calories>
<Intensity>Active</Intensity>
<TriggerMethod>Manual</TriggerMethod>
<Track>
<Trackpoint>
<Time>2015-01-31T09:42:23.000Z</Time>
<DistanceMeters>1325.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.1759999990463257</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:42:45.000Z</Time>
<DistanceMeters>1350.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.1019999980926514</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:43:08.000Z</Time>
<DistanceMeters>1375.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0579999685287476</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:43:31.000Z</Time>
<DistanceMeters>1400.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0529999732971191</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:43:55.000Z</Time>
<DistanceMeters>1425.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0130000114440918</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:44:20.000Z</Time>
<DistanceMeters>1450.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:44:44.000Z</Time>
<DistanceMeters>1475.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0080000162124634</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:45:09.000Z</Time>
<DistanceMeters>1500.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.9639999866485596</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:45:32.000Z</Time>
<DistanceMeters>1525.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0470000505447388</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:45:56.000Z</Time>
<DistanceMeters>1550.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0199999809265137</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:46:21.000Z</Time>
<DistanceMeters>1575.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.9779999852180482</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:46:45.000Z</Time>
<DistanceMeters>1600.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.9259999990463258</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:46:53.000Z</Time>
<DistanceMeters>1600.0</DistanceMeters>
</Trackpoint>
</Track>
<Extensions>
<LX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<AvgSpeed>1.034000039100647</AvgSpeed>
</LX>
</Extensions>
</Lap>
<Lap StartTime="2015-01-31T09:46:53.000Z">
<TotalTimeSeconds>69.748</TotalTimeSeconds>
<DistanceMeters>0.0</DistanceMeters>
<Calories>0</Calories>
<Intensity>Active</Intensity>
<TriggerMethod>Manual</TriggerMethod>
<Extensions>
<LX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<AvgSpeed>0.0</AvgSpeed>
</LX>
</Extensions>
</Lap>
<Lap StartTime="2015-01-31T09:48:03.000Z">
<TotalTimeSeconds>393.152</TotalTimeSeconds>
<DistanceMeters>400.0</DistanceMeters>
<MaximumSpeed>1.194000005722046</MaximumSpeed>
<Calories>89</Calories>
<Intensity>Active</Intensity>
<TriggerMethod>Manual</TriggerMethod>
<Track>
<Trackpoint>
<Time>2015-01-31T09:48:23.000Z</Time>
<DistanceMeters>1625.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.194000005722046</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:48:46.000Z</Time>
<DistanceMeters>1650.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0499999523162842</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:49:09.000Z</Time>
<DistanceMeters>1675.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0670000314712524</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:49:34.000Z</Time>
<DistanceMeters>1700.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.9980000257492067</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:49:57.000Z</Time>
<DistanceMeters>1725.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0499999523162842</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:50:21.000Z</Time>
<DistanceMeters>1750.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0230000019073486</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:50:45.000Z</Time>
<DistanceMeters>1775.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0099999904632568</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:51:09.000Z</Time>
<DistanceMeters>1800.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0080000162124634</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:51:33.000Z</Time>
<DistanceMeters>1825.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0149999856948853</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:51:58.000Z</Time>
<DistanceMeters>1850.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.9900000095367432</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:52:23.000Z</Time>
<DistanceMeters>1875.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.9879999756813049</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:52:48.000Z</Time>
<DistanceMeters>1900.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.9900000095367432</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:53:12.000Z</Time>
<DistanceMeters>1925.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0260000228881836</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:53:39.000Z</Time>
<DistanceMeters>1950.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.9150000214576721</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:54:02.000Z</Time>
<DistanceMeters>1975.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>1.0700000524520874</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:54:27.000Z</Time>
<DistanceMeters>2000.0</DistanceMeters>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Speed>0.7580000162124634</Speed>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-01-31T09:54:36.000Z</Time>
<DistanceMeters>2000.0</DistanceMeters>
</Trackpoint>
</Track>
<Extensions>
<LX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<AvgSpeed>1.0199999809265137</AvgSpeed>
</LX>
</Extensions>
</Lap>
<Lap StartTime="2015-01-31T09:54:36.000Z">
<TotalTimeSeconds>45.022</TotalTimeSeconds>
<DistanceMeters>0.0</DistanceMeters>
<Calories>0</Calories>
<Intensity>Active</Intensity>
<TriggerMethod>Manual</TriggerMethod>
<Extensions>
<LX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<AvgSpeed>0.0</AvgSpeed>
</LX>
</Extensions>
</Lap>
<Creator xsi:type="Device_t">
<Name>Garmin Forerunner 910XT</Name>
<UnitId>3849029597</UnitId>
<ProductID>1328</ProductID>
<Version>
<VersionMajor>3</VersionMajor>
<VersionMinor>10</VersionMinor>
<BuildMajor>0</BuildMajor>
<BuildMinor>0</BuildMinor>
</Version>
</Creator>
</Activity>
</Activities>
<Author xsi:type="Application_t">
<Name>Garmin Connect API</Name>
<Build>
<Version>
<VersionMajor>15</VersionMajor>
<VersionMinor>1</VersionMinor>
<BuildMajor>0</BuildMajor>
<BuildMinor>0</BuildMinor>
</Version>
</Build>
<LangID>en</LangID>
<PartNumber>006-D2449-00</PartNumber>
</Author>
</TrainingCenterDatabase>