G53A-0123 GPSTk: An Open Source Toolkit for Working...

1
References [1] www.gnu.org/licenses [2] www.sharc.sourceforge.net [3] home.earthlink.net/~cwkelley/ [4] www.perforce.com [5] www.doxygen.com [6] Goad, C. C. and Goodman, L. “A Modified Hopfield Tropospheric Refraction Correction Model,” paper presented at the Fall AGU meeting, San Francisco, 1974 [7] Leick, Alfred, GPS Satellite Surveying, John Wiley & Sons 1990 [8] Collins, J. Paul and Langley, Richard, “A tropospheric Delay Model for the User of the Wide Area Augmentation System”, Technical Report 187, Dept. of Geodesy and Geomatics, University of New Brunswick, 1997 [9] Black, H.D., “An Easily Implemented Algorithm for the Tropospheric Range Correction”, JGR 83(B4), 1978, 1825-1828 [10] Blewitt, G., “Carrier phase ambiguity resolution for the Global Positioning System applied in geodetic baselines up to 2000 km’, JGR 94 (10), 10,187-10,203, 1989. [11] Harris, R. Benjamin, “Evaluation, Refinement and Fusion of Software-Based Pseudorange Multipath Mitigation Techniques”, Proceedings of the 15th International Technical Meeting of the Satellite Division of the Institute of Navigation. [12] Kee, Changdon and Parkinson, Bradford, “Calibration of Multipath Errors on GPS Pseudorange Measurements”, Proceedings of the 7th International Technical Meeting of the Satellite Division of the Institute of Navigation, pg 353-362 Figure 3. This first graph in this sequence shows the initial slip as seen in the widelane bias. The second shows the Figure 6. TEC Maps for sunrise and afternoon July 28, 2004. Abstract Applied Research Laboratories, The University of Texas at Austin (ARL:UT) has established an open source software project called the GPS Toolkit (GPSTk). In this poster we present an overview of GPSTk focusing on structure, functionality, licensing, and applications of interest to the geodetic community. Distribution is currently available for download on SourceForge, and it consists of source code for a core library, a test suite, and a collection of applications. The GPSTk code has an object-oriented design and is written in ANSI C++. GPSTk is intended to be platform independent; it has been installed and tested successfully under Linux, Solaris, and Windows. The code is released under the terms of the Lesser GNU Public License (LGPL). Functionality supported by the GPSTk, includes reading and writing observations to standard formats including RINEX, algorithms defined in the GPS signal-in-space interface control document (ICD-GPS-200), navigation solutions such as receiver-autonomous integrity monitoring (RAIM), atmospheric delay models, and P-code generation. We will provide a variety of examples of applications developed from the GPSTk, including a QA tool for GPS data, and generation of ionospheric total electron (TEC) values and vertical TEC maps from dual frequency GPS measurements. We will also discuss extensions under development, including applications to relative positioning, and will outline intended future development directions. URL: http://www.gpstk.org What is the GPSTk? The GPSTk is a our effort to develop a high-quality, open source, soft- ware suite specifically designed for use in research applications using GPS data. We believe that the GPSTk will be of use in a wide variety of research problems using GPS data. The GPSTk suite consists of a core library, and a set of applications built around the library. The library has a modern object-oriented design, and the applications tend to follow this. The language of implementation is ANSI standard C++, with extensive use of the Standard Template Library (STL). Why the GPSTk? Over the last 15 years, the exploitation of the Global Positioning System (GPS) measurements have made possible a variety of scientific and commercial applications. With the rise in the number of applications, there has also been a need to develop software processing capabilities to handle the data rich environment in which we find ourselves. In our experience, the software that is used to process GPS data is frequently proprietary, or restricted to the use of a few individuals. In contrast, there has been a tremendous growth in the Open Source software movement over the last decade. There have been efforts to develop open source GPS software projects. For example, Sharc (SHARC Acquires Receiver Contents) is an open source effort with software that interfaces with GPS receivers over a serial interface [1]. Another example, the OpenSourceGPS, is an open source software research project devoted to developing an open source GPS software receiver [2]. There are additional open source projects that are consumer-oriented, emphasizing navigation solutions. What we feel has been missing is a software base that: 1. was designed to tackle a broad array of GPS related research problems, 2. was open to inspection by all, and 3. could be built upon by the entire research community. The GPSTk is our attempt to address this missing and much needed resource. The GPSTk is the result of ARL:UT’s involvement in GPS related research since the early 1980’s, and is derived from four generations of GPS software libraries. What can the GPSTk do? Figure 1. Representation of some of the major GPSTk functionality. The information in Figure 1 is not exhaustive, there are many other capabili- ties included in the GPSTk. What do I need to use GPSTk? The initial release of GPSTk used Jam for builds. Jam is a freely available Make replacement [3]. Make files have been prepared under Solaris and AIX, and plans are to incorporate Make files in future releases. We do know that others have successfully used Make files to build the GPSTk. Documentation for the GPSTk is handled with Doxygen, a freely available documentation system [4]. Documentation is embedded in the source code and can be prepared with Doxygen as HTML files. Doxygen is released under the GNU Public License (GPL). The GPSTk was designed to be as platform independent as possible. To date the GPSTk has been compiled under the following operating system compiler pairs: 1. Solaris 9 and Sun Workshop 6 2. Solaris 9 and gcc 3.3.3 3. Windows XP and Visual Studio .Net 2003 4. Linux and gcc 3.3.3 What is the advantage of an object oriented design? The design behind the GPSTk has been guided by an overall object-oriented philosophy. This has some distinct advantages. One example from the GPSTk library is an illustration of how this philosophy can lead to easier modifications within the library. The example we have chosen is the tropospheric models that are contained with the library. This includes a Black Model, a Modified Hopfield Model, and others ([6]-[9]). The ZeroTropModel always returns a zero correction. The tropospheric models are defined beginning with an abstract class called TropModel. An abstract class serves the purpose of a generic model for some other set of classes, but is never used to instantiate an object. Actual tropospheric models can then “inherit” properties (data and methods) from the abstract class. Inheritance can be interpreted as an “is a” relationship. For example, the New Bruswick Tropospheric Model shown below is a Tropospheric Model. Figure 2. A Unified Modeling Language class diagram that indicates the inheritance relationship of the tropospheric model classes. The power in this design is that the varying models can be switched out easily, if needed, because a standard interface exists. New tropospheric models can be introduced more easily by inheriting the properties of TropModel, or any of the other tropospheric models, without requiring additional code for the inherited properties. How is the GPSTk Licensed? The GPSTk is released under the terms of the Lesser General Public License (the LGPL). A popular alternative is the General Public License (GPL). Why is this distinction important? The LGPL explicitly permits the incorporation of the GPSTk software into products that will not become open source. Licensing the GPSTk with the LGPL allows the incorporation of the library into proprietary products. The full details of the LGPL and GPL licenses are publicly available [1]. A Cycle Slip Detection and Estimation Example Cycle slips occur when a GPS receiver loses lock while tracking the phase of either the L1 or L2 signal. The result is a jump discontinuity in the phase measurement by an integer number of cycles, which is an obvious problem for any application expecting the phase data to be continuous. Cycle slips would usually be removed as part of an early quality assurance stage of processing GPS phase data. The GPSTk contains applications (DiscFix and RinexEdit) that allow the estimation and the removal of cycle slips. The algorithm used is a variant on the technique of Blewitt [9] , and has been successfully used with both ground based GPS data, as well as GPS topside data from low-earth orbiting satellites. To illustrate, we present a simple example that is also contained in on the current release of the GPSTk. Total Electron Content (TEC) Maps Dual frequency GPS data can be processed to a set of relative slant TEC values using the GPSTk. The effects of satellite and receiver biases can be estimated in the GPSTk, producing an absolute set of slant TEC values. The GPSTk applications TECMap provides a chi-square minimization algorithm which includes a range depen- dent decorrelation effect (the rate can be specified as an input pa- rameter) which will interpolate the slant TEC data onto a regular grid. In this algorithm, interpolated values are strongly influenced by nearby points. If there are no nearby points, the interpolated values fall back to the global mean of the data. An example of such a TEC map is shown below. This map is constructed using data from about 50 GPS stations. Figure 4. This figure shows the detection estimator used to detect slips and the threshold it must exceed in order to iden- tify the slip. The threshold is dependent of the noise levels. Figure 5. The initial, and the corrected phase. Identifying Multipath Source All GPS observations are corrupted by multipath, even if special receivers and antenna modifications are employed. Studies at ARL:UT have examined spatial processing techniques to predict and remove multipath at GPS reference stations [11]. These studies used the GPSTk suite to manipulate RINEX observations and to calculate station/satellite geometry. ARL:UT plans to add an appli- cation to the GPSTk suite that supports spatial analysis of mul- tipath. This image is derived from observations collected by a geodetic quality GPS monitor station, taken at a 30 second rate, over a period of approximately seven weeks. The multipath values were created by first differencing pseudorange and phase on L1. Then ionosphere error was removed using a dual frequency model. Fi- nally, the multipath was debiased using a spatial processing tech- nique [12]. What’s in the Future for GPSTk? Currently we are working on release 1.1. This release should include 1. Support for AIX 5.2 2. Support for the latest gcc release 3. Transition of all library code to using the new POSITIONS class, centralizing the handling of coordinates in one class. 4. Additional fixes. We expect this release to be late this year or early 2005. In the longer term we have been considering the following ideas for ex- pansion. Differential Positioning · Differential positioning using ambiguity resolution · Multipath reduction in post-processing Time Tranfer · Carrier phase processing to estimate ground station clock offsets Where can I get GPSTk? www.gpstk.org Figure 7. Biased multipath. Scale units are meters. G53A-0123 GPSTk: An Open Source Toolkit for Working With GPS Data D.C. Munton, B.W. Tolman, R.B. Harris, A.J. Kerkhoff, T.L. Gaussiran, G.S. Bust, S. Nelsen Applied Research Laboratories, The University of Texas at Austin, POB 8029, Austin, TX 78713-8029 United States

