Managing GPS data with ActivityDiary

Roadbook


ActivityDiary creates a handy digital diary by mapping your workout and route GPS data.

By Tom Patzig

Galyna Andrushko, 123RF

Where exactly did today's hike take you? What distance do you jog every morning? How many miles have you put behind you since you left training camp? If these or similar questions sound familiar, you are not a newcomer to the topic of GPS in training programs.

In today's age of mobile navigation, many devices either include a GPS module or can have a receiver added without much difficulty. Besides navigation to specific target points, the accompanying software typically lets you collect the data in a kind of digital diary and add your own details.

However, tools for evaluating or managing routes are still fairly rare. Individual websites [1] or programs (such as Google Earth, Marble) will let you visualize routes you have mapped by GPS data, but they do not allow you to manage or analyze multiple routes. Functions for saving user-definable details, such as route descriptions, weather, surface conditions, and photos, would also be useful. And if you actually need to visualize and manage routes on the move, you need a solution that works offline - which is where ActivityDiary [2] enters the picture.

The developers of ActivityDiary, a digital diary that helps visualize and manage training programs, came up with the idea for the program while out cycling. Besides their speedometers and pulse monitors, they also had a cellphone with GPS functionality. When they got home, they discovered that they needed several tools to analyze the three different types of route data: speed, pulse, and geodetic details. What they really wanted was a program that would visualize and manage all of this data - a program that would archive route data centrally and allow them to look back a couple of days, weeks, or months to view older route data. It would let users store the route information they needed independently of their choice of sport or activity. This was the birth of the idea behind ActivityDiary.

Installing ActivityDiary

To install ActivityDiary, download the source code tarball from the project website and unpack the archive. Now change to the directory created by this step, activitydiary-0.2, and build the program according to the instructions in the INSTALL file. ActivityDiary has dependencies for Qt4 and the Qt Widgets for Technical Applications [3]. OpenSUSE users can use the one-click installer on the project homepage instead.

GPS Diary

An activity can comprise GPS and route data, user-defined additional information, and pulse data that you can import from heart rate monitors by Polar. To do so, you need to store the data in HRM (Heart Rate Monitor) format. To access HRM data on your Polar monitor, you need the s710 [4] tool.

The GPS data must be available in the GPS exchange format, GPX. This widespread format describes a route from a collection of waypoints acquired at intervals of multiple seconds. Each waypoint has several properties, such as longitude and latitude, time, and altitude. ActivityDiary reads the waypoints and their properties and stores them in a list, which you can later use to calculate your route length and speed.

For activities in which you did not have a GPS device, ActivityDiary lets you draw the route manually on a map. To do so, double-click to set new waypoints on the map, and connect them with the previous waypoints. ActivityDiary will show you the current position on the route you are creating; it does this by converting the mouse position into longitude and latitude values.

To add user-defined details (e.g., the activity name and type, the route profile and quality, an evaluation of the route and weather, a route description), you can use the controls in the GUI. Future versions of the program will also let you add activity-related photos. ActivityDiary stores any additional information you enter in the program directory in a single file per route.

Interface

When you launch ActivityDiary, you will immediately notice the large map view at the center of the screen (Figure 1). By dragging the mouse to any position on the globe, you can adjust the dynamic world map view. The program automatically downloads any maps it does not have from OpenStreetMap [5] as a background task and inserts them into the current view.

Figure 1: After launching ActivityDiary, you can navigate the dynamic world map view by dragging your mouse anywhere on the globe.

The program supports any zoom level. Once loaded, maps are cached in the program directory where they are available for offline use.

Below the map view, you will find the diagram area. Here, ActivityDiary shows you a line graph of your speed, altitude, and pulse data relative to the total route time. Left of this are controls that let you enter user-definable information for your routes. The right-hand side is reserved for calendar functions. If necessary, you can hide both sides for a full-screen view of the map.

Selecting an individual day in the calendar tells ActivityDiary to look for activities that occurred in the matching week. The activities then appear in the week view, and you can click to load the routes ActivityDiary finds. Below the week view is a weekly summary that gives you details of your total activities for the week in question. On the basis of the total time and distance, this gives you an overview at a glance of how hard you worked out in the week in question (Figure 2).

