GARMIN · 数据协议参考

佳明运动数据体系深度解析

一份标准化的中文参考资料 —— 运动类型 · 字段分类 · 模板示例 · 指标计算

依据:Garmin Connect IQ API(ActivityRecording 模块, API Level 3.0.10)+ FIT 协议数据字典(Profile.xlsx)

Chapter 1 · Sport & SubSport

运动类型定义体系

佳明通过一个二级体系来精确分类运动,这直接决定了数据记录和后续分析的算法选择。

1.1 体系结构

⚠️ 注意SPORT_* 定义了活动类型,但不保证会改变设备行为。例如,一个本身不支持 SPORT_MULTISPORT 记录的设备,不会因此获得多功能运动转换功能。不过,FIT 文件可以被定义为 SPORT_MULTISPORT,并且多重运动算法可能会应用于传感器数据。

1.2 主运动类型 (Sport) 完整枚举列表

主运动类型 (Sport)枚举值中文译名引入版本说明
SPORT_GENERIC0通用1.0.0列表中未列出的运动
SPORT_RUNNING1跑步1.0.0泛指各类跑步
SPORT_CYCLING2骑行1.0.0泛指各类骑行
SPORT_TRANSITION3转换1.0.0用于多功能运动的过渡阶段
SPORT_FITNESS_EQUIPMENT4健身器材1.0.0连接 ANT+ 协议的健身设备
SPORT_SWIMMING5游泳1.0.0泛指各类游泳
SPORT_BASKETBALL6篮球1.0.0-
SPORT_SOCCER7足球1.0.0-
SPORT_TENNIS8网球1.0.0-
SPORT_AMERICAN_FOOTBALL9美式橄榄球1.0.0-
SPORT_TRAINING10训练1.0.0力量训练、有氧操等
SPORT_WALKING11步行1.0.0泛指各类步行
SPORT_CROSS_COUNTRY_SKIING12越野滑雪1.0.0-
SPORT_ALPINE_SKIING13高山滑雪1.0.0-
SPORT_SNOWBOARDING14单板滑雪1.0.0-
SPORT_ROWING15划船1.0.0-
SPORT_MOUNTAINEERING16登山1.0.0-
SPORT_HIKING17徒步1.0.0-
SPORT_MULTISPORT18多项运动1.0.0如铁人三项等
SPORT_PADDLING19划桨运动1.0.0-
SPORT_FLYING20飞行3.0.10-
SPORT_E_BIKING21电动自行车骑行3.0.10-
SPORT_MOTORCYCLING22摩托车骑行3.0.10-
SPORT_BOATING23驾船3.0.10-
SPORT_DRIVING24驾驶3.0.10-
SPORT_GOLF25高尔夫3.0.10-
SPORT_HANG_GLIDING26悬挂式滑翔3.0.10-
SPORT_HORSEBACK_RIDING27骑马3.0.10-
SPORT_HUNTING28狩猎3.0.10-
SPORT_FISHING29钓鱼3.0.10-
SPORT_INLINE_SKATING30轮滑3.0.10-
SPORT_ROCK_CLIMBING31攀岩3.0.10-
SPORT_SAILING32帆船运动3.0.10-
SPORT_ICE_SKATING33滑冰3.0.10-
SPORT_SKY_DIVING34跳伞3.0.10-
SPORT_SNOWSHOEING35雪鞋行走3.0.10-
SPORT_SNOWMOBILING36雪地摩托3.0.10-
SPORT_STAND_UP_PADDLEBOARDING37桨板冲浪3.0.10-
SPORT_SURFING38冲浪3.0.10-
SPORT_WAKEBOARDING39滑水板3.0.10-
SPORT_WATER_SKIING40滑水3.0.10-
SPORT_KAYAKING41皮划艇3.0.10-
SPORT_RAFTING42漂流3.0.10-
SPORT_WINDSURFING43风帆冲浪3.0.10-
SPORT_KITESURFING44风筝冲浪3.0.10-
SPORT_TACTICAL45战术训练3.0.10-
SPORT_JUMPMASTER46跳伞指挥3.0.10-
SPORT_BOXING47拳击3.0.10-
SPORT_FLOOR_CLIMBING48攀爬(室内)3.0.10-
SPORT_BASEBALL49棒球3.0.10-
SPORT_SOFTBALL_FAST_PITCH50垒球(快投)3.0.10-
SPORT_SOFTBALL_SLOW_PITCH51垒球(慢投)3.0.10-
SPORT_SHOOTING56射击3.0.10-
SPORT_AUTO_RACING57赛车3.0.10-
📌 FIT 协议扩展:FIT 协议中额外定义了 sport 枚举值 53 (diving, 潜水)、58 (winter_sport, 冬季运动)、59 (grinding, 绞盘)、62 (hiit, 高强度间歇训练)、63 (video_gaming, 电子游戏)、64 (racket, 球拍运动) 等,这些在 Connect IQ API 中未列出,但在解析 FIT 文件时可能遇到。

