gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009
Transcript of gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009
![Page 1: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/1.jpg)
1SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Using the GPSTkfor GNSS learning and
research
Salazar D., Hernandez-Pajares M.,
Juan J.M. and Sanz J.
gAGE/UPC, Barcelona, Spain
![Page 2: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/2.jpg)
2SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Contents
• GPSTk overview
• Some current features
• GPSTk advantages and disadvantages
• How to get the GPSTk
• GPSTk basics
• GNSS Data Structures (GDS)– Processing paradigm
• Some processing examples
• Comparison with other GPS software
• Conclusions
![Page 3: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/3.jpg)
3SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk overview
• The GPSTk is:
– A library to write GNSS software– Includes example applications.
• The GPSTk is Free Software (LGPL):
– Both non-commercial and– commercial applications.
![Page 4: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/4.jpg)
4SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk overview
The LGPL free software license means that:
• The original code belonged to ARL:UT, but it was released to the public.
• New features added to the library are property of their authors, but them must be also released as LGPL.
• New software developed taking advantage of the GPSTk library (linking) is property of their authors.
![Page 5: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/5.jpg)
5SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk overview
The LGPL free software license means that:
• In summary, with the GPSTk you can develop both free and non-free (commercial) software.
• This license is very convenient both for companies and educational/research institutions.
![Page 6: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/6.jpg)
6SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk overview
• Initiated at ARL:UT, it now has several official developers around the world.
• The GPSTk is easy to extend and maintain, lowering programming costs.
• It is very well documented.
• Website:
http://www.gpstk.org
![Page 7: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/7.jpg)
7SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk overview
• It is written in ISO-standard C++.
• Design is object-oriented, easing maintenance and extensibility.
• It is VERY portable:
– Operative System portability:
• Works in Windows, Linux, Mac OSX, AIX, etc.
– Hardware portability:
• Big and small systems, both 32 and 64 bits.
![Page 8: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/8.jpg)
8SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk portabilityGUMSTIXMiniature computer
NOKIA Internet Tablets
![Page 9: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/9.jpg)
9SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Some current features
• Time conversions.
• RINEX files reading/writing:– Observation– Ephemeris– Meteorological
• Ephemeris computation:– Broadcast– SP3.
![Page 10: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/10.jpg)
10SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Some current features
• Mathematical tools: Matrices, vectors, interpolation, numeric integration, LMS, W-LMS, Kalman filter, etc.
• Application development support:– Exceptions handling.– Command line framework.– Configuration files management.
• Code positioning, RAIM, DGPS and Precise Point Positioning (PPP) support.
![Page 11: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/11.jpg)
11SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Some current features
• Several tropospheric models: Saastamoinen, Goad-Goodman, New Brunswick, Niell, etc.
• Classes for precise modeling: Phase
centers, Wind-up, gravitational delay,
etc.
• Tidal models: Solid tides, Ocean
loading, Pole tides
![Page 12: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/12.jpg)
12SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Some current features
• Full support for Antex (antenna) files.
• Advanced GNSS Data Structures (GDS)
for data processing and management.
• Other features like:
– Stocastic models
– Probabilistic functions (normal, chi-square,
etc)
– Run-time programmable solvers!!!
![Page 13: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/13.jpg)
13SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk advantages
• Programmers don't have to reinvent the wheel:– Don't use your time to program, test and
debug common, non-interesting routines (like RINEX parsing, for instance)
– Use your time to learn and experiment. – Use your time to develop new techniques.
• You can trust on the GPSTk:– Its performance has been validated with
other state-of-the-art GPS software suites.
![Page 14: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/14.jpg)
14SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk advantages
• It includes data management facilities that support clean and easy to maintain source code.
• It is open-source, and therefore:
– Great for learning how complex algorithms work.
– It eases reimplementation in other languagues and/or hardware.
![Page 15: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/15.jpg)
15SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk disadvantages
• The programmer needs C++ knowledge to use it effectively.
• C++ is very flexible, but it may become complex and “exotic”.
• The compilation process is slower and more complex than using interpreted languages.
• Many engineers are more confortable with tools like Mathlab (although they are very slow).
![Page 16: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/16.jpg)
16SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
How to get the GPSTk
• The GPSTk requires:– C++ compiler (g++, MS Visual C++, etc)– Jam or make– Optional: doxygen, perl, gnuplot
• Easy installation:– Download source code from GPSTk website or
subversion repository– Decompress if needed– Compile: “jam” is currently the easiest way– Generate documentation with “doxygen”
![Page 17: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/17.jpg)
17SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk basics: Vectors Vector<double> vect1(4);Vector<double> vect2(4);
for( int i = 0; i < 4; ++i ){ vect1(i) = 3.0 + i; vect2(i) = 5.0 2.5*i;}
Vector<double> vect3 = vect1 + vect2;
cout << vect1 << endl;cout << vect2 << endl;cout << vect3 << endl;
![Page 18: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/18.jpg)
18SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk basics: Matrices Matrix<double> A(3, 3, 5.0);Matrix<double> I = ident<double>(3);Matrix<double> B = A 2.0*I;Matrix<double> C(3, 3);
for( int row = 0; row < 3; ++row ){ for( int col = 0; col < 3; ++col ) { C(row, col) = row+0.9*B(row,col); }}
Matrix<double> CT = transpose( C );Matrix<double> D = inverseChol( CT*C );
![Page 19: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/19.jpg)
19SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk basics: Solvers Vector<double> vect(3, 0.0);vect(0) = 94.50;vect(1) = 112.01;vect(2) = 121.86;
Matrix<double> mat(3, 2, 0.0);for( int row = 0; row < 3; ++row ) for( int col = 0; col < 2; ++col ) mat(row, col) = 1.5 + row + 0.9*row*col;
SolverLMS solver;
solver.Compute( vect, mat );
cout << solver.solution(0) << " : " << solver.solution(1) << endl;
![Page 20: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/20.jpg)
20SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk basics: Time
DayTime epoch1(2009,10,28,10,30,0.0);
DayTime epoch2 = epoch1 + 3600.0;
cout << epoch1 << endl << epoch2 << endl;
cout << epoch1.GPSfullweek() << " " << epoch1.DOY() << " " << epoch1.GPSsecond() << endl;
![Page 21: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/21.jpg)
21SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk basics: Position
Position posBCN( 4789031.0, 176583.0, 4195015.0 );
Position posHANOI;posHANOI.setGeodetic( 21.033, 105.85, 308.0 );
Position posSAT( 22300542.564, 9466839.117, 10798193.375 );
cout << posBCN << endl << posHANOI << endl << posHANOI.elevation( posSAT ) << " : " << posHANOI.azimuth( posSAT ) << endl;
![Page 22: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/22.jpg)
22SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk basics: RINEX
RinexObsStream rinexData("bahr1620.04o");
RinexObsHeader rinexHeader;rinexData >> rinexHeader;
cout << rinexHeader.markerName << " : " << rinexHeader.antType << " : " << rinexHeader.firstObs << endl;
RinexObsData obsData;
while( rinexData >> obsData ){ obsData.dump( cout );}
![Page 23: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/23.jpg)
23SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk basics: EphemerisSP3EphemerisStore SP3EphList;SP3EphList.loadFile( "igs13354.sp3" );
SatID sat( 10, SatID::systemGPS );
DayTime epoch( SP3EphList.getInitialTime() );DayTime epochEnd( SP3EphList.getFinalTime() );
while( epoch < epochEnd ) { epoch += 60.0; Xvt svPos;
try { svPos = SP3EphList.getXvt( sat, epoch ); cout << epoch.DOYsecond() << " " << svPos.x[0] << " " << svPos.x[1] << " " << svPos.x[2] << endl; } catch (InvalidRequest& e) { continue; }}
![Page 24: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/24.jpg)
24SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk basics: Ephemeris
![Page 25: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/25.jpg)
25SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk basics: Solid tidesPosition posHANOI;posHANOI.setGeodetic( 21.033, 105.85, 308.0 );
SolidTides solid;
DayTime epoch(2009,10,28,0,0,0.0);DayTime epochEnd(2009,10,29,0,0,0.0);
while( epoch < epochEnd ) { Triple hanoiTide; hanoiTide = solid.getSolidTide(epoch,posHANOI);
cout << epoch.DOYsecond() << " " << hanoiTide[0] << " " << hanoiTide[1] << " " << hanoiTide[2] << endl;
epoch += 300.0;}
![Page 26: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/26.jpg)
26SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GPSTk basics: Solid tides
![Page 27: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/27.jpg)
27SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GNSS Data Structures
• GNSS Data Structures (GDS) were designed to help in GNSS data processing.
• They address GNSS data management problems.
• You can program without them, but they will make your work a lot easier.
![Page 28: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/28.jpg)
28SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GNSS Data Structures
• Almost all GNSS data may be identified (or indexed) by:
– Source: Receiver logging data.– Satellite: GPS, GALILEO, GLONASS...– Epoch: Time the data belongs to.– Type: C1, P1, L2, etc, and other types.
Key point:Key point: Save Meta-Information: Save Meta-Information:
Save Save 4 indexes4 indexes to identify to identify
each piece of dataeach piece of data
![Page 29: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/29.jpg)
29SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GNSS Data Structures
• Source: Implemented as class SourceID.
• Satellite: Implemented as class SatID.
– Several systems: GPS, Galileo, Glonass...
• Epoch: Implemented as class DayTime.
• Type: Implemented as class TypeID.
– Includes basic observations: C1, P1, etc.
– Other “types”: Relativity, troposphere, etc.
– You can create new types as needed!!!.
![Page 30: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/30.jpg)
30SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GDS example
• GDS provide several methods to ease handling. For instance:
Keep only C1 observable in GDS:
gpsData.keepOnlyTypeID(TypeID::C1)
![Page 31: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/31.jpg)
31SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GDS example
• GDS provide several methods to ease handling. For instance:
Keep only C1 observable in GDS:
gpsData.keepOnlyTypeID(TypeID::C1)
GDS Method Type to keep
![Page 32: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/32.jpg)
32SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Implementation
• GDS provide several methods to ease
handling. For instance:
Remove a given satellite from GDS:
gpsData.removeSatID(sat21)
![Page 33: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/33.jpg)
33SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
GDS Method Satellite to remove
Implementation
• GDS provide several methods to ease
handling. For instance:
Remove a given satellite from GDS:
gpsData.removeSatID(sat21)
![Page 34: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/34.jpg)
34SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Implementation
• GDS provide several methods to ease
handling. For instance:
Remove a given satellite from GDS:
gpsData.removeSatID(sat21)
Note:
sat21 = SatID( 21, SatID::systemGPS )
![Page 35: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/35.jpg)
35SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Implementation
• GDS provide several methods to ease
handling. For instance:
Access GDS in a matrix-like fashion:
gpsData.body(TypeID::LI)(sat14)
![Page 36: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/36.jpg)
36SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Implementation
• GDS provide several methods to ease
handling. For instance:
Access GDS in a matrix-like fashion:
gpsData.body(TypeID::LI)(sat14)
GDS “Branches” SatelliteType
![Page 37: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/37.jpg)
37SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Processing paradigm
• Operator “>>” is overloaded:
We redefine it in C++ to make data“flow” from one processing step to the next
![Page 38: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/38.jpg)
38SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Processing paradigmExample:
Declare object “rinexFile” to take data out ofRinex observation file:
RinexObsStream rinexFile("ebre0300.02o");
![Page 39: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/39.jpg)
39SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Example:
Declare object “rinexFile” to take data out ofRinex observation file:
RinexObsStream rinexFile("ebre0300.02o");
Processing paradigm
Class to handleRinex Obs files
Object name Rinex file name
![Page 40: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/40.jpg)
40SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Processing paradigmExample:
Declare object “gpsData”. This is a GDS:
gnssRinex gpsData;
![Page 41: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/41.jpg)
41SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Processing paradigmExample:
Declare object “gpsData”. This is a GDS:
gnssRinex gpsData;
GDS Class Object name
![Page 42: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/42.jpg)
42SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Processing paradigmExample:
Combine everything and take one epoch ofdata out of Rinex file into GDS:
RinexObsStream rinexFile("ebre0300.02o");gnssRinex gpsData;
rinexFile >> gpsData;
![Page 43: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/43.jpg)
43SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Processing paradigmExample:
Combine everything and take one epoch ofdata out of Rinex file into GDS:
RinexObsStream rinexFile("ebre0300.02o");gnssRinex gpsData;
rinexFile >> gpsData; Processing line
![Page 44: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/44.jpg)
44SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Processing paradigmExample:
Combine everything and take one epoch ofdata out of Rinex file into GDS:
RinexObsStream rinexFile("ebre0300.02o");gnssRinex gpsData;
rinexFile >> gpsData;
“Flow” operator
Processing line
![Page 45: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/45.jpg)
45SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Processing paradigm
• Main Idea: GNSS data processing becomes like an “assembly line”.– The GDS “flows” from one
“workstation” to the next, like a car in factory.
– And, like the car, the GDS changes along the processing line.
• For the developer, the GDS is like a “white box” holding all the information needed, and properly indexed.
![Page 46: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/46.jpg)
46SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Processing code-based GPS data with the GPSTk and GDS
A simple example:
C1 code observable +least-mean squares solver
Plain standard GPS processing
![Page 47: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/47.jpg)
47SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS
• Get data out of Rinex file, one epoch at a time– Get data into GDS (gpsData)– Do it until Rinex file ends.
![Page 48: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/48.jpg)
48SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS
while ( rinexFile >> gpsData ){ }
• Get data out of Rinex file, one epoch at a time– Get data into GDS (gpsData)– Do it until Rinex file ends.
![Page 49: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/49.jpg)
49SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS
while ( rinexFile >> gpsData ){ }
• Get data into modeling object gpsModel– GpsModel was previously initialized:
•Ephemeris, tropospheric model, Klobuchar ionospheric model, etc.
– Initialization phase is not shown here.
![Page 50: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/50.jpg)
50SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS
while ( rinexFile >> gpsData ){ gpsData >> gpsModel }
• Get data into modeling object gpsModel– GpsModel was previously initialized:
•Ephemeris, tropospheric model, Klobuchar ionospheric model, etc.
– Initialization phase is not shown here.
![Page 51: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/51.jpg)
51SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS
while ( rinexFile >> gpsData ){ gpsData >> gpsModel }
• Resulting GDS with original data and modeled data gets into solver object lmsSolver– lmsSolver is from SolverLMS class.– lmsSolver was previously initialized. – Initialization phase is not shown here.
![Page 52: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/52.jpg)
52SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS
while ( rinexFile >> gpsData ){ gpsData >> gpsModel >> lmsSolver; }
• Resulting GDS with original data and modeled data gets into solver object lmsSolver– lmsSolver is from SolverLMS class.– lmsSolver was previously initialized. – Initialization phase is not shown here.
![Page 53: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/53.jpg)
53SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS
while ( rinexFile >> gpsData ){ gpsData >> gpsModel >> lmsSolver; }
• Resulting GDS with original data and modeled data gets into solver object lmsSolver– lmsSolver is from SolverLMS class.– lmsSolver was previously initialized.– Initialization phase is not shown here.
Processingline
![Page 54: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/54.jpg)
54SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS
while ( rinexFile >> gpsData ){ gpsData >> gpsModel >> lmsSolver;
}
• All GNSS data processing is done!!!– Print results to the screen.– C++ cout object is used to print to screen.– Solution is inside lmsSolver: Ask for type.
![Page 55: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/55.jpg)
55SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS
while ( rinexFile >> gpsData ){ gpsData >> gpsModel >> lmsSolver;
cout << lmsSolver.getSolution(TypeID::dx) << '' ''; cout << lmsSolver.getSolution(TypeID::dy) << '' ''; cout << lmsSolver.getSolution(TypeID::dz) << endl;}
• All GNSS data processing is done!!!– Print results to the screen.– C++ cout object is used to print to screen.– Solution is inside lmsSolver: Ask for type.
![Page 56: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/56.jpg)
56SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 code observable +least-mean squares solver +East-North-Up (ENU) system
![Page 57: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/57.jpg)
57SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> gpsModel }
• Add a change-base object to processing line:– XYZ2NEU class change from ECEF to ENU.– Create object baseChange from XYZ2NEU
class.
![Page 58: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/58.jpg)
58SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> gpsModel >> baseChange }
• Add a change-base object to processing line:– XYZ2NEU class change from ECEF to NEU.– Create object baseChange from XYZ2NEU
class.
![Page 59: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/59.jpg)
59SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> gpsModel >> baseChange }
• Resulting GDS gets into object enuSolver– enuSolver belongs to SolverLMS class.– enuSolver was previously initialized to
solve using dLat, dLon,dUp and cdt.– Initialization phase is not shown here.
![Page 60: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/60.jpg)
60SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> gpsModel >> baseChange >> enuSolver; }
• Resulting GDS gets into object enuSolver– enuSolver belongs to SolverLMS class.– enuSolver was previously initialized to
solve using dLat, dLon,dUp and cdt.– Initialization phase is not shown here.
![Page 61: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/61.jpg)
61SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> gpsModel >> baseChange >> enuSolver;
}
• All GNSS data processing is done!!!– Print results to the screen.– Solution is inside enuSolver: Ask for type.
![Page 62: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/62.jpg)
62SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + LMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> gpsModel >> baseChange >> enuSolver;
cout << enuSolver.getSolution(TypeID::dLat) << '' ''; cout << enuSolver.getSolution(TypeID::dLon) << '' ''; cout << enuSolver.getSolution(TypeID::dH) << endl;}
• All GNSS data processing is done!!!– Print results to the screen.– Solution is inside enuSolver: Ask for type.
![Page 63: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/63.jpg)
63SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PC (ionosphere free) code + smoothing with LC + weighted least-mean squares solver + East-North-Up (ENU) system
![Page 64: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/64.jpg)
64SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Smoothed-PC + WMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> }
• First, get combinations we will need:– PC and LC (ionosphere-free).– LI (ionospheric combination).– MW (Melbourne-Wübbena)
• Look for corresponding classes in GPSTk API
![Page 65: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/65.jpg)
65SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Smoothed-PC + WMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> getPC >> getLC >> getLI >> getMW}
• First, get combinations we will need:– PC and LC (ionosphere-free).– LI (ionospheric combination).– MW (Melbourne-Wübbena)
• Look for corresponding classes in GPSTk API
![Page 66: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/66.jpg)
66SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Smoothed-PC + WMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> getPC >> getLC >> getLI >> getMW
}
• Then, detect and mark cycle-slips:– Two different and complementary methods
are used.• Everything is in a single processing line.
![Page 67: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/67.jpg)
67SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Smoothed-PC + WMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> getPC >> getLC >> getLI >> getMW
>> markCSLI >> markCSMW
}
• Then, detect and mark cycle-slips:– Two different and complementary methods
are used.• Everything is in a single processing line.
![Page 68: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/68.jpg)
68SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Smoothed-PC + WMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> getPC >> getLC >> getLI >> getMW
>> markCSLI >> markCSMW
}
• Smooth code with phase
![Page 69: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/69.jpg)
69SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Smoothed-PC + WMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> getPC >> getLC >> getLI >> getMW
>> markCSLI >> markCSMW >> smoothPC
}
• Smooth code with phase
![Page 70: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/70.jpg)
70SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Smoothed-PC + WMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> getPC >> getLC >> getLI >> getMW
>> markCSLI >> markCSMW >> smoothPC>> gpsModel
}
• Smooth code with phase
• Apply model
![Page 71: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/71.jpg)
71SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Smoothed-PC + WMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> getPC >> getLC >> getLI >> getMW
>> markCSLI >> markCSMW >> smoothPC>> gpsModel >> getWeights
}
• Smooth code with phase
• Apply model
• Compute weights
![Page 72: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/72.jpg)
72SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Smoothed-PC + WMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> getPC >> getLC >> getLI >> getMW
>> markCSLI >> markCSMW >> smoothPC>> gpsModel >> getWeights >> baseChange>> wmsSolver;
}
• Smooth code with phase
• Apply model
• Compute weights
• Change base and solve with a WMS solver
![Page 73: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/73.jpg)
73SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Smoothed-PC + WMS + ENU
while ( rinexFile >> gpsData ){ gpsData >> getPC >> getLC >> getLI >> getMW
>> markCSLI >> markCSMW >> smoothPC>> gpsModel >> getWeights >> baseChange>> wmsSolver;
}
• All GNSS data processing is done!!!– Print results to the screen.– Solution is inside wmsSolver: Ask for type.
• Everything is in a single processing line.
![Page 74: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/74.jpg)
74SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Differential GPS +C1 code observable +
weighted least-mean squares + East-North-Up (ENU) system
![Page 75: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/75.jpg)
75SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + DGPS + WMS + ENU
while ( rinexFile >> gpsData ){ gpsDataRef >> synchro >> refModel;
}
• First, process reference station data:– synchro is a Synchronize class object.– It is in charge of synchronizing reference
and rover data streams.– Initialization is not shown here. Consult API.
![Page 76: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/76.jpg)
76SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + DGPS + WMS + ENU
while ( rinexFile >> gpsData ){ gpsDataRef >> synchro >> refModel;
delta.setRefData( gpsDataRef.body );
}
• Then, indicate the reference data:– delta is a DeltaOp class object.– It computes single diffences using common
satellites.– You must tell it which is the reference data.
![Page 77: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/77.jpg)
77SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + DGPS + WMS + ENU
while ( rinexFile >> gpsData ){ gpsDataRef >> synchro >> refModel;
delta.setRefData( gpsDataRef.body );
gpsData >> gpsModel >> getWeights >> delta >> baseChange >> wmsSolver;
}
• Finally, process rover receiver data:– You must insert delta object into processing
line to compute single differences.
![Page 78: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/78.jpg)
78SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
C1 + DGPS + WMS + ENU
while ( rinexFile >> gpsData ){ gpsDataRef >> synchro >> refModel;
delta.setRefData( gpsDataRef.body );
gpsData >> gpsModel >> getWeights >> delta >> baseChange >> wmsSolver;
}
• All GNSS data processing is done!!!– Print results to the screen.– Solution is inside wmsSolver: Ask for type.
![Page 79: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/79.jpg)
79SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Code-based results (as expected)
![Page 80: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/80.jpg)
80SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Processing phase-based GPS data with the GPSTk and GDS
Example ofPrecise Point Positioning (PPP)
![Page 81: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/81.jpg)
81SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
Set “correcting” object with tide information.It also includes RX antenna phase center and eccentricity
![Page 82: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/82.jpg)
82SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel
Compute basic components of model
![Page 83: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/83.jpg)
83SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites
Remove satellites in eclipse
![Page 84: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/84.jpg)
84SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay
Compute gravitational delay
![Page 85: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/85.jpg)
85SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter
Compute the effect of satellite phase centers
![Page 86: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/86.jpg)
86SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables
Correct observables from tides, RX phase center, etc
![Page 87: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/87.jpg)
87SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp
Compute wind-up effect
![Page 88: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/88.jpg)
88SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo
Compute tropospheric effect (Niell model)
![Page 89: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/89.jpg)
89SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations
Compute common linear combinations: PC, LC, LI, ...
![Page 90: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/90.jpg)
90SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations >> markCSLI >> markCSMW
Marck cycle slips: Two complementary algorithms
![Page 91: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/91.jpg)
91SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations >> markCSLI >> markCSMW >> computePrefitResiduals
Compute prefit residuals
![Page 92: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/92.jpg)
92SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations >> markCSLI >> markCSMW >> computePrefitResiduals >> decimateData
Decimate data if epoch is not a multiple of 900 seconds
![Page 93: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/93.jpg)
93SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations >> markCSLI >> markCSMW >> computePrefitResiduals >> decimateData >> baseChange
Change from ECEF to ENU reference frame
![Page 94: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/94.jpg)
94SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations >> markCSLI >> markCSMW >> computePrefitResiduals >> decimateData >> baseChange >> pppSolver;
Solve equations with a properly adjusted Kalman filter
![Page 95: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/95.jpg)
95SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (static, forward mode)correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations >> markCSLI >> markCSMW >> computePrefitResiduals >> decimateData >> baseChange >> pppSolver;
All this processing is repeated for each epoch
![Page 96: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/96.jpg)
96SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP: MADR 2008/05/27, static, forward
![Page 97: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/97.jpg)
97SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP: MADR 2008/05/27, static, forward
The achieved accuracy is better than 2 centimeters!!!
![Page 98: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/98.jpg)
98SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP (kinematic, forward mode)
WhiteNoiseModel newCoordinatesModel(100.0);
pppSolver.setCoordinatesModel(&newCoordinatesModel);
correctObservables.setExtraBiases(tides);
gpsData >> basicGPSModel >> removeEclipsedSatellites ... ... >> pppSolver;
![Page 99: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/99.jpg)
99SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
PPP:MADR 2008/05/27, kinematic, forward
![Page 100: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/100.jpg)
100SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Comparison with other GPS software
![Page 101: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/101.jpg)
101SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Comparison with other GPS software
![Page 102: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/102.jpg)
102SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Conclusions
• GPSTk is already a solid base to work upon, saving tedious work to the programmer and researcher.
• The GPSTk provides solid advantages both for companies and educational/research institutions.
• GPSTk portability, design and openness makes it very flexible for multiple uses.
• GDS provide a powerful, flexible and easy to use processing framework.
![Page 103: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/103.jpg)
103SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Conclusions
• GPSTk results are comparable with the best GPS data processing software available.
• There are several areas being improved:
– RINEX version 3 handling.
– Robust outlier detection classes.
– More sophisticated tide models.
– Other GNSS processing strategies (RTK).
![Page 104: gAGE Using GPSTk GNSS Learning Research SEAGAL Hanoi 2009](https://reader033.fdocuments.us/reader033/viewer/2022042813/544babdcb1af9fb60f8b47f5/html5/thumbnails/104.jpg)
104SEAGAL Project Workshop. Hanoi, 2009.
gA
GE
res
earc
h g
rou
p o
f A
stro
no
my
an
d G
eom
atic
s
Bar
celo
na,
Spa
in
Salazar, D., Hernandez-Pajares, M., Juan, J.M., Sanz, J.
Thanks for your attention and time!