Figure 2: ActivityDiary with an activity loaded. Users can load and edit routes they have entered via the calendar.

Above the calendar view is the rapid access feature that lets you jump to the next or previous activity on the basis of the current selection.

Creating Routes

To create a new activity, select New Activity... in the menu. A wizard (Figure 3) then guides you through the process by asking you to enter a name and a start point for the route data (GPS in GPX format or a manual entry on the map); optionally, you can define a file with pulse information. If you opted for a GPS file, the map view will automatically show you the right coordinates after loading the file and select the right zoom level to display the whole of the route on the map. ActivityDiary uses color to highlight the route on the map, as well as show you the start and finish points.

Figure 3: The new activity wizard lets you choose between importing GPS data and creating the route manually.

The program also automatically evaluates the speed and altitude information and creates a line graph. If you used the wizard to define pulse information in HRM format, ActivityDiary will import this data and add it to the chart (Figure 4). Selection lists let you hide or display the various chart types. If you opt to enter the route data manually, ActivityDiary toggles the map to edit mode when you quit the wizard. Now you can double-click the map to add waypoints to your route. The distance display for the route is updated for each new waypoint. Saving the map quits edit mode.

Figure 4: If you used the wizard to define pulse information in the HRM format, ActivityDiary will import this data and add it to the appropriate activity in the chart.

Evaluation

On the left-hand side, the program now gives you the details of the route, such as the starting time, duration, distance, average speed, and altitude (Figure 5). If you need detailed information about a specific part of the route, rather than for the whole route, you can right-click and use the drop-down menu functions to move the starting and finishing points of your route to match the section you are interested in. ActivityDiary then automatically updates the chart and the route details, giving you information on the selected section.

Figure 5: From the GPS data, ActivityDiary automatically creates an altitude and speed chart. On the left you can see the details of the visible route.

The activity type - which is shown as an icon in the calendar - the activity name, and all user-defined information for the current route can be entered and edited on the left.

After storing all the information you need, save the data in your diary via the menu, or by pressing Ctrl+S. Then you can use the calendar to find the activity in the matching calendar week and load and edit the activity via the calendar at a later date (Figure 6).

Figure 6: If you do not have GPS data, you can enter the route manually. The calendar shows your overall activities in a weekly view.

The Future

ActivityDiary is an open source project that is still at an early stage of development. The programmers still need to complete some of the useful features on their roadmap, and others need some polishing.

For example, it should be possible to configure the user-defined fields for additional information via a menu; this would let users customize the program to suit their needs.

In addition, it would be useful to enhance the way the map view and charts work together so that selecting a value or a range in the chart would highlight the matching waypoints on the map.Some work also needs to be done on the pulse data display. The program currently relies on time as the basis for integrating pulse and GPS data so that you can see exactly which climb caused a high pulse rate.

On a positive note, ActivityDiary is a stable, platform-independent, and easy-to-use program that visualizes and manages GPS data in a digital diary. Even if you don't have GPS information for a route, ActivityDiary gives you the option of editing a route manually to cover all of your workouts. And entering multiple-day training camps or treks that you can then evaluate whenever you like is easy. The combination of geodetic information and pulse data is a new approach to analysis.

Conclusions

The programmers are not short on ideas for extending the program. For example, they can imagine people exchanging stored routes via a web resource to let other people know what they have been up to in their training or to plan joint activities. The ability to export routes created manually in map view, which would allow users to trace routes with their GPS devices, also seems useful. The programmers welcome feedback. If you have any other ideas or suggestions, would like to report a bug, or just want to download ActivityDiary, visit the project website.

INFO
[1] GPSies: http://gpsies.com
[2] ActivityDiary: http://activitydiary.org
[3] Qwt Project: http://qwt.sourceforge.net
[4] s710: http://code.google.com/p/s710/
[5] OpenStreetMap: http://openstreetmap.org
THE AUTHOR

Tom Patzig is a Linux system administrator and a keen KDE/Qt developer in his free time. Besides working with open source software, Tom spends his leisure time cycling, running, or participating in other leisure activities