GPS Speedreader Help

GPS Speedreader Help


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;
  • .gpy files from ESP32 loggers;
  • .oao files from Motion GPS units and DIY loggers;
  • .ubx files from u-blox base prototypes and the Motion GPS;
  • .fit files from Garmin, Coros, and similar watches;
  • .gpx files.

Speedreader does not support other file formats not listed above. Please note that files in .fit and .gpx format typically do not contain all the information required for accurate analysis (for example error estimates), and cannot be used for submission to the GPS Team Challenge.

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. For files that do not contain error estimates or the number of satellites used, the “Submit” button will be disabled, since GPSTC postings require that posted tracks contain these data. Similarly, the “Submit” button will be disabled if the filter settings were changed to less stringent values than the default settings; when the original data did not contain “doppler” speed; and when the original file was in .gpx format.

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.

In the tracks panel, pressing the “Alt” key while dragging measures distances (Linux users may need to press alt and shift, or alt and another function key, while dragging).

Zooming in graphs can be done with the mouse wheel (or trackpad gestures), or with the sliders that appear in the top-left of the panels when the mouse is over a panel.

Help by menu  

File menu  


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

If more than one GPS file is selected, and the files cover the same time, GPS Speedreader will offer to create an “intelligent average” track.This will use the average speed at each point whenever the different files have similar speed accuracy estimates. For points where one of the files has significantly worse error estimates, the lower quality data will be ignored. For posting to GPSTC, the results of the “intelligent average” track will be used. Note that “intelligent averages” can not be created from files that use different sample rates (e.g. GT31 and Motion files). Furthermore, file sizes must be similar when using “Open” to select files. To create averages from files that differ significantly in size (but have the same data rate), use the “Compare files” option.

In addition to GPS files, Speedreader can also import background map definition files that were previously exported by GPS Speedreader in .srmp format. This requires that an image file (typicallyu in .jpg format) with the name defined in the .srmp file is in the same folder as the map definition (.srmp) file. GPS Speedreader can also open ZIP files that contain multiple map definition files along with the corresponding image files.

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.

Combine files..

Lets you combine two or more files from a single day into one session, for example if you turned your GPS off while taking breaks. The “Open” dialog will be shown repeatedly (up to 6 times) to select the files until you press “Cancel”.

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).

When two files with exactly the same number of points, and either different file extensions or very similar file names (the first characters must be identical), are compared, a point-by-point comparison is done of all data items used for analysis (doppler speed, date and time, speed error, position, and so on).

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.

Save tracks..

Lets you export tracks to files in compact GNSS (.gpy) or Locosys (.sbp) binary format. Useful after trimming or combining files, for example to upload the files to a web site like ka72, or if you want to re-open the file later. Note that the .gpy format is currently (December 2022) not supported by other programs and web sites, and that exporting data from u-blox GPS devices like the ESP logger or Motion devices in .sbp format can lead to a slight loss of precision. The default format for exporting it .gpy. To export in .sbp format, change the file extension to “.sbp” in the “Save” dialog.


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

Tracks menu  

Erase filtered speeds

Deletes all “bad” points in your track that have triggered quality filters. This is useful to remove spikes from crashes and other artifacts.

Delete selection

Deletes all points selected point(s), setting their speed to zero. Can be useful to remove artifacts, for example spikes during swim sessions.

Crop to selection

Deletes all points before and after the currently selected region.

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.

View menu  

Message window

Show the “Message” window (or brings it to the foreground), which contains information about the GPS files you opened, and other information that can be useful at times.

Polar plot

Opens a separate window with a “butterfly diagram” that shows the speed at different angles to the wind. If the wind direction that GPS Speedreader deducted is not correct, it can be adjusted with the slider at the top of the window. A popup menu enables the adjustment of graph transparencies and dot sizes. Horizontal lines can be shown to indicate VMG. Hovering with the mouse will also show VMG, and angle to the wind.

Show sorted speeds

The “Show sorted speeds” menu item opens a window that gives an overview of the speeds in a session by displaying sorted speeds. This can be useful to quickly get an idea what percentage of the time in a session was spend planing (or foiling). The sorted speeds window can also be helpful to compare speeds in two different sessions, for example from different sailors or when using different gear.

The sorted speeds graph can ignore speeds below a user-settable threshold. The default value of 1 knot can be reduced to 0 knots to include all points in a track, or increased, using either the slider in the top left of the window, or the popup menu.

Turn analysis

