Understanding the concepts and principles that underly the software, and how to use it to achieve navigation planning goals.

BLUEWATER RACING uses the following input files:



 A route is a sequence of geographic positions called route points.  A route is displayed as little squares, one per route point, connected by great-circle lines.  In general, a boat sails along a route, but what exactly a route means is up to you.  It can be a course you've already sailed, or a course some competitor is sailing, or a course you plan to sail, or a combination of these things.

Suppose you are a navigator in the middle of a five-day race.  You have a paper chart, on which you have marked a sequence of fixes – the route you have sailed so far.  Each fix is labeled with the time of arrival.  If the race committee is transmitting position reports, you have also marked down the routes that your competitors have sailed.

Looking ahead, you want to plot a fast route to the finish.  You mark down some waypoints: positions you think you should sail through because they are likely to have favorable winds or put you into a good strategic position.  You also try to guess the routes that your competitors will follow.  You don’t know for sure when you will arrive at your waypoints, but you can estimate the arrival times based on wind forecasts and your boat performance.  These estimates, along with estimates of your competitors’ progress, may cause you to change your planned route.

BLUEWATER RACING is designed to automate these tasks.  Each route point has a latitude, a longitude, and a time.  If the route point is marked read-only, then these values cannot be changed.   This is intended for fixes that have already occurred, where the time records the actual time of arrival at the route point (ATA).   A route with only read-only points is also called a track.

On the other hand, if the route point is not marked read-only, then it is treated as a planning point.  You can move it around with the graphical editor, and the program will estimate the time that you will reach it.  In this case, the time is an estimated time of arrival (ETA) at the route point.  Making this estimate is called a performance computation.  (More on performance computations below.) 

A route can contain a mix of fixes and planning points.  For example, the first part of a route could be all fixes, the places you’ve already sailed, and the second part could be all planning points, the places you’re still thinking of visiting.

Each route has a "Start Time", used in performance computations.  The start time can be specified in the route options window. (Tools→Route Manager→Options.) The start time is either a hard time (e.g., "2012-07-19 13:00Z"), or one of the special values "@now" or "@grib".  @now means that the start time for the route is always equal to the current ship's time.  @grib means the start time is set to the time of the first forecast period in the primary wind data (Grib) file.

The time of a non-read-only route point is the decimal hours it will take to reach that point, given that:

Note: The program cannot handle routes that cross the International Date Line, ±180°.  If you wish to cross the date line, you must split the route in two at the date line.

GPS_track: If there is a route with the special name “GPS_track”, then whenever the GPS is connected and enabled, the current GPS position will be appended as a read-only route point every 60 seconds.  This frequency can be modified from the Instrument Manager.   The GPS_track route can be created with a menu shortcut under Tools→GPS. You can also request that it be created automatically whenever the GPS is connected, using Tools→Preferences→GPS.



A mark is a named geographic point with a latitude and longitude.  It is displayed as a little blue circle and pennant.  Typically, a mark represents a temporary or permanent buoy, or some other fixed point important for navigation.  You can create marks in two ways: by selecting "Edit" mode in the program and right-clicking on the chart where you want the mark to be located; or by using any text or XML editor to create a GPX file, and then loading it into the program.  You can move an existing mark by selecting Edit mode and then either left-clicking-and-dragging it, or right-clicking on it to bring up a position-editing window.

There are two special names for marks: "GPS Position" and "Finish".   If you create a mark named “GPS Position”, then whenever the GPS is connected and enabled, the program will constantly move the mark to the current GPS location.  The “GPS Position” mark can be created with a menu shortcut under Tools→GPS. You can also request that it be created automatically whenever the GPS is connected, using Tools→Preferences→GPS.

If you create a mark named "Finish", it can be used by a shortcut routing function, "Route To Finish", available from the Route Manager.


The Race File

Open a race file from the File→Open menu item. This will load all the routes and marks from the file. File→Save writes the active set of routes and marks to the last opened race file. File→Save As writes to a new file.

