This document is a summary of the various GPX extension schemas that are commonly being used for generic trackpoint data.
This list will not be 100% exhaustive but it does cover all of the GPX (and FIT) files on my own laptop.
Table listing generic elements found in GPX (and FIT) files on my laptop:
Common name | Garmin Extension |
ClueTrust Extension |
FIT name | GPX files | FIT Files |
---|---|---|---|---|---|
temp | atemp | temp | temperature | Garmin | Garmin |
hr | hr | hr | heart_rate | Garmin + COROS 1 | Garmin + COROS |
cad | cad | cadence | cadence + fractional_cadence | Garmin + COROS | |
course | course | - | cog 2 | COROS 2 | |
speed | speed | - | speed / enhanced_speed |
- | Garmin + COROS + Suunto + Timex |
roc | - | - | vertical_speed | - | Suunto |
distance | - | distance | COROS | Garmin + COROS + Suunto + Timex |
Notes:
Comments about the data items in the table above:
The following elements from Garmin’s Trackpoint Extension (V1 / V2) do not appear in GPX or FIT files on my laptop:
Note: I searched on Google using the query “site:http://www.topografix.com/GPX”.
Namespace: https://www.topografix.com/GPX/gpx_overlay/0/3/
Schema: http://www.topografix.com/GPX/gpx_overlay/0/3/gpx_overlay.xsd
Note: GPX Overlay 0.3 imports GPX Style 0.2
Namespace: http://www.topografix.com/GPX/gpx_style/0/2
Schema: https://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd
Referred to by “OS Maps” app, but unused in my GPX exports:
xmlns:gs="http://www.topografix.com/GPX/gpx_style/0/2"
Schema: https://www.topografix.com/GPX/gpx_modified/0/1/gpx_modified.xsd
Namespace: http://www.garmin.com/xmlschemas/TrackPointExtension/v2
Schema: https://www8.garmin.com/xmlschemas/TrackPointExtensionv2.xsd
Contains the following generic trackpoint items:
<xsd:element name="atemp" type="DegreesCelsius_t" minOccurs="0"/>
<xsd:element name="wtemp" type="DegreesCelsius_t" minOccurs="0"/>
<xsd:element name="depth" type="Meters_t" minOccurs="0"/>
<xsd:element name="hr" type="BeatsPerMinute_t" minOccurs="0"/>
<xsd:element name="cad" type="RevolutionsPerMinute_t" minOccurs="0"/>
<xsd:element name="speed" type="MetersPerSecond_t" minOccurs="0"/>
<xsd:element name="course" type="DegreesTrue_t" minOccurs="0"/>
<xsd:element name="bearing" type="DegreesTrue_t" minOccurs="0"/>
Notes:
<speed>
, <course>
and <bearing>
.Namespace: http://www.garmin.com/xmlschemas/TrackPointExtension/v1
Schema: https://www8.garmin.com/xmlschemas/TrackPointExtensionv1.xsd
Contains the following generic trackpoint items:
<xsd:element name="atemp" type="DegreesCelsius_t" minOccurs="0"/>
<xsd:element name="wtemp" type="DegreesCelsius_t" minOccurs="0"/>
<xsd:element name="depth" type="Meters_t" minOccurs="0"/>
<xsd:element name="hr" type="BeatsPerMinute_t" minOccurs="0"/>
<xsd:element name="cad" type="RevolutionsPerMinute_t" minOccurs="0"/>
Used by Garmin Connect, G7ToWin and Waterspeed.
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
Used by Garmin Connect:
xmlns:ns3="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
Notes:
Namespace: http://www.garmin.com/xmlschemas/GpxExtensions/v3
Schema: https://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd
Contains the following generic trackpoint items:
<xsd:element name="Temperature" type="DegreesCelsius_t" minOccurs="0"/>
<xsd:element name="Depth" type="Meters_t" minOccurs="0"/>
Sometimes declared in GPX files from Garmin Connect but seemingly unused:
xmlns:ns2="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
Used by G7ToWin for “DisplayColor” of a track:
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
Notes:
Namespace: http://www.cluetrust.com/XML/GPXDATA/1/0
Schema: http://www.cluetrust.com/Schemas/gpxdata10.xsd
Contains the following generic trackpoint items:
<xsd:element name="hr" type="xsd:nonNegativeInteger"/>
<xsd:element name="cadence" type="xsd:nonNegativeInteger"/>
<xsd:element name="temp" type="xsd:decimal"/>
<xsd:element name="distance" type="distanceType"/>
Used by COROS and Waterspeed:
xmlns:gpxdata="http://www.cluetrust.com/XML/GPXDATA/1/0"
Notes:
<heartrate>
(although it should be <hr>
), <cadence>
and <distance>
.<cadence>
instead of <gpxdata:cadence>
.Namespace: https://ordnancesurvey.co.uk/public/schema/route/0.1
Used by “OS Maps” app:
xmlns:os="https://ordnancesurvey.co.uk/public/schema/route/0.1"
Namespace: https://graphhopper.com/public/schema/gpx/1.1
Referred to by “OS Maps” app but apparently unused in my GPX exports:
xmlns:gh="https://graphhopper.com/public/schema/gpx/1.1"
Used by GpsarPro:
xmlns:gpsarPro="http://www.gpsactionreplay.com/xml"
GPX files using schema extensions were identified on my laptop using the following Linux command:
find . -name "*gpx" -exec grep xmlns: {} \; | sed 's/ /\n/g' | grep xmlns: | sed 's/[\r>]//g' | sort -u
Files using a specific extension schema were identified as follows:
find . -name '*.gpx' -exec grep -Hc ':gpxx' {} \; | grep -v :0$