Route Planning - Using qtVlm

qtVlm is a free application, which installs locally on your PC.  (It also runs on Android and iOS, but I haven’t tried these versions.)  It has a professional interface and lots of configuration settings, but once set it is simple to use.  It was originally written as a tool for a virtual yacht racing simulator, but is very good on a real yacht.

You can load and display the data from two separate GRIB files and the GRIB viewer is good.  It uses a set of global maps from NOAA, which have enough detail to plan long passages.  The program will build an email for you to send to Saildocs.  It has options to create a route, handles departure planning and you can export your new route to OpenCPN.  It handles ocean currents as part of its routing calculations.  It accepts NMEA data via a COM port, it monitors GPS and other boat data automatically.  It even has an AIS monitoring facility.

The application is available from 

The manual is available online at


Viewing a Wind and Rain Grib

A Route being calculated


The program is a little daunting at first with lots of configuration settings, so you first need to understand some basic concepts:

1.  The program runs in two modes - Real or VLM.  VLM is a yacht race simulator, so you want to be in Real Mode.

2.  It has two GRIB “Slots” allowing qtVlm to display and use the data from two separate GRIB files, typically I put a normal GFS wind grib into Slot 1 and an RTOFS ocean current model into Slot 2.  There's a "Grib Drawing Configuration" button on the toolbar which allows you to select which GRIB data you wish to display.

3.  It is possible and advised to connect a serial NMEA data feed to your PC, so that qtVlm has access to your current GPS position, SOG and COG.  The program also handles AIS information and if you have your boat instruments on the NMEA network, qtVlm can display wind speed, wind direction, etc.  For more information for configuring your PC to interface to NMEA, see my article Using NMEA Data (Available Soon...)

4.  A waypoint is called a Point Of Interest (POI).

5.  A Route is a collection of POIs. You can enter a route manually, import one or run a routing to calculate the best route.

6.  A Routing is the process of calculating the best Route between two POIs using the GRIBS and the Boat Polar.  You can set various parameters to control the route calculation process.  Once calculated the Route can be optimised.

7.  qtVlm uses isochrons to calculate it's routing.  It's supposed to be able to do reverse isocrons, which check the accuracy of the data, but I've not managed to get it to work...

7.  qtVlm will display KAP and other charts, but I've not investigated this at the moment.



There are lots of configuration settings and I've tweaked it as follows:

1.   Ocean Colour.  The default colour is a very dark blue which I don't like, mostly because I like to see the rain as a layer on the GRIB and its blue merges with the sea.  I changed it in Menu: QtVlm/Configuration/Colours.  Choose Oceans Colour and set to whatever colour you want - I use "#a0a0a4".

2.  GRIB Arrow Colour. I set the "Main GRIB Arrows" to Black in Menu: Gribs/Grib Drawing Configuration.

3.  Ocean Current Extension.  RTOFS Ocean current data is only available for 5 days, whereas Wind GRIB data is available for upto 14 days.  qtVlm has a clever facility to extend the Ocean current data from the last date.  Ocean currents don't change dramatically, so this is a useful option to get the routing software to use ocean current data when forecasting past 5 days on long passages.  Switch ON the ""Automatically Extend Currents Grib Last Date" option in Menu: QtVlm/Configuration/Gribs.


For simple weather forecasting, my procedure is:

1.  Obtain the required Wind/Rain/Pressure GRIB file from SailDocs.  If I have a good Internet connection, then I usually get 7 days at 0.5 deg resolution.

e.g  GFS:5N,15N,90E>100E|0.5,0.5|0,6..192|WIND,PRMSL,WAVES,RAIN

2.  Load the file into Slot 1 (Menu:  Grib/Grib Slot 1/Open)

3.  Use the "Grib Drawing Configuration" to change the display (Menu: Grib/Grib Drawing Configuration or there's a button on the toolbar).  I like to set it so that the arrows are Wind and the background is Precipitation Rate. 

4.  Review the GRIB file, by stepping forward using the arrow buttons on the toolbar - you can set the number of hours for each step.


For deciding when to leave for a long passage, my procedure is:

1.  Get GRIB file(s).  If I have a good internet connection then I get 14 days at 0.5 resolution, otherwise I get at 2.5 resolution and reduce the number of days to cover the forecast to the end of the passage. 

2.  Do a single routing based on the earliest date/time that I think will be acceptable.

3.  Review the route and tweak.

4.  Run another routing based on the same data, but get qtVlm to create multiple routes with a separation of 1 day. Normally, I produce 3-5 routes.

5.  Compare the Routes, looking at passage duration, average wind speed, motoring time, beating time, etc.

6.  If I have a good internet connection, then I will run the same plan(s) on, to get a reality check.

7.  Decide on a Departure Date.  



When on passage, my procedure is:

1.  Obtain GRIB file(s) for the area to my destination and the number of days +1 remaining on my passage at 2.5 resolution to save satellite time.

2.  Do a single routing based on the current date/time.

3.  Decide if I believe it and make the appropriate changes to my route in OpenCPN and other chart plotters.  I can export the GPX route file from qtLvm and import into OpenCPN. 



Routing Settings - General Tab

Routing Settings - Options Tab

Routing Settings - Advanced Tab

Route before Optimisation

A single routing is the most common task:

1.  Obtain the required GFS and RTOFS GRIB files from SailDocs via email.

e.g.   GFS:5N,15N,90E>100E|2.5,2.5|0,6..384|WIND,PRMSL,WAVES,RAIN

2.  Load the GFS file into Slot 1 and the RTOFS file into Slot 2

3.  Make sure that "Automatically Extend Currents Grib Last Date" is switched ON.

3.  Review the GRIB file, by stepping forward in what every hour increments you want. (Normally, I use 3 hours)

4.  Place two POIs (waypoints) onto the chart - one for the start and one for the end of your route.  Right click on the chart and select “New Mark”.

5.  Create a New Routing.  (Menu:  Routings/Create a Routing)

6.  Enter Routing Parameters.  

a.  General Settings Tab.  

  • Name the Routing as something meaningful.  
  • Select Start and Ending POIs. (You can start from the boat) 
  • Make sure that Automatic Parameters is ON.  
  • Set the start Date and Time.

b.  Options Tab.

  • Set “Avoid Coasts” to 0 nm (Not really relevant, and if your start or end point is within the distance set then the routing will not run.)
  • Set Multi-routing to OFF.

c.  Advanced Settings.  

  • Set Max Wind Speeds:  I uses Beating = 20 knots and Reaching = 25 knots.  Wave Max Height = 4m.

7.  Click OK and watch the route taking shape.

8.  Review by stepping through the GRIB File.  You will see the boat position as a dot on the route for each as you step through the GRIB.

9.  Decide if you believe it... 



Multiple Routes

Routes Comparator

Departure Planning is done by running another routing, but this time, tell qtVlm to calculate multiple routes:

1.  Do Steps 1-6 described in the Single Routing section, with the following changes:

  • Get a GRIB data for 14 days
  • On the Options Tab, set “Multi Routing” to ON and select the number of routes and the interval between - normally 5 routes and a 1 day interval.
  • Note that when doing multiple routings you cannot start from the boat, so you will have to enter a start POI 

2.  qtVlm will then calculate the number of routes specified. 

3.  The Routes Comparator window will appear giving you statistics about each route including passage duration, time motoring, time beating, average wind speed, etc.

4.  Close the Routes Comparator Window and review the routes by stepping through the GRIB File.  You will see the boat position as a dot on the routes for each departure date as you step through the GRIB.

5.  Decide if you believe it...