To add routes and marks from some other race file into your current race use File→Import Routes. To import and export routes and waypoints to and from a multitude of other formats, such as Google Earth’s KML,BLUEWATER RACING will try to find and use a locally installed copy of the software GPSBabel. GPSBabel handles conversions between a multitude of formats.   Consult www.gpsbabel.org for documentation about available formats. Formerly, GPSBabel was shipped with BWR but GPSBabel has become complicated enough that now we just ask you to download it yourself. It is not required for BWR, but some functionality will be missing without it. BWR searches for GPSBabel in some normal places on your computer, but you may need to tell it the explicit location of the GPSBabel executable by editing the directory preferences.

You can also import positions of boats in your race from a simple text file of position information (such as a race committee might transmit) using File→Import Positions.


Polar Files

Polar files specify the performance characteristics of boats. Performance and routing calculations depend on polar files.  They can be viewed and modified from Tools→Polar Manager. Each route has one associated polar file, corresponding to a boat that is sailing that course.  Polar files are loaded automatically whenever performance data is calculated.


GriB Files for Weather Data

GriB (Gridded Binary) files contain weather forecast data such as wind, waves, and sea-level pressure at points on a latitude-longitude grid.  They are produced by various national weather services and are available for free or for pay from various on-line sites.  In Bluewater Racing, you can view data from any number of GriB files simultaneously.  In addition, wind data from GriB files is used for performance and routing calculations.  The router generates special GriB files as part of its output.  Use the Grib Manager to control how GriB data is displayed and used.


Performance Calculations

Whenever polar and wind data is available, the program automatically calculates how long it will take to sail along each route.  The results can be viewed in the Route Manager and Route Details windows.  The arrival time is computed for each route point.  The arrival time at the first point is set to the start time specified in the route options (Tools→Route Manager→right-click on a route→Route Options). When you mouse over a route point, the calculated arrival time is displayed in a popup. Saving a race also saves all the arrival times at the various route points.  If you don’t want these arrival times to be subsequently overwritten (when a different wind file or polar file is used) then check the “read only” box in the route options window.

If the arrival time of a route point falls within the current Grib period, (selected in the upper right toolbar area), the route point is highlighted with a green box.  So, as you click through Grib periods, you will see highlighted the route points that are reached during that time period.

Performance calculations make use of two parameters, “Time Resolution” and “Distance Resolution”.  They can be modified via the route options window.  The smaller the time and distance resolutions, the more accurate the computed arrival times, but the lengthier the computation.

 “Time Resolution” is specified in decimal hours, and determines how finely a forecast wind period is interpolated.  For example, if the wind forecast period is 12 hours, and the time resolution is 2, then wind values will be interpolated every two hours within the period.  Within each two hour window, the wind will be assumed constant. 

“Distance Resolution” is specified in decimal nautical miles, and controls the fineness of a flat-earth approximation used in the performance calculation.  Each route segment is divided into subsegments of length given by the distance resolution.  The region of the Earth’s curved surface containing each subsegment is projected onto a flat surface, in which the boat travels along a straight line of constant heading.  This projection results in slight inaccuracies, which increase closer to the poles.   However, a distance resolution value of 60 NM gives errors less than 0.1% anywhere between 80N and 80S. 

Wind and polar data can be used to compute optimal routes between points.   When such a routing computation is performed, up to five internal data sets are generated: isochrones, reverse isochrones, the forward routing tree, the reverse routing tree, and a routing sensitivity map.  You can choose which will be generated using Tools→Route Manager→right-click on a route→Route Options.   These new data sets are treated as internal GriBs, and can be accessed via the Grib Manager.



Two type of charts can be viewed, vector and raster.  BLUEWATER cannot handle charts that span the dateline, ±180°.

