bioneural.net site preferences

Accessibility

Toggle width/ text size:

style

Default/Alternate

Suits visual impairment, mobile devices

Styling

Change the theme:

layout

NB: may reduce functionality

Link behaviour

Links with an icon are off-site:

links

Right-click any link to optionally open in a new window or tab


 

Know your waypoints from your track points

Geotagging photos can be done manually or automatically. When using a GPS data logger in automatic mode your position at each point in time (intervals vary) is recorded as a track point. The collection of track points recorded during a logging session is called a track log. Some devices (e.g. GlobalSat DG-100, Holux M-241) feature a button for manual entry of a specific GPS location as a waypoint, which you can match to the corresponding photo(s) by hand. That all sounds pretty straight forward doesn't it? Well it's not, because some GPS devices can't tell their waypoints from their track points. Thankfully the aptly-named GPSBabel can translate us a way out of this misunderstanding for the DG-100, and an update to BT747 means you can now download waypoints from the M-241 to your Mac.

It's not merely a question of semantics

Contiguous track points illustrate a very clear path on a map: you can see exactly where you went and, at a pinch, use a pre-recorded track to follow in someone else's footsteps. What you can't do is readily identify particular locations, because when plotted on a map track points are indistinguishable from one another. Specific locations (waypoints) have a variety of uses, including manual geotagging of photos, mapping points-of-interest, indicating landmarks for direction-finding, or marking cache locations in geocaching.

If you're looking to providing instructions you want others to be able to follow, an ordered set of waypoints (describing a route) is what you need. Lets look at some simple examples with the help of RouteBuddy (reviewed here).

When your data logger is set to record track points automatically at an appropriate interval, display of your log results in a track that closely matches the path you took (e.g. a walking path not shown on a street map). Every wiggle corresponds to wiggles in the real world, and track analysis software like RouteBuddy or TrailRunner should report accurate statistics (total distance, average speed, etc.):

bioneuralnet-track-log.jpg
A curvaceous track log comprised of contiguous track points

Alternatively, you could manually record waypoints at certain locations—such as road crossings or indicating significant changes in direction. If your data logger/ software solution treats these waypoints as track points, your mapping software will attempt to join them together to form a faux track. However, as in the image below, the nuances of the path are completely lost, and the "track" is merely an approximation. Depending on the frequency at which you mark waypoints, any analysis you perform on the track could be inaccurate to a significant degree:

bioneuralnet-faux-track.jpg
An angular faux track (waypoints misrepresented as track points)

When waypoints are properly recognized they can be plotted on a map as non-contiguous labelled locations. In contrast to the above tracks where no point stands out from any other, you can associate clearly identifiable waypoints with specific notes or instructions. For example:

After crossing the bridge over the stream, make a left turn along the path at the T-junction (WPT004)

Exit from the path onto Ashgate Road, turning left so that the petrol station is on your right (WPT007)

bioneuralnet-waypoints.jpg
A non-contiguous ordered set of waypoints

I think you'll agree that the track points obtained from an automated log, and the manually-created waypoints do tell us different things. We can of course combine them—by simultaneously recording both—thus building as clear a picture as possible. In such a case a particular route can be both visualized and described:

bioneuralnet-combined.jpg
Combining a track log and waypoints

Both the GlobalSat DG-100 and Holux M-241 can record automatic track logs, and both can mark manual waypoints. The trouble is when you download the logs from either to your Mac, you might find that all you get are track points—regardless of whether they were recorded automatically or manually. Here's what you need to know for both devices.

Waypoint marking with the GlobalSat DG-100

LoadMyTracks allows Mac users to download data from GlobalSat's DG-100 logger (with either the Prolific or open-source PL2003 USB-to-serial drivers for OS X installed):

bioneuralnet-dg-100.jpg

The DG-100's power button doubles as a waypoint marker: press and release to mark a waypoint. However, as the documentation for GPSBabel notes:

While the DG-100 has a button to record waypoints, they seem to be indistinguishable from trackpoints. Therefore, all points will be presented as trackpoints, disregarding whether they were recorded automatically or manually.