Transcript of G53A-0123 GPSTk: An Open Source Toolkit for Working...

Page 1: G53A-0123 GPSTk: An Open Source Toolkit for Working …gpstk.sourceforge.net/papers/GPSTK_AGU_Fall04.pdf ·  · 2006-09-25Toolkit (GPSTk). In this poster we present an overview of

References[1] www.gnu.org/licenses[2] www.sharc.sourceforge.net[3] home.earthlink.net/~cwkelley/[4] www.perforce.com[5] www.doxygen.com[6] Goad, C. C. and Goodman, L. “A Modified Hopfield Tropospheric Refraction Correction

Model,” paper presented at the Fall AGU meeting, San Francisco, 1974[7] Leick, Alfred, GPS Satellite Surveying, John Wiley & Sons 1990[8] Collins, J. Paul and Langley, Richard, “A tropospheric Delay Model for the User of the Wide

Area Augmentation System”, Technical Report 187, Dept. of Geodesy and Geomatics, University of New Brunswick, 1997

[9] Black, H.D., “An Easily Implemented Algorithm for the Tropospheric Range Correction”, JGR 83(B4), 1978, 1825-1828

[10] Blewitt, G., “Carrier phase ambiguity resolution for the Global Positioning System applied in geodetic baselines up to 2000 km’, JGR 94 (10), 10,187-10,203, 1989.

