GPS Speedreader is a program to analyze GPS tracks from modern GPS units. The program was specifically developed for the GPS Team Challenge, and runs on MacOS, Windows, and Linux. The primary goals were fast analysis, especially of large GPS files; high accuracy; and easy submission to the GPSTC web site.

GPS Speedreader is free to use, and supplied without any warranties. If you find GPS Speedreader useful, and/or would like to support future development, “beer money” donations are welcome! Take your pick - $10 for a beer (with tip - Cape Cod is expensive!), $25 for a beer and a pizza, $40 to bring my lovely wife along, or pick any amount you like :-).

Supported file types and devices  

GPS Speedreader can read the following file types:

  • .sbp files from Locosys GW60 and GW52 devices;
  • .sbn files from Locosys GT31 units;
  • .oao files from Motion GPS units;
  • .ubx files from u-blox base prototypes and the Motion GPS.

Speedreader does not support other file formats not listed above.

Quick start  

Download GPS Speedreader from The download is a ZIP archive with the program (for MacOS and Windows) or an executable jar file (for Linux). Unpack the ZIP archive and move the program to a location of your choice. >The program requires Java. If Java is not installed on your computer, you can download it for free at

Start GPS Speedreader by double-clicking on the “GPS Speedreader” application (or jar file). Depending on your system, you may see security warnings when you open Speedreader the first time. On MacOS, you can get around the “GPS Speedreader can’t be opened” dialog by right-clicking on the application, and then choosing “Open” in the popup and the security dialog.
GPS Speedreader will start and show an “Open..” dialog where you can select a GPS file to analyze. The program will read the file, calculate the speed results for all GPS Team Challenge categories (and the “500 m” category), and show the data and results in a single window.

Submitting speed results to GPSTC  

To submit your session results to the GPS Team Challenge web site, go to the “File” menu, and select “View results in browser”. Speedreader will write the result to a temporary HTML file, and open a web browser to show the results. Below the results, you should see a blue button “Submit this session to the GPS Team Challenge website”. When you click on it, a new window should open where the results are filled into the “Post session” form. If you are not logged in, you’ll be prompted to log in first. To complete the posting, enter any comment you may want to add, and press the “Post” button.

View options  

Data columns

Go to the “Settings” menu, and select “Columns” to see a dialog where you can choose which columns you want to see for the individual data points. The most important ones is “Doppler speed”. Sometimes, the “Filter” column can help to see why some points were filtered out. The following abbreviations are used:

  • V (Velocity) for points below minimum speed;
  • S (Satellites) for points with fewer than the minimum number of satellites
  • + (+/-) for points with a high error estimate
  • A (Acceleration) for points with acceleration above the allow maximum.
  • T (Time) for points with a larger than typical time difference to the previous point
  • - for missing points


The “Preferences” dialog (“Settings” menu -> “Preferences”) lets you choose whether you can see the GPS tracks; if the tracks should be colored by speed; and if you want to see the entire track, or just a small section of the track (either the given number of points or the current selection, whichever is larger). Note that if “Draw full track” is not checked, the “Tracks” panel may be mostly empty!

Error estimates

The accuracy estimates (often called SDoP or sAcc) can be shown in a separate panel below the doppler speed panel. To hide the accuracy estimates graph, uncheck the “Show error estimates” check box in the “Preferences” dialog (“Settings” menu -> “Preferences”).

Selecting and zooming  

Clicking in any graph or on any line in the tables will select the given point(s) in both the table and the graphs.

Dragging or shift-clicking can be used to select a range.

Zooming in graphs can be done with the mouse wheel (or trackpad gestures).

Help by menu  

File menu  


Shows a dialog to select a GPS file. Files must have one of the following extensions: .sbp, .oao, or .ubx. In addition, files in ubx format can have the “.txt” extension (for Openlog-based prototype devices).

GPS files can also be opened by drag and drop on the GPS Speedreader window (and, on Windows and MacOS, onto the application icon).

Open Recent

This submenu will show up to 5 recently opened files. The first time you run GPS Speedreader, it will be absent.

Compare files..

This option lets you compare 2 or more GPS files for the same session from different devices. Speedreader will keep showing the “Open” dialog until you press cancel to allow the selection of multiple files. All files will be trimmed to the latest start and earliest end point.

In the results table, results in each line are compared to the error range estimates. Any problems are highlighted with the following colors:
- Yellow indicates that the start of the given top results differs by more than one second between files. - Red indicates that the results differ by more than the combined error ranges. - Orange means both (start times differ and results differ significantly).

View results in browser

Opens a browser window with the results, which contains a button to submit session results to GPSTC.

Exporting data to Google Earth

GPS Speedreader can export data as .kmz files for visualization in Google Earth. On most computers, GPS Speedreader can also start Google Earth to open the created files.

GPS Speedreader supports a number of different color schemes (including the “Rainbow” color scheme that is similar to the default in GPS Visualizer), and can highlight the top speeds in user-defined colors.

To export a GPS file to Google Earth, open the file in Speedreader, and then choose “Export to Google Earth…” from the “File” menu. This will show a dialog with export options. If you do not want to see this dialog everytime, you can uncheck the “Show settings dialog before exporting” checkbox. The export settings dialog will then only be available from the “Settings” menu.


Opens a browser window to the online help. Requires an internet connection.

Tracks menu  

Delete from start

Deletes all points before the selected point(s). If you accidentally deleted too much, use the “Open recent” menu to re-open the file.

Delete to end

Deletes all points after the selected point(s). Useful when you forgot to turn the GPS off before driving home.

