first pass at a new User's Guide

This commit is contained in:
Sean C. Rhea
2008-03-09 16:49:13 +00:00
parent 6e60d167b7
commit 7fd58c7f0d
7 changed files with 455 additions and 208 deletions

View File

@@ -17,6 +17,9 @@ install:
rsync -avz -e ssh $(HTML) $(TARBALLS) $(OTHER) \
srhea.net:wwwroot/goldencheetah.org/
command-line.html: command-line.content genpage.pl
./genpage.pl "Legacy Command-Line Tools" $< > $@
contact.html: contact.content genpage.pl
./genpage.pl "Contact Us" $< > $@

BIN
doc/choose-a-cyclist.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

232
doc/command-line.content Normal file
View File

@@ -0,0 +1,232 @@
<!-- $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.

BIN
doc/critical-power.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

BIN
doc/main-window.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

27
doc/power.zones Normal file
View File

@@ -0,0 +1,27 @@
From BEGIN until 2006/07/17, CP=297:
1, Active Recovery, 122, 167
2, Endurance, 167, 228
3, Tempo, 228, 274
4, Lactate Threshold, 274, 319
5, VO2 Max, 319, 365
6, Anaerobic Capacity, 365, 678
7, Sprinting, 678, MAX
From 2006/07/17 until 2007/02/05, CP=329:
1, Active Recovery, 135, 185
2, Endurance, 185, 253
3, Tempo, 253, 303
4, Lactate Threshold, 303, 354
5, VO2 Max, 354, 404
6, Anaerobic Capacity, 404, 752
7, Sprinting, 752, MAX
From 2007/02/05 until END, CP=347:
1, Active Recovery, 139, 191
2, Endurance, 191, 260
3, Tempo, 260, 312
4, Lactate Threshold, 312, 364
5, VO2 Max, 364, 416
6, Anaerobic Capacity, 416, 774
7, Sprinting, 774, MAX

View File

