The following data fields are supported by the FIT loader:
FIT Name | Description | Name | Type | Units | Resolution |
---|---|---|---|---|---|
timestamp | Date + Time | ts | float64 | s | - |
position_lat 1 | Latitude | lat | float64 | deg | 1 x 10-7 |
position_long 1 | Longitude | lon | float64 | deg | 1 x 10-7 |
distance | Cumulative Distance | dist | float64 | m | 1 x 10-3 |
altitude 2 3 | Altitude | - | - | - | - |
enhanced_altitude 3 | Altitude | ele | float64 | m | 2 x 10-1 |
speed 2 4 | Speed | - | - | - | - |
enhanced_speed 4 | Speed | sog | float32 | m/s | 1 x 10-3 |
vertical_speed 5 | roc | float32 | m/s | 1 x 10-3 | |
cog 6 7 | Course Over Ground | cog | float32 | deg | 1 x 10-3 |
Sat 6 | Satellites | sat | uint8 | - | - |
hdop 6 8 | HDOP | hdop | float32 | - | 1 x 10-1 |
heart_rate | Heart Rate | hr | uint16 | bpm | - |
Notes:
Latitude and longitude are specified in “semicircles” in FIT files, which are 32-bit signed integers.
SiRF and ublox chips output 32-bit signed integers ranging from -900,000,000 to 900,000,000 for latitude (representing -900 to 900) and -1,800,000,000 to 1,800,000,000 (representing -1800 to 1800) for longitude.
GPS / GNSS chips outputting NMEA data typically provide a maximum precision of ddmm.mmmmm for latitude and dddmm.mmmmm for longitude. Since the mm before the decimal point is whole minutes (00 - 60), overall resolution is only 60% of the SiRF and ublox binary formats which provide 7 decimal digits.
In principle “semicircles” use 32-bit signed integers more effectively, but in reality they have no real benefit. Scaling the outputs of a GPS / GNSS chip does not increase the resolution, it just gives the illusion of it.
Speed and altitude are 16-bit integers in FIT files, which have the following limitations:
The “enhanced” altitude and speed are simply 32-bit integers to overcome these 16-bit limitations.
It is not clear what activities Garmin had in mind for the enhanced fields but sky diving is a possibility:
The enhanced altitude and speed could also be intended for other speed records. For example:
The binary value of speed in a FIT file may be 0xFFFF which is 65.535 m/s, or 127.37 knots.
These values should not be taken literally.
A dedicated page describes the subtle differences between FIT files from different manufacturers.
During the testing of the GPS Wizard modules, it was observed that GPSBabel can have an adverse effect on FIT files.
Re-saving a FIT file, without changing the format and then converting to GPX (i.e. FIT -> FIT -> GPX) results in a slightly different file to a direct FIT->GPX conversion.
Some trackpoints with a speed of zero gain a non-zero speed (presumably derived from positional data) and some speeds change by 0.001 m/s.
This is quite unexpected as re-saving a FIT file using GPSBabel should not have any effect on the speeds in the file.