Thursday, August 7, 2014

New Release, BasicAirData GPSLogger for Android


We have just released a new update of the BasicAirData GPS Logger For Android.
GPS Logger is a simple App for taking track of your position and path, it features:
  • Visualization of GPS position, altitude and speed
  • Recording of tracks in KML and GPX format; you can watch them on Google Earth (also on the smartphone) and on Openstreetmap. Files are saved into /GPSLogger folder on your phone
  • You can use tracks recorded in Openstreetmap editor
  • Compatible with Android 2.2+
  • Battery Frendly (it can record continuously for hours)
In the last article we have already described the features above; this article describes the main changes and the new features included in this update.

Figure 1.The new GPS Logger interface

New functions highlights
  • New and revamped interface, using the ActionBar widgets and the modern Holo Dark Android theme
  • Automatic altitude correction, based on NGA EGM96 Earth Geoid Model
  • Possibility to add Placemarks, with custom label, also while logging tracks
  • More customizable settings for visualization of Altitude and Coordinates   
Let's focus on two of these features. 


Automatic altitude Correction


The main and most interesting feature on which we focused is the correction of GPS altitude error. Recalling the previous article in this link, measurement errors are due to the difference between the earth mean ellipsoid (the zero-reference of the GPS) and the real earth geoid.

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 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 Height file is downloaded from the NGA/NASA website. The size of that file is about 2 MB.



Figure 2.  Enabling EGM96 Correction for the first time


The 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.

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=974 cm / 15 arc-second = 9.74 m / 24000 m = 4.058e-4$$
That means than correction value may change at least 1 cm every 24 m.


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 at every single GPS sample.

The application minimum correction value is then chose to be constant and equal to 1 cm, even if a coarse discretized GPS measurement is used. In such a way the overall measurement uncertainty is minimized in a wide set of operating conditions.

Placemark creation

The last feature we describe here is the placemark creation.
It is accessible from the placemark icon on the actionbar, it allows to mark the succeeding fix with a mark symbol upon map and to specify a label that describes it. That function is useful to remember special locations during your path, or to write some information during mapping (by instance for Openstreetmap contribution). Alternatively you can dictate the description with Google Vocal Dictation.
It is possible to record a placemark during track recording, and also in while in pause.

Figure 4 Placemark creation, to add info on OpenStreetMap

 Installation of the app is straightforward, you may find detailed information here.

At a glance, the installation consist in three steps.
  1. Download the package here
  2. Copy the GPSLogger.apk file on your cellphone SD card and
  3. Install it.
Alternatively you can use the QR-CODE here below.

Figure 5. QR-Code for GPS Logger application download

The app have been developed using Android Studio under Fedora 19.
It's 100% free and Open Source. So you can freely download and install it, share it with your friends, and also download the whole package containing the source code in this link. The code is written in Java and commented by the author. If any doubt arise just ask.


Figure 6. A long mountain route. Data from GPS Logger shown in Google Earth

The application is basic but useful in many DIY surveying tasks, it is be proven to be ideal to support some basic calibration procedures for air data instruments.