GPS Logger for Android

Download our free software using the Google Play™ store app:


Find in this link the GitHub repository, free source available.

In this link application notes and tutorials by our users.

Video tutorial on youtube.

In this page we are going to describe the Basicairdata GPS Logger For Android, focusing on the main features and exposing some background technical aspects.

android-gps-logger_FIGURE_1

Figure 1 – The GPS Logger interface

GPS Logger is a simple App for taking track of your position and your path. You can record your trips, annotate your placemarks along the way, view your position, speed, altitude, direction, and many statistics about your trips. You can access anytime to your recorded tracks using the in-app Tracklist, view them with Google Earth (if installed) in one click, save and share them in GPX, KML, and TXT format.

BasicAirData GPS Logger features:

  • A new and revamped interface, using the new Toolbar and the modern Material concept, with a low battery consumption dark theme and a comfortable tabbed interface
  • Tracks recording, focused on accuracy, with an eye to power saving
  • Recording also in background
  • Placemarks creation, also meanwhile recording; You can add a description to each one
  • Visualization of current GPS information: position, altitude, speed, direction
  • Real time track statistics: duration, distance, maximum and average speed, altitude gap, and overall direction
  • In-app tracklist showing recorded tracks, with a little thumbnail and the statistics of each recorded track
  • Visualization of your tracks using Google Earth (if installed) directly from the Tracklist
  • Exportation (in the /GPSLogger folder of your device)
  • Direct sharing of the tracks in KML (Google Earth format), TXT (comma-separated values), and/or GPX (OpenStreetMap format), via E-mail, Dropbox, FTP, Telegram and so on, depending on the software installed on your smartphone
  • You can load the recorded tracks in Google Earth, in OpenStreetMap editor and in much other software or online services (like UTracks)
  • Compatible with Android 2.2+
  • Battery friendly (it can record continuously for hours)

In the app settings you can anytime:

  • android-gps-logger_FIGURE_2

    Figure 2 – Some settings

    Set the units of measurement of the entire app (Metric or Imperial), with an additional choice of speed units

  • Choose your preferred statistics base (total time or moving time-based)
  • Set the collecting density and the GPS update frequency
  • Activate the automatic EGM96 altitude correction (recommended!), based on NGA Earth Geoid Model. The first time you activate this features, the application will download the file containing the EGM Coefficients from the NGA website; file size approximatively 2 MB
  • Add a manual altitude offset
  • Choose the format for export and share your tracks

We want now to take focus on two of those features:

Automatic EGM96 Altitude Correction

The main and most interesting feature on which we focused is the correction of GPS altitude error. The main altitude measurement errors are due to the difference between the earth mean ellipsoid (the zero-reference of the GPS) and the real earth geoid. That difference depends on Latitude and Longitude.
There are many models that describe that geoid; the chosen one is the NGA/NASA EGM96, N=M=360 Earth Gravitational Model, described by the binary geoid height file hosted on the National Geospatial-Intelligence Agency site.

There are newer and more detailed geoid models than EGM96, but this one is accurate enough for smartphones; it contains a reasonable amount of freely loadable data, so this is the best suitable for Smartphone usage.

When The Binary EGM96 Automatic Correction is selected for the first time into the Setting Screen (See Figure 2) the geoid Heights binary file is downloaded from the NGA/NASA website. The size of that file is about 2 MB.

The GPS Logger software code is tailored for the format of this file. The file you downloaded is an unformatted direct access file.

The data is arranged in 721 arrays of 1440 records each. Arrays are ordered from north to south. Records are disposed from west to east starting at the prime meridian (0 E) and ending 15 arc-minutes west of the prime meridian (359.75 E). Data unit of measurement is the centimeter. The grid of 721 x 1440 values represents the distance from Ellipsoid and Earth Geoid, or geoid deviation, every 15 arc-minutes [1].

At every position fix, by means of a bi-linear interpolation, the application recalculates the correction value for the actual position.

To have a general idea of the correction dynamic we did some basic analysis of geoid heights file. The graph in figure 3 shows the output of this Scilab script (a parser that calculates the maximum gradient value of the whole grid) WW15MGH_max_grad.sce, that represents the area with the maximum gradient of the EGM96 grid.

That place (approx. 30 N, 80 E, situated on Himalaya Mountains) has a gradient value of:

    \[\mid\nabla\boldsymbol{h}\mid=\frac{974\ cm}{15\ arcsecond} \approx \frac {9.74\ m}{24000\ m} = 4.058e-4\]