1.3 子运动类型 (SubSport) 完整枚举列表

子运动类型 (SubSport)枚举值中文译名适用主运动说明
SUB_SPORT_GENERIC0通用所有无特定子类型
SUB_SPORT_TREADMILL1跑步机跑步、健身器材-
SUB_SPORT_STREET2公路跑跑步-
SUB_SPORT_TRAIL3越野跑跑步-
SUB_SPORT_TRACK4跑道跑跑步-
SUB_SPORT_SPIN5动感单车骑行-
SUB_SPORT_INDOOR_CYCLING6室内骑行骑行、健身器材-
SUB_SPORT_ROAD7公路骑行骑行-
SUB_SPORT_MOUNTAIN8山地骑行骑行-
SUB_SPORT_DOWNHILL9速降骑行骑行-
SUB_SPORT_RECUMBENT10躺式骑行骑行-
SUB_SPORT_CYCLOCROSS11公路越野骑行骑行-
SUB_SPORT_HAND_CYCLING12手摇骑行骑行-
SUB_SPORT_TRACK_CYCLING13场地骑行骑行-
SUB_SPORT_INDOOR_ROWING14室内划船划船、健身器材-
SUB_SPORT_ELLIPTICAL15椭圆机健身器材-
SUB_SPORT_STAIR_CLIMBING16爬楼梯健身器材-
SUB_SPORT_LAP_SWIMMING17泳池游泳游泳-
SUB_SPORT_OPEN_WATER18公开水域游泳游泳-
SUB_SPORT_FLEXIBILITY_TRAINING19柔韧性训练训练-
SUB_SPORT_STRENGTH_TRAINING20力量训练训练-
SUB_SPORT_WARM_UP21热身活动通用-
SUB_SPORT_MATCH22比赛球类运动如网球比赛
SUB_SPORT_EXERCISE23锻炼通用-
SUB_SPORT_CHALLENGE24挑战赛通用-
SUB_SPORT_INDOOR_SKIING25室内滑雪健身器材-
SUB_SPORT_CARDIO_TRAINING26有氧训练训练-
SUB_SPORT_INDOOR_WALKING27室内步行步行-
SUB_SPORT_E_BIKE_FITNESS28电动自行车健身电动自行车-
SUB_SPORT_BMX29BMX小轮车骑行-
SUB_SPORT_CASUAL_WALKING30休闲步行步行-
SUB_SPORT_SPEED_WALKING31竞走步行-
SUB_SPORT_BIKE_TO_RUN_TRANSITION32骑车转跑步转换-
SUB_SPORT_RUN_TO_BIKE_TRANSITION33跑步转骑车转换-
SUB_SPORT_SWIM_TO_BIKE_TRANSITION34游泳转骑车转换-
SUB_SPORT_ATV35全地形车摩托车-
SUB_SPORT_MOTOCROSS36越野摩托摩托车-
SUB_SPORT_BACKCOUNTRY37野外滑雪高山滑雪/单板滑雪-
SUB_SPORT_RESORT38度假村滑雪高山滑雪/单板滑雪-
SUB_SPORT_RC_DRONE39遥控无人机飞行-
SUB_SPORT_WINGSUIT40翼装飞行飞行-
SUB_SPORT_WHITEWATER41白水漂流皮划艇/漂流-
SUB_SPORT_SKATE_SKIING42滑冰式滑雪越野滑雪-
SUB_SPORT_YOGA43瑜伽训练-
SUB_SPORT_PILATES44普拉提健身器材-
SUB_SPORT_INDOOR_RUNNING45室内跑步跑步-
SUB_SPORT_GRAVEL_CYCLING46砾石路骑行骑行-
SUB_SPORT_E_BIKE_MOUNTAIN47电动山地车骑行-
SUB_SPORT_COMMUTING48通勤骑行骑行-
SUB_SPORT_MIXED_SURFACE49混合路面骑行-
SUB_SPORT_NAVIGATE50导航通用-
SUB_SPORT_TRACK_ME51追踪我通用-
SUB_SPORT_MAP52地图通用-
SUB_SPORT_SINGLE_GAS_DIVING53单气瓶潜水潜水-
SUB_SPORT_MULTI_GAS_DIVING54多气瓶潜水潜水-
SUB_SPORT_GAUGE_DIVING55仪表潜水潜水-
SUB_SPORT_APNEA_DIVING56自由潜水潜水-
SUB_SPORT_APNEA_HUNTING57自由潜渔猎潜水-
SUB_SPORT_VIRTUAL_ACTIVITY58虚拟活动通用-
SUB_SPORT_OBSTACLE59障碍赛通用泥泞跑、爬墙等
SUB_SPORT_BREATHING62呼吸训练通用-
SUB_SPORT_CCR_DIVING63闭路循环呼吸器潜水潜水-
SUB_SPORT_SAIL_RACE65帆船赛帆船-
SUB_SPORT_EXPEDITION66探险通用-
SUB_SPORT_ULTRA67超级马拉松跑步-
SUB_SPORT_INDOOR_CLIMBING68室内攀岩攀岩-
SUB_SPORT_BOULDERING69抱石攀岩攀岩-
SUB_SPORT_HIIT70高强度间歇训练训练-
SUB_SPORT_INDOOR_GRINDING71室内绞盘训练帆船-
SUB_SPORT_HUNTING_WITH_DOGS72带狗狩猎狩猎-
SUB_SPORT_AMRAP73AMRAP训练HIITAs Many Rounds As Possible
SUB_SPORT_EMOM74EMOM训练HIITEvery Minute On the Minute
SUB_SPORT_TABATA75Tabata训练HIIT-
SUB_SPORT_ESPORTS77电子竞技通用视频游戏、虚拟骑行等
SUB_SPORT_TRIATHLON78铁人三项多项运动-
SUB_SPORT_DUATHLON79两项赛多项运动跑步+骑车+跑步
SUB_SPORT_BRICK80砖块训练多项运动骑车后立即跑步
SUB_SPORT_SWIM_RUN81游泳跑步多项运动-
SUB_SPORT_ADVENTURE_RACE82探险赛多项运动/跑步-