[11] Harris, R. Benjamin, “Evaluation, Refinement and Fusion of Software-Based Pseudorange Multipath Mitigation Techniques”, Proceedings of the 15th International Technical Meeting of the Satellite Division of the Institute of Navigation.

[12] Kee, Changdon and Parkinson, Bradford, “Calibration of Multipath Errors on GPS Pseudorange Measurements”, Proceedings of the 7th International Technical Meeting of the Satellite Division of the Institute of Navigation, pg 353-362

Figure 3. This first graph in this sequence shows the initial slip as seen in the widelane bias. The second shows the

Figure 6. TEC Maps for sunrise and afternoon July 28, 2004.

Abstract

Applied Research Laboratories, The University of Texas at Austin (ARL:UT) has established an open source software project called the GPS Toolkit (GPSTk). In this poster we present an overview of GPSTk focusing on structure, functionality, licensing, and applications of interest to the geodetic community. Distribution is currently available for download on SourceForge, and it consists of source code for a core library, a test suite, and a collection of applications. The GPSTk code has an object-oriented design and is written in ANSI C++. GPSTk is intended to be platform independent; it has been installed and tested successfully under Linux, Solaris, and Windows. The code is released under the terms of the Lesser GNU Public License (LGPL). Functionality supported by the GPSTk, includes reading and writing observations to standard formats including RINEX, algorithms defined in the GPS signal-in-space interface control document (ICD-GPS-200), navigation solutions such as receiver-autonomous integrity monitoring (RAIM), atmospheric delay models, and P-code generation. We will provide a variety of examples of applications developed from the GPSTk, including a QA tool for GPS data, and generation of ionospheric total electron (TEC) values and vertical TEC maps from dual frequency GPS measurements. We will also discuss extensions under development, including applications to relative positioning, and will outline intended future development directions. URL: http://www.gpstk.org

