Booker Regionals 2005 Bumps Charts

Introduction

I've been mucking around with XSLT to create "bumps" charts to show the progress of competitors in gliding competitions.

They're not really bumps charts. Real bumps charts are used to graph the results of bumps races in rowing. Here's an actual example.

For 2006 I produced sets of these charts (as PNGs), with a slightly different set of parameter choices, which Gary Nuttall put on the Booker web site. You can find them from the left hand nav bar of Booker Regionals 2006 Home Page.

Also, I've done some charts for the 2006 Standard and 15 Metre Nationals.

Sample Output

There are a number of different forms of chart which can be produced. Either the day-by-day or cumulative scores can be shown. Various values can be used as the baseline - the score value which acts as a reference line:

Basically, the scale of points per pixel on each day is the same, it's just a choice of whether the daily or cummulative scores are used and how the scales for each of the days are lined up.

Here are some examples. These are PNG files - links below each to the SVG files from which they were created. Modern standards compliant browsers should have little trouble with the SVG but Internet Explorer may or may not cope depending...

First, probably the most interesting chart: cumulative scores with the yellow jersey as the baseline. In this case, the baseline's actually across the top, of course. Tediously, Dave Watt won the first day then remained in the lead for the rest of the comp so this bit isn't very interesting.

SVG

Unfortunately, for this competition about half the field didn't score on the last day. This makes the day-by-day score chart somewhat less than illuminating:

SVG

As noted above, the baseline can also be the performance of a particular glider. Here's a slightly smaller chart throwing the spotlight on Gary Nuttall:

SVG

Geek Bits

The input data is the HTML pages of the published scores, one page per contest day. These are first downloaded then turned into well-formed XML using John Cowan's Tagsoup. Actually, the output of Tagsoup is passed through a simple copy stylesheet just to get readable indentation. The required details (competition name, dates, glider identifications and pilot names, and day scores) are extracted using one XSLT stylesheet which needs to be tuned to the format of the pages of the particular competition.

A second stylesheet then runs a sequence of operations over the results to produce an SVG diagram. This can then be converted to PNG image using the Batik SVG Rasterizer.

For those who are interested: a bit of view sourcery on the SVG will show that it not only contains the drawing instructions in the SVG namespace but also the scoring data used (including some internal calculated values) in a separate namespace.

I've been using Michael Kay's Saxon XSLT processor (Saxon-B 8.5) with some use of the XSLT 2.0 features.

It's all a bit non-automatic at the moment. I need to hand code a makefile to create the results and a "seed" XML file used as the input to the first XSLT transformation step. Still, it'll do to see if the concept is worth persuing.