The “Turn analysis” menu item opens a new window with detailed information about jibes and tacks in a session. It shows the maximum speed in the approach and exit legs (using a 50-meter area), the minimum speed in the turn, the percentage of speed kept, the estimated width of the turn, and the side (port or starboard). Summary information is displayed on top, showing how many turns were cleanly plained or foiled through (i.e. had a minimum speed of at least 9 knots), how many turns were decent (minimum speed of 5 knots), and how many turns were dry (minimum speed above 1 knot).

The turn analysis table can be sorted by clicking on the column headers. At the bottom, you can select to see only jibes, only tacks, or both jibes and tacks.

Show full tracks

When selected, the entire track is shown in the “Tracks” panel.

Show partial tracks

When selected, only a part of the track in shown in the “Tracks” panel. This always includes all selected points, and may also include additional points on both sides. The number of data points shown can be set in the “Preferences” dialog (in the “Settings” menu). Note that if this is selected and you open a new file, you may not see anything in the tracks panel, since GPS files often start with a stationary period.

Show alpha proximity circles

When selected, GPS Speedreader draws circles that are 30, 40, 50, 60, and 70 meters in radius, centered around the first selected point. This is useful to see how wide your alpha attempts were, especially if you select an alpha in the results table.

Create map from JPG..

This allows you to define maps that GPS Speedreader can use as background for your tracks. This typically starts by exporting a map as a JPG file from Google Earth (or Maps, or a similar program). Make sure that north is straight up in the map! It also helps if the map has a scale that we can use later. Save the map file at a location where you will store all the maps, for example a “Maps” folder in your “Documents” folder. When you choose “Create map from JPG”, first select the JPG file, and then align the GPS track using a combination of dragging the track with the mouse, zooming in and out, and resizing the window. You can use alt-dragging (press the alt key while dragging with the mouse) to measure distances, which you can compare to the scale in your image to verify that you have the correct zoom factor. Creating a new map is an iterative process, typically starting with aligning the start of your track, adjusting the zoom, realigning, and so on. When you are happy with the alignment, choose the “Save map” option so that GPS Speedreader can use this map in the future again.

Save map

After creating a new background map, this saves the information about the scaling and offsets so that the map can be used for future sessions from the same spot. Note that the image file you used must remain at the same location so that GPS Speedreader can find it!! Maps are saved by the name of the image file. If you define a map again for a map file with the same name, the previous information will be overwritten. This can be useful if you need to refine the alignment of a map. In addition to saving the maps to settings, GPS Speedreader also will create a text file that contains the latitude and longitude coordinates of the top left and bottom right corners of the image file. The file will have the extension “.srmp” (“SpeedReaderMaP”) and will be saved in the folder where the image file is located. To share multiple maps with other GPS Speedreader users, the .srmp and image files for multiple maps can be packaged in a ZIP file, which can then be opened from GPS Speedreader to import the maps.

Clear map

If a background map is currently used, this will remove it, and the current GPS tracks will be drawn on white or colored background again.

Forget map..

Shows a dialog where you can tell GPS Speedreader to “forget” old or outdated maps. Maps where the image file cannot be found because it has been moved or deleted will be shown on top of the pulldown menu, with a “file missing” comment. Using this option to “forget” a map only removes the alignment information from the preferences, but does not delete the original image file.

Select map..

Shows a dialog where you can select a map from a list of maps previously defined using “Create map from JPG” and “Save map”.

Load defined maps automatically

When selected, GPS Speedreader will try to find a background map for a GPS track whenever you open a new GPS file. If no defined map is found that overlaps at least partially with the rectangle defined by the track coordinates, no map will be loaded. If multiple maps cover the track, the map that covers the largest part of the track will be chosen (in case of ties, the map that covers a smaller overall area, since it is likely to have better resolution).

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!

KML Export Settings

This lets you choose several options when exporting tracks to KML files for display in Google Earth, for example the color scheme used. Typically, KML files are saved to temporary files that will be deleted automatically, but you can also choose to instead see a “Save” dialog where you can choose the name and location of the exported files.

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) is 2.0 for 1-Hz data, and 4.0 for 5 Hz and higher data. For data from u-blox based GPS units (in .aoa or .ubx format), the default maximum allowed error estimate (sAcc) is 1.2.


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. Alphas are allowed to partially overlap with faster alphas, as long as the different alphas contain different jibes. Specifically, overlapping alphas can share up to half of the points. This does not affect the calculation of the fastest alpha, so it does not affect GPSTC postings. However, it can simplify comparison of additional alpha results from multiple GPS units when some of the runs separating jibes are shorter than 500 meters.