@@ -1,241 +1,226 @@
<!-- $Id: users-guide.content,v 1.5 2006/05/27 16:32:46 srhea Exp $ -->
<big><font face="arial,helvetica,sanserif">
Using the GUI
Step 1: Installing the FTDI drivers
</font></big>
<p>
Using the graphical version of Golden Cheetah should be pretty
self-explanatory. Download the disk image from the <a
href="download.html">download page</a>, drag the Golden Cheetah application
into your Applications folder, open your Applications folder, and then double
click on Golden Cheetah.
Before you can download rides from your PowerTap, you may need to install the
FTDI Virtual COM Port (VCP) drivers. If you're running Linux kernel 2.6.9 or
greater, they're already included. If you're running Mac OS X or an earlier
version of Linux, download them from
<a href="http://www.ftdichip.com/Drivers/VCP.htm">FTDI's website</a> and follow
<a href="http://www.ftdichip.com/Documents/InstallGuides.htm">FTDI's
instructions</a> to install them.
<p>
If you're running Linux, you may also need to uninstall the <code>brtty</code>
(Braille TTY) application, as it interferes with FTDI's driver. The command
<pre>
sudo apt-get remove brtty
</pre>
should do the trick on Debian/Ubuntu.
<p>
The latest version (7.1.1) of Saris's PowerAgent software uses an incompatible
version of FTDI's driver from the one GoldenCheetah uses, and PowerAgent
removes the driver that GoldenCheetah needs when you install PowerAgent. If
you want to run both GoldenCheetah and PowerAgent, you need to use PowerAgent
version 7.0.1 or earlier. We're working to correct this problem, but we're
not there yet.
<p>
<big><font face="arial,helvetica,sanserif">
Using the Command Line Utilities
Step 2: Installing GoldenCheetah
</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). All three
are written in simple C code but have only been tested on Mac OS X so far.
We've also written several Perl scripts to help you graph and summarize the
data.
To install GoldenCheetah, go to <a href="download.html">the download page</a>
and download the version for your operating system and processor.
<p>
On Mac OS X, when the download finishes, Mac OS X should automatically open
the <code>.dmg</code> file for you. If not, double-click to open it. Drag
the GoldenCheetah icon into your Applications folder, and you're done.
<p>
The Linux version of GoldenCheetah is distributed as a tarball. Download this
file and save it to <code>/tmp</code>, then from a terminal:
<pre>
cd /tmp
tar xzvf GoldenCheetah_DATE_Linux_x86.tgz
cd GoldenCheetah_DATE_Linux_x86
sudo cp GoldenCheetah /usr/local/bin
cd ..
rm -rf GoldenCheetah_DATE_Linux_x86.tgz
</pre>
Be sure to replace "DATE" with the date of the revision you downloaded, such
as "2007-09-23".
<p>
<big><font face="arial,helvetica,sanserif">
Extracting the Data
Step 3: Running GoldenCheetah
</font></big>
<p>
To use <code>ptdl</code>, you'll first need to install
<a href="http://www.ftdichip.com/Drivers/VCP.htm">the drivers</a> for the
FTDI chip the PowerTap Pro USB Downloader uses. Once these are installed, you
should be able to just 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).
To run GoldenCheetah on Mac OS X, double-click on the GoldenCheetah icon in
your Applications folder. On Linux, just type "GoldenCheetah" at the prompt.
<p>
The first time you run GoldenCheetah, you'll get an empty "Choose a Cyclist"
dialog box:
<p>
<center><img src="choose-a-cyclist.png"></center>
<p>
Click on "New...", enter your name, and then select your name and click
"Open". After that, the main GoldenCheetah window will open:
<p>
<center><img src="main-window.png"></center>
<p>
Your main window won't yet have any rides in it, of course. To fix that, you
need either to download a ride from your PowerTap or import one from another
program. GoldenCheetah can import <code>.srm</code> files recorded on SRM
power meters and <code>.csv</code> files created by other programs. To
download a file from your PowerTap, select "Ride->Download from device..."
from the menu. To import one, select either "Ride->Import from SRM..." or
"Ride->Import from CSV...".
<p>
Once you've downloaded or imported a ride, you can see some simple statistics
about it on the "Ride Summary" page: your total riding time and average power,
for example. If you click on the "Ride Plot" tab at the top of the screen,
you can see a graph of your speed, power, cadence, and heart rate during the
ride. The "Power Histogram" shows how much time you spent at each power
during the ride, and the "Notes" tab allows you to record notes about the
ride. The "Weekly Summary" shows your total time and work for the week.
<p>
The "Critical Power Plot" is one of the most useful features of GoldenCheetah.
It shows the highest average power you attained for every interval length
during the ride. Some people call this the "Mean Maximal Power" graph. The
green line shows values for this ride; the red line shows the combination of
all your rides. (If you only have one ride so far, the two lines will
overlap.) Clicking on the graph with your mouse brings up a blue line, and
the values under this line are shown at the bottom of the screen.
<p>
It helps to think about an example:
<p>
<center><img src="critical-power.png"></center>
<p>
In this example, the blue line is right around the 14-second mark on the
x-axis. So the values shown under "Today" and "All Rides", at the bottom, are
the hardest the cyclist went for any 14-second period during the ride itself
and during all rides he's ever recorded in GoldenCheetah. Since the two
values are the same, he set a new personal record during this ride.
<p>
The Critical Power Plot is most useful before you're going to go do intervals
or a time trial. Say you want to do six 2-minute intervals with three minutes
rest in between. Click on the Critical Power Plot, drag the blue line to the
2-minute mark, and read the value shown in "All Rides". That's the hardest
you've ever gone for two minutes. Now go out and try to beat it!
<p>
<big><font face="arial,helvetica,sanserif">
Unpacking the Data
Step 4: Setting Up Your Power Zones
</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>:
<p>
If you look back at the screenshot above, you may notice that there are
several things shown in the "Ride Summary" tab that aren't on your version.
The picture above shows a non-zero "Bike Score", and there's a list of how
much time the cyclist spent in each "Power Zone" during the ride as well.
<p>
BikeScore(TM) is a measure of the physiological stress you underwent during a
ride. It was developed by Dr. Philip Skiba, and you can read more about it in
<a href="http://www.physfarm.com/Analysis%20of%20Power%20Output%20and%20Training%20Stress%20in%20Cyclists-%20BikeScore.pdf">an article he wrote</a>.
<p>
For GoldenCheetah to compute your BikeScore and the time spent in each power
zone, you first need to tell it what your power zones and critical power
are. You can define your power zones however you like, maybe using the ones
defined by Joe Friel, for example. Your critical power should be the
maximum power you can sustain over an hour. Some people call this your
"lactate threshold" or "functional threshold power". Our friend Bill says a
rose by any other name would smell as sweet.
<p>
We'll have a dialog box that will let you set up your power zones and
critical power in a future version of GoldenCheetah, but for now you'll need
to use a text editor. On Linux, that probably means nano, vi, or emacs.
On Mac, it means TextEdit, which is in your Applications folder. Start by
downloading <a href="power.zones">this sample file</a> and saving it in
<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
~/Library/GoldenCheetah/Your Name/power.zones
</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>
where "~" is your home directory (e.g., <code>/Users/srhea</code> on Mac or
<code>/home/srhea</code> on Linux) and "Your Name" is the name you chose when
you first opened GoldenCheetah. Open the power.zones file in a text editor
and you'll see this:
<blockquote>
<pre>
From BEGIN until 2006/07/17, CP=297:
1, Active Recovery, 122, 167
2, Endurance, 167, 228
3, Tempo, 228, 274
4, Lactate Threshold, 274, 319
5, VO2 Max, 319, 365
6, Anaerobic Capacity, 365, 678
7, Sprinting, 678, MAX
From 2006/07/17 until 2007/02/05, CP=329:
1, Active Recovery, 135, 185
2, Endurance, 185, 253
3, Tempo, 253, 303
4, Lactate Threshold, 303, 354
5, VO2 Max, 354, 404
6, Anaerobic Capacity, 404, 752
7, Sprinting, 752, MAX
From 2007/02/05 until END, CP=347:
1, Active Recovery, 139, 191
2, Endurance, 191, 260
3, Tempo, 260, 312
4, Lactate Threshold, 312, 364
5, VO2 Max, 364, 416
6, Anaerobic Capacity, 416, 774
7, Sprinting, 774, MAX
</pre>
</blockquote>
<p>
The format of the file is simple. You define a range of time, starting with a
date or "BEGIN" to indicate the oldest possible time and ending with a date or
"END" to indicate the latest possible time. Then you put your critical power
(CP) for that date range. Then you list your zones, where each zone has a
number, a name, a minimum power value, and a maximum power value. You can
have as many time ranges and zones as you like. Most people enter a new time
range every time their critical power goes up--right after a fitness test, for
example.
<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
Legacy Command-Line Tools
</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.
You can still build the older, command-line tools from the source code, but we
no longer include them in releases. <a href="command-line.html">You can find
documentation for them here.</a>