1.4 运动类型组合示例

运动场景Sport (主运动)SubSport (子运动)
户外路跑SPORT_RUNNING (1)SUB_SPORT_STREET (2)
越野跑SPORT_RUNNING (1)SUB_SPORT_TRAIL (3)
室内跑步SPORT_RUNNING (1)SUB_SPORT_INDOOR_RUNNING (45)
爬楼梯SPORT_FITNESS_EQUIPMENT (4)SUB_SPORT_STAIR_CLIMBING (16)
室内步行SPORT_WALKING (11)SUB_SPORT_INDOOR_WALKING (27)
公路骑行SPORT_CYCLING (2)SUB_SPORT_ROAD (7)
健身房力量训练SPORT_TRAINING (10)SUB_SPORT_STRENGTH_TRAINING (20)
泳池游泳SPORT_SWIMMING (5)SUB_SPORT_LAP_SWIMMING (17)
Chapter 2 · Core Fields

核心数据字段分类

FIT 文件的核心是 sessionlaprecord 三种消息,分别存储活动总览、每圈/分段和逐点记录的原始数据。

2.1 时间类字段

字段名数据类型单位所属消息含义
timestampdate_time秒 (s)session, lap, record消息生成时的时间戳(UTC,从 1989-12-31 起算)
start_timedate_time秒 (s)session, lap活动或计圈开始的 UTC 时间戳
total_elapsed_timeuint32秒 (s),精度 0.001session, lap总经过时间,包含所有暂停时间
total_timer_timeuint32秒 (s),精度 0.001session, lap总计时时间排除暂停时间(即纯运动时间)
total_moving_timeuint32秒 (s),精度 0.001session, lap实际移动时间(进一步排除静止站立时间)
active_timeuint32秒 (s),精度 0.001session, lap活跃时间
local_timestamplocal_date_time秒 (s)activity本地时区时间戳,用于转换

