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:
This loads the script into Bluewater, and you should see some basic instructions printed in the console window, like this:
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.
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:
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:
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.
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)