Test our new, unpublished beta pro app! contribute to maintain our free open source app!

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

Main Links

Introduction

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 recording 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 in your preferred external viewer (it must be installed) in one click, save and share them in GPX, KML, and TXT format in many ways.

BasicAirData GPS Logger features:

  • Track recording – the app has no integrated maps
  • A modern UI with a low consumption dark theme and a tabbed interface
  • Foreground & background recording (On Android 6+ please turn off all battery monitoring and optimizations for this app)
  • Placemark creation also while recording
  • Visualization of GPS information
  • Manual altitude correction (adding an overall offset)
  • Automatic altitude correction based on NGA EGM96 Earth Geoid Model (must be enabled in the settings)
  • Real time track statistics
  • In-app tracklist showing the list of recorded tracks
  • Visualization of your tracks using any installed KML/GPX viewer, directly from the tracklist
  • Track export in the /GPSLogger folder of your device, in KML, GPX, and TXT
  • Track sharing, in KML, GPX, and TXT format, via E-mail, Dropbox, Google Drive, FTP, …
  • Uses metric, imperial, or nautical units

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; file size approximatively 2 MB. If your device is unable to download the EGM file (due for example to a lack of internet connectivity), you can manually enable the altitude correction by following this simple guide.
  • 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 OSGeo.org 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 on GitHub
  • Rate and review this app on the app store
  • 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: https://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: https://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: https://geodesy.unr.edu/publications/gpsworld.may98.pdf. [Accessed: 20-Jun-2016]

0 Comments

Leave a Reply

Avatar placeholder