Indeed, using LoadMyTracks 1.3.1 (GPSBabel isn't directly compatible with the DG-100 on Mac) manually recorded waypoints are not separately identified with <wpt> tags; track points and waypoints alike are unhelpfully identified by <trkpt> tags. For example:

<trkpt lat="53.24569667" lon="-1.442081667">
  <ele>110.000000</ele>
<time>2008-08-13T16:02:56Z</time>
</trkpt>

Original GlobalSat sample (1KB .gpx)

Here's the same location formatted as a waypoint, after conversion using the procedure below:

<wpt lat="53.245696670" lon="-1.442081667">
  <ele>110.000000</ele>
<time>2008-08-13T16:02:56Z</time>
  <name>WPT001</name>
  <cmt>WPT001</cmt>
  <desc>WPT001</desc>
</wpt>

Converted GlobalSat sample (2KB .gpx)

Pending a firmware update from GlobalSat the only workaround I could conceive follows.

One-time preparation:

  1. On OS X download and install the contents of the GPSBabel+ .dmg to /Applications/GPSBabel/;
  2. Borrow a PC and install the Windows drivers and Data Logger PC Utility (download here);
  3. Using the Data Logger PC Utility set Mode C to disable track point recording if the distance travelled is less than 50000m (effectively turning off automatic track logging in that mode for activities over distances of less than 50km).

For each activity:

  1. Perform your activity with the device set to Mode C, briefly pushing the power button when you want to record a waypoint;
  2. Acquire the GPX log via LoadMyTracks and save a copy to your OS X Desktop as trkpt.gpx;
  3. Open Terminal.app (in /Applications/Utilities/) and in accordance with these data filter commands open gpsbabel (CLI, not the GUI) to transform your track points into "proper" waypoints (substitute your own OS X username):
/Applications/GPSBabel/gpsbabel -i gpx -f /Users/bruce/Desktop/trkpt.gpx -x transform,wpt=trk,del=y -o gpx -F /Users/bruce/Desktop/wpt.gpx
  1. Open the output file wpt.gpx for use in a geotagging app like GPSPhotoLinker, which will now list the auto-numbered waypoints in manual mode:

bioneuralnet-waypoints.jpg

The resulting file can also be used to import waypoints into RouteBuddy and similar apps (as per the examples above).

You can disable automatic track point recording in all modes by speed (up 1000kph) or distance (up to 50000m) using filters. However, the advantage of setting a ridiculous interval (by time up to 6000sec, or distance) for just the one mode is that you can use Mode A for automatic geotagging at 10sec intervals, and preserve Mode C for waypoint marking (for example).

Note that it is possible to switch between modes "on the fly" without restarting the logger, but your waypoints become difficult to distinguish from your track points. However, every time you power off then restart logger, a new track segment is created in the log. Thus, powering off and switching modes prior to restarting the device should help you differentiate which track segments are for track points and which are really containing waypoints. Unfortunately I know of no way to identify waypoints against a background of track points simultaneously recorded by the DG-100 in the same mode and downloaded to Mac via LoadMyTracks.

Waypoint marking with the Holux M-241

The open-sourced BT747 is a Java application that allows Mac users to download data from the Holux M-241 data logger (no additional drivers are required as Bluetooth pairing is handled by OS X):

bioneuralnet-m-241.jpg

Note: Support for the M-241 was recently added to GPSBabel, but only via USB connections (which you can get working in OS X). Version 1.3.6 is in beta as of this writing.

When the built-in display on the M-241 is in Show Position Mode (displaying current GPS coordinates), pushing the Enter button records a waypoint. Using BT747 prior to v1.48 for data acquisition would result in logs containing track points only—when they should have contained waypoints as well. As with the DG-100, if we were recording only waypoints (i.e. automatic logging off) we could use GPSBabel via the command line to transform these data from an old BT747 version into a proper waypoint format:

Original Holux sample (1KB .gpx)

Converted Holux output (1KB .gpx)

A workaround for recording track points and waypoints simultaneously had also evolved. If you set the M-241 to record track points every second (from firmware 1.11, as visible in Settings on the display), pushing the waypoint button would create two track points with duplicate time stamps (one for the track point, one representing the waypoint). You couldn't tell which was which in the GPX log produced by earlier versions of BT747:

<trkpt lat="53.32880020" lon="-1.65503824" >
<time>2008-08-25T09:42:48Z</time>
<ele>154.172</ele>
<name>trkpt-2008-08-25T09:42:48Z</name>
<cmt><![CDATA[,,,]]></cmt>
</trkpt>
<trkpt lat="53.32880020" lon="-1.65503597" >
<time>2008-08-25T09:42:48Z</time>
<ele>154.281</ele>
<name>trkpt-2008-08-25T09:42:48Z</name>
<cmt><![CDATA[,,,]]></cmt>
</trkpt>

Enrico Zini wrote a Python script to parse the log and detect such duplicates, marking them as waypoints using the correct GPX syntax. This hack was promptly superseded, however, by the emergence of MTKBabel, a GPSBabel derivative able to distinguish M-241 waypoints from track points by spotting differences in the native log format (from version 0.7). I was however unable to get it working to connect with the M-241 via Bluetooth under OS X.

Luckily MTKBabel isn't needed, as cross-fertilization of code with BT747 has resulted in a Mac-compatible one-stop solution for downloading logs and converting to GPX while distinguishing waypoints from track points. Here is an excerpt from a log produced with BT747 1.54.1:

<wpt lat="53.32881546" lon="-1.65502560" >
<ele>155.996</ele>
<time>2008-08-25T09:42:55Z</time>
<name>wpt-2008-08-25T09:42:55Z</name>
</wpt>

<trkpt lat="53.32881546" lon="-1.65502560" >
<ele>155.996</ele>
<time>2008-08-25T09:42:55Z</time>
<name>trkpt-2008-08-25T09:42:55Z</name>
</trkpt>

Holux output (178KB .gpx .zip)

Importing this log into RouteBuddy confirms the presence of both waypoints (matching route instructions in the guide book) and track points:

bioneuralnet-hathersage.jpg
A 3h walk over Eyam Moor from Hathersage (displayed in RouteBuddy)

The one device and the one log can thus provide for both automated and manual geotagging of photos in GPSPhotoLinker:

bioneuralnet-wpt-trkpt.jpg
13 waypoints, 10,938 track points, 1 file (GPSPhotoLinker)

1 response to Know your waypoints from your track points


  1. 1 Peter Evans

    I learned a lot from this entry. I won't be mixing my way points and track points in future :-)

    Thanks for that.

Something to say?

Comments may be moderated, are subject to spam filtering, and should be inoffensive and relevant to this post. Please disclose commercial interests.

Usable tags include <a href=""> <blockquote> <em>.