What is the GPSTk?The GPSTk is a our effort to develop a high-quality, open source, soft-ware suite specifically designed for use in research applications using GPS data. We believe that the GPSTk will be of use in a wide variety of research problems using GPS data.

The GPSTk suite consists of a core library, and a set of applications built around the library. The library has a modern object-oriented design, and the applications tend to follow this. The language of implementation is ANSI standard C++, with extensive use of the Standard Template Library (STL).

Why the GPSTk?Over the last 15 years, the exploitation of the Global Positioning System (GPS) measurements have made possible a variety of scientific and commercial applications. With the rise in the number of applications, there has also been a need to develop software processing capabilities to handle the data rich environment in which we find ourselves. In our experience, the software that is used to process GPS data is frequently proprietary, or restricted to the use of a few individuals.

In contrast, there has been a tremendous growth in the Open Source software movement over the last decade. There have been efforts to develop open source GPS software projects. For example, Sharc (SHARC Acquires Receiver Contents) is an open source effort with software that interfaces with GPS receivers over a serial interface [1]. Another example, the OpenSourceGPS, is an open source software research project devoted to developing an open source GPS software receiver [2]. There are additional open source projects that are consumer-oriented, emphasizing navigation solutions.

What we feel has been missing is a software base that:1. was designed to tackle a broad array of GPS related research problems, 2. was open to inspection by all, and 3. could be built upon by the entire research community.

The GPSTk is our attempt to address this missing and much needed resource. The GPSTk is the result of ARL:UT’s involvement in GPS related research since the early 1980’s, and is derived from four generations of GPS software libraries.

What can the GPSTk do?Figure 1. Representation of some of the major GPSTk functionality.

The information in Figure 1 is not exhaustive, there are many other capabili-ties included in the GPSTk.

What do I need to use GPSTk?The initial release of GPSTk used Jam for builds. Jam is a freely available Make replacement [3]. Make files have been prepared under Solaris and AIX, and plans are to incorporate Make files in future releases. We do know that others have successfully used Make files to build the GPSTk.

Documentation for the GPSTk is handled with Doxygen, a freely available documentation system [4]. Documentation is embedded in the source code and can be prepared with Doxygen as HTML files. Doxygen is released under the GNU Public License (GPL).

The GPSTk was designed to be as platform independent as possible. To date the GPSTk has been compiled under the following operating system compiler pairs:

1. Solaris 9 and Sun Workshop 62. Solaris 9 and gcc 3.3.33. Windows XP and Visual Studio .Net 20034. Linux and gcc 3.3.3

What is the advantage of an object oriented design?The design behind the GPSTk has been guided by an overall object-oriented philosophy. This has some distinct advantages. One example from the GPSTk library is an illustration of how this philosophy can lead to easier modifications within the library.

The example we have chosen is the tropospheric models that are contained with the library. This includes a Black Model, a Modified Hopfield Model, and others ([6]-[9]). The ZeroTropModel always returns a zero correction. The tropospheric models are defined beginning with an abstract class called TropModel. An abstract class serves the purpose of a generic model for some other set of classes, but is never used to instantiate an object. Actual tropospheric models can then “inherit” properties (data and methods) from the abstract class. Inheritance can be interpreted as an “is a” relationship. For example, the New Bruswick Tropospheric Model shown below is a Tropospheric Model. Figure 2. A Unified Modeling Language class diagram that indicates the inheritance relationship of the tropospheric model classes.

The power in this design is that the varying models can be switched out easily, if needed, because a standard interface exists. New tropospheric models can be introduced more easily by inheriting the properties of TropModel, or any of the other tropospheric models, without requiring additional code for the inherited properties.

How is the GPSTk Licensed?The GPSTk is released under the terms of the Lesser General Public License (the LGPL). A popular alternative is the General Public License (GPL). Why is this distinction important? The LGPL explicitly permits the incorporation of the GPSTk software into products that will not become open source. Licensing the GPSTk with the LGPL allows the incorporation of the library into proprietary products. The full details of the LGPL and GPL licenses are publicly available [1].

A Cycle Slip Detection and Estimation ExampleCycle slips occur when a GPS receiver loses lock while tracking the phase of either the L1 or L2 signal. The result is a jump discontinuity in the phase measurement by an integer number of cycles, which is an obvious problem for any application expecting the phase data to be continuous. Cycle slips would usually be removed as part of an early quality assurance stage of processing GPS phase data.

The GPSTk contains applications (DiscFix and RinexEdit) that allow the estimation and the removal of cycle slips. The algorithm used is a variant on the technique of Blewitt [9] , and has been successfully used with both ground based GPS data, as well as GPS topside data from low-earth orbiting satellites.

To illustrate, we present a simple example that is also contained in on the current release of the GPSTk.

Total Electron Content (TEC) MapsDual frequency GPS data can be processed to a set of relative slant TEC values using the GPSTk. The effects of satellite and receiver biases can be estimated in the GPSTk, producing an absolute set of slant TEC values. The GPSTk applications TECMap provides a chi-square minimization algorithm which includes a range depen-dent decorrelation effect (the rate can be specified as an input pa-rameter) which will interpolate the slant TEC data onto a regular grid. In this algorithm, interpolated values are strongly influenced by nearby points. If there are no nearby points, the interpolated values fall back to the global mean of the data. An example of such a TEC map is shown below. This map is constructed using data from about 50 GPS stations.

Figure 4. This figure shows the detection estimator used to detect slips and the threshold it must exceed in order to iden-tify the slip. The threshold is dependent of the noise levels.

Figure 5. The initial, and the corrected phase.

Identifying Multipath SourceAll GPS observations are corrupted by multipath, even if special receivers and antenna modifications are employed. Studies at ARL:UT have examined spatial processing techniques to predict and remove multipath at GPS reference stations [11]. These studies used the GPSTk suite to manipulate RINEX observations and to calculate station/satellite geometry. ARL:UT plans to add an appli-cation to the GPSTk suite that supports spatial analysis of mul-tipath.

This image is derived from observations collected by a geodetic quality GPS monitor station, taken at a 30 second rate, over a period of approximately seven weeks. The multipath values were created by first differencing pseudorange and phase on L1. Then ionosphere error was removed using a dual frequency model. Fi-nally, the multipath was debiased using a spatial processing tech-nique [12].

What’s in the Future for GPSTk?Currently we are working on release 1.1. This release should include

1. Support for AIX 5.22. Support for the latest gcc release3. Transition of all library code to using the new POSITIONS class,

centralizing the handling of coordinates in one class.4. Additional fixes.

We expect this release to be late this year or early 2005.

In the longer term we have been considering the following ideas for ex-pansion.

Differential Positioning· Differential positioning using ambiguity resolution · Multipath reduction in post-processing

Time Tranfer · Carrier phase processing to estimate ground station clock offsets

Where can I get GPSTk?

www.gpstk.org

Figure 7. Biased multipath. Scale units are meters.

G53A-0123GPSTk: An Open Source Toolkit for Working With GPS Data

D.C. Munton, B.W. Tolman, R.B. Harris, A.J. Kerkhoff, T.L. Gaussiran, G.S. Bust, S. Nelsen

Applied Research Laboratories, The University of Texas at Austin, POB 8029, Austin, TX 78713-8029 United States