The built-in planning chart is a vector chart constructed from the “Global Self-consistent Hierarchical High-resolution Geography” (GSHHG) data set.  This is in turn built from the World Vector Shoreline (WVS) database (U.S. NGA) and the CIA database.  The planning chart includes rivers and national/state/provincial boundaries, but these are not displayed unless requested using Tools→Preferences. The planning chart also displays port data from the World Port Index.   Only some of the available port data is stored in the chart, but you can use the port index number to get the full information from the Port Index, which you can either buy or get online for free from the Maritime Safety Information division of U.S. National Geospatial-Intelligence Agency (the same people that put the maps into the cruise missiles).

The planning chart can be zoomed arbitrarily down to a maximum resolution of one micro-degree.  This does not mean the shorelines should be considered accurate to that level.  NGA estimates that errors in the WVS may be as much as 250 meters.  MARINERS SHOULD NOT TRUST THE PLANNING CHART FOR SAFETY OF NAVIGATION. 

Arbitrary vector files (in which shorelines are described as polygons) can be used as a chart, after the file has been converted to a simple text format.

Raster charts are images in JPEG, BSB, PNG, TIFF, etc. format.   They are limited in the amount of zoom, depending on the image’s pixel resolution. Bluewater racing detects the image format based on the file extension and uses the TK Img library to load the image, so any format loadable by Img can be handled, as long as an appropriate file extension is used.

BSB is a raster format used by NOAA for marine charts.  It includes geocoding information internally, so BLUEWATER can read and display them without any work on your part.  BSB charts are available for free download online.

To make an arbitrary image into a chart, you have to "geocode" it, meaning you have to tell the program the chart's base latitude and longitude and its scale.  BLUEWATER can only geocode images that are drawn in the Equidistant or Mercator projections.  Geocoding is easy: just click on a couple of points in the image at known positions (say, the intersections of lat/lon lines in the image).  Then type in their latitude and longitude, and tell BLUEWATER the projection type.  (Most NOAA weather images are drawn in Mercator projection).


Latitude, Longitude, Time and Heading

Input Formats

At various times you may want to enter latitude, longitude, and time values into the program, or have it read such data from text files. 

BLUEWATER RACING works with latitude and longitude in the ranges [-90°, 90°] and [-180°,180°], respectively, with South and West latitudes and longitudes being negative. 

The simplest way to enter a latitude or longitude is as plus or minus decimal degrees, DD.DDD.  E.G., for S 22° 13' 56.1" enter -22.2323.   However, the program does its best to understand a variety of other formats, including DD:MM.MMM, or DD:MM:SS.SSS.  (E.G., for S 22° 13' 56.1" enter -22:13.935, or
-22:13:56.1.)  Or just type in S 22d 13' 56.1"; BLUEWATER RACING will be perfectly happy with that.  Please do not enter latitude or longitude values in the form DD.MMSSS (e.g.: 22.13561, meaning 22° 13' 56.1") or DD.MMM  (e.g.: 22.13561, meaning 22° 13.561'), because the program cannot tell them apart from the DD.DDD format (e.g.: 22.13561, meaning 22.13561°).

BLUEWATER RACING uses the underlying TCL facilities to parse dates and times.  These are very powerful and can make sense of a lot of formats.  However, to be safe you can either enter dates and times in U.S. format as MM/DD/YYYY HH:MM:SS Z (e.g. 05/12/2010 19:45:00 Z, meaning March 12 2010 at 7:45 PM UTC), or international format as YYYY/MM/DD HH:MM:SS Z (e.g. 2010/04/10 02:15:00 Z).  Most times are displayed in UTC (also known as Zulu or GMT), indicated by a "Z" after the time, because that is how GriB files are encoded.   U.S. Eastern Standard time is UTC -5 hours.  When a time without a date is encountered in a file or an entry field, the date defaults to “today.”  A date without a time defaults to 00 Z.  A time without a Z is interpreted as being in the time zone of the computer (ship's time).

Display Formats

Using the Preferences menu item, you can: