Timed Race Script for Bluewater

As promised in an earlier post, here is a script to help in determining when to start your run in a timed race on Sailonline. In a nutshell, it creates multiple optimised routes, all departing at a different time, and reports which one has the lowest ETE (estimated time enroute). Bluewater users can now enjoy a feature Expedition users have always had at their disposal 😉

Now, it involves using the Console in Bluewater, which likely most have not used before – unless you sometimes ‘trim’ the grib files to speed routing. But I have endeavoured to make it as simple as possible to use.

First off, create a route for the race course, and set the routing parameters appropriately for the route distance etc. It is necessary to name this route ‘Course’ – the script will NOT work otherwise, as it looks for a route named Course to use as the basis for optimising. If you use Bluewater race gpx files downloaded from here, I always name the race route ‘Course’.

In the route options, set the ‘Start Date/Time’ parameter, to the earliest time to depart – ie, when you want to start the 1st trial run.

Now, open the Bluewater Console (Tools menu, or ‘Alt-T, then C’) and type the following:

     source timed_race.tcl

This loads the script into Bluewater, and you should see some basic instructions printed in the console window, like this:

Bluewater Racing Console with the script loaded

As indicated in the initial load output, you type ‘compute_runs’ followed by the number of runs to optimise, and how far apart in minutes the start time of each run should be. You will see the program display the usual progress bar while optimising, as many times as you specify with the command.

To illustrate usage, I created an example route off the coast of Australia, using the Sydney to Hobart grib and VO70 polar. In the following screenshot, the route is set to use an earliest departure time of 0800 utc on the 30th of December.

Example Route and Route Options

Now, in the console window (after loading the script) I typed ‘compute_runs 6 60’ to compute 6 different routes, departing on the hour from 8am to 1pm (utc – 60 minutes apart), and this is the result:

Result Message

The program beeps when the script is finished, which is handy when using higher resolution routing parameters which take more time to compute, and shows a popup dialog reporting which run has the best time, the time it departs, and the time to sail the course (ETE). Each of the 6 routes is displayed on the map, and in the Route Manager they are named Run_# for each run, like the following:

Results in the Route Manager

A few Tips:

  • Expect the script to take longer than usual routing, or increase the time and grid/max distance. The more runs you specify the longer it will take. There is a trade-off between computing quickly and accurately. Disable isochrones etc to help speed things up.
  • Remeber that it does NOT report the actual optimal time to depart – only the best of the runs you specify, so you will need to play around with different start times and intervals between runs to ‘narrow in’ on the optimal time.
  • To get the best results, start by using a larger time between runs (like 60 minutes), then take the departure time of the fastest run and set 1 hour earlier as the Route (‘Course’) start time, and reduce the time between runs to 15 minutes and compute 8, ie each 15 minutes in the 2 hours either side of the fastest run so far. Looking even further ahead, you might start by specifying 2 hours between runs, to cover a longer ‘window’ in time.
  • Repeat this until you are specifying 10 minutes between runs, but remember to also increase the routing resolution – for example if you have a time resolution of .5 hr and grid/max distance of 5/20nm – that may not be ‘fine’ enough to really tell much difference between runs starting only a few minutes apart.
  • IMPORTANT – Delete the routes named ‘Run_#’ between running the script a second or more times.
  • It works crossing date (even year) ‘boundaries’, ie you can specify an initial run time of 11pm and instruct it to compute 4 runs 30 minutes apart just fine. The last 2 will be at 0000 and 0030 the next day.
  • If you have the Route Manager visible while the script is running, you will not see the renamed routes but multiple routes all called ‘Course_O’. Simply dismiss the route manager and reopen to see the renamed routes.
Update: I modified the script to change the colour of the best route to green. It may require the Route Manager to be closed and reopened to display in green. It also writes some progress information to the console window, ie ‘Computing run 1’, ‘Computing run 2’

Download the script from here, and enjoy!

NOTE: When you download the script, you must place it in your Bluewater installation folder.

I must acknowledge Jeff, the developer of Bluewater, not only for making his excellent program freely available, but also for patiently answering my many emails asking about BWR internals etc, and a question or 2 relating to TCL (the language the script is written in)

  1. New tool published – a Bluewater Script for Timed Races « Sailonline.org Tools
  2. Update to Bluewater and the Timed Race Script « Sailonline.org Tools

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: