y***r 发帖数: 1845 | 1 把跑个头上的数据用XML下载下来之后,可以把interval分析一下,看running
efficiency随时间的变化,知道每天跑垃圾迈是不是有提高。
计算方法是每个interval的平均速度除以平均心率。用全程的话感觉有些粗糙,用
interval感觉稍微细一些,如果不考虑耐力因素的话。程序可以忽略第一段心率不准的
数据。
看了一下图,发现虽然每个星期的速度都不一样,有的时候慢有的时候慢,但效率一直
在上升。另外数据显示跑的太慢效率不高,太快(接近7分的时候)也不够高,而且影
响之后里程的效率。 |
y***r 发帖数: 1845 | 2 看Excel的图。有些数据一看就不对。还有很多数据点在趋势线之下很多的,那是真正
的垃圾迈。
【在 y***r 的大作中提到】 : 把跑个头上的数据用XML下载下来之后,可以把interval分析一下,看running : efficiency随时间的变化,知道每天跑垃圾迈是不是有提高。 : 计算方法是每个interval的平均速度除以平均心率。用全程的话感觉有些粗糙,用 : interval感觉稍微细一些,如果不考虑耐力因素的话。程序可以忽略第一段心率不准的 : 数据。 : 看了一下图,发现虽然每个星期的速度都不一样,有的时候慢有的时候慢,但效率一直 : 在上升。另外数据显示跑的太慢效率不高,太快(接近7分的时候)也不够高,而且影 : 响之后里程的效率。
|
y***r 发帖数: 1845 | 3 发现附件不能贴程序。那就直接放这里吧。有兴趣的可以自己改改试试。
#### COPY START ####
# Reads log.xml exported from runningahead.com and analyzes the correlation
between the heart rate and pace.
#
# How to use this script:
#
# 1. Go to runningahead website, Training Log, Tools, click "Download
training data to your computer".
# 2. Select XML and click Download button.
# 3. Open the zip file and extract the log.xml to a folder.
# 4. In PowerShell console, go to the above folder and run ".\RA-
HeartRatePaceCorrelation.ps1 > data.csv".
# 5. Open data.csv in Excel.
Param (
[DateTime] $MinTime = [DateTime]::MinValue,
[DateTime] $MaxTime = [DateTime]::MaxValue,
[String] $LogXmlPath = "log.xml",
[bool] $IgnoreWarmupInterval = $True,
[int] $IgnoreHighHR = 180
)
Begin
{
$mileInMeter = 1609.344
}
Process
{
# Reads the entire log.xml
$alldata = [XML](Get-Content $LogXmlPath)
# Each individual event
$events = $alldata.RunningAHEADLog.EventCollection.Event
# CSV header
Write-Output ("{0}`t{1}`t{2}`t{3}" -f "Time", "Avg HR", "Pace", "
Efficiency")
foreach ($event in $events) {
# Only processes Run event
if ($event.typeName -ne "Run") {
continue
}
# Runningahead do not store time in UTC
$time = [DateTimeOffset]::Parse($event.time).DateTime
if ($time -lt $MinTime -or $time -gt $MaxTime) {
continue
}
# If the event has no interval, then the heart rate isn't available
either
if ($event.IntervalCollection -eq $null) {
continue
}
$intervals = $event.IntervalCollection.Interval
# Optional ignore the first interval when the heart rate isn't
accurate
if ($intervals.Count -gt 1 -and $IgnoreWarmupInterval) {
$intervals = $intervals[1..$intervals.Count]
}
foreach ($interval in $intervals) {
if ($interval.HeartRate -eq $null) {
continue
}
[double]$distance = $interval.Distance.InnerText
[double]$seconds = $interval.Duration.seconds
[double]$avgHR = $interval.HeartRate.AvgHR
if ($avgHR -gt $IgnoreHighHR) {
continue
}
if ($distance -lt 0.001) {
continue
}
$pace = [TimeSpan]::FromSeconds($seconds / $distance)
$eff = $distance * $mileInMeter / $seconds / $avgHR * 100
Write-Output ("{0}`t{1}`t{2}`t{3}" -f $time, $avgHR, $pace, $eff)
}
}
}
#### END #### |
w********6 发帖数: 12977 | 4 谢谢,我文科生不知道你这个啥程序? C++,还是excel的micro啥的 |
y***r 发帖数: 1845 | 5 这是PowerShell,windows上存成run.ps1,可以在powershell console里面运行。
【在 w********6 的大作中提到】 : 谢谢,我文科生不知道你这个啥程序? C++,还是excel的micro啥的
|
d******0 发帖数: 22800 | 6 看晕了。那个y轴数字efficiency是咋算的啊。 |
y***r 发帖数: 1845 | 7 For a given interval
[Number of meters] / [Number of seconds] / [Average heart rate] * 100
【在 d******0 的大作中提到】 : 看晕了。那个y轴数字efficiency是咋算的啊。
|
d******0 发帖数: 22800 | 8 速度/心率 比。有意思!
【在 y***r 的大作中提到】 : For a given interval : [Number of meters] / [Number of seconds] / [Average heart rate] * 100
|
y***r 发帖数: 1845 | 9 速度和心率肯定不是线性关系,但在经济巡航速度附近可以这样近似。如果单看速度,
不把effort因素考虑进去,没法正确评估身体状况的改善和跑步效率的提高。
这个比值随着时间应该逐渐提高,也就是说同样心率越来越快,或者同样速度心率降低
。这个提高有两方面因素,心肺功能改善,跑姿改进。如果发现反常情况,要么是没有
进步,要么是身体有问题。
对于我这样先天不足、起步又很晚的菜鸟,跟踪分析并不断改进才好。
【在 d******0 的大作中提到】 : 速度/心率 比。有意思!
|
y***r 发帖数: 1845 | 10 如果有谁对PowerShell不熟悉,可以把数据从跑个头上导出,我帮你运行程序,生成
CSV文件,然后就可以自己用Excel打开分析了。 |
|
|
y***r 发帖数: 1845 | 11
【在 y***r 的大作中提到】 : 如果有谁对PowerShell不熟悉,可以把数据从跑个头上导出,我帮你运行程序,生成 : CSV文件,然后就可以自己用Excel打开分析了。
|
d******0 发帖数: 22800 | |
y***r 发帖数: 1845 | 13 看来是同行,哈哈。
刚把程序更新了一下,时区没有问题了。之前需要自己调整offset,夏令时也不对。
【在 d******0 的大作中提到】 : 这样我就会用了,求mark啊。
|
y***r 发帖数: 1845 | 14 附图是过去各个interval的配速和心率图。从140心率上就能看出半年的进步。上面标
注的是昨天的数据点。 |
h*******t 发帖数: 2679 | 15 跑个头可以画vo2 max的图。直接画出来就行了。。。。
【在 y***r 的大作中提到】 : 把跑个头上的数据用XML下载下来之后,可以把interval分析一下,看running : efficiency随时间的变化,知道每天跑垃圾迈是不是有提高。 : 计算方法是每个interval的平均速度除以平均心率。用全程的话感觉有些粗糙,用 : interval感觉稍微细一些,如果不考虑耐力因素的话。程序可以忽略第一段心率不准的 : 数据。 : 看了一下图,发现虽然每个星期的速度都不一样,有的时候慢有的时候慢,但效率一直 : 在上升。另外数据显示跑的太慢效率不高,太快(接近7分的时候)也不够高,而且影 : 响之后里程的效率。
|
m**t 发帖数: 1956 | 16 vo2max的估算和心率没啥关系吧
【在 h*******t 的大作中提到】 : 跑个头可以画vo2 max的图。直接画出来就行了。。。。
|
h*******t 发帖数: 2679 | 17 同样的心率下,v上去了就行了。
【在 m**t 的大作中提到】 : vo2max的估算和心率没啥关系吧
|
y***r 发帖数: 1845 | 18 几个月的时间把心率控制在同一个数值谈何容易。所以要对数据做后处理。
【在 h*******t 的大作中提到】 : 同样的心率下,v上去了就行了。
|