2.2 距离与高度类字段

字段名数据类型单位所属消息含义
total_distanceuint32米 (m),精度 0.01session, lap累计总距离
total_ascentuint16米 (m)session, lap累计总上升高度
total_descentuint16米 (m)session, lap累计总下降高度
avg_altitudeuint16米 (m),精度 0.2session, lap平均海拔高度
max_altitudeuint16米 (m),精度 0.2session, lap最大海拔高度
min_altitudeuint16米 (m),精度 0.2session, lap最小海拔高度
enhanced_altitudeuint32米 (m),精度 0.2record单点的高精度海拔
position_latsint32半圆 (semicircles)record单点的 GPS 纬度
position_longsint32半圆 (semicircles)record单点的 GPS 经度
altitudeuint16米 (m),精度 0.2record单点的海拔高度
gradesint16%,精度 0.01record单点的坡度
avg_gradesint16%,精度 0.01session, lap平均坡度

2.3 心率与能量消耗类字段

字段名数据类型单位所属消息含义
avg_heart_rateuint8bpmsession, lap平均心率
max_heart_rateuint8bpmsession, lap最大心率
min_heart_rateuint8bpmsession, lap最小心率
heart_rateuint8bpmrecord单点瞬时心率
total_caloriesuint16千卡 (kcal)session, lap总消耗卡路里
total_fat_caloriesuint16千卡 (kcal)session, lap脂肪供能卡路里
active_caloriesuint16千卡 (kcal)session活动消耗卡路里
metabolic_caloriesuint16千卡 (kcal)session基础代谢消耗
time_in_hr_zoneuint32 [N]秒 (s),精度 0.001session, lap在各心率区间的停留时间
hr_zone_high_boundaryuint8 [N]bpmtime_in_zone各心率区间的上界

2.4 步态与节奏类字段

字段名数据类型单位所属消息含义
total_stridesuint32步 (strides)session, lap跑步/步行时的总步数(单脚计数)
stepsuint32步 (steps)monitoring监控日志中的总步数(双脚计数)
cadenceuint8rpm / strides/minsession, lap, record骑行踏频或跑步步频(单脚)
avg_running_cadenceuint8strides/minsession, lap平均跑步步频
max_running_cadenceuint8strides/minsession, lap最大跑步步频
avg_fractional_cadenceuint8rpm,精度 1/128session, lap平均节奏的小数部分
avg_step_lengthuint16毫米 (mm)session, lap平均步幅长度
step_lengthuint16毫米 (mm)record单点瞬时步幅
vertical_oscillationuint16毫米 (mm),精度 0.1session, lap, record身体垂直振幅
avg_vertical_ratiouint16%,精度 0.01session, lap平均垂直步幅比
avg_stance_timeuint16毫秒 (ms),精度 0.1session, lap平均触地时间
avg_stance_time_percentuint16%,精度 0.01session, lap平均触地时间占比
avg_stance_time_balanceuint16%,精度 0.01session, lap左右触地时间平衡

2.5 速度与功率类字段