android-gps-logger_FIGURE_3

Figure 3 – Area of maximum gradient of EGM96 grid

Let’s pretend that we’re logging with GPS Logger at 1 Hz on a car running at 90 km/h. Considering the previous gradient data then we should expect that our EGM96 correction value might change 1 m every 100 GPS samples (100 seconds).

The application applies a fine-grained correction value (calculated with the maximum precision), even if a coarsely discretized GPS measurement is used. In such a way the overall measurement uncertainty is minimized in a wide set of operating conditions.

Manual Altitude Correction

A lot of factors may influence the GPS signal; some of those are related to a single fix, or to a little group of them, whilst others might influence the entire track.

Typical sources of error are Ionospheric Delay Compensation, Tropospheric Delay Compensation, Receiver Noise and Resolution, Multipath, and Other User Segment Errors [2] (Pag.B-6).

A GPS signal, traveling from the satellite to a receiver, passes through the atmosphere, where different layers refract that signal in various ways. The first layer it encounters is the ionosphere. Then it undergoes a different kind of delay in the neutral atmosphere. Termed nondispersive because it is not frequency-dependent and thus cannot be easily eliminated, this neutral delay is caused by both the stratosphere and troposphere. Weather fronts are an important meteorological phenomenon that not only brings a change in weather but can also significantly disturb GPS signal. Because they occur in the troposphere, they leave their mark in the tropospheric propagation delay [3].

Furthermore, due to the nature of the GPS signal, cliffs, tall buildings, and trees may block the satellite signal. Rain, fog, and snow may also affect the signal quality.

Here at page 15 is reported in a very generalized and simplified way the influence of some GPS error sources.

The GPS Logger Manual Altitude Correction would be an additional (but non-fully comprehensive) instrument to try to manually compensate the overall altitude errors of your tracks due to weather conditions, building occlusions and all the unpredictable sources of overall delays.

You can find and change the Manual Correction in “Altitude Corrections” section of your app settings.

A final information about all the corrections described above:

All the altitude corrections are applied “on the fly” when the track is showed (in the GPS FIX and the TRACK tabs), exported, viewed or shared. The recording process only saves the raw altitude reads. Therefore you can freely activate/deactivate the EGM correction, or change the manual offset value, without disturbing the recording process or changing any stored value. You can besides check your track viewing it in Google Earth using different offsets and apply the right altitude correction before sharing and exporting your track.

Installation

You can install GPS Logger in many ways:

android-gps-logger_FIGURE_4

Figure 4 – QR-Code for GPS Logger installation

The application is available through Google Play™ store, use the QR-CODE here in Figure 4 to browse the store. If you enjoy using this app, please take a moment to rate and review it in the Google Store!

Alternatively, you can install the apk package by yourself.

At a glance, the installation consists of three steps:

  1. Download the package here
  2. Copy the latest apk file on your smartphone and
  3. Install it

The app has been developed using Android Studio under Linux Fedora.

It’s 100% free and Open Source. So you can freely download and install it, share it with your friends, and also view and download the source code here or contribute on GitHub.

The code is written in Java and commented by the author. If any doubt arises just ask.

How to contribute to improve GPS Logger

  • Contribute to develop the software, sending us your code proposal via GitHub
  • Join Us on Crowdin and help Us to translate the app in your Language
  • Send us a useful review, a bug reporting, or simply your suggestions and ideas
  • Rate and review this app on Google Play
  • Review it on your blog, share and Like on Social Medias
  • Talk about the application to your friends, contributing to enlarge the users base
android-gps-logger_FIGURE_5

Figure 5 – A city route. GPS Logger track shown in Google Earth

References

[1]
NGA, “EGM96 Worldwide 15 Minute Binary Geoid Height Data.” NGA, 20-Jun-2016 [Online]. Available: http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/binary/binarygeoid.html. [Accessed: 20-Jun-2016]
[2]
DoD, “GLOBAL POSITIONING SYSTEM STANDARD POSITIONING SERVICE PERFORMANCE STANDARD.” DoD, 20-Jun-2016 [Online]. Available: http://www.gps.gov/technical/ps/2008-SPS-performance-standard.pdf. [Accessed: 20-Jun-2016]
[3]
Thierry Gregorious and Geoffrey Blewitt, “GPS WORLD MAY 1998. INNOVATION.” gpsworld.may98, 20-Jun-2016 [Online]. Available: http://geodesy.unr.edu/publications/gpsworld.may98.pdf. [Accessed: 20-Jun-2016]
Share this: