|  |  | Tracks

## Tracks

A track has a datum for all its points, a colour and a width (in pixels) used in displaying it on the map. The colour will be sent to the GPS receivers supporting it, in which process a colour matching algorithm will be applied if the original colour is not in the set of colours accepted by the receiver. Any colour matching algorithm may give unexpected results and the one used in GPSMan is no exception.

A map background image name can be given for each track, so that when the track is displayed on the map window the named image is automatically loaded if the map is empty. See below for the details.

Each track point has the following information: time stamp, position (always shown in the DMS format), altitude and depth in either metres or feet, depending on the existing option for this.

A track can be subdivided into segments by some receivers at points in which the GPS fix was lost. The first track point always starts a segment, and any other track point can be marked as a segment starter from the track edit window by using the mouse right-button on the last column of the points list. When displaying a track with segments on the map, the segments will not be connected.

The edit window for tracks allows some operations on tracks that may be useful to clean uninteresting start or end parts of a track, or to compose a single track from several others. They are:

- "Chop head": all track points from the first to and including the first one selected are deleted; if there is no selection the first track point is deleted;
- "Chop tail": all track points from and including the last one selected to the last are deleted; if there is no selection the last track point is deleted;
- "Include before", or "Append": the track points of another track are put before the first, or after the last track point. To ensure sensible values for speed between track points, their dates may have to be changed. GPSMan will show the distance between the last point in the first track to the first point in the second and will propose a new date for this one. This date is computed assuming a constant speed and may be changed by the user. All dates in the second track will be adjusted according to the chosen date, keeping the original differences;
- "Delete": deletes all selected track points.

The computation results are the following

- for each point: point number, time stamp, latitude (DMS), longitude (DMS), altitude in the unit selected by the user, distance to next point, cumulative distance to next point, time to next point, speed in the line to the next point and bearing to the next point.

- total distance and time.

- total distance and time without considering gaps between segments, only shown if different from the previous ones.

- average speed (not considering gaps), distance from first to last point, maximum distance from first point to any track point.

- if altitude information is available, cummulative ascent and descent (only if consistent with the selected altitude threshold), and maximum and minimum altitudes.

- from the `More` menu-button other results can be obtained: estimated times for a hiking trail according to the Deutscher Alpenverein formulas, and rest periods.

An elevation graph for a track can be plotted, as a side-view or a perspective, from the track computation window if there are at least 3 track points with a valid altitude field. They are similar to the elevation graphs for routes, although the side-view graph can be plotted against time instead of total distance if there is valid time information. Another difference is that gaps between segments are shown as interrupted lines.

Elevation graphs by `gnuplot` can also be obtained from the same window if `gnuplot` is available and there are at least 3 track points with a valid altitude field. In Linux/Unix systems the perspective (3D) graph also needs that the user option giving the operating system command to open a terminal (command-line) window is defined (not empty).

Parameters are first selected and if waypoints are to be displayed in the graph, a group with waypoints must be selected; cancelling this selection means no waypoints are required. The graph images are written to a file in the current directory whose name is one of the parameters; if the file exists it will be silently overwritten.

For the side-view (2D) graph the parameters define how some values (total values, rest periods, time, speed) should appear, the output file, the maximum/minimum distance from the track that a waypoint should be to be displayed in the graph, and the graph dimensions in pixels. For efficiency, distances of waypoints to the track are computed in a inaccurate way. If the `Img` Tcl/Tk library is available the graph will be displayed in a GPSMan window. Otherwise if the user option giving the operating system command to display an image file is defined (not empty) this command is executed to display the graph.

The perspective (3D) graph has parameters for the direction in which to take the track, the output file and the graph dimensions in pixels. Selecting a group with waypoints makes all of them to be displayed irrespective of their distance to the track. After these steps `gnuplot` is run to display the graph allowing for it to be changed: the mouse left-button rotates it and the middle-button changes the altitude scale. Exiting normally from `gnuplot` will make it write the image to the output file and finish. In Linux/Unix systems a terminal window is used to run `gnuplot`; a Return (or Enter) key on it makes `gnuplot` exit normally while an interrupt (usually Control-c) or destroying the window will abort the operation.

A speed graph for a track can be plotted from the track computation window if there are at least 3 track points with valid time information. It is similar to the side-view elevation graph and can also be plotted against time instead of total distance, but does not answer to `Control` key plus mouse left-button.

A climb rate graph for a track can be plotted from the track computation window if there are at least 3 track points with valid time information. The graph is plotted against time, the vertical units being (user selected) altitude unit per second. If there is enough points a noise-reducing filter, kindly provided by Paul Scorer, is applied to the data.

Creating a waypoint from a track point can be done by double clicking with the mouse left-button on a track point listed in a track window. This will open, for edition, a new waypoint having the same coordinates unless there is already a waypoint being edited. If the track is currently on the map the number of each track point together with the track name will appear in the help balloon when the cursor is over the point.

A waypoint with average coordinates can be created from a track window. Its latitude, longitude and altitude will be computed as the averages of the latitudes, longitudes and altitudes of the track points. This will be useful for obtaining more precise coordinates for a waypoint by recording a track with the receiver standing still.

A track can be splitted by taking either each selected track point or segment starter as the first point of a new track extending up to and excluding the next such point. Tracks with at least two points obtained in this way are created, as well as a group with all of them. These new tracks inherit the datum, segments (unless when splitting by segment starters), width, colour and map background of the original track but hidden information is discarded. They and the new group get names generated automatically. The original track is not affected by this operation.

A track can be converted into other sorts of line items by a simplifying algorithm that keeps a certain number of the track points as points of the new line, which can be a route, another track, or a polyline. When converting to a polyline information on segments is only used if all the points are kept.

The algorithm that was developed for this may be seen as a variant of the Douglas-Peucker algorithm for finding critical points in polylines (see, e.g., [Heckbert and Garland, 1997] or [Li, 1995]). It starts from a straight line between the first and the last track points; if the number of points to keep is greater than 2, any point that stands furthest from the line will be retained, and the line is replaced by two new lines, those from the first to the new point and from it to the last one. This procedure is repeated always replacing one of the lines for which the distance to an intermediate point is maximum. The review of [Heckbert and Garland, 1997] describes an algorithm by Ballard and Brown (published in 1982) that seems to be very close to this one.

The sequence available here shows examples of routes with 3, 6, 11, 15 and 31 waypoints obtained from a track having 739 track points.

Although GPSMan lets the user fix the number of points to keep between 2 and the number of track points, there is a maximum number of points per route depending on the GPS receiver. It should also be noted that the time needed to find the simplified line will increase significantly with the number of points (although keeping all the track points will take only the time to create the new item).

So that a choice may be made between different numbers of points, GPSMan may be asked to display the simplified line and also the original track on the map on the fly. When the user clicks the `Ok` button, the map will be restored, the simplified line is used in forming a new item (in the case of a route, with new waypoints having names of the form `ZT` n, with n a 4-digit integer), and an edit window will be opened for editing the new item. If the edit window for the item type was already in use, then the item is created under an automatically generated name. For a route GPSMan will create a new group with all the new waypoints for easier access.

An animation of the movement corresponding to a track can be viewed in the map window (`Animation` button in the track edit/show window). A control window will appear that allows for (re-)starting, pausing, or aborting the animation, for skipping to the next track point, for setting the speed (the scale changes are exponential), and for choosing whether the last point shown will be centred on the map window. The default speed is that in the track: the delay between the presentation of two consecutive points is the difference between their time stamps. If a time stamp is not defined the default delay is 30 seconds. The state of the animation, the total (real) time since the beginning (if defined), the time stamp (if defined) and total distance along the track are displayed.

A track can be created from a route or a polyline from the route window or the polyline window.

|  |  | Tracks