Tutorial 1 v2.2
Tutorial 1 v2.2
Slides associated to
gLAB version 2.0.0
The authorship of this material and the Intellectual Property Rights are owned by
J. Sanz Subirana and J.M. Juan Zornoza.
This authorship statement must be kept intact and unchanged at all times.
24 April 2014
Professionals/Experts:
• Powerful tool with High Accuracy Positioning capability.
• Fast to configure and use: Templates and carefully chosen defaults.
• Able to be executed in command-line and to be included in batch
processing.
15
@ J. Sanz & J.M. Juan
GNSS Format Descriptions
GNSS data files follow a well defined set of standards
formats: RINEX, ANTEX, SINEX…
Understanding a format description is a tough task.
These standards are explained in a very easy and
friendly way through a set of html files.
Described formats:
• Observation RINEX
• Navigation RINEX
• RINEX CLOCKS
• SP3 Version C
• ANTEX
A minimum
knowledge of
UNIX (e.g., awk)
is required for
these homework
exercises.
Backup solution for Macintosh users:
8GB of free space in disk are
required to install this SW.
Nevertheless, Windows OS users can do the laboratory session by
using Cygwin, which is a tool that allows to emulate a UNIX
command line shell over Windows.
Indeed, after installing Cygwin, users can develop the laboratory
session as if they were working on a UNIX system (as this tutorial
was designed).
Check the folder:
C:\gLAB
Cygwin and gLAB
installation must
be selected.
Tutorial slides /cygdrive/c/gLAB/win/SUMMER_SCHOOL/WORK_FILES
UNIX (Linux) console to execute
“command line” sentences
2) Execute vcredist_x64
or vcredist_x86
Given that session time is limited to 3h, students who feel comfortable using gLAB,
can skip part of the basic exercises (Ex1, Ex2) and jump to the Lab. Work Project.
4
2
1 3 5
gLAB.out
FULLFULL
SPP model
SPP model
North East Up
2. Save as gLAB1.out
In the Default
the associated
output file. 2 Set output file
configuration the Notice that the gLAB.out as
output file was file contains the processing
results with the FULL gLAB1.out
gLAB.out model, as it was set in the
default configuration. 3
@ J. Sanz & J.M. Juan 42
NEU Position Error plot from gLAB1.out
No Iono. correction
gLAB1.out
North East Up
Click Clear to
1 restart plots
2 3
gLAB1.out gLAB.out Time (sec) Vertical
Click Clear to
1 restart plots
2 3
gLAB1.out East: 19 $4>15000
gLAB.out North: 18 To plot from
t>15000 sec,
when S/A=off
Code
delay
Carrier
advance
gLAB1.out gLAB1.out
S/A=off Zoom
gLAB.out gLAB.out gLAB.out
keep
Set again: Iono gLAB1.out
Disable : Tropo
as output file
• The same scheme must be applied for all other model terms (TGDs, relat...)
gLAB1.out gLAB1.out
S/A=off Zoom
gLAB.out gLAB.out gLAB.out
gLAB.out Tropospheric
correction(blind model)
Tropospheric and vertical
error are highly correlated.
A displacement of vertical
component appears when
gLAB1.out neglecting tropo. corrections.
Tropospheric delay
The troposphere is the atmospheric layer placed between Earth’s surface and an altitude of
about 60 km.
The effect of troposphere on GNSS signals appears as an extra delay in the measurement
of the signal travelling from satellite to receiver.
The tropospheric delay does not depend on frequency and affects both the pseudorange
(code) and carrier phases in the same way. It can be modeled by:
• An hydrostatic component, composed of dry gases (mainly nitrogen and oxygen) in
hydrostatic equilibrium. This component can be treated as an ideal gas. Its effects vary
with the temperature and atmospheric pressure in a quite predictable manner, and it is the
responsible of about 90% of the delay.
• A wet component caused by the water vapor condensed in the form of clouds. It depends
on the weather conditions and varies faster than the hydrostatic component and in a quite
random way. For high accuracy positioning, this component must be estimated together
with the coordinates and other parameters in the navigation filter.
gLAB1.out gLAB1.out
S/A=off Zoom
gLAB.out gLAB.out gLAB.out
a rv
rel 2 e sin( E ) 2 ( metres )
c c
Being =G ME =3.986005 1014 (m3/s2) the gravitational constant, c =299792458 (m/s) light speed in
vacuum, a is orbit’s major semi-axis, e is its eccentricity, E is satellite’s eccentric anomaly, and r
and v are satellite’s geocentric position and speed in an inertial system.
gLAB.out gLAB.out
S/A=off Zoom
gLAB.out gLAB.out gLAB.out
gLAB1.out gLAB1.out
S/A=off Zoom
gLAB.out gLAB.out gLAB.out
gLAB.out
Satellite clock offsets
This is the largest error
source, and it may
introduce errors up to a
thousand kilometers.
gLAB1.out
gLAB1.out gLAB1.out
S/A=off Zoom
gLAB.out gLAB.out gLAB.out
Thence, Satellite movement (i.e, satellite coordinates at emission instead of reception time)
and Earth rotation during signal flight time are two important issues to take into account
gLAB1.out gLAB1.out
S/A=off Zoom
gLAB.out gLAB.out gLAB.out
Given that session time is limited to 3h, students who feel comfortable using gLAB,
can skip part of the basic exercises (Ex1, Ex2) and jump to the Lab. Work Project.
Set Kinematic
2
1 3
Note: The igs_pre1400.atx file contains the APC
used by IGS before GPS week 1400.
• Additional model
components are used
now in the FULL model
to assure a centimeter
level modeling.
• Precise orbits and clocks
instead of broadcast ones.
• Dual frequency Code and
Carrier data instead of only
single frequency code.
• Iono-free combination of
codes and carriers to
remove ionospheric error
and P1-P2 DCBs.
S/A=on
S/A=off
Default
disable the model
component to 1 Disable
configuration analyze. Solid Tides
for PPP 2. Save as gLAB1.out correction
the associated
output file.
In the Default
file contains the processing
results with the FULL
model, as it was set in the
2 Set output file
configuration the default configuration. as
output file was Make plots as in previous gLAB1.out
gLAB.out exercises (see next slides
63-64) 3
@ J. Sanz & J.M. Juan 68
Vertical Position Error plot from gLAB.out, gLAB1.out
Click Clear to
1 restart plots
Y-min, Y-max
‐0.4
‐0.4 0.4
2 3
gLAB1.out gLAB.out Time (sec) Vertical
Click Clear to
1 restart plots
2 3
gLAB1.out East: 19 ($1==“OUTPUT”)
gLAB.out North: 18
Code
delay
Carrier
advance
Satellite
Mass gLAB.out gLAB.out
Center
(MC) gLAB.out Satellite MC to APC:
The satellite MC to APC
eccentricity vector depends on
Broadcast orbits are the satellite. The APC values
referred to the antenna used in the IGS orbits and
phase center, but IGS clocks products are referred to
precise orbits are referred the iono-free combination (LC,
PC) . They are given in the IGS
to the satellite mass center. ANTEX files (e.g., igs05.atx).
2
3
Select files Set calculate Set data decimation to 30
graa0800.07o seconds instead of 300 to
Set SPP Set SPP
brdc0800.07n have a higher number of
output samples
1
Run gLAB
3
Plotting
Set plotting ranges
[Xmin, Xmax] [Ymin,Ymax] dif.out
1 with the GUI
4
2 Upload file dif.out in
Plot 1, Plot 2 & Plot 3
@ J. Sanz & J.M. Juan 83
Mode1: Single frequency C1 code with broadcast orbits & clocks
Questions
1. Is it reasonable to disable
the tropospheric and
ionospheric corrections?
Answer to Question 1:
Is it reasonable to disable the tropospheric and ionospheric corrections?
• Troposphere:
The troposphere is the atmospheric layer placed between Earth’s surface and an altitude of
about 60 km.
GRACE-A satellite is orbiting at about 450 km altitude, thence no tropospheric error is
affecting the measurements.
• Ionosphere:
The ionosphere extends from about 60 km over the Earth surface until more than 2000 km,
with a sharp electron density maximum at around 350 km.
GRACE-A satellite, orbiting at about 450 km altitude, is less affected by the ionosphere
than on the ground, but nonetheless a few meters of slant delay could be
experienced. On the other hand, as the correction from Klobuchar model is tuned for
ground receivers, its usage could produce more harm than benefit (see HW1).
Homework:
HW1: Assess the ionospheric delay on the GRACE-A satellite measurements. Compare
with the Klobuchar model corrections.
Answer to Question 2:
In this approach, is it necessary to introduce an additional model term to account
for the relativity effect on LEO satellite?
• GRACE-A clock is affected by general and special relativistic effects (due to the gravitational
potential and satellite speed). But this is not a problem, because the receiver clock is
estimated along with the coordinates.
Notice that this relativistic effect will affect all measurements in the same way, and thence, it
will be absorbed into the receiver clock offset estimation.
Answer to Question 3:
What could be the reason for the large error peaks seen in the plots?
• The large error peaks are associated to bad GPS-LEO satellite geometries and mismodelling.
Notice that the satellite is moving at about 8 km/s and therefore the geometry changes quickly
(see HW2). Also, the geometry is particularly poor when GRACE-A satellite is over poles.
Homework:
HW2: Plot in the same graph the “True 3D error”, the “Formal 3D error” (i.e, the 3D-sigma)
and the number of satellites used. Analyze the evolution of the error.
From previous
1 • Disable P1-P2 correction
2. [Filter]:
configuration, From previous
• Dual Frequency
2
disable (TGD): configuration, set:
• P1 – P2 Correction • Dual Frequency • PC combination
• PC Combination
3. Run gLAB
1. Convert the output gLAB.out file to sp3 format: 4. In console mode:
3
Execute (in Console): out2sp3 gLAB.out
orb.sp3 • Convert the gLAB.out
2. Compare the computed coordinates orb.sp3 with reference GRAA_07_080.sp3. to orb.sp3 format file.
Note: Use the configuration file dif.cfg.
gLAB_linux –input:cfg dif.cfg –input:SP3 GRAA_07_080.sp3 –input:SP3 orb.sp3 • Compute differences
dif.out with reference file
3. Plot dif.out file:
GRAA_07_080.sp3
Plotting
• Make the same plots as in
the previous case.
Questions
4. Why is the solution noisier
than the previous one with
Zoom C1 code?
5. Discuss the pros and cons
of the ionosphere-free
combination of codes (PC),
compared with C1 code.
6. How could the performance
be improved?
Answer to Question 4:
Why the solution is noisier than the previous one with C1 code?
f12 P1 f 22 P2 P1 P2 77
2
Answer to Question 5:
Discuss the pros and cons of the ionosphere-free combination of codes (PC).
• Combination PC removes about the 99.9% of ionospheric delay, one of the most difficult error sources to
model, but two frequency signals are needed. On the other hand, PC is noisier than the individual codes
C1, P1 or P2 (see HW3).
Answer to Question 6:
How could the performance be improved?
• Smoothing the code with the carrier and/or using precise orbits and clock products as well.
Homework:
HW3: Assess the measurement noise on the C1, P1, P2 and PC code measurements.
2 3
Set calculate Set data decimation to 30
Select files seconds instead of 300 to
graa0800.07o Set PPP Set
have a higher SPP of
number
output samples
1
cod14193.sp3
cod14193.clk
igs05_1402.atx
Disable Estimate
Troposphere
From PPP configuration, disable:
• Receiver Antenna Phase Center
• Receiver Antenna Ref. Point
• Ionospheric (already disabled)
• P1 – P2 (already disabled) Switch to
• Tropospheric Kinematic
• Solid Tides correction
2
Execute (in Console): out2sp3 gLAB.out
orb.sp3
dif.out
3. Plot dif.out file:
1 3. Make plots
as before
Run gLAB
Questions
7. Which is the improvement in
precise orbits and clocks
accuracy, regarding the
broadcast case?
8. How do carrier phase
measurements allow to
improve the accuracy?
9. Why do large peaks appear?
Zoom 10. Why does a 40-50 cm bias
appear in the radial
component?
11. Why do wind-up and satellite
antenna phase center offset
corrections have to be
applied? What about the
solid tides correction?
Answer to Question 7:
Which is the improvement in precise orbits and clocks accuracy, regarding the
broadcast case?
• Broadcast orbits and clocks are accurate at the level of few meters.
• Precise orbits and clocks IGS products are accurate at few centimeter level (see HW4).
Answer to Question 8:
How do carrier phase measurements allow to improve the accuracy?
• Code measurements are unambiguous but noisy (meter-level measurement noise).
• Carrier measurements are precise but ambiguous (few millimetres of noise, but with an
unknown bias that can reach thousands of kilometres).
• The carrier phase biases are estimated in the navigation filter along with the other parameters
(coordinates, clock offsets, etc.). If these biases were fixed, then measurements accurate at
the level of few millimetres, would be available for positioning. However, some time is needed
to decorrelate such biases from the other parameters in the filter, and the estimated values
are not fully unbiased.
Homework:
HW4: Assess the broadcast orbits and clock accuracy using the precise products as the truth.
Answer to Question 9:
Why do large peaks appear?
• The peaks are related to massive cycle-slips experienced after each revolution (about 1.5 h).
• After a cycle-slip happens, the filter has to restart the carrier ambiguity. This is not a problem
when it occurs on a single satellite (being the others well determined), as its ambiguity is
estimated quickly. But when a massive cycle-slip occurs, the filter needs more time to
converge (see HW5).
Homework:
HW5: Analyze the carrier phase biases convergence in this kinematic PPP positioning.
• Wind-up correction: Wind-up only affects the carrier phase measurements, but not the code
ones. This is due to the electromagnetic nature of circularly polarised waves of GPS signals.
The correction implemented in gLAB only accounts for the GPS satellites movement relative
to a receiver. An additional correction to account for the GRACE-A motion along its orbital
path could also be included, but since most part of this effect will be common for all satellites,
it will be absorbed by the receiver clock offset estimation.
• GPS satellite antenna phase center: Precise orbits and clocks of IGS products are relative
to the GPS satellite mass centre (unlike the broadcast ones, which are relative to the satellite
antenna phase centre [APC]). Thence an APC offset vector must be applied.
• Solid tides correction: No Earth’s Solid Tides corrections are needed because the rover is
not on the ground.
Questions
12. Which is the main benefit of
the GRAPHIC combination?
1
1
Note: 2
TGDs (i.e, P1-P2
DCBs) are needed
for single-frequency
positioning.
100
@ J. Sanz & J.M. Juan
Mode 5. Single freq. L1, C1 carrier and code with precise orbits & clocks
Questions
Homework:
HW6: Apply the Klobuchar model and discuss the results.
HW7: Generate a file with the satellite track (in a Earth-Fixed Earth-Centered reference
frame) to be viewed with .
HW2: Plot in the same graph the “True 3D error”, the “Formal 3D error” (i.e,
the 3D-sigma) and the number of satellites used. Analyze the evolution of
the error.
HW3: Assess the measurement noise on the C1, P1, P2 measurements and
the PC code combination.
HW4: Assess the broadcast orbits and clocks accuracy using the precise
products as the truth.
HW5: Analyze the carrier phase biases convergence in this kinematic PPP
positioning.
HW7: Generate a file with the satellite track (in a Earth-Fixed Earth-Centered
reference frame) to be viewed with .
1. [Output]: set
• Print INPUT Message
• Print MODEL Message
(see message content in the Tooltips)
2. Run gLAB.
3. Make plots:
[Analysis] section:
• Click on the preconfigured Ionospheric
combinations option.
• Complete the [Plot1, Plot2, Plot3] panels
configuration as indicated in the next slide.
Plot 1
Plot 3
$11‐$12 L1‐L2
Plot 2
The previous plot can be also generated in console mode as follows (see graph.py –help):
graph.py ‐f gLAB.out ‐c '($1=="INPUT")' ‐x4 ‐y'($11‐$12)' ‐‐l "ALL"
‐f gLAB.out ‐c '($1=="INPUT")&($6==16)' ‐x4 ‐y'($10‐$9)' ‐so ‐‐l "PRN16 P2‐P1"
‐f gLAB.out ‐c '($1=="INPUT")&($6==16)' ‐x4 ‐y'($11‐$12)' ‐so ‐‐l "PRN16 L1‐L2"
‐‐xn 43000 ‐‐xx 67000 ‐‐yn ‐10 ‐‐yx 15
3. From previous file, plot the ionospheric delay for the time interval [43000:67000]. Show in the
same plot: 1) ALL satellites, 2) PRN16 and 3) PRN21 (see Plot HW1-b in next slide).
graph.py ‐f I1.txt ‐x2 ‐y3 ‐s. ‐‐cl y ‐‐l "ALL"
‐f I1.txt ‐c '($1==16)' ‐x2 ‐y3 ‐so ‐‐cl r ‐‐l "PRN16"
‐f I1.txt ‐c '($1==21)' ‐x2 ‐y3 ‐so ‐‐cl g ‐‐l "PRN21"
‐‐xn 43000 ‐‐xx 67000 ‐‐yn ‐10 ‐‐yx 10
Plot HW1-c generation (working with the GUI and in console mode):
1. Using the gLAB configuration of exercise 1, activate the “Ionospheric Correction” option in the
[Modelling] panel and run again gLAB. The program will output the file gLAB.out.
(see help and file format executing: gLAB_linux –messages, or gLAB_linux –help).
2. “grep” the MODEL messages of file gLAB.out, selecting the C1P [PRN, time Klob_iono] data:
grep MODEL gLAB.out |grep C1P|gawk '{print $6,$4,$25‐3}' > klob.txt
Note: the Klob_data is shifted by “‐3” meters to align the curves in the plot
3. Plot in the same graph the ionospheric delays of satellites PRN16 and PRN21 from I1.txt and
klob.txt file (see Plot HW1-c in the previous slide).
Note: Both the Graphic User Interface (GUI) panel or the graph.py tool (in console mode) can be
used for plotting.
2
77
M P1 P1 L1 2
1(L1 L2)
Compute P1 code noise and multipath as:
60
M P2 P2 L2 2
2
77
1(L1 L2)
Compute P2 code noise and multipath as:
60
Comments
• Large noise patterns appear at the end of
each data arc. This is due to interference
cross-talk with other components. The
figure at bottom shows the multipath map
for the GRACE-A .
• P2 code is noisier than P1 or C1.
Plot HW3-a Plot HW3-b • PC code combination is the noisiest one,
as expected.
C1 multipath
map of sat.
GRACE_A.
A GPS satellite
track is
shown in
blue
Plot HW3-c Plot HW3-d This figure is from
P. Ramos-Bosch
PhD dissertation,
gAGE/UPC 2008].
Comments
• Meter level errors are found on broadcast
orbits and clocks.
• The bias seen in the radial component is
due to the different APC’s used by the
GPS ground segment (i.e, in broadcast
orbits) and by IGS (precise products).
• This bias is compensated by a similar
Plot HW4-a1 Plot HW4-b1 shift in clocks.
• For the Signal-In-Space-Range-Error
(SISRE), please see the plot below.
Plot HW4-e1
Comments
The previous computations have been
repeated, but using the ANTEX file
gps_brd.atx, instead of igs05_1402.atx.
This new ANTEX file contains the GPS
antenna phase center offsets used by the
GPS ground segment, not the IGS ones.
Plot HW4-a2 Plot HW4-b2 • Notice that the biases in the radial
component have disappeared.
Plot HW4-e2
2. Run gLAB.
The program will output the file gLAB.out.
3. From gLAB.out, “grep” the POSTFIT message and generate the file amb.out, containing the
estimates of ambiguities for each epoch. Take the last estimated value of the ambiguities for
each epoch. This can be done by executing:
grep POSTFIT gLAB.out| gawk '{i=$6" "$4;a[i]=$13}END{for (i in a) print i,a[i]}' |sort ‐n > amb.out
Plot the results: Plot the ionosphere-free bias estimates as a function of time for the time interval
[40000:70000]. Show in the same graph: 1) ALL satellites, 2) PRN16 and 3) PRN21
(see Plot HW5-d).
Note: The GUI can be graph.py ‐f amb.out ‐x2 ‐y3
used instead of the ‐f amb.out ‐x2 ‐y3 ‐c '($1==16)' ‐‐l "PRN16"
“graph.py” command. ‐f amb.out ‐x2 ‐y3 ‐c '($1==21)' ‐‐l "PRN21"
‐‐xn 40000 ‐‐xx 70000 ‐‐yn ‐10 ‐‐yx 10
Zoom Comments
• Large peaks appear in the carrier phase
biases due to massive cycle-slips:
– Satellite tracking loses happen
periodically after each revolution.
– These satellite loses produce massive
Plot HW5-a Plot HW5-b cycle slips which leads to a global
reinitialization of carrier-phase biases
in the navigation (Kalman) filter .
– After such ambiguities reinitialization,
Zoom Zoom the filter needs some time to converge.
Code and Carrier + precise orbits & clocks: Single frequency (L1, C1) +
Klobuchar ionosphere
Configure gLAB as in Mode 5 and
complete the following steps:
1. [Input]: Upload the
• brdc0800.07n file to IONO
• brdc0800.07n file to DCBs
2. [Model]: set
• P1 – P2 corr.
• IONO corr.
1
2
126
@ J. Sanz & J.M. Juan
HW6: Single freq. L1, C1 carrier and code with precise orbits &
clocks using Klobuchar ionospheric corrections
Code and Carrier + precise orbits & clocks: Single frequency (L1, C1) +
Klobuchar ionosphere
Complete the steps
Single frequency
C1P 3. [Filter]:
L1P • Single Frequency
3 Set measurements:
• L1P (L1 carrier)
C1P= 1 meter
• C1P (P1 code)
L1P = 0.01 meters 4. In console mode:
• Convert the glab.out
to orb.sp3 format file.
4
1. Convert the output gLAB.out file to sp3 format:
Execute (in Console): out2sp3 gLAB.out
orb.sp3 • Compute differences
2. Compare the computed coordinates orb.sp3 with reference GRAA_07_080.sp3. with reference file
Note: Use the configuration file dif.cfg.
gLAB_linux –input:cfg dif.cfg –input:SP3 GRAA_07_080.sp3 –input:SP3 orb.sp3
GRAA_07_080.sp3
dif.out
3. Plot dif.out file: Make plots as before.
Comments
• A clear degradation is seen when
applying the Klobuchar model to the LEO.
• This is due to the large error introduced
by this model which was designed for
ground receivers, not for LEO’s.
• Next plot compares the L1 delay
computed from Klobuchar with the STEC
experienced by the GPS signal.