Settings menu  


Lets you select which columns are shown in the “data point table” on the top-left side of the main window.


Lets you choose which graph panels to show; set the time zone; and a few other more or less useful things.

Selecting the “Show expert menu items” check box will add a few menu items that are intended for experts only. One of these options lets you change thresholds for filters used to identify invalid data points. *Note that setting filter options to less stringent settings than default will disable the “Post session to the GPSTC web site” button!

About GPS Speedreader

Show the version, and the name(s) of open file(s).

Algorithm details  

The primary goals when developing the algorithms used in GPS Speedreader were accuracy and speed. Interestingly, the currently allowed programs for posting to GPSTC (GPSResults, GPS Action Replay, and have slightly different approaches in how to calculate the speed results. While results in the 2 second and 10 seconds categories generally are identical or almost identical, the results in the other categories sometime differ slightly. For example, a single missed point or a single point below the minimum speed limit can “invalidate” a nautical mile result in GPSResults, while the other programs will allow this result.

For GPS Speedreader, the algorithms were developed in close collaboration with GPSTC advisors, and the current implementation reflects.a consensus between the GPSTC advisors and the developer on what the most accurate and sensible implementation should be.


Identifying false “spikes” in GPS data is essential for accuracy. All GPS units will occasionally report artificially high speeds. In older GPS units, which calculated speeds from positional data, this problem was severe; windsurf sessions with positional “top speeds” above 100 knots are not uncommon. The use of Doppler-based speeds in modern GPS units has reduced this problem, but not eliminated it completely.

GPS Speedreader uses a variety of filters that are common in other GPS analysis software. Some of the thresholds are rate-dependent, with higher values for higher-rate (e.g. 5 Hz and 10 Hz) data. Changing filter settings should only be done by expert users, and therefore requires to enable the “Expert” menu items in the preferences.

When filters are used, the 2 second, 10 second, and 500 m categories do not allow any filtered points. For other GPSTC categories, the speed for filtered points will be set to 0.


The default setting for the minimum number of satellites is 5. Data points with fewer tracked satellites are unreliable. Modern u-blox based GPS units like the Motion GPS can usually track 15 or more satellites from 2 or 3 different GNSS systems; the most common cause of fewer satellites is that the GPS units is submerged in water, for example in a crash.

Error estimates  

The default maximum allowed error estimate (SDoP or sAcc) is 2.0 for 1-Hz data, and 4.0 for 5 Hz and higher data.


The maximum allowed acceleration is 4.0 m/second squared for 1 Hz data; 8.0 for 5 Hz data; and 16.0 for 10 Hz data.

Minimum speed  

The minimum speed filter differs from the other filters in its purpose: it is intended to suppress speed reading when the GPS is stationary, for example during breaks. The default threshold is 0.6 knots. The vast majority of readings from stationary GPS units is below 0.6 knots, while windsurfing even in minimal wind generally is faster than 1-2 knots.

Other programs use a default minimum speed of 5 knots. GPSResults uses 5 knots for all categories; GPS Action Replay Pro appears to use a 5 knot minimum only for the 1 hour results.

The minimum speed filter is the only filter that can be set to 0 without disabling the “Post session to the GPSTC web site” button on the browser results window.

Missing points  

Most GPS units will have missing points when the units do not have any GPS reception, for example during crashes. However, when recording at 5 Hz or higher rates, GPS units often miss single points in the middle of a speed run. Different analysis programs treat such missing points differently - sometimes not allowing any missing points in a top result, sometimes using the speed value from the next point for the missing point.

GPS Speedreader allows single missing points in data, as long as the recording rate is at least 2 Hz. The speed for a missing point will be interpolated as the average of the speed of the point before and the point after the missing point; this is the most accurate estimate of the likely speed at the missing point, in particular in phases of rapid acceleration. For example, assume that a point in 10 Hz data shows a time difference of 200 ms from the previous point instead of the expected 100 ms. If this point has a speed of 40 knots, and the preceding point had a speed of 38 knots, GPS Speedreader will interpolate the speed of the missing point as 39 knots.

Multiple single missing points are allowed, but two or more missing points in a row are not allowed. For example, if the time difference from a point to the preceding point in 10 Hz data is 300 ms, indicating that 2 points were missing, the speed of the missing points is set to 0. The rationale is that multiple missing points in a row generally are linked to loss of GPS reception, for example in a crash, or other similar serious issues.

One hour calculation  

When comparing GPS Speedreader results to results obtained with other GPS analysis software, it is quite likely that there will be small differences. Often, the results from GPS Speedreader will be slightly higher than the results from GPSResults or GPS Action Replay Pro, since both programs use a minimum speed filter of 5 knots by default (which can be turned off in GPSResults). In contrast, does not appear to use minimum speed filters, to it may report numbers that are marginally higher.

Occasionally, the results for the 1 hour category may vary by large amounts. One possible reason is that the session was shorter than 1 hour. In this case, GPS Speedreader will still give a result (dividing the distance sailed by one hour), while other programs tend to report a result of 0. Of course, the best results will always be obtained by sailing at least one hour - but sometimes, the wind drops, gear break, or life interferes.


GPS Speedreader calculates alpha 500 numbers with a gate width of 50 meters. The means the total length must be 500 meters or less, and the start and end of the alpha run must be at most 50 meters apart. In general, alphas have a jibe in the middle, since tacks are slower. GPS Speedreader requires a minimum length of 100 meters (twice the gate width) for alphas. Typically, the fastest alphas are closer to 500 meters, but occasionally, conditions or chance will lead to a shorter top alpha run.