Ageometretos medeis eisito

Weather Routing

Weather Routing is a numerical procedure to minimize the time necessary to sail a given leg. It combines wind forecasts with boatspeed/windspeed data (polar charts). It is a "brute force" calculation: to find the best possible solution, times for millions of tracks are calculated and compared.

Tracks in a tree

A track can be represented by a collection of segments with constant courses C1, C2 ,...Ci. At each segment end point ( times T1,T2, ...Ti ) course may be changed. The set of all possible tracks can be described in software by a tree-like structure.

track tree (3 branches)

tree representing some of the possible routes

The root node is the starting point (T0). From the start, a number of branches (or track segments) are added to the tree, pointing to different directions. At T1 new branches are added to end of each of the previous segments. Branching is done towards the destination and branching cycles are repeated until the destination is reached.

Pruning the tree

It's easy to see that all this branching can quickly produce a large tree, difficult to work with. The number of branches grows exponentially. If you test 5 courses at each node, the tree will have 5 branches at T0, 25 in at T1, 125 in the T2 and so on. At the end of 10 segments we will have nearly 10 million tracks, too many even for a modern computer.

Fortunately there are ways to tame tree growing. This is done by pruning the slow tracks, keeping only the ones that are real candidates for best track.

Tracks that are in the wake of other tracks are considered slow and are discarded (pruned). In the figure to the right, the green boat is leading. The blue boat is behind, but not in the wake of the green boat, so it is maintained. The red boat, on the other hand, is in the wake of the green boat and can removed.


unpruned tree



The set of points that can be reached at a certain time is called "isochrone" (same time). Plotting isochrones in the chart is a great way to figure the best strategy. The vrtool weather routing algorithm looks like this:

  1. Add new branches to the tree until next isochrone is reached
  2. Sort tracks using distance to destination as key. This produces de list of best tracks up to the moment (best on top).
  3. Prune slow tracks.
  4. Repeat steps 1,2,3 until destination is reached (or until the final isochrone is reached)

Action points

Action points are points where we have to adjust the boat course. Of course this can be done at any time, but the route optimizer uses the following action points:

1- Points where the course crosses the wind grid. This is the nearest point of either the vertical longitude line or horizontal latitude line ( like point 1 in the figure to the left).

This is used for Virtual Regatta games, where wind changes at degree boundaries. VORG game uses continuous winds, so degree boundaries are not action points.

2- Points that are on the next isochrone (point 3 in the figure to the left). Wind change points are action points.


Using vrtool weather routing module

To open the weather routing module, use menu option
>Tracks>Weather routing (or type Ctrl-W)

1. Set start and destination positions (either by typing lat/lon or pointing in the chart)

2. Check [x]Auto prune checkbox. This must stay checked to automatically remove slow tracks on each round (uncheck only for localized experiments).

3. set # of tree branches: If this number is too small, you may not get the optimal solution because optimal wind angles may be not used. If the number is too large, the tree will grow too fast and blow out of control.

There is a 2 million points maximum limit for the tree. If this number is reached, calculation is interrupted.

4. max angle to destination is the maximum acceptable angle between the track segment and the destination direction. If the segment points away from the destination more than the specified angle, then the segment is discarded. (default=60 deg)


5. set "up to isochrone" : Use this if you want to limit the number of calculated isochrones.
Use 0 to calculate the whole leg. Default=72h

6. set "isochrone interval": use 1 or 3 h (default=1h)

7. Wake angle - Used for pruning (default = 45 degrees)

8. Click [Build track tree] - This will start the calculation of the tree. This may take a long time, particularly if config parameters are set too aggressively. So take care when messing with config.

WR configuration - Read this post

Results- The results can be added to current vrtool desktop. Use the buttons:

[Add best track] - This will add the best track to vrtool desktop, named "WR_best". The best track is:

  • if a final isochrone was especified and destination was not reached, the best track is the closest to destination (great circle distance).
  • if destination was reached, the best leg is the one with smallest tracktime.

[Add isochrones] - this will add the isochrones to vrtool desktop. The isochrone is a collection of points, not a line. The point closest to the destination in each isochrone is marked with the isochrone time (6h, 12h etc in small font). Note that the best track for one isochrone is probably not the same in the next isochrone, so don't try to connect the points..

[Add "some" tracks] - This will add a number of tracks to the desktop. This may be a large number of tracks. The top ten tracks are always added. If there are too many, a maximum of 400 tracks are added (selected in a random fashion).

There is a button to [Clear WR tracks], which will delete all tracks starting with 'WR' in the desktop (i.e. weather routing generated tracks). If you want to keep the best track, rename it before using this button.



nov09:om: released
mar12: om: updated


©Copr 2008-2012 Omar F. Reis