mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-13 16:18:42 +00:00
.. restructured the doc directory to distibguish between website content and user documentation .. added basic content for FAQ and Manual, but neither are complete and contain no markup
233 lines
8.5 KiB
Plaintext
233 lines
8.5 KiB
Plaintext
<!-- $Id: users-guide.content,v 1.5 2006/05/27 16:32:46 srhea Exp $ -->
|
|
|
|
<p>
|
|
<big><font face="arial,helvetica,sanserif">
|
|
Using the Command Line Utilities
|
|
</font></big>
|
|
|
|
<p>
|
|
In addition to the GUI, Golden Cheetah comes with
|
|
several command line utilities:
|
|
<code>ptdl</code>, which downloads ride data from a PowerTap Pro version 2.21
|
|
cycling computer, <code>ptunpk</code>, which unpacks the raw bytes downloaded
|
|
by <code>ptdl</code> and outputs more human-friendly ride information, and
|
|
<code>cpint</code>, which computes your critical power (see below). We've
|
|
also written several Perl scripts to help you graph and summarize the data.
|
|
|
|
<p>
|
|
NOTE: We no longer support the use of the command-line tools. Please use the
|
|
graphical version of GoldenCheetah instead. This documentation is here for
|
|
the benefit of the brave alone.
|
|
|
|
<p>
|
|
<big><font face="arial,helvetica,sanserif">
|
|
Extracting the Data
|
|
</font></big>
|
|
<p>
|
|
First, make sure you have the FTDI drivers installed, as described in the <a
|
|
href="users-guide.html">User's Guide</a>. You can then run <code>ptdl</code>
|
|
without arguments:
|
|
|
|
<pre>
|
|
$ ./ptdl
|
|
Reading from /dev/tty.usbserial-3B1.
|
|
Reading version information...done.
|
|
Reading ride time...done.
|
|
Writing to 2006_05_15_11_34_03.raw.
|
|
Reading ride data..............done.
|
|
$ head -5 2006_05_15_11_34_03.raw
|
|
57 56 55 64 02 15
|
|
60 06 05 0f 6b 22
|
|
40 08 30 00 00 00
|
|
86 0e 74 99 00 55
|
|
81 06 77 a8 40 55
|
|
</pre>
|
|
|
|
<p>
|
|
If everything goes well, <code>ptdl</code> will automatically detect the
|
|
device (<code>/dev/tty.usbserial-3B1</code> in the example above), read the
|
|
ride data from it, and write to a file named by the date and time at which the
|
|
ride started (<code>2006_05_15_11_34_03.raw</code> in the example; the format
|
|
is YYYY_MM_DD_hh_mm_ss.raw).
|
|
|
|
<p>
|
|
<big><font face="arial,helvetica,sanserif">
|
|
Unpacking the Data
|
|
</font></big>
|
|
<p>As shown by the <code>head</code> command above, the data in this
|
|
<code>.raw</code> file is just the raw bytes that represent your ride. To
|
|
unpack those bytes and display them in a more human-friendly format, use
|
|
<code>ptunpk</code>:
|
|
|
|
<pre>
|
|
$ ./ptunpk 2006_05_15_11_34_03.raw
|
|
$ head -5 2006_05_15_11_34_03.dat
|
|
# Time Torq MPH Watts Miles Cad HR Int
|
|
# 2006/5/15 11:34:03 1147707243
|
|
# wheel size=2096 mm, interval=0, rec int=1
|
|
0.021 13.1 2.450 43 0.00781 0 85 0
|
|
0.042 13.4 5.374 97 0.00912 64 85 0
|
|
</pre>
|
|
|
|
<code>ptunpk</code> takes a <code>.raw</code> file for input and writes a
|
|
<code>.dat</code> file as output. Lines that start with an ampersand ("#") in
|
|
this file are comments; the other lines represent measured samples. As shown
|
|
by the first comment in the file, the columns are: time in minutes, torque in
|
|
Newton-meters, speed in miles per hour, power in watts, distance in miles,
|
|
cadence, heart rate, and interval number.
|
|
|
|
<p>
|
|
<big><font face="arial,helvetica,sanserif">
|
|
Summarizing the Data
|
|
</font></big>
|
|
<p>
|
|
We hope to have a graphical interface to these programs soon, but until then,
|
|
the only summarization tools we have are command-line programs. The script
|
|
<code>intervals.pl</code> summarizes the intervals performed in a workout:
|
|
|
|
<small>
|
|
<pre>
|
|
$ ./intervals.pl 2006_05_03_16_24_04.dat
|
|
Power Heart Rate Cadence Speed
|
|
Int Dur Dist Avg Max Avg Max Avg Max Avg Max
|
|
0 77:10 19.3 213 693 134 167 82 141 16.0 27.8
|
|
1 4:03 0.9 433 728 175 203 84 122 13.0 18.8
|
|
2 7:23 1.0 86 502 135 179 71 141 16.0 28.2
|
|
3 4:27 0.9 390 628 170 181 70 100 12.0 17.6
|
|
4 8:04 0.9 60 203 130 178 50 120 18.0 30.1
|
|
5 4:30 0.9 384 682 170 179 79 113 11.0 18.6
|
|
6 8:51 1.1 53 245 125 176 70 141 8.0 26.6
|
|
7 2:48 0.4 400 614 164 178 62 91 8.0 13.6
|
|
8 7:01 1.1 46 268 128 170 71 141 12.0 28.8
|
|
9 4:30 0.9 379 560 168 180 81 170 11.0 18.3
|
|
10 28:46 6.5 120 409 128 179 79 141 15.0 31.0
|
|
</pre>
|
|
</small>
|
|
|
|
<p>
|
|
In the example above, a rider performed five hill intervals, four of which
|
|
climbed a medium size hill that took about 4-5 minutes to climb (intervals
|
|
1, 3, 5, and 9), and one on a shorter hill that took just under 3 minutes to
|
|
climb (interval 7).
|
|
|
|
<p>
|
|
<big><font face="arial,helvetica,sanserif">
|
|
Graphing the Data
|
|
</font></big>
|
|
<p>
|
|
For graphing the data in the ride, we use <code>smooth.pl</code> and the
|
|
<code>gnuplot</code> program. You can use <a href="sample.gp">sample.gp</a>
|
|
to graph the power, heart rate, cadence, and speed for the hill workout above:
|
|
|
|
<pre>
|
|
$ gnuplot sample.gp
|
|
</pre>
|
|
|
|
<img align="center" alt="Sample Plot" src="sample.png">
|
|
|
|
<p>
|
|
<big><font face="arial,helvetica,sanserif">
|
|
Finding Your "Critical Power"
|
|
</font></big>
|
|
<p>
|
|
Joe Friel calls the maximum average power a rider can sustain over an interval
|
|
the rider's "critical power" for that duration. The <code>cpint</code>
|
|
program automatically computes your critical power over all interval lengths
|
|
using the data from all your past rides. This program looks at all the
|
|
<code>.raw</code> files in a directory, calculating your maximum power over
|
|
every subinterval length and storing them in a corresponding <code>.cpi</code>
|
|
file. It then combines the data in all of the <code>.cpi</code> files to find
|
|
your critical power over <i>all</i> subintervals of <i>all</i> your rides.
|
|
|
|
<pre>
|
|
$ ls *.raw
|
|
2006_04_28_10_48_33.raw 2006_05_10_17_08_30.raw 2006_05_18_16_32_53.raw
|
|
2006_05_03_16_24_04.raw 2006_05_13_10_29_12.raw 2006_05_21_12_25_07.raw
|
|
2006_05_05_10_52_05.raw 2006_05_15_11_34_03.raw 2006_05_22_18_28_47.raw
|
|
...
|
|
2006_05_09_09_54_29.raw 2006_05_17_16_44_35.raw
|
|
$ ./cpint
|
|
Compiling data for ride on Fri Apr 28 10:48:33 2006...done.
|
|
Compiling data for ride on Sat Apr 29 10:07:48 2006...done.
|
|
Compiling data for ride on Sun Apr 30 14:00:17 2006...done.
|
|
...
|
|
Compiling data for ride on Mon May 22 18:28:47 2006...done.
|
|
0.021 1264
|
|
0.042 1221
|
|
0.063 1216
|
|
...
|
|
5.019 391
|
|
...
|
|
171.885 163
|
|
</pre>
|
|
|
|
<p>
|
|
Over this set of rides, the rider's maximum power is 1264 watts, achieved over
|
|
an interval of 0.021 minutes (1.26 seconds). Over all five-minute
|
|
subintervals, he has achieved a maximum average power of 391 watts. The
|
|
longest ride in this set was 171.885 minutes long, and he averaged 163 watts
|
|
over it.
|
|
|
|
<p>
|
|
We can graph the output of <code>cpint</code> using <code>gnuplot</code> with
|
|
<a href="cpint.gp">cpint.gp</a>:
|
|
|
|
<pre>
|
|
$ ./cpint > cpint.out
|
|
$ gnuplot cpint.gp
|
|
</pre>
|
|
|
|
<img src="cpint.png">
|
|
|
|
<p>
|
|
The first time you run <code>cpint</code> it will take a while, as it has to
|
|
analyze all your past rides. On subsequent runs, however, it will only
|
|
analyze new files.
|
|
|
|
<p><i>Training and Racing with a Power Meter</i> (see the <a
|
|
href="faq.html">FAQ</a>) contains a table of critical powers of Cat 5 cyclists
|
|
up through international pros at interval lengths of 5 seconds, 1 minute, 5
|
|
minutes, and 60 minutes. Using this table and the <code>cpint</code> program,
|
|
you can determine whether you're stronger than others in your racing category
|
|
at each interval length and adapt your training program accordingly.
|
|
|
|
<p>
|
|
<big><font face="arial,helvetica,sanserif">
|
|
Converting Old Data
|
|
</font></big>
|
|
|
|
<p>
|
|
If you've used the PowerTuned software that comes with the PowerTap you may
|
|
have lots of old ride data in that program that you'd like to include in your
|
|
critical power graph. You can convert the <code>.xml</code> files that
|
|
PowerTuned produces to <code>.raw</code> files using the <code>ptpk</code>
|
|
program:
|
|
|
|
<p>
|
|
<pre>
|
|
$ ./ptpk 2006_04_27_00_23_28.xml
|
|
$ head -5 2006_04_27_00_23_28.raw
|
|
57 56 55 64 02 15
|
|
60 06 04 7b 80 17
|
|
40 08 30 00 00 00
|
|
84 04 00 24 00 ff
|
|
83 03 00 d7 00 ff
|
|
</pre>
|
|
|
|
<p>
|
|
<code>ptpk</code> assumes the input <code>.xml</code> file was generated with
|
|
a wheel size of 2,096 mm and a recording interval of 1. If this is not the
|
|
case, you should specify the correct values with the <code>-w</code> and
|
|
<code>-r</code> options.
|
|
|
|
<p>
|
|
Note that the PowerTuned software computes the output speed in miles per hour
|
|
by multiplying the measured speed in kilometers per hour by 0.62, and the
|
|
miles per hour values in a <code>.xml</code> file are thus only accurate to
|
|
two significant figures, even though they're printed out to three decimal
|
|
places. Because of this limitation, the sequence <code>ptpk</code>,
|
|
<code>ptunpk</code> is not quite the identity function; in particular, the
|
|
wattage values from <code>ptpk</code> may only be accurate to two significant
|
|
digits.
|
|
|