字段名数据类型单位所属消息含义
avg_speeduint16米/秒 (m/s),精度 0.001session, lap平均速度
max_speeduint16米/秒 (m/s),精度 0.001session, lap最大速度
enhanced_speeduint32米/秒 (m/s),精度 0.001record单点的高精度速度
speeduint16米/秒 (m/s),精度 0.001record单点瞬时速度
avg_poweruint16瓦特 (watts)session, lap平均功率(通常用于骑行)
max_poweruint16瓦特 (watts)session, lap最大功率
poweruint16瓦特 (watts)record单点瞬时功率
normalized_poweruint16瓦特 (watts)session, lap标准化功率(NP)
intensity_factoruint16IF,精度 0.001session强度因子
training_stress_scoreuint16TSS,精度 0.1session训练压力得分
time_in_power_zoneuint32 [N]秒 (s),精度 0.001session, lap在各功率区间的停留时间
total_workuint32焦耳 (J)session, lap总做功

2.6 游泳专项字段

字段名数据类型单位所属消息含义
swim_strokeswim_stroke (enum)-session, lap, length泳姿类型(自由泳/仰泳/蛙泳/蝶泳等)
num_lengthsuint16个 (lengths)session, lap泳池长度数量
num_active_lengthsuint16个 (lengths)session, lap有效划水长度数量
pool_lengthuint16米 (m),精度 0.01session泳池长度
avg_stroke_distanceuint16米 (m),精度 0.01session, lap平均每次划水距离
avg_stroke_countuint32次/池 (strokes/lap),精度 0.1session平均每趟划水次数

2.7 计时器事件字段 (TimerEventType)

事件类型枚举值说明
TIMER_EVENT_START0计时器启动
TIMER_EVENT_STOP1计时器停止
TIMER_EVENT_PAUSE2计时器暂停
TIMER_EVENT_RESUME3计时器恢复
TIMER_EVENT_LAP4计圈事件
TIMER_EVENT_RESET5计时器重置
TIMER_EVENT_WORKOUT_STEP_COMPLETE6训练步骤完成
TIMER_EVENT_NEXT_MULTISPORT_LEG7下一项多项运动开始
⚠️ 注意TimerEventType 在 Connect IQ API 文档中被标记为已弃用(deprecated),可能在 System 8 之后移除。FIT 协议中保留,但在 Connect IQ 开发中建议使用新的计时 API。
Chapter 3 · Field Templates

典型运动的数据字段模板

以"爬楼梯"、"室内跑步"、"室内行走"三个典型室内运动为例。

3.1 爬楼梯 (Stair Climbing)

运动标识sport=SPORT_FITNESS_EQUIPMENT (4) + sub_sport=SUB_SPORT_STAIR_CLIMBING (16)

常用核心字段

字段名单位重要性说明
total_timer_time秒 (s)★★★纯运动时间(不含暂停)
total_elapsed_time秒 (s)★★总经过时间(含暂停)
total_ascent米 (m)★★★核心指标,累计爬升高度
total_calories千卡 (kcal)★★消耗热量
avg_heart_ratebpm★★平均心率
max_heart_ratebpm★★最大心率
time_in_hr_zone秒 (s)各心率区间停留时间
steps总步数(如设备支持)

3.2 室内跑步 (Indoor Running)

运动标识sport=SPORT_RUNNING (1) + sub_sport=SUB_SPORT_INDOOR_RUNNING (45)

常用核心字段

字段名单位重要性说明
total_timer_time秒 (s)★★★纯运动时间
total_elapsed_time秒 (s)★★总经过时间
total_distance米 (m)★★★核心指标,距离(由加速度计推算)
avg_speed米/秒 (m/s)★★★平均速度
max_speed米/秒 (m/s)★★最大速度
total_strides★★★总步数(单脚)
avg_running_cadencestrides/min★★★平均步频
max_running_cadencestrides/min★★最大步频
avg_step_length毫米 (mm)★★平均步幅
avg_heart_ratebpm★★★平均心率
max_heart_ratebpm★★最大心率
total_calories千卡 (kcal)★★消耗热量
vertical_oscillation毫米 (mm)身体垂直振幅
avg_stance_time毫秒 (ms)平均触地时间

3.3 室内行走 (Indoor Walking)

运动标识sport=SPORT_WALKING (11) + sub_sport=SUB_SPORT_INDOOR_WALKING (27)

常用核心字段

