Integrating Low-cost RTK Positioning
Services with a Web based Track Log
Daisuke Yoshida†, Eugenio Realini††, Mirko Reguzzoni††† and Venkatesh
† Faculty of Liberal Arts, Tezukayama Gakuin University, 2-1823 Imakuma, Osakasayama City,
Osaka 589-8585, Japan. e-mail: email@example.com
†† Research Institute for Sustainable Humanosphere, Kyoto University, Gokasho, Uji City, Kyoto
††† DIIAR, Politecnico di Milano, P.za Leonardo da Vinci 32, Milan 20133, Italy.
†††† Graduate School for Creative Cities, Osaka City University, 3-3-138 Sugimoto, Sumiyoshi-ku,
Osaka 558-8585, Japan.
Location-based collaborative platforms are proving to be an effective and widely adopted solution
for geo-spatial data collection, update and sharing. Popular collaborative projects like
OpenStreetMap, Wikimapia and other services that collect and publish user-generated geographic
contents have been fostered by the increasing availability of location-aware devices. These
instruments include Global Positioning System (GPS) enabled phones and low-cost GPS receivers,
which are employed for quick field surveys at both professional and non-professional levels.
Nevertheless, the data collected with such devices are often inaccurate. To alleviate this drawback,
an integration of modern web technologies and online services with an advanced positioning
technique is implemented. A web-based prototype for quality-based data selection of GPS tracks,
managing track logs and Point of Interests (POIs) is integrated with the goGPS software. This
combined system applies the principle of Real-time Kinematic (RTK) positioning to low-cost
single-frequency receivers. The workflow consists of acquiring the raw GPS measurements from
the user’s receiver and from a network of GPS stations, processing data by RTK positioning
through the goGPS Kalman filter algorithm, sending the accurate positioning data to the web-
based system, performing further quality enhancements, and logging and displaying the data. Tests
were performed in open areas and various dense urban environments, comparing the results
obtained by standard GPS devices and by goGPS RTK positioning. Results were promising and
suggest that the integration of web technologies with advanced geodetic techniques applied to low-
cost instruments can be an effective solution to collect, update and share accurate location data on
Keywords: Point of Interest (POI), Location Based Service (LBS), Global Positioning System
(GPS), goGPS, Quality-based data selection of GPS tracks
The latest efforts in technological advancement are gathering more and more
computational capabilities, wireless connection tools and storage capacity on small devices such as
smartphones. Nowadays, most of these devices incorporate also GPS chipsets, which allow users
to interact spatially with the Web 2.0 by geo-locating features and events; this merging between
geographical and digital worlds is giving rise to what is commonly known as the GeoWeb (Leclerc
2001). One of the main reasons that drive hardware producing companies to embed GPS chipsets
into mobile devices is to provide users with Location Based Service (LBS) where wireless
connectivity is available. Yoshida et al. (2010) developed a web system for managing Point of
Interest (POI) and GPS track log data in order to achieve an effective framework for field
surveying. The track log management function provided an interactive interface for log
management and data enhancement. The POI management function facilitates a collaborative
framework for building POIs with multiple users together through the Internet.
Tagging web contents with geographic information (i.e. geo-tagging) has become a
common feature on most Web 2.0 applications. For example, online photo management and
sharing applications like Picasa
geo-reference photos either automatically, using
coordinates stored in EXIF data (metadata associated to digital photos), or by letting users locating
them on a map. Also places and historical events described in Wikipedia
can have coordinates
associated to them, that through GeoHack
can be passed to dozens of other location-aware web
services, to get more location-based information. Location can then be associated to many
different kinds of information made available on the web (e.g. blog posts, news, events, shops with
the products they sell, etc.), bridging in this way the digital and real worlds. This kind of geo-
tagging usually does not require highly accurate location data, thus it is often sufficient to use a
standard low-cost GPS device or even just clicking on a map. Nevertheless, there are some web
applications for collaborative surveys, for example OpenStreetMap
, that would benefit from
getting more accurate GPS data, possibly with metadata about their accuracy level, in order to
automatize as much as possible the map updating process and to provide end-users with an
estimation of the level of error for the data they are going to use.
1.2 Low-cost GPS positioning
There are various grades of GPS devices and the cost of different devices depends on
their hardware quality. This research targets low-cost GPS receivers, which costs some hundreds
dollars, in order to lower the cost of highly accurate data, which could be a crucial element to
further widen location-based services or business.
There are several issues in using consumer-level low-cost GPS receivers such as Garmin,
TomTom or Globalsat products. These devices provide only the processed solution in output, by
means of the de-facto standard GPX or NMEA formats, but they do not provide users with the
ability to access GPS raw data (i.e. GPS code and phase observations). Raw data are employed by
these devices for their own positioning process, normally within black-box algorithms, but only
the resulting position information is given in output, together with some metadata information
such as the number of satellites, Dilution of Precision (DOP) values, and so on. This means that
users cannot modify or tune positioning algorithms to improve the accuracy of the result for
One of the open source software for enhancing GPS positioning is goGPS
2009) that utilize GPS raw data to enhance the quality of GPS positioning by applying relative
positioning with respect to a GPS master station. This software has the potential to achieve the
accuracy at sub-meter level such as 40cm~80cm (Pertusini et al. 2010; Yoshida 2011). In this
research, goGPS was adopted as a positioning engine with low-cost GPS receivers since the
positioning process can be made available as a standardized web service (Yoshida 2011; Realini et
al. 2012) to be used for various applications and services.
goGPS can significantly mitigate GPS errors (e.g. clock synchronization errors or
atmospheric effects on the signal) and enhance positioning accuracy. However, the software needs
to be installed on PCs and the operations are cumbersome for users. Therefore, a web-based
prototype system for track log management system (Yoshida et al. 2010) was integrated with
goGPS positioning to support goGPS data management and also to provide a collaborative
framework for multiple users. Further, a new quality-based data selection method for effectively
eliminating inaccurate track log points, especially, cased mainly by multi-path in dense urban
environment. The method used an index based on the Kalman filter (KF) error covariance matrix
(Kalman 1960; Grewal and Andrews 2001) and some tests were conducted to clarify the
effectiveness of the developed index in this research.
This research investigates three aspects of the improvement of low-cost GPS positioning:
１- applying single-frequency (L1) Real-Time Kinematic (RTK) positioning to low-cost devices by
goGPS open source software;
２- integrating web based track log management system with goGPS positioning service;
３- implementing a suitable index for filtering out poorly positioned points.
2. System architecture and implementation
2.1 goGPS architecture
goGPS is MATLAB
based open source software package that gets raw GPS data (code
pseudorange, carrier phase, signal-to-noise ratio, ephemeris and timing) in input and processes
them within a KF specifically developed to apply RTK and address low-cost GPS navigation
issues. goGPS KF can optionally include additional sources of data such as Digital Terrain Models
(DTMs) or line networks in order to improve the final positioning. goGPS receives data both from
a low-cost receiver through a COM port and from a master station, belonging or not to a network
of permanent GNSS stations, through the Internet via NTRIP protocol (Fig. 1). At the moment
goGPS is capable of retrieving GPS raw data for the roving receiver from u-blox LEA modules
("T" version), Fastrax IT03 modules and SkyTraq S1315F-RAW modules, by decoding their
proprietary binary formats; as for the base GNSS station data, the RTCM 3.1 format is supported.
goGPS can run either in real-time or post-processing mode, synchronizing the rover and master
data streams and managing temporary outages or permanent data losses. Various events such as
satellite additions/losses, change of pivot satellite (highest satellite used for double differences)
and cycle-slips are managed.
Fig. 1 Overview of goGPS double difference observations using a GPS master station
goGPS main targets are single-frequency low-cost devices, but its code and phase
modules are designed to work either in single-frequency or double-frequency mode. Therefore, it
can be used also with double-frequency receivers, if it is needed. goGPS includes also an
alternative version of its main Kalman filter algorithm, designed to obtain line-constrained
positioning (e.g. to navigate on a network of roads). For a detailed description of goGPS Kalman
filter, see Realini (2009).
Despite the latest technology trends are shifting from System-On-Chip (SOC)
architectures to host-based or server-based one, the majority of people (and some manufacturers)
when dealing with GPS positioning engines still think in a SOC direction. Although goGPS was
not explicitly designed since the beginning with this distinction in mind, it has naturally become a
host or server based system for at least three reasons:
１- it has been first developed as a tool for studying and teaching GPS positioning in a MATLAB
２- applying RTK requires access to raw GPS observations, which means at least time-of-week,
code pseudorange and carrier phase;
３- it has been developed with the concept of Free and Open Source Software (FOSS) and open
data policy as its foundations. In order to let developers have the greatest freedom over how to
implement their own positioning engines, GPS raw observations must be available and typically
they will be processed on their host systems or servers.
In order to make the goGPS positioning open and widely available in various applications
or services, Yoshida (2011) and Realini et al. (2012) implemented the goGPS positioning process
as a web service compliant to international standards. The definition of Web Processing Service
(WPS) is provided among the Open Geospatial Consortium (OGC) Web Services (OWS)
specifications (The Open Geospatial Consortium 2003). OWS are key elements that can provide
efficient ways to distribute data and processing results to various GPS enabled clients. The goGPS
WPS-compliant positioning service was implemented using ZOO
(Fenoy et al. 2010), one of the
available open source WPS engines, which provides a standard processing service through the
web. Fig. 2 shows a web interface for goGPS positioning using OpenLayers
, which can select and
upload the required GPS datasets in input and send a WPS request to ZOO for executing goGPS.
The web client shows the result that is returned from the server as the white line in the Fig. 2.
Fig. 2 Positioning result displayed in the goGPS web interface
In this example, three RINEX files are used as input datasets: an observation file
containing raw data for the GPS rover (JENOBA_test_03_rover.obs), a navigation file containing
satellite ephemeris and ionosphere parameters (Vb20.10n) and an observation file containing raw
data for the master station (Vb20.10o). By accessing the URL from a browser, the RINEX files,
which were previously uploaded on the server by the web interface (Fig. 2), are parsed to extract
the GPS raw data; the GPS observations are then processed by goGPS and the result is stored in a
KML file which is downloaded through the browser itself after a few seconds from having issued
the URL request. In addition, the displayed tracks can be stored in a database by clicking “Store
the GPS track on the server” link in the OpenLayers interface and can also be searched in the POI
management system that is explained in the following section.
2.2 Web-based track log management system architecture
Yoshida et al. (2010) developed a web-based track log & POI management system that
can import, manage and display GPS track logs together with POIs such as geo-referenced photos
and videos. The system was integrated with the goGPS positioning engine as described in the
previous section in order to provide higher accuracy of positioning and interoperable service. The
architecture of the system can be divided into three components (Fig. 3).
Fig. 3 The three components of the track-log management system
The first is the GPS component that collects GPS raw data to be sent to the server for
processing. The second is the server component that provides data archiving and the goGPS
positioning service, which was shown in Fig. 2. The second is the server component that provides
data archiving and geospatial services. The third is the client component for viewing GPS
locations and track logs. In particular, the server component enables searches within track logs and
tracking services to the client components through HTTP.
The system connects a Flickr photo album with a GPS track log by implementing the
Flickr web API, and it also provides its function as a web service. The implemented web services
are based on standard HTTP communication, so that the user does not need to install any special
software in order to use them. Service requests can be made directly through a browser, making
the web services straightforward and easy to use. These open web APIs help reducing redundant
work and development costs. The below URL is to search GPS track logs from the database. The
user inputs the parameters such as date, time interval or DOP to search and filter the GPS tracks
data. The request URL returns an XML like document as a result that displays the track logs in
The system allows users to query and display track logs interactively by selecting date,
time, IP address of GPS tracking components, GPS positioning status (i.e. 2D, 3D fix and no fix
mode), number of satellites and DOP on OpenLayers web interface.
2.3 POI management with Flickr service
Recently, many increasingly popular web applications for building POIs, such as Flickr
and Google Picasa Web Album, have been implementing web-mapping functions. Also a popular
social media service, Twitter, provides various web APIs with geographical search functions.
Taking pictures using GPS-enabled phones or cameras can save location information in
an EXIF image file, a process commonly known as “geo-tagging”. EXIF is the standard for storing
metadata in image files created by digital cameras, such as date, time, shutter speed and focal ratio,
etc.The POI management system synchronizes non geo-tagged POIs with GPS track logs on the
basis of the common date and time attributes. Fig. 4 shows a POI (as a red marker) and the
information (in this case a photo, the date and time it was taken, owner’s name and tag words) in a
By using this system, users are not required to carry special devices for field surveys such
as professional GPS, GPS-enabled phones or cameras. The system also supports the use of geo-
tagged images to extract the embedded location information.
The results displayed in the OpenLayers interface, the GPS points and POIs, can be
exported as KML and GPX formats for further use on other GIS applications. For example, an
exported KML is displayed in Google Earth in Fig. 5. Recently, since OGC has adopted the OGC
KML Encoding Standard (The Open Geospatial Consortium 2007), many applications have
supported KML, among which ESRI ArcGIS
, Flickr, Yahoo! Pipes
, NASA WorldWind
Microsoft Bing Maps
. Therefore, KML is provided by the system here described as a good
solution for letting different applications interoperate.
Fig. 4 POI and GPS track log displayed in OpenLayers interface
Fig. 5 Displaying exported KML using Google Earth
2.4 Quality-based data selection
The web-based track log management system has on-the-fly functions to filter GPS data
by quality related parameters such as number of satellites, DOP and fix mode. “Fix” is a term
commonly used for consumer GPS devices that indicates the action of computing a position (e.g.
“time-to-first-fix” or “TTFF” indicates the time the receiver needs to compute a position after
having been switched on). This is not to be confused with the fixing of ambiguities, which are
typically referred to as “fixed” as opposite to “float”. GPS positioning needs at least four satellites
to calculate a “3D fix” position, which includes altitude. The calculation using three satellites
performs “2D fix” positioning. Some receivers even record GPS data under “no fix” status (e.g.
the quality of the signal was lower than a chosen threshold, so the positioning is labeled as “no
fix”) thus many noisy positions can be displayed on the web map. The web system provides an
interactive web interface to check the parameters and results at the same time in order to remove
such noisy data from the plot. Fig. 6 shows the effectiveness of Horizontal DOP (HDOP) based
data selection, on a dataset surveyed at car speed in urban environment. Fig. 6a indicates the result
without HDOP based data selection. It displays a lot of noisy data at the beginning point because
the GPS receiver was just switched on and it was not getting good geometries of satellites at the
moment. In contrast, Fig. 6b shows a HDOP based data selection result, in which noisy data were
reduced and points were more defined.
Fig. 6 Result of HDOP based data selection in OpenLayers interface (a) Before data selection
(b) HDOP data selection result
2.5 Kalman filter DOP
Using the HDOP as an index for removing poorly positioned points has the major
drawback of taking into account only the satellite geometry. This information can be useful if the
sky visibility condition is always the same, but in urban environments the actual positioning
accuracy is highly dependent on the signal quality, especially when using high-sensitivity GPS
devices. This means that the receiver can track a high number of satellites, maybe also with a good
geometry, even in situations where the signal is highly degraded: in this case the HDOP would not
be a good indicator of the actual positioning quality. To overcome this limitation, goGPS does not
compute only usual DOP values, which depend only on the satellite geometry, but it produces also
customized DOP indices based on the actual quality of the position estimation. According to the
definition given by Spilker (1996), DOP values originate from the coordinate co-factor matrix Q.
This is obtained from the least-squares design matrix A as (Hofmann-Wellenhof et al. 2007)
thus for example the traditional Position Dilution of Precision (PDOP) is
where qX, qY and qZ are respectively the X, Y and Z weights along the main diagonal of Q. In order
to have indices that represent how the filter is performing, we exploit the coordinate error
covariance matrix C estimated by the Kalman filter, i.e.
with I the identity matrix, G the Kalman filter gain matrix and K the coordinate error covariance
matrix based on dynamics only. More specifically, the covariance matrix K is computed by
propagating the coordinate error of the previous epoch to the current one through the Kalman filter
transition matrix and then adding the contribution of an a priori defined model error. However,
what is really crucial here is that the gain matrix G depends on the observation error covariances
that in goGPS are modelled not only as a function of the satellite elevation but also of the signal-
to-noise ratio (Realini 2009). The PDOP value obtained from the Kalman filter coordinate error
covariance matrix (from now on KPDOP) is computed as
where cX, cY and cZ are respectively the X, Y and Z variances along the main diagonal of C.
As for the Kalman-based horizontal and vertical DOP values, respectively KHDOP and
KVDOP, they are computed by following the same logic of traditional HDOP and Vertical DOP
(VDOP), i.e. propagating the covariance from a global (X, Y, Z) to a local (East, North, Up)
reference frame by the equation
where R is the rotation matrix from global to local frames, thus obtaining
UNE cKVDOPccKHDOP ,
where cE, cN and cU are respectively the East, North and Up variances along the main diagonal of
CENU. In this way we obtain alternative DOP indexes that can better describe the positioning
quality obtained by the Kalman filter. K*DOP values do not depend exclusively on satellite
geometry, but also on the evolution of the filter itself, which includes for example the variance
increment for slipped satellites.
goGPS and the web-based track log management system have been made interoperable
by adding NMEA output capability to goGPS, and by tuning the parsing algorithm on the web-
based system. Since the NMEA 0183 specifications include the possibility to define customized
(usually vendor-specific) sentences to provide additional information not encompassed by standard
sentences, a customized sentence was defined to output KPDOP, KHDOP and KVDOP values in
3. Tests for quality-based data selection
Some tests were performed in order to check the performance of the KHDOP index
compared to the standard HDOP and to verify the feasibility and performance of raw data
positioning in low-density and high-density urban environments.
The first example presented here, surveyed by car in low-density urban environment in
Italy, was chosen because part of it was recorded on the first floor of a two-story parking structure,
providing a sudden change from good sky visibility to no sky visibility at all. Since the GPS
device used was a u-blox AEK-4T, its high-sensitivity allowed for signal reception and positioning
even with the highly degraded signal inside the parking structure. Fig. 7 shows the complete track
without data selection (the parking structure is in the bottom right-hand side of the image), while
Fig. 8 shows the comparison between HDOP-filtered and KHDOP-filtered tracks.
Fig. 7 Complete tracks of experiment (circles) are displayed
The positioning inside the parking structure was very bad due to the lack of sky visibility,
but the HDOP-filtered track (Fig. 8a) keeps some of its points even when the threshold is very
low. By using such a strict threshold on HDOP, based on satellite geometry only, part of the
outdoor track is deleted although it is much more accurate than the indoor track. On the other
hand, the track filtered by KHDOP (Fig. 8b) effectively removes only the points surveyed within
the parking structure, leaving unchanged the rest of the track.
Fig. 8 GPS tracks are selected by DOP (a) HDOP-filtered track (b) KHDOP-filtered track
Fig. 9 shows the differences in the two DOP values for the whole survey. The Y-axis
indicates the level of the DOPs and X-axis is for GPS time. In the graph, it is clear that KHDOP
well describes the quality of the GPS signal under poor conditions (e.g. inside parking, under trees
or some other obstacles), thus for discriminating between poorly positioned points and points with
higher accuracy. Other tests have been performed, confirming the better performance of the
KHDOP over the HDOP as an indicator of the positioning quality.
Fig. 9 HDOP versus KHDOP for the whole surveying time span
The other test was conducted in high-density urban environment in Japan. Fig. 10 shows a
path, taken by car in Osaka and Sakai cities with a TOPCON dual frequency receiver, which
indicates good sky visibility as yellow and bad visibility as red. The result of the test was shown in
Fig. 11, comparing the HDOP and KHDOP values in the “good” and “bad” sections in terms of
mean, standard deviation and RMSE. The plots clearly show that KHDOP indicates a more
significant difference than HDOP between "good" and "bad" sections, indicating that it may be
more suitable for determining the positioning quality when using high-sensitivity receivers in
Fig. 10 “Yellow” sections indicate good sky visibility, and “red” ones show bad visibility in Osaka
and Sakai cities, detected by a TOPCON dual-frequency receiver
Fig. 11 HDOP versus KHDOP in mean, standard deviation and RMSE
In this article, a web system that utilizes the goGPS positioning service is described, also
showing how other services can be connected or merged to it, giving rise to the so called
"Mashups" or “Chains”. The integration of web technologies with GPS positioning enhances
interoperability of the positioning service. In particular, in this research, goGPS positioning
services and a web-based track log management system are made interoperable in order to increase
the usability of goGPS; the accuracy of the final result is enhanced by introducing a new technique
to disregard low quality position estimates, relying on Kalman filter based DOP values (KPDOP,
KHDOP and KVDOP), which are effective alternatives to traditional DOP values.
The integrated system does not only facilitate a collaborative framework for building
POIs, but also improve accuracy and reduce costs in current GPS receivers. The outcomes of this
research can contribute to make highly accurate location data closer to consumer-level users by
providing open and standardized positioning services. Finally, the obtained results show that RTK
positioning based on low cost receivers can guarantee good accuracy and reduce costs on
deploying high-quality LBS.
The authors acknowledge the positioning services IREALP GPSLombardia (Italy) and JENOBA
(Japan) for their support. This research was supported by the JSPS Grant-in-Aid for Scientific
Research (Issue No. 2109737) entitled "Development of Ubiquitous LBS Web-Service using Free
and Open Source Software". The authors would like to express our gratitude to Dr. Terence
Henares, researcher at Osaka Prefecture University, for carefully reviewing this paper.
Fenoy G, Bozon N, Raghavan V (2012) ZOO project: The open WPS platform. Applied
Geomatics, DOI: 10.1007/s12518-011-0070-0.
Grewal M S, Andrews A P (2001) Kalman Filtering: Theory and Practice Using Matlab. John
Wiley & sons, Ltd.
Hofmann-Wellenhof B, Lichtenegger H, Wasle E (2007) GNSS Global Navigation Satellite
Systems: GPS, GLONASS, Galileo, and more. Springer, Wien 262-266.
Kalman R E (1960) A New Approach to Linear Filtering and Prediction Problems. Transaction of
the ASME - Journal of Basic Engineering 35-45.
Leclerc Y G, Reddy M, Iverson L, Eriksen M (2001) The GeoWeb - A New Paradigm for Finding
Data on the Web. In Proceedings of the International Cartographic Conference.
Pertusini L, Realini E, Reguzzoni M (2010) goGPS: accurate road mapping using low-cost GPS
receivers. In Proceedings of GIS-IDEAS 2010, Hanoi, Vietnam 5: 67-72.
Realini E (2009) goGPS - free and constrained relative kinematic positioning with low cost
receivers. Dissertation, Politecnico di Milano.
Realini E, Yoshida D, Reguzzoni M, Raghavan V (2012) Enhanced satellite positioning as a web
service with goGPS open source software, Applied Geomatics, Vol. 4, No. 2, pp. 135-142.
Spilker J J (1996) Satellite Constellation and Geometric Dilution of Precision. Global Positioning
System: Theory and Applications, 1, American Institute of Aeronautics and Astronautics (AIAA),
Progress in Astronautics and Aeronautics 163:177-208.
The Open Geospatial Consortium (2007) OpenGIS® Keyhole Markup Language (KML)
Implementation Specification Version 2.2.0. http://www.opengeospatial.org/standards/kml/.
Accessed 07 Aug 2011
The Open Geospatial Consortium (2003) OpenGIS® Web Processing Service (WPS)
Implementation Specification Version 1.0.0. http://www.opengeospatial.org/standards/wps/.
Accessed 07 Aug 2011
Yoshida D, Song X, Raghavan V (2010) Development of track log POI management system using
free and open source software. Applied Geomatics 2(3): 123-135.
Yoshida D (2011) Development of processing services for GPS accuracy enhancement by data
filtering and kinematic relative positioning. Dissertation, Graduate School for Creative Cities,
Osaka City University.