fit parse解析佳明.fit 运动数据,模仿zwift数据展示
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数据展示相关推荐
- python解析佳明fit文件
使用 fitparse 解析 佳明 fit 文件 以下示例测试环境为: python 3.8 fitparse 1.2 fitparse 安装 pip3 install fitparse 使用方式 i ...
- 佳明手表大数据应用_最强跑步手表—佳明Forerunner 245功能评测
最强跑步手表-佳明Forerunner 245功能评测 评测类 关键词:跑步手表 提起跑步手表,跑者们一定不会对佳明这个运动品牌感到陌生,佳明的产品以领先的GPS技术和强大的跑步功能征服了一大批跑步爱 ...
- 佳明245服务器维修,吐槽下佳明245M手表
吐槽下佳明245M手表 2019-12-06 15:18:47 34点赞 11收藏 6评论 创作立场声明:本人是新手跑友,刚开始跑两个多月,月跑量150左右,期间用了华为手表,现在换了佳明.个人对比了 ...
- xe android 摄像头,玩就要出彩 佳明VIRB XE运动摄像机评测
1定位:极限运动专属配置 微信.微博晒运动成为当前移动互联网一种新的交互方式,并不是今天的运动距离一定要超越隔壁家是谁谁,更多的是表达自身处在一个运动的状态,保持一种活跃.向上的运动精神.户外跑步现已 ...
- matlab如何打开flt文件,FIT文件格式解析及MATLAB读取程序
FIT文件格式解析 (http://blog.csdn.net/shizhixin,Email: zxshi@nlpr.ia.ac.cn,2011年12月) 摘要:本文档主要介绍了用UltraEdit ...
- matlab怎么看fit文件,FIT文件格式解析及MATLAB读取程序
FIT文件格式解析 (http://blog.csdn.net/shizhixin,Email: zxshi@nlpr.ia.ac.cn,2011年12月) 摘要:本文档主要介绍了用UltraEdit ...
- 你戴佳明手表吗?服务器遭黑客攻击,全球跑友无法同步跑步数据!
"你的佳明崩了吗?佳明或许正在经历一场前所未有的危机. 大数据产业创新服务媒体 --聚焦数据 · 改变商业 数据猿消息,据美国媒体<福布斯>.美联社等媒体报道,佳明(Garmin ...
- 佳明手表大数据应用_如何看待悦跑圈、咕咚这两款 APP 一直没能接入佳明的数据?...
就在今年9月12日,咕咚已经和佳明相互打通了数据接口.经过几个月的对接,现在佳明用户使用咕咚平台运动数据的效果越来越好了. 目前,佳明所有在售智能运动装备可以通过开放的数据接口接入咕咚,和运动大数据. ...
- 佳明手表大数据应用_Garmin跑表的强大功能,99%的跑友都没用全......
原标题:Garmin跑表的强大功能,99%的跑友都没用全...... 问一个灵魂的问题:Garmin跑表戴了那么久,与跑步相关的功能你探索了多少? 当初跑友们在购买Garmin跑表之前,对于跑表的一些 ...
最新文章
- PHP中的PathInfo
- 5G 信令流程 — UE 寻呼(Paging)流程
- 数据库编程入门培训(二)
- Apple 远程推送APNS 服务
- 气溶胶光学厚度反演的两种方式(卫星探测和基地观测反演)
- html5 地图效果,html5 echarts图表插件炫光的分布地图动画特效
- PHP文件加到WordPress页面,WordPress-所有页面链接到index.php文件
- POJ1521 LA2088 HDU1053 ZOJ1117 Entropy【哈夫曼编码】
- 软件平台与框架的生命周期
- oracle创建哈希索引,ORACLE10g新特性——全局HASH分区索引
- 汉朝时期皇室家谱记载的基本内容有哪些?皇室家谱有谁能列入?
- 如何获取腾讯视频的MP4播放地址及mp4文件,无需进行qlv转换mp4格式【亲测效果】
- Android极速从视频里提取音频
- unity+google cardboard
- Xshell6下载及安装
- html input禁止驶入,layui form表单 input输入框获取焦点后 阻止Enter回车自动提交 – 执念 – 博客园...
- matlab做二元garch m,多元garch模型的matlab程序如何运行?能否举例说明下啊,希望高手指点...
- 计算机专业java餐厅点餐系统,Java实现餐厅点餐系统的实例代码.pdf
- 用node.js 搭建的博客程序心得(node.js实战读书笔记1)
- nn.CrossEntropyLoss总结