字段名单位重要性说明
total_timer_time秒 (s)★★★纯运动时间
total_elapsed_time秒 (s)★★总经过时间
total_distance米 (m)★★★核心指标,距离
avg_speed米/秒 (m/s)★★平均速度
steps / total_strides★★★总步数
avg_running_cadencestrides/min★★平均步频(步行节奏)
avg_heart_ratebpm★★平均心率
max_heart_ratebpm最大心率
total_calories千卡 (kcal)★★消耗热量
Chapter 4 · Derived Metrics

参数计算逻辑推导

部分高价值指标无法直接从 FIT 文件读取,需要通过基础字段计算得出。

1
配速 (分钟/公里) = 60 / (speed × 3.6)
其中 speed × 3.6 将米/秒转换为公里/小时。示例:speed = 4.0 m/s → 配速 = 60 / 14.4 ≈ 4分10秒/公里
2
步幅 (米/步) = total_distance / total_strides
示例:5000 m ÷ 5000 步 = 1.0 米/步
3
步频 (strides/min) = (total_strides / total_timer_time) × 60
示例:(4500 / 1800) × 60 = 150 strides/min
4
卡路里消耗率 (千卡/小时) = (total_calories / total_timer_time) × 3600
示例:(300 / 1800) × 3600 = 600 千卡/小时
5
垂直步幅比 (%) = (vertical_oscillation / avg_step_length) × 100
反映跑步经济性,数值越小通常表示跑姿更经济。示例:(80 / 1200) × 100 = 6.67%

4.6 标准化功率 (NP) 与强度因子 (IF)

计算思路

1. 对每秒的功率值取 30 秒滚动平均
2. 将滚动平均值取 4 次方
3. 计算所有 4 次方值的算术平均
4. 对上一步结果取 4 次方根
6
IF = NP / FTP
IF < 0.75:恢复/有氧 | 0.75-0.85:耐力 | 0.85-0.95:节奏 | >0.95:比赛强度
7
TSS = (NP / FTP)² × (total_timer_time / 3600) × 100
量化单次训练对身体的整体压力。示例:NP=200W,FTP=250W,time=5400s → (0.8)² × 1.5 × 100 = 96

4.8 基础字段汇总

派生指标所需基础字段计算公式
配速 (分钟/公里)speed (m/s)60 / (speed × 3.6)
配速 (分钟/英里)speed (m/s)26.8224 / speed
步幅 (米/步)total_distance, total_stridestotal_distance / total_strides
步频 (strides/min)total_strides, total_timer_time(total_strides / total_timer_time) × 60
卡路里消耗率 (千卡/小时)total_calories, total_timer_time(total_calories / total_timer_time) × 3600
垂直步幅比 (%)vertical_oscillation, avg_step_length(vertical_oscillation / avg_step_length) × 100
标准化功率 (NP)power 序列30s滚动平均 → 4次方平均 → 4次方根
强度因子 (IF)NP, FTPNP / FTP
训练压力得分 (TSS)NP, FTP, total_timer_time(NP/FTP)² × (time/3600) × 100
Appendix · Quick Reference

附录:快速参考

A. 常用运动类型速查

户外跑步
1 RUNNING → 2 STREET
室内跑步
1 RUNNING → 45 INDOOR_RUNNING
户外步行
11 WALKING → 0 GENERIC
室内步行
11 WALKING → 27 INDOOR_WALKING
公路骑行
2 CYCLING → 7 ROAD
爬楼梯
4 FITNESS_EQUIPMENT → 16 STAIR_CLIMBING
泳池游泳
5 SWIMMING → 17 LAP_SWIMMING
力量训练
10 TRAINING → 20 STRENGTH_TRAINING
椭圆机
4 FITNESS_EQUIPMENT → 15 ELLIPTICAL

B. 消息类型速查

消息用途频次
file_id文件头,定义文件类型每次 1 条
activity活动总览每次 1 条
session活动会话汇总数据每次 1 条(或多条,多项运动)
lap每圈/每段的汇总数据每圈 1 条
record逐点记录的原始数据每秒 1 条或按设备设置
length游泳每趟数据每趟 1 条
event事件标记(开始、暂停、计圈等)按事件发生
device_info设备信息按设备数量
渝ICP备2026017540号 渝公网安备50010902503395号