fitparse是一个用于解析 Garmin .FIT 文件的Python库。

本文中主要用到fitparse库来解析、提取数据;maplotlib库用来进行可视化绘制。

定义get_fit_list函数,其功能为:读取fit文件中的全部数据,并返回一个list。

使用fitparse.FitFile()函数读取fit文件,返回一个FitFile对象,使用list方法将其转换成list,其中每个元素为一个DataMessage对象。

def get_fit_list(file_name):m_fit_file = fitparse.FitFile(file_name)return list(m_fit_file.get_messages())

获取数据list后,使用DataMessage.get_value()方法获取指定的字段。例如heartrate、 power、 cadence等。

m_fit_file = get_fit_list(file_name)for i in m_fit_file:m_heart_rate.append(i.get_value('heart_rate'))m_power.append(i.get_value('power'))

matplotlib参数进行初始设置:

    matplotlib.rc('figure', figsize=(40, 10))  # 图片大小,单位厘米matplotlib.rc('font', size=20)  # 字体大小matplotlib.rc('axes', grid=False)  # 是否显示网格matplotlib.rc('axes', facecolor='white')  # 背景颜色plt.title('Entire Workout')plt.xlabel('Time(s)')  # 横坐标

划分功率区间zone1到zone7,将功率数据分类,具体分类见下表:

zone1 主动恢复区 FTP的55%以下
zone2 有氧耐力区 FTP的55%~75%
zone3 节奏强度或高阶有氧区 FTP的75%~90%
zone4 乳酸强度区 FTP的90%~105%
zone5 最大摄氧量强度区 FTP的105%~120%
zone6 无氧能力强度区 FTP的120%~150%
zone7 神经肌肉能力区 FTP的150%以上

详细内容参考开元老师的小课堂:如何划分自行车功率训练强度区 - 知乎Note:本文引自我们的公号“LOCOMO耐力运动研究院”: 如何划分功率训练强度区上期我们介绍了FTP的定义及测试方法。今天来聊一聊有了FTP之后该做什么?其实通常来说,当我们测好FTP,会把其当做一个基准值,由此就…https://zhuanlan.zhihu.com/p/356084873

data_len = len(m_power)z1 = [0] * data_lenz2 = [0] * data_lenz3 = [0] * data_lenz4 = [0] * data_lenz5 = [0] * data_lenz6 = [0] * data_lenz7 = [0] * data_lenfor i in range(len(m_power)):df = m_power[i]if df != None:if df >= 0 and df <= 0.5 * ftp:z1[i] = dfif df > 0.5 * ftp and df <= 0.75 * ftp:z2[i] = dfif df > 0.75 * ftp and df <= 0.9 * ftp:z3[i] = dfif df > 0.9 * ftp and df <= 1.05 * ftp:z4[i] = dfif df > 1.05 * ftp and df <= 1.2 * ftp:z5[i] = dfif df > 1.2 * ftp and df <= 1.5 * ftp:z6[i] = dfif df > 1.5 * ftp:z7[i] = df

绘制心率曲线图,并标记max heart rate:

    plt.plot(m_heart_rate, label='HeartRate', linewidth=1, color='red')max_HR = max(m_heart_rate)max_HR_Index = m_heart_rate.index(max_HR)max_hr = 'Max HR:' + str(max_HR)plt.annotate(max_hr, (max_HR_Index, max_HR), color='red')

根据功率区间按照不同颜色绘图:

    _x = np.arange(len(m_power))plt.bar(_x, z1, color='grey')plt.bar(_x, z2, color='royalblue')plt.bar(_x, z3, color='lime')plt.bar(_x, z4, color='orange')plt.bar(_x, z5, color='red')plt.bar(_x, z6, color='firebrick')plt.bar(_x, z7, color='darkred')plt.savefig("fit_analyze.jpg")

绘图结果:

fit parse解析佳明.fit 运动数据,模仿zwift数据展示相关推荐

  1. python解析佳明fit文件

    使用 fitparse 解析 佳明 fit 文件 以下示例测试环境为: python 3.8 fitparse 1.2 fitparse 安装 pip3 install fitparse 使用方式 i ...

  2. 佳明手表大数据应用_最强跑步手表—佳明Forerunner 245功能评测

    最强跑步手表-佳明Forerunner 245功能评测 评测类 关键词:跑步手表 提起跑步手表,跑者们一定不会对佳明这个运动品牌感到陌生,佳明的产品以领先的GPS技术和强大的跑步功能征服了一大批跑步爱 ...

  3. 佳明245服务器维修,吐槽下佳明245M手表

    吐槽下佳明245M手表 2019-12-06 15:18:47 34点赞 11收藏 6评论 创作立场声明:本人是新手跑友,刚开始跑两个多月,月跑量150左右,期间用了华为手表,现在换了佳明.个人对比了 ...

  4. xe android 摄像头,玩就要出彩 佳明VIRB XE运动摄像机评测

    1定位:极限运动专属配置 微信.微博晒运动成为当前移动互联网一种新的交互方式,并不是今天的运动距离一定要超越隔壁家是谁谁,更多的是表达自身处在一个运动的状态,保持一种活跃.向上的运动精神.户外跑步现已 ...

  5. matlab如何打开flt文件,FIT文件格式解析及MATLAB读取程序

    FIT文件格式解析 (http://blog.csdn.net/shizhixin,Email: zxshi@nlpr.ia.ac.cn,2011年12月) 摘要:本文档主要介绍了用UltraEdit ...

  6. matlab怎么看fit文件,FIT文件格式解析及MATLAB读取程序

    FIT文件格式解析 (http://blog.csdn.net/shizhixin,Email: zxshi@nlpr.ia.ac.cn,2011年12月) 摘要:本文档主要介绍了用UltraEdit ...

  7. 你戴佳明手表吗?服务器遭黑客攻击,全球跑友无法同步跑步数据!

    "你的佳明崩了吗?佳明或许正在经历一场前所未有的危机. 大数据产业创新服务媒体 --聚焦数据 · 改变商业 数据猿消息,据美国媒体<福布斯>.美联社等媒体报道,佳明(Garmin ...

  8. 佳明手表大数据应用_如何看待悦跑圈、咕咚这两款 APP 一直没能接入佳明的数据?...

    就在今年9月12日,咕咚已经和佳明相互打通了数据接口.经过几个月的对接,现在佳明用户使用咕咚平台运动数据的效果越来越好了. 目前,佳明所有在售智能运动装备可以通过开放的数据接口接入咕咚,和运动大数据. ...

  9. 佳明手表大数据应用_Garmin跑表的强大功能,99%的跑友都没用全......

    原标题:Garmin跑表的强大功能,99%的跑友都没用全...... 问一个灵魂的问题:Garmin跑表戴了那么久,与跑步相关的功能你探索了多少? 当初跑友们在购买Garmin跑表之前,对于跑表的一些 ...

最新文章

  1. PHP中的PathInfo
  2. 5G 信令流程 — UE 寻呼(Paging)流程
  3. 数据库编程入门培训(二)
  4. Apple 远程推送APNS 服务
  5. 气溶胶光学厚度反演的两种方式(卫星探测和基地观测反演)
  6. html5 地图效果,html5 echarts图表插件炫光的分布地图动画特效
  7. PHP文件加到WordPress页面,WordPress-所有页面链接到index.php文件
  8. POJ1521 LA2088 HDU1053 ZOJ1117 Entropy【哈夫曼编码】
  9. 软件平台与框架的生命周期
  10. oracle创建哈希索引,ORACLE10g新特性——全局HASH分区索引
  11. 汉朝时期皇室家谱记载的基本内容有哪些?皇室家谱有谁能列入?
  12. 如何获取腾讯视频的MP4播放地址及mp4文件,无需进行qlv转换mp4格式【亲测效果】
  13. Android极速从视频里提取音频
  14. unity+google cardboard
  15. Xshell6下载及安装
  16. html input禁止驶入,layui form表单 input输入框获取焦点后 阻止Enter回车自动提交 – 执念 – 博客园...
  17. matlab做二元garch m,多元garch模型的matlab程序如何运行?能否举例说明下啊,希望高手指点...
  18. 计算机专业java餐厅点餐系统,Java实现餐厅点餐系统的实例代码.pdf
  19. 用node.js 搭建的博客程序心得(node.js实战读书笔记1)
  20. nn.CrossEntropyLoss总结

热门文章

  1. MATLAB (信号与系统)实验一:信号的MATLAB表示及信号运算
  2. 网络流(所有常用类型网络流算法的模板)
  3. 抓虫记之七:模拟鼠标移动就报错
  4. 《Pro SQL Server Internals, 2nd edition》CHAPTER 2 Tables and Indexes-Clustered Indexes
  5. Ada语言-标识符和注释
  6. 微软CRM的版本历史
  7. 无人直播带货怎么操作:抖音无人直播视频素材+技术教程+软件工具
  8. vant 组件van-tabbar实现底部导航
  9. 游戏设计模式之策略模式(二)
  10. Nature子刊:高功能自闭症患者的大脑网络动态