# 分析数据格式

## 分析导出与摘要 API

「导出分析 JSON」和活动详情导出使用 `version: "activity-analytics-v1"`。这是分析视图格式，与只读摘要 API 的 `schema_version: 1` 分开。未知版本应明确拒绝或提示更新，不静默按旧格式解释。

分析导出由已登录用户在控制台获取。当前[个人令牌 API](api)仍只提供活动摘要和 CSV／JSON 摘要导出；它不提供分析详情、定位点或训练安排写入权限。不要把浏览器 Cookie 或登录令牌放入第三方程序。

## 总览字段

| 字段 | 含义 |
| --- | --- |
| analysis | status 为 processing 或 ready；completed / total 为已分析和待分析原件数 |
| range / comparison | 包含首尾的 YYYY-MM-DD 日期范围 |
| sport | 筛选的运动类型，null 表示全部 |
| totals / previous_totals | 次数、运动天数、时长、距离、爬升及覆盖活动数 |
| days / previous_days | 连续日历日；包含休息日和明确的缺测 |
| rows | 当前区间的活动指标，id 为原活动 UUID |
| zones_ms | Z1–Z5 的时间数组，单位毫秒 |
| heart_covered_ms | 全部有效心率时间，包括低于 Z1 的样本 |
| records | 连续距离成绩、分距离爬升及持续心率／功率峰值 |
| fitness_history | 跑步能力和带来源的心肺能力时间序列 |
| efficiency | 稳定运动区间的效率与有氧漂移 |

`seconds` 是秒，`meters` 和 `ascent_meters` 是米；配速字段单位为秒/公里；心率为 bpm，功率为 W。心肺能力与部分采集字段以 x10 整数储存，消费时按字段名换算。不要统一对所有数值除以 10。

每日 Edwards、sRPE、CTL、ATL、balance 是不同字段。缺测为 null，休息日负荷为 0；负荷口径见[指标说明](metrics)。距离或海拔汇总可只包含有数据的活动，应同时读取覆盖计数。

## 活动详情字段

`activity` 保留活动摘要和已保存的训练内容；`summary` 是当前分析指标；`recording`、`sensor_analysis`、`energy` 和 `outdoor` 在有依据时提供。

`series` 的每项包含 `key`、`unit` 和 `points`。点格式为 `[active_ms, value | null]`；active_ms 是有效运动毫秒，不是 UTC 时间。null 断开曲线，不能用前值填补或连接。

`segments` 为多个独立轨迹段，点为 `[longitude, latitude, active_ms]`；经纬度是十进制度。分段之间不应画连接线。地图与曲线已为显示缩减点数，不能当作原始轨迹或重新计算最高精度成绩的输入。

`split_intervals` 的 index 与活动分段一致，从 1 开始。`records` 的距离 target 单位为米、value 为秒；心率／功率的 target 为持续秒数、value 分别为 bpm／W。elevation 的 target 与 value 都以米为单位。start_ms 可定位活动窗口。

`analysis.status` 为 processing 时，只代表已有记录及已完成的派生分析；未完成的字段不能解释成永久缺测。网页自动刷新，重新导出可获得完成后的快照。曲线 key 的 `_estimate` 后缀区分运动传感器估算与设备直接提供的跑姿数据。

## 安全与处理

分析 JSON 可能包含位置、训练与生理数据。仅存入你信任的工具，按实际用途限制保留和分享。PNG 与打印件也可能包含活动日期和训练信息。导出是生成时的视图快照，之后的同步、校准或筛选不会修改已经下载的文件。
