Nov 27, 2013 ... Tutorial 1: GNSS data processing laboratory exercises. Tutorial 2: ... laboratory
exercises. ... Note: The following exercises are very elementary and can be ......
The only missing record is the MS (Satellite Monitor) record.
GNSS Data Processing
Laboratory
Slides http://www.gage.upc.edu
gAGE
research group of Astronomy and Geomatics Barcelona, Spain
gAGE
@ J. Sanz Subirana & J.M. Juan Zornoza
Authorship statement The authorship of this material and the Intellectual Property Rights are owned by J. Sanz Subirana and J.M. Juan Zornoza. These slides can be obtained either from the server http://www.gage.upc.edu, or
[email protected]. Any partial reproduction should be previously authorized by the authors, clearly referring to the slides used. This authorship statement must be kept intact and unchanged at all times.
5 March 2017
Contents Tutorial 0: UNIX environment, tools and skills. GNSS standard files formats. Tutorial 1: GNSS data processing laboratory exercises. Tutorial 2: Measurements analysis and error budget. Tutorial 3: Differential positioning with code measurements.
Tutorial 4: Carrier ambiguity fixing. Tutorial 5: Analysis of propagation effects from GNSS observables based on laboratory exercises. Tutorial 6: Differential positioning and carrier ambiguity fixing. List of Acronyms.
Tutorial 0 UNIX enviroment, Tools and Skills. GNSS Standard File Formats
J. Sanz Subirana and J.M. Juan Zornoza
November 27, 2013
Tutorial 0.1. UNIX Environment, Tools and Skills
Tutorial 0.1. UNIX Environment, Tools and Skills Objectives To present a (very limited) set of UNIX instructions in order to manage files and directories, as well as some basic elements of awk/gawk programming and the graphical plotting environment graph.py. The aim is not to teach UNIX or programming languages, but to provide some basic tools needed to develop the practical sessions. Note: The following exercises are very elementary and can be omitted if the reader already has some basic knowledge of UNIX and gawk. Files to use sxyz.eci Programs to use graph.py
Development This session has been organised as a series of guided exercises to be done in the established order, which introduces the main instructions for use in the following sessions. 1. First instructions (a) Show the name of the directory where you are located. Execute: pwd (b) Examine the directory content. Execute: ls -lt (c) Go to the personal directory or home directory (‘∼’). Execute: cd or cd ∼ (d) Go to the GNSS directory (inside the home directory)1 Execute: cd GNSS (e) Access the HTML directory and view its contents. Execute: cd HTML ls -lt (f) Go back to the home directory. Execute: cd ∼ 1
If the installation has been done properly according to instructions in the installation guide, the following three directories will be found: FILES, PROG and HTML. These directories, together with the Notepad files, will appear in the home/GNSS directory.
1
gAGE/UPC
(g) Show a text line on the screen: Execute: echo "Have a nice day" (h) Direct the contents to a file: Execute: echo "Have a nice day" > test ls -ltr echo "you too" >> test (i) Show the contents of the file on the screen: Execute: cat test Try to execute this too: echo test. What happens? (j) Edit a file Execute:2 textedit test 2. Directory management (a) From any directory where you are located, go to the GNSS directory and check that you are in it. Create the directory working inside the GNSS directory. Access it. Go back to the directory immediately above (in this case the GNSS directory) by executing ‘..’). Execute: cd ∼/GNSS pwd mkdir working cd working pwd cd .. pwd 3. File management (a) Go to the working directory (which is inside the GNSS directory). Copy the file test from the home directory (‘∼’) to your current directory (symbolised by ‘.’). Execute: cd ∼/GNSS/working cp ∼/test . ls -lt (b) Copy the file test to the file file1.3 Check the contents of file1. Execute: cp test file1 ls -lt more file1 2
Any text editor can also be used. As file file1 does not exist, a new file will be created with this name and with the same contents as file test. 3
2
Tutorial 0.1. UNIX Environment, Tools and Skills
(c) Create a ‘link’4 from file file2 to file test. Check the file contents. Check the contents of file2. Execute: ln -s test file2 ls -lt more file2 (d) Using a text editor (e.g. gedit or similar), edit file2 and change the word day to the word YEAR. Save the changes and exit gedit. Next, check the contents of file test and its link file2. Have the contents of the original file test been modified through its link file2? Execute: gedit file2 more test more file1 (e) Remove file file1 and its link file2. Check if they have been deleted. Create the directory other. Remove the directory other. Execute: ls -lt rm file1 file2 ls -lt mkdir other ls -lt rm -r other ls -lt (f) Find information on the ‘mkdir’ and ‘rm’ commands in the help pages (i.e. in the UNIX manual). Execute: man mkdir man rm 4. Programming environment gawk5 (a) From within the working directory, create a link from file sxyz.eci (which is placed in the directory GNSS/FILES/TUT0) to a file with the same name in the working directory. Execute: cd ∼/GNSS/working ln -s ∼/GNSS/FILES/TUT0/sxyz.eci . ls -lt The file sxyz.eci contains three columns of coordinates, in a geocentric inertial system, of a set of satellites at different epochs. It contains the following fields: SATELLITE time(sec) X(km) Y(km) Z(km)
4
This differs from the previous case because file2 is not a new file, just a pointer to file test. Thus, the ‘link’ file2 represents the minimum space expense, independent of the file test size. Execute man ln to see the meaning of different types of links. 5 gawk is the GNU implementation of awk (from the Free Software Foundation).
3
gAGE/UPC
(b) Execute the instructions cat, more and less in order to display the file contents sxyz.eci. What differences can be seen among these instructions?6 Execute: cat sxyz.eci more sxyz.eci less sxyz.eci cat sxyz.eci | less (c) Using the programming language gawk, print (on screen) the first and third fields of file sxyz.eci. Execute: gawk ’{print $1,$3}’ sxyz.eci |more or cat sxyz.eci |gawk ’{print $1,$3}’ |more (d) Now print all the fields at the same time. Execute: cat sxyz.eci | gawk ’{print $0}’ | more (e) The following instruction generates the file prb1 which contains data from a single satellite. Which satellite is selected? Execute: cat sxyz.eci | gawk ’{if ($1==5) print $0 }’ > prb1 more prb1 (f) What is the meaning of the values in the second column of file prb2 generated by the next instruction? Execute (in a single line):7 cat sxyz.eci | gawk ’{if ($1==5) print $2,sqrt($3**2+$4**2+$5**2)}’> prb2 more prb2 (g) Discuss the structure of the following instruction that makes a ‘print’ with a particular format (where %i=integer, %f= float, %s= string). Execute: cat sxyz.eci |gawk ’{printf "%2i %02i %11.3f %i %s \n",$1,$1,$3,$3, $1}’|more (h) Access the manual pages of gawk. Execute: man gawk
6 The command ‘|’ allows us to connect the output of a process with the input of another. For example, the output of cat can be sent to more. 7 The sentence line is a single line, although it may appear as two lines because of typesetting constraints.
4
Tutorial 0.1. UNIX Environment, Tools and Skills
5. Graphics environment graph.py (a) Program graph.py is in directory ∼/GNSS/PROG/src/gLAB src. Link this program to the current directory "." (i.e. directory working). Execute: ln -s ∼/GNSS/PROG/src/gLAB src/graph.py . (b) For the previously generated file prb1, plot the third field (x coordinate) as a function of the second one (time in seconds). Execute:8 graph.py -f prb1 -x2 -y3 (c) Using file sxyz.eci, plot satellites #5 and #9. Execute:9 graph.py -f sxyz.eci -x2 -y3 -c ’($1 == 5)’ -f sxyz.eci -x2 -y3 -c ’($1 == 9)’ (d) Repeat the previous plot for the interval [20 000 : 30 000] on the xaxis. Execute: graph.py -f sxyz.eci -x2 -y3 -c ’($1 == 5)’ -f sxyz.eci -x2 -y3 -c ’($1 == 9)’ --xn 20000 --xx 30000 (e) Using file prb1, plot on the same graph the x (third field), y (fourth field) and z (fifth field) coordinate as a function of time (second field). Execute: graph.py -f prb1 -x2 -y3 -f prb1 -x2 -y4 -f prb1 -x2 -y5 (f) Using file prb1, plot on the same p graph the distance of the satellites from Earth’s mass centre (r = x2 + y 2 + z 2 ) as a function of time. Execute: graph.py -f prb1 -x2 -y’math.sqrt($3*$3+$4*$4+$5*$5)’ (g) For the same file used in the previous cases (prb1), write the title "orbit", x label "sec" and y label "m". Execute: graph.py -f prb1 -x2 -y3 -t "orbit" --xl "sec" --yl "m"
8 Depending on the PATH configuration, it would be necessary to execute ‘./graph.py’ instead of ‘graph.py’. Another possibility is to include the current directory ‘.’ in the PATH variable of the current terminal. This is done in the bash environment by executing export PATH="./:$PATH". On the other hand, if we want to make this PATH update permanent, then the sentence export PATH="./:$PATH" must be included at the end of file ‘.bashrc’ in the home directory. When working in tcsh instead of bash, the equivalent sentences are as follows: execute set PATH=./:${PATH} in the current directory (for a non-permanent change), or add the sentence set path=(./ $path) to the end of file /etc/csh.cshrc to make the PATH update permanent. Note that, in this last case, administrator privileges are needed to edit the /etc/csh.cshrc file. 9 Note that, in the Windows OS, instructions like ’($1=="5")’ must be written as "($1==’5’)"; that is, replacing (") by (’).
5
gAGE/UPC
(h) Visualise the different forms of graphic representations in the following instructions (with points, lines and other symbols or colours). Execute: graph.py graph.py graph.py graph.py graph.py graph.py graph.py graph.py graph.py
-f -f -f -f -f -f -f -f -f
prb1 prb1 prb1 prb1 prb1 prb1 prb1 prb1 prb1
-x2 -x2 -x2 -x2 -x2 -x2 -x2 -x2 -x2
-y3 -y3 -y3 -y3 -y3 -y3 -y3 -y3 -y3
-s. -s-s-. -s--so -s+ -sp -so --cl r -s. --cl g
(i) Save the plot in a POSTSCRIPT file "orbit.ps" and in a PNG! (PNG!) file "orbit.png". Execute: graph.py -f prb1 -x2 -y3 --sv orbit.ps graph.py -f prb1 -x2 -y3 --sv orbit.png (j) Check "help" in graph.py. Execute: graph.py -help
6
Tutorial 0.2. GNSS Standard File Format
Tutorial 0.2. GNSS Standard File Format By Adri` a Rovira Garc´ıa gAGE/UPC & gAGE-NAV, S.L.
Objectives To become familiar with the different format standard(s) involved in the GNSS data sets. To provide the user with a reliable and powerful tool to learn the standard formats in a very easy and friendly way, aided by explanatory tool tips. These tips will be triggered automatically when the mouse is hovered over a field. The explanations include a description of the field, the format in which it is written and, if applicable, its units. Files to use LaunchHTML.html, GLONASS Navigation Rinex v2.11.html, SP3 Version C.html, Observation Rinex v3.01.html, ANTEX v1.3.html, Observation Rinex v2.11.html, IONEX v1.0.html, Observation Rinex v2.10.html, SP3 Version C.html, RINEX CLOCKS v3.00.html, SBAS Navigation Rinex v3.01.html, GPS Navigation Rinex v2.11.html Programs to use Any Web browser (Firefox can be used, as well).
Development 1. RINEX measurement files: v2.10 This standard gathers the GNSS observations collected by a receiver. The file is divided clearly into two different sections: the header section and the observables section. While in the header global information is given for the entire file, the observables section contains the code and carrier measurements, among others, stored by epoch. Open file Observation Rinex v2.10.html with a Web browser and answer the following questions (the answer is provided at the end of each question). (a) Hover the mouse over the title ‘Observation RINEX 2.10 Format’, where some general information is given. Which was the first institution to develop this format? → The Astronomical Institute of the University of Berne. (b) What was the reason for developing such a standard? → The exchange of GPS data from several different GPS receivers. 7
gAGE/UPC
(c) Which type of optimisation has been applied to this standard? → Minimum space requirements, keeping the observation records as short as possible. (d) What is the maximum record (i.e. line) length? → Files are kept to 81-character lines. (e) The header section contains a set of labels. Where are they located? → The header labels are located between the 61st and the 80st column of each line. (f) Where can a collection of currently used formats be found? → On the IGS website: http://igscb.jpl.nasa.gov/components/formats.html . (g) The header section of this file is dual coloured in order to distinguish header information from header labels. What is the first and the last header label of the header section? → The first label is ‘RINEX VERSION / TYPE’ while the last label is ‘END OF HEADER’. (h) What is the difference between the ‘RINEX VERSION / TYPE’ and the ‘COMMENT ’ labels? → While the first one is a mandatory label, the second is optional and may not appear in some RINEX files. (i) Hover over the first field in the ‘RINEX VERSION / TYPE’ line; what is the main advance in this RINEX version? → Version 2 has been prepared to contain GLONASS or other satellite system observations apart from GPS satellites. (j) Where is the antenna located approximately? In which reference system? → The approximate antenna position is (478 902 8.4701, 176 610.0133, 419 501 7.0310) in the WGS-84 system. (k) Hover over the first field in the ‘LEAP SECONDS’ line; what is the difference between the various satellite systems, when counting leap seconds? → The Glonass time system is tied to UTC, so leap seconds are needed, for instance, to mix Galileo or GPS with Glonass data. (l) How many satellites are present in the current file? To which satellite system do they belong? → There are 14 different satellites: 14 GNSS satellites = 10 GPS + 3 Glonass + 1 SBAS.
8
Tutorial 0.2. GNSS Standard File Format
(m) Line ‘PRN / # OF OBS ’ has to be consistent with the observables listed in line ‘# / TYPES OF OBSERV’. What are these observations? Do all satellites contain the same observables in this example? → The observables are: L1, L2, P1, P2, C1, S1, S2. Glonass and SBAS satellites only have: L1, C1, S1. (n) How does the standard indicate the end of the header? → The last field of the header is a record of 60 empty characters. (o) The data section of this file is again dual coloured in order to distinguish blocks of data. According two the different colours used, how many epochs are included in this file? → There are two different epochs, each with a different colour. (p) The first line of an epoch contains information on a whole block of measurements. When is the first epoch of the file? → The first epoch corresponds to 5/3/2010 at 00:00:00. (q) How many satellites are present in the first epoch? Is there any particular feature occurring due to this number? → The first epoch contains 14 different satellites. Because there are more than 12 satellites, the list of epoch satellites is divided into two different lines. (r) Measurements follow the order stated in line ‘# / TYPES OF OBSERV’ line. The satellite order is given in the first line of the epoch. What are the units for the observables? → L1, L2: cycles of the carrier. P1, P2, C1: metres. S1, S2: receiver dependent. (s) Hover over the first L1 measure of satellite G13. The measure is given together with two indicators. What are these indicators? What do they represent? → Loss of Lock Indicator: Depending on its value, it can show a cycle slip, an opposite wavelength factor, or an anti-spoofing measurement. Signal Strength: Projected into the [1-9] interval. 2. RINEX measurement files: v2.11 Open file Observation Rinex v2.11.html with a Web browser. (a) Hover over the ‘WAVELENGTH FACT L1/2’ line records. The first line states the default values for the wavelength measures for the L1 and L2 frequencies. Which satellite system do the default values apply to? Interpret the second line of the ‘WAVELENGTH FACT L1/2’ records. → The Default Wavelength Factor applies for GPS only. Three satellites (G14, G18, G19) have a full cycle factor in the first frequency (L1) and half a cycle factor in the second frequency (L2). (b) Hover over the first record of line ‘# / TYPES OF OBSERV’. What observation types are defined in RINEX version 2.11? In what units are these observations measured? 9
gAGE/UPC
→ Pseudorange measures: C and P code [m] Carrier phase: L [cycles of the carrier] Doppler frequency: D [Hz] Signal-to-noise ratio: S [receiver-dependent]. (c) What value is set in the ‘RCV CLOCK OFFS APPL’ record? Where can the Receiver Clock Offset be found later in the RINEX file? → It has a value of 1, which means that an offset is applied in the receiver clock. The value of this offset is reported in the last record of the first line of each epoch. 3. RINEX Measurement files: v3.01 Open file Observation Rinex v3.01.html with a Web browser. (a) This RINEX version is newer than version 2. At first glance the header section is larger and the observation data records are reorganised to be column readable. Which satellite system does this file belong to? What type of file is it? → This file contains GPS, Glonass and SBAS observations, so it is a mixed file. It is an observation data file. Note that the possible values may have changed from the previous version. (b) The date record in ’PGM / RUN BY / DATE’ also has been redesigned. What is the date format now? What has changed in the versions? → In version 2.11, there was no a strict rule stating date file creation. In version 3.01, the date has to follow the structure Year/Month/Day - Hour/Minute/Second - Time zone. (c) A ‘MARKER TYPE ’ record has been added to the header. What type of marker type would report a station at the North Pole? → The North Pole is located in the middle of the Arctic Ocean, almost permanently covered with constantly shifting sea ice. It suits the ‘FLOATING ICE’ marker type. (d) An extensive description of the ANTENNA can now be obtained from this new standard. What type of antenna information is available? → Antenna Number. Antenna Type + Radome Identifier. ARP: (Height, East Eccentricity, North Eccentricity). ARP: (X,Y,Z) when mounted on a vehicle. Antenna Phase Centre: (North, East, North) w.r.t. the ARP. Antenna Bore-sight: (North, East, North) or (X,Y,Z). Antenna Zero Direction: Azimuth or Vector. (e) A new ‘SYS / # / OBS TYPES’ record has been added in this file. What observations are present for the SBAS satellites? Hover over the observation descriptors. How many pseudorange code descriptors are present for the sixth Beidou (Compass) frequency? → Glonass and SBAS satellites have the same four observation types: L1C S1C C1C S1C. RINEX v3.01 defines C6I, C6Q, C6X pseudorange code descriptors for Beidou. (f) A new ‘SIGNAL STRENGTH UNIT ’ record has been added to standardise RINEX SSI. What indicator would have a signal-to-noise ratio of 33 dBHz at the output of the correlator? 10
Tutorial 0.2. GNSS Standard File Format
→ From the RINEX table, it would present a 5 SSI value. (g) Records ‘SYS / DCBS APPLIED’ and ‘SYS / PCVS APPLIED’ inform if DCB or PCV has been applied. What programs/files have been used in these files? → DCBs are corrected using the CC2NONCC program10 with the input file p1c1bias.hist. PCVs are corrected using the PAGES program with input file igs05.atx. (h) Hover over the ‘SYS / SCALE FACTOR’ data records. What is the purpose of implementing such a scale factor? → The purpose of the scale factor is to increase resolution of the phase observations. (i) Find the week number in the ‘LEAP SECONDS’ line. What is the reason for the week roll-over? When it did happen first? → Because it is a 10-bit number. It happened on 22/08/1999 at 00:00:00 GPS time. (j) Hover over any observation data record. Why are there lines of 80 characters, and lines that are longer? → While the epoch headers retain a record length of 80 characters, the observation record length limitation of RINEX versions 1 and 2 has been removed. 4. RINEX navigation files: v2.11 (GPS) The standard navigation messages broadcast by the GNSS satellites discussed here can vary slightly from one satellite system to another. For example, while the GPS navigation RINEX contains pseudo-Keplerian elements that permit the calculation of the satellite’s position, Glonass navigation RINEX contains the satellite’s position, velocity and Sun and Moon acceleration in order to integrate the satellite orbits using the Runge– Kutta numerical method. Open file GPS Navigation Rinex v2.11.html with a Web browser. (a) As usual, this file is divided into a header section and a data record section. The header section is shorter than in the observation RINEX. How short can a GPS navigation message RINEX header be? → The shortest header contains just three lines: ‘RINEX VERSION / TYPE’, ‘PGM / RUN BY / DATE’ and ‘END OF HEADER’. (b) What ionospheric corrections are given? The alpha0, alpha1, alpha2, alpha3 and the beta0, beta1, beta2, beta3 coefficients for the Klobuchar model. (c) How many leap seconds are used in the file? When is it recommended to state the number of leap seconds? → Fifteen leap seconds. It is recommended for mixed GPS/Glonass files. (d) This file contains the ephemerides for two different satellites, each block of ephemeris having a separate colour. Where is the satellite identifier found? What satellites are present in the file? 10
Program CC2NONCC is available from https://goby.nrl.navy.mil/IGStime/cc2noncc/ .
11
gAGE/UPC
→ The satellite identifier is found in the first record of the ephemeris block. The PRN identifiers present in the file are PRN 6 and PRN 13. (e) The first line of each ephemeris block contains three records to compute the satellite clock offset to the GPS time. What are these three coefficients? → They are the polynomial coefficients to compute the satellite clock offset from the GPS system time. These coefficients are: bias, drift and drift rate from the GPS time. (f) GPS orbits are nearly circular. In the third line can be found the broadcast orbit eccentricity. What are the orbit eccentricities for the file satellites? → PRN 6 has an eccentricity of 0.006 267 404 183 75. PRN 13 has an eccentricity of 0.002 002 393 477 60. (g) The last non-blank field (second record in the eighth row) states the validity period for each ephemeris block. What is the value if it is not known? In this case, what is the fitting interval? → The value is zero when the fitting interval is unknown. In this case, the fitting interval is [t0 − 2 h, t0 + 2 h]. 5. RINEX navigation files: v2.11 (Glonass) Open file GLONASS Navigation RINEX v2.11.html with a Web browser. (a) How do you identify this file as a Glonass navigation message? → The RINEX file type value is a ‘G’. (b) Does this file include any ionospheric information? → The Glonass navigation message does not broadcast ionospheric corrections. (c) What correction has to be applied to correct Glonass system time to UTC for the SU time zone? → Tutc = Tsv + TauN - GammaN*(Tsv-Tb) + TauC. (d) Each of the other lines of Glonass navigation files contain three records with satellite position, velocity and Sun–Moon acceleration. In which units are they given? What information gives the fourth record of each line? → Units are: km, km/s and km/s2 . Message Frame Time, Satellite Health, Frequency Number, Information Age. (e) Frequency information is found in the third row of each ephemeris block. What are the channel numbers of the two satellites present in the file? Which are the associated frequencies?
12
Tutorial 0.2. GNSS Standard File Format
→ R3 used the 21st frequency slot, so 1602 + 0.5625 ∗ 21 = 1613.8125 MHz. R11 used the 4th frequency slot, so 1602 + 0.5625 ∗ 4 = 1604.2500 MHz.
6. RINEX navigation files: v3.01 (SBAS) Open file SBAS Navigation RINEX v3.01.html with a Web browser. (a) The SBAS broadcast navigation message is given in a new version (v3.01). The first change is observed in the first header line, where the file type and the satellite system are now clearly divided. What is the difference between the older version 2.11 in representing the navigation messages? → In the older navigation message version, the satellite system record was unused. In version 2.11, file type N or G would directly represent a GPS or Glonass navigation message. In version 3.01, file type N represents a navigation message, where the satellite system record specifies which of the G, R, S, E, M satellite system(s) is involved. (b) The ‘TIME SYSTEM CORR’ line allows the satellite system time to be transformed to UTC time through a correction. What are the coefficients of the formula? Which is the augmentation system of this navigation message? → The formula is: CORR(t) = a0 + a1*DELTAT Particularised: CORR(t)= 0.1331791282E-06 + 0.107469589E-12*(t-552960) The augmentation system is EGNOS. (c) This file contains ephemerides for a geostationary satellite. What is the difference in time between the two records? Where can it be found? → The epoch time is located in the first line of each data epoch. The first epoch corresponds to 18/12/2010 at 00:01:04. The second epoch corresponds to 18/12/2010 at 00:05:20. So, between them, the elapsed time is 4 minutes and 16 seconds. (d) SBAS navigation files are similar to Glonass ones, in that both contain records of satellite position, velocity and accelerations. What is the flag for a healthy satellite? Which IODN corresponds to the ephemeris present in the file? → A healthy satellite contains a 0.0 Health flag. The first ephemeris block has IODN: 23. The second ephemeris block has IODN: 24.
13
gAGE/UPC
7. Global Ionospheric Map files: IONEX v1.0 Using a GNSS tracking network it is possible to extract information about the TEC of the ionosphere on a global scale. The IONEX format is a welldefined standard used to exchange ionospheric maps. It follows the same philosophy as the RINEX format, even when the files are organised into a header and a data section where the maps are allocated. Open file IONEX v1.0.html with a Web browser. (a) Hover over the third record of the first line. How many sources can contribute to produce an IONEX map? And how many models? → Several satellite sources can be used: Envisat, Geostationary, Glonass, GPS, TOPEX/POSEIDON, Navy Navigation Satellite (NNS) or IRI. Two different models are possible: BENt or ERS. (b) This file contain two types of information lines: COMMENT lines and DESCRIPTION lines. What is the difference between the two records? Which model is used in this IONEX map? When is this map valid? → Description lines give a brief description of the technique and model used, while comment lines can contain any kind of information. The IONEX map model of this file is based on spherical harmonics. The ionospheric map is for Day of Year (DoY) 288 of 1995. (c) What information would you expect to appear in the ‘OBSERVABLES USED’ line when using a theoretical model? → A blank line is given when a theoretical model is used. (d) After COMMENT line(s) the IONEX Map Grid is described. Give details about: the number and dimension of the maps present in the current file with its mapping function; the number of stations and satellites used for the TEC computations; the grid size and the satellite elevation cut-off. → The IONEX file contains five 3D TEC/RMS/HGT maps with a 1/ cos(z) mapping function. 80 stations and 24 satellites have been used to produce this map. The grid extends from 200 to 800 km in height with an equidistant increment of 50 km. The grid extends from 85◦ to −85◦ in latitude and from 0◦ to 355◦ in longitude in increments of 5◦ . (e) There are some auxiliary data in this file. What type of information is given, and in which units? → The IONEX map gives the DCBs and their RMS for the satellites used in the map. The DCBs are given between the GPS P1 and P2 codes in units of nanoseconds (of L1−L2 delay). (f) Once the header section ends, the ionospheric maps are detailed. How many ionospheric maps are presented in the current file? → There are three different maps: a TEC; an RMS error map of the associated TEC map; and a final map containing the heights at which the TEC values are obtained. (g) Hover over the first TEC values. What is the time for this map? 14
Tutorial 0.2. GNSS Standard File Format
→ The first map corresponds to 15/10/1995 at 00:00:00. (h) How can the exponent values be interpreted? → The exponent values indicate the 10 exponent to apply to the TEC values: Exponent: -3 TEC field; 1000 TEC value: 1000 · 10−3 = 1 TECU. TECU is the given unit for TEC, where 1 TECU corresponds to 1016 e− /m2 . (i) How would an non-available TEC value be seen? → Non-available TEC values are given as 99999 values. (j) How many TEC values fit in a single line and in which units are these values given? → TEC rows are given in 16 fields per line, up to the grid limits. (k) Hover over any of the RMS values. What is the default exponent for stating the RMS values of the TEC maps? → The default exponent is -1: 10−1 = 0.1 TECU, where 1 TECU corresponds to 1016 e− /m2 . 8. RINEX clock files: v3.00 The standard files provide station and satellite clock data. Four types of information are given in this format: data analysis results for receiver and satellite clocks derived from a set of network receivers and satellites with respect to a reference clock; broadcast satellite clock monitoring;, discontinuity measurements; and calibration(s) of single GNSS receivers. Open file RINEX CLOCKS v3.00.html with a Web browser. (a) This clock data file starts with a header section as usual. Hover over the first and second comment records. What is the difference between the comments? What kind of information does the second comment give? → The first comment is generic, while the second is a Timescale ReAlignment comment. This comment is required if ‘Ax’ data are given (AR or AS). In case clock values have been time-scale shifted, the method applied to all receiver and satellite clocks should be noted. (b) Hover over the ‘SYS / # / OBS TYPES’ records. Which observation descriptors are present in this RINEX clock file? → This file contains four different descriptors from the GPS system: C1W, L1W, C2W, L2W. (c) Records ‘SYS / DCBS APPLIED’ and ‘SYS / PCVS APPLIED’ describe the DCB and PCV. What programs are used to apply different corrections? → DCB corrections are applied using the CC2NONCC program, while PCV corrections are applied using the PAGES program. (d) Records ‘STATION NAME / NUM’ and ‘STATION CLK REF’ give information about the station. Which receiver identifier is present in the file? What external clock of this station is used for calibration? → The station name is the USNO with a receiver identifier 40451S003. The external clock is the USNO, connected via a continuous cable. 15
gAGE/UPC
(e) What is the analysis centre of this file? → The analysis centre is the USNO, using the GIPSY/OASIS software. (f) This file uses two different groups of ‘# OF CLK REF’ and ‘ANALYSIS CLK REF’. When does each clock reference apply? → The data set is for the date 14/07/1994. USNO clock reference applies from 00:00:00 to 20:59:59. Afterwards, the clock reference used is TIDB from 21:00:00 to 23:59:59. (g) How many receivers are included in the data file? Which reference frame is used to give station coordinates? → Five different stations are used in the file: GOLD (USA), AREQ (Peru), TIDB (Australia), HARK (South Africa), USNO (USA). (h) The data record section of this file comes right after the ‘END OF HEADER’ record. Each clock data record starts with a data type identifier. Which ones are present? → The following clock data records are present: AR (Receiver Analysis), AS (Satellite Analysis), CR (Receiver Calibration), DR (Receiver Discontinuities). The only missing record is the MS (Satellite Monitor) record. (i) What data records are present for all clock data types? Which data records are sometimes present? → Records ‘Clock Bias’ and ‘Clock Bias Sigma’ are always present. The ‘Clock Rate’, ‘Clock Rate Sigma’, ‘Clock Acceleration’ and ‘Clock Acceleration Sigma’ are only present for the AR clock data type. 9. APC files: ANTEX v1.3 These standard files in ANTEX contain satellite and receiver antenna corrections. Satellite data include satellite and block-specific PCO. Receiver data include elevation and azimuth-dependent corrections for combinations of antennas and radomes. Open file ANTEX v1.3.html with a Web browser. (a) As usual, this file contains a header section. Hover over the record present in line ‘PCV TYPE / REFANT’. Which PCV is used in this file? Which antenna is used as a reference? → PCVs are relative (i.e. not absolute, see section 5.6.1, Volume I). This ANTEX file uses the AOAD/M T antenna as a reference. (b) The different blocks of information are clearly identified using colours. What are the opening and closing records of each block? Which antennas are described in the file? → The antenna blocks start with record ‘START OF ANTENNA’ and end with ‘END OF ANTENNA’. This ANTEX file contains three different antenna descriptions. The first one is from the GLONASS R08 satellite, the second from the GPS satellite G12 (modernised block 2) and the third corresponds to the AOAD/M B antenna. (c) Analyse Glonass antenna record ‘TYPE / SERIAL NO’. How is the satellite code (CNNN) interpreted? When was the satellite launched? How many satellites were launched that year before this one? Repeat the exercise with the GPS satellite. 16
Tutorial 0.2. GNSS Standard File Format
→ The Glonass antenna corresponds to a GLONASS (R) satellite, numbered 729. It was launched during the year 2008. According to the ANTEX record, it is the 67th launched satellite. The GPS antenna is onboard the 58th GPS SV. It is the 52nd satellite launched during 2006. (d) Line ‘DAZI’ shows the azimuth increment used to characterise the antenna’s azimuth phase pattern. For satellite R08, is the PCV azimuth dependent? What about the GPS one? → Because a DAZI value of 0.0 is given, the PCVs of R08 and G12 are not azimuth dependent. (e) ‘ZEN1 / ZEN2 / DZEN’ gives information on both AZI and NOAZI phase patterns. What satellite grids are used to study the antennas? Is there any difference between receiver and satellite antennas? → Both satellite grids start at 0.0◦ and end at 14.0◦ in 1◦ steps. Receiver antennas use zenith degrees, satellite ones use nadir degrees. (f) ‘# OF FREQUENCIES’ determines the number of frequencies for each antenna block. What frequencies are described in the block for each satellite phase pattern? → Two different frequencies are described. The Glonass satellite describes G1 and G2 frequencies, while the GPS satellites describe L1 and L2. (g) The frequency section extends from ‘START OF FREQUENCY’ to ‘END OF FREQUENCY’ records. What information is given? Give the eccentricity vector for both satellites. What is the origin of this vector? → The eccentricities of the APC and the phase pattern values are R08=(-545.00,0.00,2300.00) and G12=(-10.16,5.87,-93.55). The vector points from the satellite centre of mass to the satellite APC. (h) How many non-azimuth-dependent (NOAZI) phase pattern values are specified? Why? → Fourteen different NOAZI values are specified, due to the ‘ZEN1 / ZEN2 / DZEN’ definition. Because DAZI is set to 0, NOAZI-dependent phase patterns are specified. (i) The third antenna corresponds to a receiver antenna. What is the calibration method? Which agency has created such corrections? → Calibrations have been converted from file igs 01.pcv. TUM is the creator of the file.
17
gAGE/UPC
(j) This antenna has a non-zero DAZI record for the PCVs. What is the value of this increment? Where else can we see this DAZI? → This antenna block has a 30◦ azimuth increment for the PCVs. So, this value will be given from 0 to 360 in increments of 30◦ . Apart from giving the NOAZI values, this data set includes the DAZI values, both of them using a 0.0 to 90 grid with a 5◦ step. 10. Precise orbit and clock files: SP3 version C Precise orbital data (satellite position and velocity), the associated satellite clock corrections, orbit accuracy exponents, correlation information between satellite coordinates and satellite clock are available in this format. Open file SP3 Version C.html with a Web browser. (a) The structure of this file is different from the RINEX ones seen up to now. Hover the mouse over the ‘Extended Standard Product 3 Orbit Format’ title, where some general information is given. What additional information is included regarding to the SP3-c version? → Satellite clock corrections, orbit accuracy exponents, comment lines, the GPS week and the first epoch seconds of a week. (b) What was the main advance in the SP3-b version? Did this change some previous characteristics? → Version B of the SP3 files accommodated Glonass orbits. SP3-b modifications were backwards compatible with SP3-a, with the exception of the satellite identification records, from an I3 field to an A1,I2 one. (c) What is the main advance in the SP3-c version? How is this achieved? → Files now include not only clock accuracy information, but also information on the accuracy of (X, Y, Z) satellite coordinates, which is added using columns 61 to 80 in each position and clock record. (d) How is this format organised? Is there any optional record? → The format of an SP3 file is a header, followed by a series of epoch times, each with a set of position and clock records listed for each satellite. Optional records are: satellite velocities, clock correction rate of change, position and clock correlation record (EP record) and velocity and clock rate-of-change correlation record (EV record). (e) The first line of the SP3 file contains information about the entire file. What is the version of the current file? What might be the next SP3 version? Which flag mode is set in this file? What time is the first epoch? How many epochs are included in this file? What type of orbit is used in the file? Which agency has created the file? → The version of the file is C-version. SP3 versions follow the alphabet, so next one might be the SP3-D version. The velocity mode flag is set. This means the records will follow the order P,V, P,V, ... in case there are additional records, (EP or EV), which would be in the middle. The first epoch dates from 08/08/2001 at 00:00:00. There are 192 epochs up to a maximum of 10 million. 18
Tutorial 0.2. GNSS Standard File Format
The orbit type is HLM, which means it has been fitted by applying a Helmert transformation. IGS is the agency that created the file. (f) What is the symbol identifying the start of the second line? Which GPS week number corresponds to this file? Which interval is used in this file? → The ## symbols. This file corresponds to the GPS week 1126. A 900 s interval is used. (g) The next block (lines 3–7) states the satellites used in the file. How many have contributed? What does a zero value mean? How many different satellites from different satellite systems are identified? → There are 31 different satellites. The 0 value indicates that all identifiers have been listed. Each identifier consists of the satellite system indicator followed by a two-digit integer. (h) From lines 8 to 12, orbit accuracy of the satellites is listed following the previous block order (lines 3–7). How is this accuracy exponent interpreted? → For example, if the accuracy exponent is 13 → 213 mm ' 8 m. This accuracy represents one standard deviation of the entire file (per satellite). (i) The next block comprises lines 13 and 14. Although it is mainly unused, what information is given in the file? → This block states the file type and the system time used in the file. (j) The next block comprises lines 15 and 16. What information is given in the file? What is the reason for using such base numbers? → This block contains the floating-point base number used for computing the standard deviations of satellite position, velocity, clock correction and rate of change of the clock correction. Better resolution can be obtained using a floating-point number different from 2. (k) After the ’comment’ section, the data records start with the previously seen time of first epoch. What symbols mark the start of comments and the new epoch? → Comments start with symbols ‘/*’, while the new epoch starts with symbol ‘*’. (l) The second epoch line contains the position and clock data record. What parameters are given? Which units are used? Explain the different flags applied to the first satellite. → Satellite (X,Y,Z) positions, the clock correction with its corresponding standard deviation exponents. There are four final flags. Satellite positions are given in kilometres, clock correction in milliseconds. The exponents generate corrections in millimetres and picoseconds. The first satellite has set: a discontinuity flag between the previous epoch and the current epoch; an orbit position and clock prediction flag; and a manoeuvre flag. 19
gAGE/UPC
(m) The third epoch line contains the extended position and clock correlation record. What information is given in the first four records? What is the difference with the previous line? Which correlation coefficients are given next? → The standard deviations of the satellite position and clock correction are given with greater resolution than the approximate values given in the position and clock record. The correlations between the X/Y, X/Z, Y/Z satellite coordinates, and the correlations between the X/C, Y/C, Z/C satellite coordinates and clock. (n) The fourth epoch line contains the velocity and clock rate-of-change record. In which units are satellite velocities, clock rate of change and their deviations expressed? What happens if the deviations are unknown or too big to represent? → Velocities are given in decimetres/second and clock rate of change in microseconds/second. Velocity deviation is in millimetres/second and clock rate-of-change deviation in picoseconds/second. A value of 99 means the standard deviation was too large to represent, while a blank means it is unknown. (o) The fourth epoch line contains the extended velocity and clock rateof-change record. What correlation coefficients are given? Why are the values given greater than one? → The correlations between the Vx/Vy, Vx/Vz, Vy/Vz satellite velocities, and correlations between the Vx/Clock, Vy/Clock, Vz/Clock satellite velocities and clock. Because they have to be divided by 107 .
20
Tutorial 1 GNSS Data Processing Lab Exercises Prof. Dr. Jaume Sanz Subirana and Prof. Dr. J. M. Juan Zornoza assisted by Dr. Adrià Rovira Garcia
Research group of Astronomy & Geomatics (gAGE) Universitat Politècnica de Catalunya (UPC) Barcelona, Spain
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
©gAGE/UPC
gAGE/UPC
Su
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
OVERVIEW • • • •
Introduction The gLAB tool suite Examples of GNSS Positioning using gLAB Laboratory session organization
LABORATORY Session • Starting-up your laptop • Basic: Introductory lab exercises • Medium: Laboratory Work Project: Kinematic positioning of a LEO sat. • Advanced: Homework ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
3
Introduction • This practical lecture is devoted to analyze and assess different issues associated with Standard and Precise Point Positioning with GPS data. • The laboratory exercises will be developed with actual GPS measurements, and processed with the ESA/UPC GNSS-Lab Tool suite (gLAB), which is an interactive software package for GNSS data processing and analysis. • Some examples of gLAB capabilities and usage will be shown before starting the laboratory session. • All software tools (including gLAB) and associated files for the laboratory session are included in the USB stick delivered to lecture attendants. • The laboratory session will consist in a set of exercises organized in three different levels of difficulty (Basic, Medium and Advanced). Its content ranges from a first glance assessment of the different model components involved on a Standard or Precise Positioning, to the kinematic positioning of a LEO satellite, as well as an in-depth analysis of the GPS measurements and associated error sources.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
4
OVERVIEW • Introduction ¾ The gLAB tool suite • Examples of GNSS Positioning using gLAB • Laboratory session organization
LABORATORY Session • Starting-up your laptop • Basic: Introductory lab exercises • Medium: Laboratory Work Project: Kinematic positioning of a LEO sat. • Advanced: Homework ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
5
The gLAB Tool suite The GNSS-Lab Tool suite (gLAB) is an interactive multipurpose educational and professional package for GNSS Data Processing and Analysis.
• gLAB has been developed under the ESA Education Office contract N. P1081434.
Main features: • High Accuracy Positioning capability. • Fully configurable. • Easy to use. • Access to internal computations. ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
6
The gLAB Tool suite • gLAB has been designed to cope with the needs of two main target groups: – Students/Newcomers: User-friendly tool, with a lot of explanations and some guidelines. – Professionals/Experts: Powerful Data Processing and Analysis tool, fast to configure and use, and able to be included in massive batch processing.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
7
The gLAB Tool suite • Students/Newcomers: – Easiness of use: Intuitive GUI. – Explanations: Tooltips over the different options of the GUI. – Guidelines: Several error and warning messages. Templates for pre-configured processing.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
8
The gLAB Tool suite • Students/Newcomers: – Easiness of use: Intuitive GUI. – Explanations: Tooltips over the different GUI options.. – Guidelines: Several error and warning messages. Templates for pre-configured processing.
• 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.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
9
The gLAB Tool suite • In order to broad the tool availability, gLAB Software has been designed to work in both Windows and Linux environments.
• The package contains: – Windows binaries (with an installable file). – Linux .tgz file. – Source code (to compile it in both Linux and Windows OS) under an Apache 2.0 license. – Example data files. – Software User Manual. – HTML files describing the standard formats.
©gAGE/UPC
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
10
The gLAB Tool suite
Read files capability: • RINEX observation v2.11 & v3.00 • RINEX navigation message. • SP3 precise satellite clocks and orbits files • ANTEX Antenna information files. • Constellation status. • DCBs files. • GPS_Receiver_Type files. • SINEX position files. Pre-processing module: • Carrier-phase prealignment. • Carrier-phase / pseudorange consistency check. • Cycle-slip detection (customizable parameters) - Melbourne-Wübbena. - Geometry-free CP combination. - L1-C1 difference (single frequency). • Pseudorange smoothing. • Decimation capability. • On demand satellite enable/disable. • Elevation mask. • Frequency selection. • Discard eclipsed satellites.
©gAGE/UPC
Modelling module: • • • • • • • • • • •
Fully configurable model. Satellite positions. Satellite clock error correction. Satellite movement during signal flight time. Earth rotation during signal flight time. Satellite phase center correction. Receiver phase center correction. (frequency dependent). Relativistic clock correction. Relativistic path range correction. Ionospheric correction (Klobuchar, NeQuick, IONEX). Tropospheric correction -
Simple and Niell mappings. Simple and UNB-3 nominals.
• Differential Code Bias corrections. • Wind up correction. • Solid tides correction (up to 2nd degree).
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
11
The gLAB Tool suite Filtering module: • Able to chose different measurements to process (1 or more), with different weights. This design could be useful in future Galileo processing, where processing with different measurements may be desired. • Fixed or elevation-dependant weights per observation. • Troposphere estimation on/off. • Carrier-Phase or Pseudorange positioning. • Static/Kinematic positioning (full Q/Phi/P0 customization). • Able to do a forward/backward processing. • Able to compute trajectories (no need for a priori position).
©gAGE/UPC
Output module: • Cartesian / NEU coordinates. • Configurable message output.
Other functionalities: • Computation of satellite coordinates and clocks from RINEX and SP3 files. • Satellite coordinates comparison mode. For instance RINEX navigation vs. SP3, or SP3 vs. SP3 (along-track, cross-track and radial orbit errors, clock errors, SISRE). • Show input mode. No processing, only parsing RINEX observation files. • Current version allows full GPS data processing, and partial handling of Galileo and GLONASS data. • Future updates may include full GNSS data processing.
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
12
GNSS learning material package Includes three different parts, allowing to follow either a guided or a self-learning GNSS course: – GNSS Book: Complete book with theory and algorithms (Volume 1), and with a Lab. course on GNSS Data Processing & Analysis (Volume 2). – gLAB tool suite: Source code and binary software files, plus configuration files, allowing processing GNSS data from standard formats. The options are fully configurable through a GUI.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
13
OVERVIEW 9 Introduction 9 The gLAB tool suite ¾ Examples of GNSS Positioning using gLAB • Laboratory session organization LABORATORY Session • Starting-up your laptop • Basic: Introductory laboratory exercises (Ex1, Ex2) • Medium: Laboratory Work Project (LWP): Kinematic positioning of a LEO satellite • Advanced: Homework ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
14
Basic: Introductory Lab. Exercises • Standard and Precise Point Positioning
– To Illustrate how easy to process GNSS data using gLAB, a GPS receiver will be positioned in the next examples using: • Example 1: Broadcast orbits and clocks (SPP, kinematic). • Example 2: Precise Orbits and clocks (PPP, static). • Example 3: Precise Orbits and clocks (PPP, kinematic). – Solutions will be compared with an accurate reference value of receiver coordinates to asses the positioning error. Note: the receiver coordinates were keep fixed during the data collection.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
15
We will work after the correlator: Our input data are code and carrier measurements and satellite orbits and clocks.
RINEX FILES
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group off Astronomy A t & Geomatics G tics Technical Technic al University University y of Catalonia Catalonia
16
16
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
Open GNSS Formats with Firefox internet browser More details at: http://www.gage.es/gLAB ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
17
Example 1: Standard Point Positioning (SPP) SPP Template: Kinematic positioning with single freq. C1 code + broadcast orbits and clocks. 1. Select the SPP Template 2. Upload the RINEX files:
2
- Measurement: roap1810.09o - Navigation: brdc1810.09n
3. RUN gLAB
1
3
Note: Reference coordinates are from RINEX ©gAGE/UPC
http://www.gage.upc.edu
Default output file:
gLAB.out gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
18
Example 1: Standard Point Positioning (SPP) • Plotting Results
Positioning with few meters of error is achieved in kinematic SPP mode. • Receiver navigated as a rover in pure kinematic mode. • Single frequency C1 code is used. • Broadcast orbits and clocks.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
19
Example 2: Static Precise Point Positioning (PPP) PPP Template: Static positioning with dual freq. code & carrier (ionosphere-free combination PC,LC) + post-processed precise orbits & clocks.
1. Select the PPP Template 2. Upload data files: -Measurement: roap1810.09o - ANTEX: igs05_1525.atx - Orbits & clocks: igs15382.sp3 - SINEX: igs09P1538.snx
2 1 ©gAGE/UPC
3. RUN gLAB Default output file:
3
gLAB.out
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
20
Example 2: Static Precise Point Positioning (PPP) • Plotting Results •Coordinates are taken as constants in nav. filter. •Dual frequency Code and Carrier measurements. •Precise orbits and clocks. •Measurements modelling at the centimetre level.
©gAGE/UPC
Centimetre level accuracy over 24h data is achieved in PPP static mode
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
21
Example 3: Kinematic Precise Point Positioning From default configuration of [PPP Template], • Select kinematics in the [Filter] panel. Run gLAB and plot results.
Receiver navigated as a rover in a pure kinematic mode. ©gAGE/UPC
Decimetre error level navigation after the best part of an hour
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
22
OVERVIEW 9 Introduction 9 The gLAB tool suite 9 Examples of GNSS Positioning using gLAB ¾ Laboratory session organization LABORATORY Session • Starting-up your laptop • Basic: Introductory laboratory exercises (Ex1, Ex2) • Medium: Laboratory Work Project (LWP): Kinematic positioning of a LEO satellite • Advanced: Homework ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
23
Laboratory session organization • The laboratory session is organized as an assisted activity were a set of exercises must be developed individually or in groups of two. • As they are conceived as self-learning work, a detailed guide is provided in the slides (pdf file) to develop the exercises. • A set of questions is presented, and the answers are also included in the slides. • Teachers will attend individual (or collective) questions that could arise during exercise resolution.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
24
Laboratory session organization • The exercises are organized in three different levels of difficulty. The student can choose the level of exercises to do, although at least an introductory exercise is recommended to learn basic gLAB usage.
• 1. Basic: Introductory exercises 1 & 2. They consist of simple exercises to assess the model components for Standard and Precise Point Positioning. “Background information" slides are provided, summarizing the main concepts associated with these exercises.
Brief summaries of fundamentals in backup slides
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
25
Laboratory session organization • 2. Medium: Laboratory work project. It consists of the kinematic positioning of a Low Earth Orbit satellite. Different positioning modes are analyzed and different modeling options will be discussed.
Given that session time is limited to 3h, students who feel comfortable using gLAB, can skip part of the previous basic exercises (Ex1, Ex2) and jump to the Lab. Work Project.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
26
Laboratory session organization • 3 . Advanced: Labeled as “Homework exercises” A set of additional exercises addressed to those students that already have a solid background on GPS data processing. These exercises are out of the scope of this 3h laboratory session, and are posed for a possible further discussion… As in the previous cases, the answers to the posed questions are also included as BACKUP slides. A minimum knowledge of UNIX (e.g., awk) is required for these homework exercises. gawk 'BEGIN{g=(77/60)^2}{print $6, $4, (g*($13-$14)-($15-$16))/(g-1)}' meas.txt > PC.txt
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
27
OVERVIEW 9 Introduction 9 The gLAB tool suite 9 Examples of Positioning with gLAB 9 Laboratory session organization LABORATORY Session ¾ Starting-up your laptop • Basic: Introductory laboratory exercises (Ex1, Ex2) • Medium: Laboratory Work Project (LWP): Kinematic positioning of a LEO satellite • Advanced: Homework ©gAGE/UPC
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
28
Installing the software This tutorial has been designed to be executed under UNIX (Linux) Operative System (OS). Which is a very powerful and robust environment. Nevertheless, the necessary tools are provided for Windows or Macintosh users to install this software and to emulate a UNIX command line shell over Windows.
Linux users
Windows users can install
can install the native version of the software
the windows version of gLAB and the Cygwin emulator of a Linux command shell.
©gAGE/UPC
http://www.gage.upc.edu
Macintosh users can install the software through the Virtual Machine. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
29
Inside the “Windows” folder, there is the installable gLAB program. Follow the instructions of Software Installation file.
Inside the “Virtual Machine” folder, there are two folders and one file. Select the OSX Installers folder and follow the instructions of document “VirtualBoxInstaller_OSX.pdf”
Backup solution for Macintosh users: 8GB of free space in disk are required to install this SW. ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
30
Installing the software Windows users The Medium and Advanced exercises of this tutorial have been designed to be executed under UNIX (Linux) Operative System (OS). Which is a very powerful and robust environment. 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). ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
31
Installing gLAB + Cygwin 1.- First step: Click over the icon
Check the folder: C:\gLAB
©gAGE/UPC
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
32
2.- Second Step: Completing the gLAB Setup Wizard
Cygwin and gLAB installation must be selected.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
33
Once the installation finish, the icons of gLAB, Cygwin Terminal and the GNSS Data Processing folder will appear.
Tutorial slides
/cygdrive/c/gLAB/win/SUMMER_SCHOOL/WORK_FILES
UNIX (Linux) console to execute “command line” sentences http://www.gage.upc.edu
Suggested desk configuration to start working
©gAGE/UPC
34
Barcelona, Spain, 31 August - 10 September 2015
Local Organiser:
Su
Supported by:
ESA/ JRC INTERNATIONAL SUMMER SCHOOL ON GNSS 2015
©gAGE/UPC
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
35
NOTE: Data files are available at the folder: C:\gLAB\win\ SUMMER_SCHOOL\WORK_FILES
©gAGE/UPC
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
36
Windows Troubleshooting: Execute only if gLAB doesn’t run Some distributions of windows (e.g. Windows XP) do not install some dlls required to run gLAB_GUI. This problem is fixed by installing the "Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package MFC Security Update“.
To install this package: 1) Go to the DLL_fix folder, inside C:\gLAB directory. 2) Execute vcredist_x64 or vcredist_x86
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
37
OVERVIEW 9 Introduction 9 The gLAB tool suite 9 Examples of GNSS Positioning using gLAB 9 Laboratory session organization LABORATORY Session 9 Starting-up your laptop ¾ Basic: Introductory laboratory exercises (Ex1, Ex2) • Medium: Laboratory Work Project (LWP): Kinematic positioning of a LEO satellite • Advanced: Homework ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
38
Basic: Introductory laboratory exercises Exercise 1: Model components analysis for SPP – This exercise is devoted to analyze the different model components of measurements (ionosphere, troposphere, relativity, etc.). This is done both in the Signal-In-Space (SIS) and User Domains. 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.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
39
Exercise 1: SPP Model components analysis 1. Compute SPP using files: chpi0010.04o,brdc0010.04n Cachoeira Paulista station (in the south of Brazil: O=-22.7º, I=-45.0º). January 1st 2004.
4
2 3
1
©gAGE/UPC
5
gLAB.out
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
40
NEU Position Error plot from gLAB.out
NEU plot template configuration
FULL SPP model
North ©gAGE/UPC
East
Up http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
41
Exercise 1: SPP Model components analysis The different model components will be analyzed with gLAB: • Using the previous data file, the impact of neglecting each model component will be evaluated in the Range The modeling options and Position domains set in this panel are applied by default to • A baseline example of this analysis procedure the SPP solution. for the ionospheric correction is provided as follows. • The same scheme must be applied for all model terms. ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
42
Example of model component analysis: IONO. The procedure explained here is applicable for all the cases: iono, tropo… Default 1. configuration for SPP
In Modeling panel, disable the model component to analyze.
1
Disable Ionospheric correction
(in this example: disable Ionospheric correction)
2.
In the Default configuration the output file was gLAB.out
©gAGE/UPC
Save as gLAB1.out the associated output file. Notice that the gLAB.out file contains the processing results with the FULL model, as it was set in the default configuration.
http://www.gage.upc.edu
2Set output file as gLAB1.out
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
3 43
NEU Position Error plot from gLAB1.out
NEU plot template configuration
No Iono. correction gLAB1.out
North
East
©gAGE/UPC
Up gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
44
Vertical Position Error plot from gLAB.out, gLAB1.out
1
Click Clear to restart plots
Y-min, Y-max
3
2 gLAB1.out
gLAB.out Time (sec)
©gAGE/UPC
http://www.gage.upc.edu
Vertical gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
45
Horizontal Position Error plot: gLAB.out, gLAB1.out
1
Click Clear to restart plots
X-min, Y-min, Y-max
2
3
gLAB1.out
©gAGE/UPC
gLAB.out
East: 19
North: 18
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
46
Ionospheric model component plot: gLAB.out Code delay
Carrier advance
Ionosphere delays code and advances carrier measurements.
Select IONO ©gAGE/UPC
gLAB.out http://www.gage.upc.edu
Note: Use the gLAB.out file. In gLAB1.out file this model component was switched off. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
47
Summary: Iono. model component analysis
gLAB.out
gLAB1.out
gLAB1.out
gLAB.out
gLAB.out
Ionospheric correction (broadcast Klobuchar )
gLAB.out
Ionospheric delays are larger at noon due to the higher insulation.
©gAGE/UPC
Large positioning errors (mainly in vertical) appear when neglecting iono. corr.
Code delay Plot only
gLAB1.out
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
48
Exercise 1: SPP Model components analysis Ionospheric delay 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. The ionospheric refraction depends, among other things, of the location, local time and solar cycle (11 years). • First order (~99.9%) ionospheric delay on the inverse of squared frequency:
G ion
depends G ion
where I is the number of electrons per area unit along ray path (STEC: Slant Total Electron Content).
I
40.3 I f2
³ N ds e
• Two-frequency receivers can remove this error source (up to 99.9%) using ionosphere-free combination f 2 L1 f 2 L 2 LC 1 2 22 of pseudoranges (PC) or carriers (LC). f1 f 2 • Single-frequency users can remove about a 50% of the ionospheric delay using the Klobuchar model, whose parameters are broadcast in the GPS navigation message.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
49
Example of model component analysis: TROPO. The gLAB configuration can be set-up as follows, to repeat the processing without applying the tropospheric correction (but using the ionosphere again!):
Set again: Iono Disable: Tropo
keep
gLAB1.out as output file
• The same scheme must be applied for all other model terms (TGDs, relat...) ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
50
Exercise 1: SPP Model components analysis
gLAB.out
gLAB1.out
gLAB1.out
gLAB.out
gLAB.out
Tropospheric correction gLAB.out
Tropospheric and vertical error are highly correlated. A displacement of vertical component appears when neglecting tropospheric corrections.
gLAB1.out
©gAGE/UPC
(blind model)
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
51
Exercise 1: SPP Model components analysis 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.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
52
Exercise 1: SPP Model components analysis
gLAB.out
gLAB1.out
gLAB1.out
gLAB.out
gLAB.out
Relativistic correction on satellite clock due to orbit eccentricity.
gLAB1.out
©gAGE/UPC
gLAB.out
http://www.gage.upc.edu
This is an additional correction to apply at the receiver level. The satellite clock oscillator is modified on factory to compensate the main effect (~40Ps/day).
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
53
Exercise 1: SPP Model components analysis Relativistic clock correction 1) A constant component, depending only on nominal value of satellite’s orbit major semi-axis. It is corrected modifying satellite’s clock oscillator frequency:
f 0' f 0 f0
2
1 § v · 'U ¨ ¸ 2 2©c¹ c
4.464 1010
being f0 = 10.23 MHz, we have 'f=4.464 10-10 f0= 4.57 10-3 Hz. So, satellite should use f’0=10.22999999543 MHz.
2) A periodic component due to orbit eccentricity must be corrected by user receiver:
rel
2
Pa c
e sin( E )
2
rv (meters) c
Being P=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.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
54
Exercise 1: SPP Model components analysis
gLAB.out
gLAB1.out
gLAB1.out
gLAB.out
gLAB.out
P2-P1 Differential Code Bias (Total Group Delay [TGD])
correction.
gLAB1.out
©gAGE/UPC
gLAB.out
http://www.gage.upc.edu
These instrumental delays can affect up to few meters, being the satellite TGDs broadcast in the navigation message for single frequency users.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
55
Exercise 1: SPP Model components analysis Total Group Delay correction (TGD) (P2-P1 Differential Code Bias [DCB]) • Instrumental delays are associated to antennas, cables, as well as different filters used in receivers and satellites. They affect both code and carrier measurements. • Code instrumental delays depend on the frequency and the codes used, and are different for the receiver and the satellites. • Dual frequency users cancel such delays when using the ionosphere free combination of codes and carrier phases. • For single frequency users, the satellite instrumental delays (TGDs) are broadcast in the navigation message. The receiver instrumental delay, on the other hand, is assimilated into the receiver clock estimation. That is, being common for all satellites, it is assumed as zero and it is included in the receiver clock offset estimation.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
56
Exercise 1: SPP Model components analysis
gLAB.out
gLAB1.out
gLAB1.out
gLAB.out
gLAB.out
Satellite clock offsets
gLAB1.out
©gAGE/UPC
gLAB.out
http://www.gage.upc.edu
This is the largest error source, and it may introduce errors up to a thousand kilometers.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
57
Exercise 1: SPP Model components analysis Satellite clock offsets – They are time-offsets between satellite/receiver clocks time and GPS system time (provided by the ground control segment). – The receiver clock offset is estimated together with receiver coordinates.
– Satellite clock offset values are provided: • In real-time, within the broadcast navigation message with a few meters of error or, • In post-process mode, by IGS precise products with centimeter-level accuracy.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
58
Basic: Introductory laboratory exercises Exercise 2: Model components analysis for PPP – This exercise is devoted to analyse the additional model components used in Precise Point Positioning (the ones which are not required by SPP). This is done in Range and Position Domains. 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.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
59
Exercise 2: PPP Model components analysis • Compute the kinematic PPP solution using files: chpi0010.04o, igs_pre1400.atx, igs12514.sp3
Set Kinematic
2
3
1 Note: The igs_pre1400.atx file contains the APC used by IGS before GPS week 1400.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
60
Exercise 2: PPP Model components analysis Kinematic PPP solution using files chpi0010.04o, igs_pre1400.atx, igs12514.sp3
4
Set output file
gLAB.out for the FULL model, as in previous case.
©gAGE/UPC
5
http://www.gage.upc.edu
gLAB.out
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
61
Exercise 2: PPP Model components analysis • 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.
©gAGE/UPC
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
62
Exercise 2: PPP Model components analysis Code and carrier Measurement noise • Code measurements are unambiguous but noisy (meter level measurement noise).
Carrier is ambiguous, but precise Cycle-slip
• Carrier measurements are precise but ambiguous, meaning that they have some millimetres of noise, but also have unknown biases that could reach thousands of km.
• Carrier phase biases are estimated in the navigation filter along with the other Code is parameters (coordinates, clock offsets, Zoom of unambiguous, etc.). If these biases were fixed, carrier noise but noisy measurements accurate to the level of few millimetres would be available for positioning. However, some time is Note: Figure shows the noise of code and carrier prefit- needed to decorrelate such biases from residuals, which are the input data for navigation equations. the other parameters in the filter, and the estimated values are not fully unbiased. ©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
63
Exercise 2: PPP Model components analysis Orbits & clocks accuracies Broadcast: • Few metres of accuracy for broadcast orbits and clocks
Precise: • Few centimetres of accuracy for broadcast orbits and clocks
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
64
Example of model component analysis: Solid Tides Proceed as in the previous exercise: 1. In Modeling panel, disable the model component to Default analyze. configuration for 2. Save as PPP gLAB1.out the associated output file.
In the Default configuration the output file was gLAB.out
©gAGE/UPC
Notice that the gLAB.out file contains the processing results with the FULL model, as it was set in the default configuration. Make plots as in previous exercises (see slides 38-40). http://www.gage.upc.edu
1
Disable Solid Tides correction
2 Set output file as gLAB1.out
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
65
3
Vertical Position Error plot from gLAB.out, gLAB1.out Clear to 1 Click restart plots
Y-min, Y-max -0.4
2
-0.4
0.4
3
gLAB1.out
gLAB.out
©gAGE/UPC
Vertical
Time (sec)
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
66
Horizontal Position Error plot: gLAB.out, gLAB1.out
1
Click Clear to restart plots
X-min, Y-min, Y-max -0.4
0.4
-0.4 -0.4
2
0.4
-0.4
0.4
3
gLAB1.out
©gAGE/UPC
gLAB.out http://www.gage.upc.edu
East: 19
($1==“OUTPUT”)
North: 18
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
67
Solid Tides model component plot: gLAB.out
Solid Tides plot SOLIDTIDES
gLAB.out ©gAGE/UPC
28
Note: Use the gLAB.out file. In gLAB1.out file this model component was switched off.
Select SOLIDTIDES
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
68
Exercise 2: PPP Model components analysis Solid Tides It comprises the Earth’s crust movement (and thence receiver coordinates variations) due to the gravitational attraction forces produced by external bodies, mainly the Sun and the Moon.
gLAB1.out gLAB1.out
gLAB.out
gLAB.out
Solid Tides: Sun
gLAB.out Moon
©gAGE/UPC
http://www.gage.upc.edu
These effects do not affect the GNSS signals, but if they were not considered, the station coordinates would oscillate with relation to a mean value. They produce vertical (mainly) and horizontal displacements.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
69
Exercise 2: PPP Model components analysis Receiver Antenna Phase center (APC)
gLAB1.out gLAB1.out
APC
L2 Antenna Phase center L1 Antenna Phase center Antenna Reference Point
ARP
(ARP) (ARP)
GNSS measurements are referred to the APC. This is not necessarily the geometric center of the antenna, and it depends on the signal frequency and the incoming radio signal direction. For geodetic positioning a reference tied to the antenna (ARP) or to monument is used. ©gAGE/UPC
gLAB.out
gLAB.out
Receiver APC:
gLAB.out
http://www.gage.upc.edu
The antenna used for this experiment, has the APC position vertically shifted regarding ARP. Thence, neglecting this correction, an error on the vertical component occurs, but not in the horizontal one.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
70
Exercise 2: PPP Model components analysis Satellite Mass Center to Antenna Phase Center
gLAB1.out gLAB1.out
Satellite Antenna Phase Center (APC)
Satellite Mass Center (MC)
gLAB.out
Satellite MC to APC: gLAB.out
Broadcast orbits are referred to the antenna phase center, but IGS precise orbits are referred to the satellite mass center.
©gAGE/UPC
gLAB.out
http://www.gage.upc.edu
The satellite MC to APC eccentricity vector depends on the satellite. The APC values used in the IGS orbits and clocks products are referred to the iono-free combination (LC, PC) . They are given in the IGS ANTEX files (e.g., igs05.atx). gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
71
Exercise 2: PPP Model components analysis Wind-up affects only carrier phase. It is due to the electromagnetic nature of circularly polarized waves of GNSS signals. As the satellite moves along its orbital path, it performs a rotation to keep its solar panels pointing to the Sun direction. This rotation causes a carrier variation, and thence, a range measurement variation.
gLAB1.out gLAB1.out
gLAB.out
gLAB.out
Wind-Up
Satellite rotation Phase variation
gLAB.out
©gAGE/UPC
http://www.gage.upc.edu
Wind-up changes smoothly along continuous carrier phase arcs. In the position domain, wind-up affects both vertical and horizontal components.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
72
OVERVIEW 9 Introduction 9 The gLAB tool suite 9 Examples of GNSS Positioning using gLAB 9 Laboratory session organization LABORATORY Session 9 Starting-up your laptop 9 Basic: Introductory laboratory exercises (Ex1, Ex2) ¾ Medium: Laboratory Work Project (LWP): Kinematic positioning of a LEO satellite • Advanced: Homework ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
73
LWP: Kinematic positioning of a LEO satellite • A kinematic positioning of GRACE-A satellite is proposed in this exercise as a driven example to study and discuss the different navigation modes and modelling options for code or code & carrier positioning of a rover receiver. GPS Omnidirectional Antenna: Satellite Attitude and Orbit Control System
GPS 45º FOV Antenna: Radio Occultation Data
GPS Backup Omnidirectional Antenna: AOCS
More details at: http://op.gfz-potsdam.de/grace/index_GRACE.html
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
74
LWP: Kinematic positioning of a LEO satellite • The following “preliminary” questions are posed: – Could a LEO satellite like GRACE-A be kinematically positioned as a rover receiver (i.e., car, aircraft...)? Why?
– Would both Standard and Precise Positioning be achievable? Note: The RINEX file graa0800.07o contains GPS dual freq. Measurements.
– Which model components should be set for each positioning mode? • • • • • • •
Relativistic correction? Tropospheric correction? Ionospheric correction? Instrumental delays (TGDs)? Solid Tides correction? Antenna phase centre corrections? Others ???
– In case of successful positioning, which accuracy is expected?
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
75
LWP: Kinematic positioning of a LEO satellite The following positioning modes are proposed to be explored: – Code positioning + broadcast orbits: 1. Single frequency: C1 code (and no ionospheric corrections). 2. Dual frequency: PC code combination (i.e., ionosphere-free combination).
– Code and carrier positioning + precise orbits and clocks: 3. Dual frequency: PC, LC combinations (i.e., ionosphere-free combinations). 4. GRAPHIC combination of C1 code and L1 carrier phase. 5. Single frequency: C1 code and L1 carrier (and no ionospheric corrections).
Data files: Measurements file: graa0800.07o GPS orbits and clocks: Broadcast: brdc0800.07n Precise: cod14193.sp3, cod14193.clk, igs05_1402.atx GRACE-A Precise Reference Orbit file: GRAA_07_080.sp3
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
76
Mode1: Single frequency C1 code with broadcast orbits & clocks Example of computation with gLAB: Code positioning + broadcast orbits: Single frequency: C1 code.
2 Select files graa0800.07o brdc0800.07n
3
Set calculate Set SPP
1
©gAGE/UPC
http://www.gage.upc.edu
Set data decimation to 30 seconds instead of 300 to Set SPP have a higher number of output samples
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
77
Mode1: Single frequency C1 code with broadcast orbits & clocks Example of computation with gLAB: Code positioning + broadcast orbits: Single frequency: C1 code.
Set output file as
gLAB.out From SPP template disable:
Disable all messages except:
• Ionospheric
• Print OUTPUT Messages
• Print INFO Messages to avoid big output files
• Tropospheric
Run gLAB ©gAGE/UPC
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
78
Mode1: Single frequency C1 code with broadcast orbits & clocks • Accuracy assessment of the computed solution: Complete the following steps to compare the output solution (from gLAB.out file) with the reference coordinates of file GRAA_07_080.sp3:: 1.
Convert the output gLAB.out file to sp3 format: Execute (in Console): out2sp3 gLAB.out Note: this sentence generates the file: orb.sp3 (see file content with: less orb.sp3)
out2sp3 gLAB.out
2. Compare the computed coordinates orb.sp3 with reference GRAA_07_080.sp3. Note: Use the configuration file dif.cfg. gLAB_linux –input:cfg dif.cfg –input:SP3 GRAA_07_080.sp3 –input:SP3 orb.sp3 Note: this sentence generates the file: dif.out
3. Plot dif.out file: The Graphic User Interface can be used for plotting ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
79
Mode1: Single frequency C1 code with broadcast orbits & clocks
3
Plotting Set plotting ranges [Xmin, Xmax] [Ymin,Ymax]
1
2 ©gAGE/UPC
dif.out with the GUI
4 Upload file dif.out in Plot 1, Plot 2 & Plot 3 gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
80
Mode1: Single frequency C1 code with broadcast orbits & clocks Questions 1.
Is it reasonable to disable the tropospheric and ionospheric corrections?
2.
Like GPS satellites, LEOs are also affected by relativistic effects. Is it necessary to introduce an additional model term to account for this effect?
3.
What could be the reason for the large error peaks seen in the plots?
Zoom
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
81
Mode1: Single frequency C1 code with broadcast orbits & clocks 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.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
82
Mode1: Single frequency C1 code with broadcast orbits & clocks 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 3Dsigma) and the number of satellites used. Analyze the evolution of the error.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
83
Mode 2. Dual frequency PC code with broadcast orbits & clocks Example of computation with gLAB: Code positioning + broadcast orbits: Dual frequency: PC code combination. Complete the steps (from previous configuration): 1. [Modeling]: • Disable P1-P2 correction 2. [Filter]: • Dual Frequency • PC measurement 3. Run gLAB 4. In console mode: • Convert the gLAB.out to orb.sp3 format file. • Compute differences with reference file GRAA_07_080.sp3
1
From previous configuration, disable (TGD):
From previous configuration, set:
• P1 – P2 Correction
• Dual Frequency • PC Measurement
1.
2
Convert the output gLAB.out file to sp3 format:
Execute (in Console):
out2sp3 gLAB.out Î orb.sp3
2. Compare the computed coordinates orb.sp3 with reference GRAA_07_080.sp3. Note: Use the configuration file dif.cfg.
3
gLAB_linux –input:cfg dif.cfg –input:SP3 GRAA_07_080.sp3 –input:SP3 orb.sp3
Î dif.out 3. Plot dif.out file:
©gAGE/UPC
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
84
Mode 2. Dual frequency PC code with broadcast orbits & clocks Plotting • Make the same plots as in the previous case.
Questions 4.
Zoom
5.
6.
©gAGE/UPC
http://www.gage.upc.edu
Why is the solution noisier than the previous one with C1 code? Discuss the pros and cons of the ionosphere-free combination of codes (PC), compared with C1 code. How could the performance be improved?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
85
Mode 2. Dual frequency PC code with broadcast orbits & clocks Plotting • Make the same plots as in the previous case.
Questions 4.
Zoom
5.
6.
©gAGE/UPC
Why is the solution noisier than the previous one with C1 code? Discuss the pros and cons of the ionosphere-free combination of codes (PC), compared with C1 code. How could the performance be improved?
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
86
Mode 2. Dual frequency PC code with broadcast orbits & clocks Answer to Question 4: Why the solution is noisier than the previous one with C1 code? f12 P1 f 22 P2 The iono-free combination of codes P1 and P2 is computed as: Pc f12 f 22
J P1 P2 ; J 1
Thence, assuming uncorrelated P1, P2 measurements with equal noise V, it follows:
J
§ 77 · ¨ ¸ © 60 ¹
2
V Pc 3 V
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.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
87
Mode 3. Dual freq. LC, PC carrier and code with precise orbits & clocks Example of computation with gLAB: Code & Carrier + precise orbits & clocks: Dual frequency (LC, PC)
Set Precise (2 files)
2 Set calculate Select files graa0800.07o cod14193.sp3 cod14193.clk igs05_1402.atx
©gAGE/UPC
Set PPP
3
1
http://www.gage.upc.edu
Set data decimation to 30 seconds instead of 300 to have a higher number Set SPPof output samples
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
88
Mode 3. Dual freq. LC, PC carrier and code with precise orbits & clocks Example of computation with gLAB: Code & Carrier + precise orbits & clocks: Dual frequency (LC, PC)
Disable Estimate Troposphere From PPP configuration, disable: • Receiver Antenna Phase Center • Receiver Antenna Ref. Point • Ionospheric (already disabled) • P1 – P2 (already disabled) • Tropospheric • Solid Tides correction
©gAGE/UPC
http://www.gage.upc.edu
Switch to Kinematic
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
89
Mode 3. Dual freq. LC, PC carrier and code with precise orbits & clocks Example of computation with gLAB: Code & Carrier + precise orbits & clocks: Dual frequency (LC, PC) 1.
Convert the output gLAB.out file to sp3 format:
Execute (in Console):
2
out2sp3 gLAB.out Î orb.sp3
2. Compare the computed coordinates orb.sp3 with reference GRAA_07_080.sp3. Note: Use the configuration file dif.cfg.
gLAB_linux –input:cfg dif.cfg –input:SP3 GRAA_07_080.sp3 –input:SP3 orb.sp3
Î dif.out 3. Plot dif.out file:
Disable all messages except:
• Print INFO Messages
3
3
1. Run gLAB Set plotting ranges [Xmin, Xmax] [Ymin,Ymax]
1
• Print OUTPUT Messages to avoid big output files
1 2
Run gLAB ©gAGE/UPC
2. Generate dif.out file
3. Make plots 4 as before Upload file dif.out in Plot 1, Plot 2 & Plot 3
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
90
Mode 3. Dual freq. LC, PC carrier and code with precise orbits & clocks Questions 7.
Zoom
©gAGE/UPC
http://www.gage.upc.edu
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? 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? gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
91
Mode 3. Dual freq. LC, PC carrier and code with precise orbits & clocks 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.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
92
Mode 3. Dual freq. LC, PC carrier and code with precise orbits & clocks 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).
Answer to Question 10: Why does a 40-50 cm bias appear in the radial component? – This is the GRACE-A antenna phase centre offset. Please notice that we are positioning the Antenna Phase Centre (APC), while the coordinates in the SP3 reference file (GRAA_07_080.sp3) are referred to the satellite Mass Centre (MC).
• Homework: HW5: Analyze the carrier phase biases convergence in this kinematic PPP positioning.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
93
Mode 3. Dual freq. LC, PC carrier and code with precise orbits & clocks Answer to Question 11: Why do wind-up and GPS satellite antenna phase center offset corrections have to be applied? What about the solid tides correction? – 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 satellite movement relative to a receiver with fixed coordinates. 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.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
94
Mode 4. Single freq. with L1, C1 GRAPHIC comb. and precise orbits & clocks
Example of computation with gLAB: Code and Carrier + precise orbits & clocks: Single frequency (GRAPHIC) Complete the steps
Single frequency C1C G1C
1
1
From Fro Fr F r mp previous rrev e io iou ous o con config onfigura uratio tio on n,, un uns u ns n set ett:: et: configuration, unset: • TGD TG T GD G D co c rrecti ctti tio on n correction
Skip the warning
1.
(from PPP configuration mode):
[*] Note: C1C must be set due to gLAB architecture, but it is assigned a large sigma to avoid the C1 code noise and ionospheric error.
Kinematic
VC1=100 meters VG1=0.5 meters
Convert the output gLAB.out file to sp3 format:
Execute (in Console):
out2sp3 gLAB.out Î orb.sp3
2
2. Compare the computed coordinates orb.sp3 with reference GRAA_07_080.sp3. Note: Use the configuration file dif.cfg.
gLAB_linux –input:cfg dif.cfg –input:SP3 GRAA_07_080.sp3 –input:SP3 orb.sp3
Î dif.out 3. Plot dif.out file:
©gAGE/UPC
http://www.gage.upc.edu
1. [Model]: • Disable P1 – P2 Corr. 2. [Filter]: • Single Frequency • C1C (C1 code [*]) • G1C (GRAPHIC) • Set Kinematic Mode 3. Run gLAB 4. In console mode: • Convert the glab.out to orb.sp3 format file. • Compute differences with reference file GRAA_07_080.sp3 Make plots as before. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
95
Mode 4. Single freq. with L1, C1 GRAPHIC comb. and precise orbits & clocks
Questions 12. Which is the main benefit of the GRAPHIC combination?
Zoom
13. Why is the solution noisier than the previous one with LC, PC? 14. Would the performance be improved directly using the L1, P1 measurements (like in the LC, PC case)?
©gAGE/UPC
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
96
Mode 4. Single freq. with L1, C1 GRAPHIC comb. and precise orbits & clocks Answer to Question 12: Which is the main benefit of the GRAPHIC combination?
1 P1 L1 2 Thence, since the ionospheric refraction has opposite sign in code P1 and carrier L1, GRAPHIC removes the ionospheric error. On the other hand the code noise is reduced by a factor 2 (i.e., V G 1/ 2 V ). However, this is an ambiguous measurement due to the unknown carrier phase bias. Note: Due to the gLAB filter design, a code measurement must also be provided to the filter along with the GRAPHIC one. Nevertheless, a large sigma noise is set to this code in order to downweight this measurement in the filter (in this way the solution will be driven by the GRAPHIC combination).
– The GRAPHIC combination is defined as: G – – – –
Answer to Question 13: Why is the solution noisier than the previous one with LC, PC? – Unlike the previous case (where carrier phase data with few millimetres of error were provided), now the most accurate measure provided to the filter is the GRAPHIC combination with tens of centimetres of error.
Answer to Question 14: Let’s see the next two exercises.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
97
Mode 5. Single freq. L1, C1 carrier and code with precise orbits & clocks Example of computation with gLAB: Code and Carrier + precise orbits & clocks: Single frequency (L1, C1) From previous configuration, complete the following steps: 1. [Input]: Upload the brdc0800.07n file in the P1-P2 correction. 2. [Model]: Set P1-P2 correction, select RINEX Navigation File as DCB source. 1
1
2
Note: TGDs (i.e, P1-P2 DCBs) are needed for singlefrequency positioning. ©gAGE/UPC
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
98
Mode 5. Single freq. L1, C1 carrier and code with precise orbits & clocks Example of computation with gLAB: Code and Carrier + precise orbits & clocks: Single frequency (L1, C1) C1P L1P
3 1.
Skip the warning
Complete the steps
Single frequency
Set VC1P=1 meter VL1P=0.01 meters Convert the output gLAB.out file to sp3 format:
Execute (in Console):
out2sp3 gLAB.out Î orb.sp3
4
2. Compare the computed coordinates orb.sp3 with reference GRAA_07_080.sp3. Note: Use the configuration file dif.cfg.
gLAB_linux –input:cfg dif.cfg –input:SP3 GRAA_07_080.sp3 –input:SP3 orb.sp3
Î dif.out 3. Plot dif.out file:
©gAGE/UPC
http://www.gage.upc.edu
3. [Filter]: • Single Frequency measurements • L1P (L1 carrier) • C1P (P1 code) 4. Run gLAB 5. In console mode: • Convert the gLAB.out to orb.sp3 format file. • Compute differences with reference file GRAA_07_080.sp3 Make plots as before. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
99
Mode 5. Single freq. L1, C1 carrier and code with precise orbits & clocks
Questions 15. Explain why the solution has a more defined pattern, with large oscillations. 16. No ionospheric corrections have been applied in this run. What would happen if the Klobuchar model is applied? ©gAGE/UPC
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
100
Mode 5. Single freq. L1, C1 carrier and code with precise orbits & clocks Answer to Question 15: Explain why the solution has a more defined pattern, with large oscillations. – This effect is due to the error introduced by the ionosphere and the broadcast differential code biases inaccuracy.
Answer to Question 16: No ionospheric corrections have been applied in this run. What would happen if the Klobuchar model is applied? – In general, the performance will degrade. As commented before, the correction from Klobuchar model is tuned for ground receivers, only removes about the 50% of ionospheric delay, and its usage can produce more harm than benefit. (see HW6).
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 .
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
101
OVERVIEW 9 Introduction 9 The gLAB tool suite 9 Examples of GNSS Positioning using gLAB 9 Laboratory session organization LABORATORY Session 9 Starting-up your laptop 9 Basic: Introductory laboratory exercises (Ex1, Ex2) 9 Medium: Laboratory Work Project (LWP): Kinematic positioning of a LEO satellite ¾ Advanced: Homework ©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
102
Proposed Homework exercises HW1: Assess the ionospheric delay on the GRACE-A satellite measurements. Compare with the Klobuchar model corrections. 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.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
103
Proposed Homework exercises HW6: Apply the Klobuchar model to the L1, P1 positioning with precise orbits and clocks and discuss the results. HW7: Generate a file with the satellite track ((in a Earth-Fixed Earth-Centered reference frame) to be viewed with .
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
104
Backup slides
Homework help and answers
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
105
HW1: Assessing the ionospheric delay on the GRACE-A satellite Configure gLAB as in Mode 1 and complete the following steps: 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.
Note: This configuration will provide: Plot 1: L1-L2 as a function of time for ALL sat. Plot 2: L1-L2 as a function of time for PRN16. Plot 3: P2-P1 as a function of time for PRN16
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
106
HW1: Assessing the ionospheric delay on the GRACE-A satellite
Plot 1 Plot 3 $11-$12 ÍL1-L2
Plot 2
$10-$9 ÍP2-P1 ©gAGE/UPC
Note: This plot take some time to rise !
$11-$12 ÍL1-L2
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
107
HW1: Assessing the ionospheric delay on the GRACE-A satellite Plot HW1-a Comments: 1mL1-L2 delay=1.55 mL1 delay
• The ionospheric delay (STEC) computed from L1-L2 (aligned) carriers is shown in blue for all satellites. • The red circles show the L1-L2 delay for sat. PRN16 • The green circles show the ionospheric delay on PRN16 computed from P2-P1 code measurements. As it is shown in the plot, the STEC variations are typically at the meter level, but in some cases they increase up to several meters. The code measurement noise and multipath in the P2-P1 combination is typically at the meter level, but in the ends of data arcs (low elevation rays) can reach up to a few meters.
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
©gAGE/UPC
gAGE/UPC
Backup
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
108
HW1: Assessing the ionospheric delay on the GRACE-A satellite Working in console mode The next commands compute the ionospheric delay from C1, L1 measurements: 1. Using the configuration file meas.cfg, read the RINEX and generate the MEAS message with data format: [Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1
2
3
4
5
6
x
x
9
10
11
xx
13
14
15 16 ]
Execute: gLAB_linux -input:cfg meas.cfg -input:obs
graa0800.07o >
meas.txt
2. From file meas.txt, compute the ionospheric delay as I1 1 2 C1 L1 bias gawk '{print $6,$4,($11-$14)/2}' meas.txt > I1.txt
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
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
109
HW1: Assessing the ionospheric delay on the GRACE-A satellite
Large discrepancies with Klobuchar appear
Plot HW1-b: STEC variations of few meters are typically experienced , but in some cases they reach up to 8 meters of L1 delay.
©gAGE/UPC
Plot HW1-c: L1-C1 iono estimate is less noisier than the P2-P1. On the other hand, large discrepancies appear when comparing with Klobuchar corrections gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
110
HW1: Assessing the ionospheric delay on the GRACE-A satellite 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.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
111
HW2: Plot in the same graph the “True 3D error”, the “Formal 3D error” and the number of satellites used. Analyze the result. Complete the following steps 1. Configure gLAB as in Mode1 and set Print EPOCHSAT Messages in Output panel. (see message content in the Tooltip, or executing gLAB_linux –messages).
Remember that IONO corrections were unable in Mode 1. 2. Run gLAB. The program will output the file gLAB.out. 3. Generate the dif.out file from gLAB.out as in the previous exercises. Plot the results: In the same graph, plot the “3D error” [from file dif.out], the formal error (the 3-D sigma) and the number of satellites used in the computation [from file gLAB.out]. graph.py -f dif.out -x4 -y9 -s- --l "3D error" -f gLAB.out -c '($1=="OUTPUT")' -x4 -y'($5*5)' -s- --cl r --l "5*sigma" -f gLAB.out -c '($1=="EPOCHSAT")' -x4 -y6 -s- --cl g --l "N. sat. used" --xn 43000 --xx 67000 --yn 0 --yx 20
Note: 3D-sigma | V PDOP In the previous plot, the 3-D sigma is multiplied by 5 to enlarge the image.
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
112
HW2: Plot in the same graph the “True 3D error”, the “Formal 3D error” and the number of satellites used. Analyze the result.
STEC variations of few meters, but in some cases, reaching up to 8 meters of L1 delay.
Large discrepancies with Klobuchar appear
Plot HW2-a
Plot HW2-b: Zoom of Plot HW2-a.
Periodic error peaks appear, mostly associated with losing a satellite and/or with bad geometries.
Along the peaks associated to bad geometries, mismodelling is also producing some error trends.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
113
HW3: Code measurements noise assessment: C1, P1, P2 and PC A) The next commands compute the C1 code noise and multipath: 1. Using the configuration file meas.cfg, READ the RINEX and generate the MEAS message with data format: Execute:
[Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 x x 9 10 11 xx 13 14 15 16 ]
gLAB_linux -input:cfg meas.cfg -input:obs
graa0800.07o >
2. From meas.txt file, Compute C1 code noise and multipath as: M C1
C1 L1 2
J 1( L1 L 2)
meas.txt
§ 77 · J ¨ ¸ © 60 ¹
2
gawk 'BEGIN{g=(77/60)^2}{print $6, $4 , $11-$14-2*($14-$16)/(g-1)}' meas.txt > C1.txt
3. From C1.txt file, Plot the C1 code noise and multipath for time interval [43000:67000]. Show in the same graph: 1) ALL satellites, 2) PRN16 and 3) PRN21 (see Plot HW3-a) graph.py -f C1.txt -x2 -y3 -s. --cl y --l "ALL" -f C1.txt -c '($1==16)' -x2 -y3 -so --cl r --l "PRN16" -f C1.txt -c '($1==21)' -x2 -y3 -so --cl g --l "PRN21" --xn 43000 --xx 67000 --yn 8 --yx 28 ©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
114
HW3: Code measurements noise assessment: C1, P1, P2 and PC B) The next commands compute the P1 code noise and multipath: 1. Using the meas.txt file generated before, with the MEAS message data format: [Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 x x 9 10 11 xx 13 14 15 16 ]
Compute P1 code noise and multipath as: M P1 P1 L1 2 J 1( L1 L 2)
J
§ 77 · ¨ ¸ © 60 ¹
2
gawk 'BEGIN{g=(77/60)^2}{print $6, $4 , $13-$14-2*($14-$16)/(g-1)}' meas.txt > P1.txt
2. From previous P1.txt file, Plot the P1 code noise and multipath for time interval [43000:67000]. Show in the same graph: 1) ALL satellites, 2) PRN16 and 3) PRN21 (see Plot HW3-b) graph.py -f P1.txt -x2 -y3 -s. --cl y --l "ALL" -f P1.txt -c '($1==16)' -x2 -y3 -so --cl r --l "PRN16" -f P1.txt -c '($1==21)' -x2 -y3 -so --cl g --l "PRN21" --xn 43000 --xx 67000 --yn 8 --yx 28
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
115
HW3: Code measurements noise assessment: C1, P1, P2 and PC C) The next commands compute the P2 code noise and multipath: 1. Using the meas.txt file generated before, with the MEAS message data format: [Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 x x 9 10 11 xx 13 14 15 16 ]
Compute P2 code noise and multipath as:
M P2
P2 L2 2J
J
J 1( L1 L2)
§ 77 · ¨ ¸ © 60 ¹
2
gawk 'BEGIN{g=(77/60)^2}{print $6, $4 , $15-$16-2*g*($14-$16)/(g-1)}' meas.txt > P2.txt
2. From previous P2.txt file, Plot the P2 code noise and multipath for time interval [43000:67000]. Show in the same graph: 1) ALL satellites, 2) PRN16 and 3) PRN21 (see Plot HW3-c) graph.py -f P2.txt -x2 -y3 -s. --cl y --l "ALL" -f P2.txt -c '($1==16)' -x2 -y3 -so --cl r --l "PRN16" -f P2.txt -c '($1==21)' -x2 -y3 -so --cl g --l "PRN21" --xn 43000 --xx 67000 --yn 8 --yx 28
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
116
HW3: Code measurements noise assessment: C1, P1, P2 and PC D) The next commands compute the PC combination noise and multipath: 1. Using the meas.txt file generated before, with the MEAS message data format: [Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 x x 9 10 11 xx 13 14 15 16 ]
Compute PC noise and multipath as: M Pc
Pc P
f12 P1 f 22 P2 f12 f 22
J P1 P2 ; J 1
Lc L
f12 L1 f 22 L2 f12 f 22
J L1 L2 J 1
Pc Lc
gawk 'BEGIN{g=(77/60)^2}{print $6, $4, (g*($13-$14)-($15-$16))/(g-1)}' meas.txt > PC.txt
2. From previous PC.txt file, Plot the PC combination noise and multipath for time interval [43000:67000]. Show in the same graph: 1) ALL satellites, 2) PRN16 and 3) PRN21 (see Plot HW3-d) graph.py -f PC.txt -x2 -y3 -s. --cl y --l "ALL" -f PC.txt -c '($1==16)' -x2 -y3 -so --cl r --l "PRN16" -f PC.txt -c '($1==21)' -x2 -y3 -so --cl g --l "PRN21" --xn 43000 --xx 67000 --yn 8 --yx 28
©gAGE/UPC
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
117
HW3: Code measurements noise assessment: C1, P1, P2 and PC Comments
Plot HW3-a
Plot HW3-b
• 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. • 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
©gAGE/UPC
This figure is from P. Ramos-Bosch PhD dissertation, gAGE/UPC 2008].
gAGE/UPC
http://www.gage.upc.edu
Research group of Astronomy & Geomatics Technical University of Catalonia
118
HW4: Broadcast orbits and clocks accuracy assessment using the IGS precise products as the accurate reference (i.e, the truth). Complete the following steps: File brdc0800.07n contains the orbit and clocks data broadcast in the GPS navigation message. Files cod14193.sp3, cod14193.clk contain the precise orbits and clocks computed in postprocess by “CODE” center (IGS precise orbits and clocks products program). 1. Execute the following sentence to compute the difference of satellite coordinates and clock offsets between both orbits and clocks sources: gLAB_linux -input:nav brdc0800.07n -input:SP3 cod14193.sp3 -input:ant igs05_1402.atx > dif.tmp
2. Select the SATDIFF message of dif.tmp file: grep SATDIFF dif.tmp > dif.out SATDIFF message content is shown in the table beside. (see gLAB_linux –messages). The IGS post-processed products are accurate at few cm level, thence they can be taken as the truth.
3. Plot dif.out file as in the first exercise. Note: SISRE
©gAGE/UPC
('Rad 'Clk)2 1 ('Alon 2 'Cross 2 ) 49
http://www.gage.upc.edu
Backup
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
119
HW4: Broadcast orbits and clocks accuracy assessment using the IGS precise products as the accurate reference (i.e, the truth).
Comments
Plot HW4-a1
Plot HW4-b1
• 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 shift in clocks. • For the Signal-In-Space-Range-Error (SISRE), please see the plot below.
Plot HW4-e1
Plot HW4-c1
©gAGE/UPC
Plot HW4-d1
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
120
HW4: Broadcast orbits and clocks accuracy assessment using the IGS precise products as the accurate reference (i.e, the truth). Comments The previous computations have been repeated, but using the ANTEX file gps_brd.atx, instead of igs05_1402.atx.
Plot HW4-a2
Plot HW4-b2
This new ANTEX file contains the GPS antenna phase center offsets used by the GPS ground segment, not the IGS ones. • Notice that the biases in the radial component have disappeared.
Plot HW4-e2
Plot HW4-c2
©gAGE/UPC
Plot HW4-d2
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
121
HW5: Analyze the carrier phase biases convergence in the kinematic PPP positioning. Complete the following steps 1.
Configure gLAB as in Mode 2 for the Kinematic PPP positioning. Activate the “Print POSTFIT messages” in the OUPUT panel (see message content in the Tooltip, or executing gLAB_linux –messages).
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 used instead of the “graph.py” command.
©gAGE/UPC
graph.py -f amb.out -f amb.out -f amb.out --xn 40000
-x2 -y3 -x2 -y3 -c '($1==16)' --l "PRN16" -x2 -y3 -c '($1==21)' --l "PRN21" --xx 70000 --yn -10 --yx 10
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
122
HW5: Analyze the carrier phase biases convergence in the kinematic PPP positioning. Comments
Zoom
Plot HW5-a
Zoom
Plot HW5-b
Zoom
• 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 cycle slips which leads to a global reinitialization of carrier-phase biases in the navigation (Kalman) filter . – After such ambiguities reinitialization, the filter needs some time to converge. • Carrier phase ambiguities converge quickly thanks to the rapid variation of geometry due to the LEO movement along its orbital path.
Plot HW5-c
©gAGE/UPC
Plot HW5-d
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
123
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 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
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
124
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 C1P L1P
1.
Single frequency 3
Set VC1P= 1 meter VL1P = 0.01 meters
Convert the output gLAB.out file to sp3 format:
Execute (in Console):
4
out2sp3 gLAB.out Î orb.sp3
2. Compare the computed coordinates orb.sp3 with reference GRAA_07_080.sp3. Note: Use the configuration file dif.cfg.
gLAB_linux –input:cfg dif.cfg –input:SP3 GRAA_07_080.sp3 –input:SP3 orb.sp3
Complete the steps 3. [Filter]: • Single Frequency measurements: • L1P (L1 carrier) • C1P (P1 code) 4. In console mode: • Convert the gLAB.out to orb.sp3 format file. • Compute differences with reference file GRAA_07_080.sp3 Make plots as before.
Î dif.out 3. Plot dif.out file:
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
125
HW6: Single freq. L1, C1 carrier and code with precise orbits & clocks using Klobuchar ionospheric corrections
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.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
126
HW7: Generate a file with the satellite track (in a Earth-Fixed EarthCentered reference frame) to be viewed with Google Earth
Complete the following steps 1.
Select the satellite [longitude, latitude, height] coordinates of message OUTPUT in the gLAB.out file. Generate a file with these coordinates (comma-separated). grep OUTPUT gLAB.out |gawk 'BEGIN{OFS=","} {print $16,$15,$17}' > track.tmp
2.
Add the header (Prefix.kml) and the tail (Postfix.kml) files to the previous track.tmp data file: cat Prefix.kml > grace_track.kml cat track.tmp >> grace_track.kml cat Postfix.kml >> grace_track.kml
3. View the file with:
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
127
Thanks for your attention
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
128
Other Tutorials are available at http://www.gage.upc.edu
©gAGE/UPC
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
129
Acknowledgements • •
•
• • •
The ESA/UPC GNSS-Lab Tool suit (gLAB) has been developed under the ESA Education Office contract N. P1081434. The data set of GRACE-A LEO satellite was obtained from the NASA Physical Oceanography Distributed Active Archive Center at the Jet Propulsion Laboratory, California Institute of Technology. The other data files used in this study were acquired as part of NASA's Earth Science Data Systems and archived and distributed by the Crustal Dynamics Data Information System (CDDIS). To Pere Ramos-Bosch for his fully and generous disposition to perform gLAB updates in his afterhours. To Adrià Rovira-Garcia for his contribution to the edition of this material and gLAB updating. To Deimos Ibáñez for his contribution to gLAB updating and making the Windows installable version for this tutorial.
©gAGE/UPC
http://www.gage.upc.edu
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
130
Tutorial 2 Measurements analysis and error budget Contact:
[email protected] Web site: http://www.gage.upc.edu Slides associated to gLAB version 2.0.0
gAGE/UPC
@ J. Sanz & J.M. Juan
1
Research group of Astronomy & Geomatics Technical University of Catalonia
Authorship statement The authorship of this material and the Intellectual Property Rights are owned by J. Sanz Subirana and J.M. Juan Zornoza. These slides can be obtained either from the server http://www.gage.upc.edu, or
[email protected]. Any partial reproduction should be previously authorized by the authors, clearly referring to the slides used. This authorship statement must be kept intact and unchanged at all times.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
2
Aim of this tutorial This tutorial is devoted to analysing and assessing the GNSS measurements and their associated errors. This is done over four groups of test cases: 1.- Atmospheric propagation effects on GNSS signals. Analysis of the errors due to the troposphere and the ionosphere. 2.- Code measurement noise and multipath on C1, ionsphere-free and MelbourneWübbena combinations. 3.- Carrier smoothed code. Analysis of the code-carrier divergence of the ionosphere. 4.- Broadcast orbits and clocks accuracy versus the IGS precise products. The laboratory exercises will be developed with actual GPS measurements, and processed with the ESA/UPC GNSS-Lab Tool suite (gLAB), which is an interactive software package for GNSS data processing and analysis. All software tools (including gLAB) and associated files for the laboratory session are included in the CD-ROM or USB stick associated with this tutorial.
gAGE/UPC
@ J. Sanz & J.M. Juan
3
Research group of Astronomy & Geomatics Technical University of Catalonia
OVERVIEW ¾ Introduction: gLAB processing in command line. Test cases on Atmospheric Propagation Effects: Troposphere, Ionosphere. Test cases on Measurement Noise and Multipath: C1, Ionosphere-free and Melbourne Wübbena combinations. Test cases on Carrier Smoothed Code: Code-carrier divergence. Test cases on Broadcast Orbits and Clocks Accuracy
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
4
gLAB processing in command line A “notepad” with the command line sentence is provided to facilitate the sentence writing: just “copy” and “ paste” from notepad to the working terminal.
Console to execute “command line” sentences
gAGE/UPC
@ J. Sanz & J.M. Juan
5
Research group of Astronomy & Geomatics Technical University of Catalonia
gLAB processing in command line The different messages provided by gLAB and its content can be found in the [OUTPUT] section. By placing the mouse on a given message name, a tooltip appears describing the different fields.
In console mode: execute
gLAB_linux -messages
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Backup
@ J. Sanz & J.M. Juan
6
OVERVIEW Introduction: gLAB processing in command line. ¾ Test cases on Atmospheric Propagation Effects: Troposphere, Ionosphere. Test cases on Measurement Noise and Multipath: C1, Ionosphere-free and Melbourne Wübbena combinations. Test cases on Carrier Smoothed Code: Code-carrier divergence. Test cases on Broadcast Orbits and Clocks Accuracy
gAGE/UPC
@ J. Sanz & J.M. Juan
7
Research group of Astronomy & Geomatics Technical University of Catalonia
Test cases on Atmospheric Propagation Effects: Troposphere, Ionosphere
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
8
Troposphere Tropospheric delay The troposphere is the atmospheric layer situated between the Earth’s surface and an altitude of about 50 km. The effect of the 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 pseudo-range (code) and carrier phases in the same way. It can be modeled by: • A 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 reasonably predictable manner, and it is responsible for 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 totally random way. For high accuracy positioning, this component must be estimated together with the coordinates and other parameters in the navigation filter.
gAGE/UPC
@ J. Sanz & J.M. Juan
9
Research group of Astronomy & Geomatics Technical University of Catalonia
Exercise 1: Zenith Troposphere Delay estimation PPP Template: Static positioning with dual freq. code & carrier (ionosphere-
free combination PC,LC) + post-processed precise orbits & clocks.
1. Select the PPP Template 2. Upload data files: -Measurement : roap1810.09o - ANTEX: igs05_1525.atx - Orbits & clocks: igs15382.sp3 - SINEX: igs09P1538.snx
2 1 gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
3. RUN gLAB
3
Default output file:
gLAB.out @ J. Sanz & J.M. Juan
10
Exercise 1: Zenith Troposphere Delay estimation Plotting Results • Coordinates are taken as constants in nav. filter. • Dual frequency Code and Carrier measurements. • Precise orbits and clocks. • Measurements modelling at the centimetre level.
gAGE/UPC
Centimetre level accuracy over 24h data is achieved in PPP static mode
@ J. Sanz & J.M. Juan
11
Research group of Astronomy & Geomatics Technical University of Catalonia
Exercise 1: Zenith Troposphere Delay estimation
The troposphere is estimated as a Random Walk process in the Kalman Filter. A process noise of 1cm/sqrt(h) has been taken.
1
2
ftp://cddis.gsfc.nasa.gov/pub/gps/products/troposphere/new/2009/181/roap1810.09zpd.gz The ZTD in this file is given in mm of delay. Thus, it is converted to m to compare with gLAB results grep ROAP roap1810.09zpd | gawk -F\: '{print $3} ' | gawk '{print $1,$2/1000}' > roap_igs.trp
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
12
Exercise 1: Zenith Troposphere Delay estimation Equivalent command line sentences: gLAB_linux -input:cfg -input:obs -input:SP3 -input:ant -input:snx
gLAB_p51_ex6S.cfg roap1810.09o igs15382.sp3 igs05_1525.atx igs09P1538.snx
graph.py -f gLAB.outK -x4 -y9 -s.- -c '($1=="FILTER")' -l "PPP Kinematic" -f gLAB.outS -x4 -y9 -s.-c '($1=="FILTER")' -l "PPP Static" -f roap_igs.trp -s.- -l "IGS" --xl "time (s)" --yl "metres" --yn 2.40 --yx 2.55 -t "Session 5.1, Ex6b: Zenith tropospheric delay Estimation"
gAGE/UPC
@ J. Sanz & J.M. Juan
13
Research group of Astronomy & Geomatics Technical University of Catalonia
Exercise 1: Zenith Troposphere Delay estimation
Questions: • What is the level of discrepancy between the estimated ZTD and the accurate IGS determination? • What is the variation of ZTD in 24 hours due to the wet content? • What is the proportion of wet component compared with the dry (or hydrostatic) component?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
14
Ionosphere Ionospheric delay The ionosphere extends from about 60 km over the Earth’s surface up to more than 2000 km, with a sharp electron density maximum at around 350 km. The ionospheric refraction depends, among other things, on the location, local time and solar cycle (11 years). • First order (~99.9%) ionospheric delay on the inverse of squared frequency:
I1
depends
where STEC is the number of electrons per area unit along ray path (STEC: Slant Total Electron Content).
40.3 STEC f2
I1
STEC
• Two-frequency receivers can remove this error source (up to 99.9%) using ionosphere-free combination PC of pseudo-ranges (PC) or carriers (LC).
³ N ds e
f12 P1 f 22 P 2 f12 f 22
• Single-frequency users can remove about 50-70% of the ionospheric delay using the Klobuchar model, whose parameters are broadcast in the GPS navigation message.
gAGE/UPC
@ J. Sanz & J.M. Juan
15
Research group of Astronomy & Geomatics Technical University of Catalonia
Exercise 2: Ionospheric delay analysis Depict the ionospheric delays for the different satellites in view from station amc2 • This is a simple exercise aimed to illustrate how to use gLAB to easily analyze GNSS measurements and their combinations. • gLAB will used to read the RINEX measurements file and to generate a “text” with the measurements provided in a columnar format (more suitable for making plots). • From “text” file, compute and plot the Ionospheric delay for a given satellite, by using code and carrier measurements at f1, f2: gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
PI { P2 P1
I K 21
LI { L1 L2
I Ambiguity
P1 L1 P2 L2
2D1 I ambiguity1 2D 2 I ambiguity 2 @ J. Sanz & J.M. Juan
16
Ionospheric combination (meters)
Exercise 2: Ionospheric delay analysis
Code P2-P1
(unambiguous but noisier)
The target is to generate this plot to depict the ionospheric delay from code & carrier data PI { P2 P1
I K 21
LI { L1 L2
I Ambiguity
Ambiguity= P L
Carrier Phase L1-L2 (ambiguous but precise)
P1 L1
2D1 I ambiguity1
P2 L2
2D 2 I ambiguity 2
D1
1 J 21 1
J 21
f1 /
gAGE/UPC
1.546 ; D 2
f2
2
1 D1
(154 / 120) 2
17
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
Exercise 2: Ionospheric delay analysis Code measurement content
P1
U D1 I K 21 H1
P2
U D 2 I K 21 H 2
U
Carrier measurement content
L1
U D1 I B1 9 1
L2
U D 2 I B2 9 2
1
D1
1 J 21 1
J 21
f1 /
f2
1.546 2
Refers to all non-dispersive terms: geometric range, clocks, tropo. delay… (see [R-1]).
Ionospheric delay
I
D 2 D1
40.3 f12 f 22 2 2 1 2
f f
STEC
1016 STEC ; ( I is in m of L1 L2 delay)
Inter-frequency bias
K 21
K 21,rec K 21sat
1 TECU
³
sat
rec
N e dl ,
1016 e / m 2
STEC is in TECUs 0.10m of L1- L 2 delay
As the satellite clocks are referred to the ionosphere-free combination of codes (PC), the K 21sat cancels in such combination. f12 P1 f 22 P2 P Note: TGD D1 K 21sat is broadcast in GPS nav. Message. C f12 f 22
Carrier ambiguities
Bi
Oi N i bi
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Ni is an integer number. bi is a real number (fractional part of ambiguity)
Backup
@ J. Sanz & J.M. Juan
18
Exercise 2: Ionospheric delay analysis 1.- Read RINEX file with gLAB and generate a “measurements file” in a columnar format (the easiest to manipulate and plot content): Æ Using the configuration file meas.cfg, READ the RINEX and generate the MEAS file: gLAB_linux -input:cfg meas.cfg -input:obs coco0090.97o -input:nav brdc0090.97n > coco.meas
gLAB configuration file RINEX Measurement file
-pre:dec 1 -print:none -print:meas --model:satphasecenter --model:recphasecenter --model:satclocks --pre:cs:li --pre:cs:bw
RINEX Navigation file
OUTPUT: measurement file in columnar format [Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 7 8 9 10 11 xx xx 14 15 16 ]
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
19
Exercise 2: Ionospheric delay analysis gLAB_linux -input:cfg meas.cfg -input:obs coco0090.97o -input:nav brdc0090.97n > coco.meas -pre:dec 1 -print:none -print:meas
Input Files:
coco0090.97o brdc0090.97n
--model:satphasecenter --model:recphasecenter --model:satclocks --pre:cs:li --pre:cs:bw
RINEX Measurement file
RINEX Navigation file
Set default SPP config.
MEAS file
Set data decimation to 1s
-pre: dec 1 Disable:
Disable cycle-slip detectors:
--model:satphasecenter --model:recphasecenter --model:satclocks
--pre:cs:li --pre:cs:bw
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Backup
@ J. Sanz & J.M. Juan
Exercise 2: Ionospheric delay analysis 2.- Manipulate the file with the easy & powerful awk (or gawk) programming language (to compute the combinations of measurements): Æ From coco.meas file:
P1 L1 P2 L2 ] [Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 7 8 9 10 11 xx xx 14 15 16
Compute different ionospheric combination of codes and carriers, and generate the obs.txt file containing the fields: [PRN,sec, P2-P1, (P2-L2)/5.09, (P1-L1)/3.09, L1-L2, Elev/10] gawk '{print $6,$4,$15-$11,($15-$16)/5.09,($11-$14)/3.09,$14-$16,$7/10}' coco.meas > obs.txt
PRN #6
(P2-P1)
(L1-L2)
#15 -- #11
#14 -- #16
sec #4
(P2-L2)/5.09
(P1-L1)/3.09
#15 -- #16
#11-- #14
Elev/10 #7
gAGE/UPC
@ J. Sanz & J.M. Juan
21
Research group of Astronomy & Geomatics Technical University of Catalonia
Exercise 2: Ionospheric delay analysis 3.-Plot results with “graph.py” (you can use the gnuplot as well) ÆFrom obs.txt file:
[PRN, sec, P2-P1, (P2-L2)/5.09, (P1-L1)/3.09, L1-L2, Elev/10] 1 2 3 4 5 6 7
Show in the same plot the following iono. delays for satellite PRN01: P2-P1, (P2-L2)/5.09, (P1-L1)/3.09, L1-L2, Elev./10
Condition: Select PRN01 (from 1-st field)
File to plot
Fields to plot: #2 (x-axis) versus #3 (y-axis)
graph.py -f obs.txt -c'($1==01)' -x2 -f obs.txt -c'($1==01)' -x2 -f obs.txt -c'($1==01)' -x2 -f obs.txt -c'($1==01)' -x2 -f obs.txt -c'($1==01)' -x2 --yn -10 --yx 15 --xl "time
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Label: P2-P1
-y3 --l "P2-P1" –y4 --l "(P2-L2)/5.09" -y5 --l "(P1-L1)/3.09" –y6 --l "L1-L2" –y7 --l "Elev/10" (s)" --yl "meters of L1-L2 delay"
@ J. Sanz & J.M. Juan
22
Exercise 2: Ionospheric delay analysis
zoom
PI { P2 P1
I K 21
LI { L1 L2
I Ambiguity
P1 L1
2D1 I ambiguity1
P2 L2
2D 2 I ambiguity 2
D1 J 21
gAGE/UPC
1
1.546 ; D 2
J 21 1
f1 /
f2
2
1 D1
(154 / 120) 2
@ J. Sanz & J.M. Juan
23
Research group of Astronomy & Geomatics Technical University of Catalonia
Exercise 2: Ionospheric delay analysis
Questions: • Justify the expressions used to depict the Ionospheric delay (see slides #16 to #18). • Justify the factors of 5.09 and 3.09 used in the P2-L2 and P1-L1 combinations to give the results of L1-L2 delay in metres. • Why is the STEC larger at low elevations?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
24
Exercise 2: Ionospheric delay analysis )=40º )=90º
)=0º
coco
Sky plots at different latitudes
PRN01
gAGE/UPC
@ J. Sanz & J.M. Juan
25
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 3. Halloween storm: October 2003 A severe ionospheric storm was experienced on October 29-31, 2003 producing an increase of the electron density which led to large ionospheric refraction values on the GPS signals. Such conditions were beyond the capability of the GPS Klobuchar model broadcast for single frequency users, producing large errors in the SPS (see details in [R-3]).. Dual frequency users, navigating with the ionospheric-free combination of GPS signals were not affected by such ionospheric errors, as the ionospheric refraction can be removed up to 99:9% using dualfrequency signals. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Backup
@ J. Sanz & J.M. Juan
26
Ex. 3.1: Solar Flare October 28, 2003 Before the storm, on October 28, 2003, an intense solar eruption (a Solar Flare) was detected around 11h UT in an active region which had grown one of the largest sunspots ever seen by the SOlar Helioscopic Observatory (SOHO). It appeared as a bright spike in the SOHO ultraviolet images. This sudden enhancement of the solar radiation in the X-ray and extreme ultra-violet band produced a sudden increase in the ionospheric electron density on the daylight hemisphere, (see [R-3]). gAGE/UPC
@ J. Sanz & J.M. Juan
27
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 3.1: Solar Flare October 28, 2003 Exercise: Analyze the effect of the Solar Flare on the Slant Total Electron Content (STEC) measurements of four permanent IGS receivers ankr, asc1, kour and qaq1, covering a wide range of longitude and latitude. qaq1
Data sets: ankr3010.03o, asc13010.03o, kour3010.03o, qaq13010.03o
ankr kour
asc1
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
28
Ex. 3.1: Solar Flare October 28, 2003 Execute: gLAB_linux gLAB_linux gLAB_linux gLAB_linux
-input:cfg -input:cfg -input:cfg -input:cfg
[Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 7 8 9 10 11 xx 13 14 15 16 ]
meas.cfg meas.cfg meas.cfg meas.cfg
-input:obs -input:obs -input:obs -input:obs
ankr3010.03o asc13010.03o kour3010.03o qaq13010.03o
graph.py -f ankr3010.03.meas -x4 -y'($14-$16)' --l -f asc13010.03.meas -x4 -y'($14-$16)' --l -f kour3010.03.meas -x4 -y'($14-$16)' --l -f qaq13010.03.meas -x4 -y'($14-$16)' --l --xl "time (s)" --yl "meters of L1-L2" --xn 38500 --xx 40500 --yn -20 --yx 20 -t "28 Oct 2003 Solar flare"
> > > >
ankr3010.03.meas asc13010.03.meas kour3010.03.meas qaq13010.03.meas
"ankr" "asc1" "kour" "qaq1"
qaq1
ankr kour
asc1
gAGE/UPC
@ J. Sanz & J.M. Juan
29
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 3.1: Solar Flare October 28, 2003
qaq1
ankr kour
asc1
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
30
Ex. 3.1: Solar Flare October 28, 2003
Questions: • Why can we associate the sudden increase of TEC seen in the plots with a Solar Flare? • What is the STEC variation rate due to the Solar Flare? • Can all solar flares be seen in this way?
gAGE/UPC
@ J. Sanz & J.M. Juan
31
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 3.2: Halloween storm analysis Associated with the Solar Flare analysed in the previous exercise, a Coronal Mass Ejection occurred, which sent a large particle cloud impacting the Earth's magnetosphere about 19 hours later, on October 29. Subsequent impacts were still occurring several hours later. This material interacted with the Earth's magnetosphere, and a Storm Enhancement Density (SED) appeared in North America and this later affected the northern latitudes in Europe. Extra large gradients of TEC associated with this phenomenon were also produced, degrading the GPS positioning performance. The TEC evolution on October 30, 2003 (i.e., Day 303 of year 2003) can be seen in the movie TEC 2003oct30 anim.gif.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
32
Ex. 3.2: Halloween storm analysis The measurement files garl3010.03o, garl3020.03o, garl3030.03o, garl3040.03o, garl3050.03o, garl3060.03o were collected by the permanent receiver garl in Empire, Nevada, USA ( I= 40.42 deg O =-119:36 deg) from October 28 to November 2, 2003. Using these files, plot the STEC for all satellites in view and discuss the range of such variations. Analyse, in particular, the satellite PRN 04 and calculate the maximum rate of STEC variation in mm=s of L1 delay. Add the elevation of satellite PRN 04 in the plot. The associated broadcast navigation files are brdc3010.03n, brdc3020.03n, brdc3030.03n, brdc3040.03n, brdc3050.03n, brdc3060.03n. gAGE/UPC
@ J. Sanz & J.M. Juan
33
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 3.2: Halloween storm analysis The next commands read a RINEX file and generate a text file (in columnar format) that enables easy plotting of the measurements and their combinations: 1. Using the configuration file meas.cfg, READ the RINEX and generate the MEAS message with data format: Execute:
[Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 7 8 9 10 11 xx 13 14 15 16 ]
gLAB_linux -input:cfg meas.cfg -input:obs amc23030.03o -input:nav brdc3030.03n > amc23030.03.meas
2. From meas.txt file, Compute the ionospheric combination of codes: PI=P2-P1. Generate the file PI.txt with the following content: [PRN, hour, PI, elevation]
gawk '{print $6, $4/3600, $15-$13, $7}' amc23030.03.meas > PI.txt 3. From PI.txt file, Plot the PI=P2-P1 for time interval [15 to 24].hours. Show in the same graph: 1) ALL satellites, 2) PRN 13, 28 and 29, and 3) The elevation of each satellite.(13, 28 and 29) graph.py -f PI.txt -x2 -y3 --l "ALL" -f PI.txt -c'($1==28)' -x2 -y3 -so --l "28:P2-P1" -f PI.txt -f PI.txt -c'($1==29)' -x2 -y3 -so --l "29:P2-P1" -f PI.txt -f PI.txt -c'($1==13)' -x2 -y3 -so --l "13:P2-P1" -f PI.txt gAGE/UPC --xn 15 --xx 25 --yn 0 --yx 85 --xl "time (s)" --yl "meters Research group of Astronomy & Geomatics Technical University of Catalonia
Backup
-c'($1==28)' -x2 -y4 --l "29:ELEV" -c'($1==29)' -x2 -y4 --l "13:ELEV" -c'($1==13)' -x2 -y4 --l "13:ELEV" 34 of L1-L2 delay" @ J. Sanz & J.M. Juan 34
Ex. 3.2: Halloween storm analysis Questions: • What is the maximum STEC variation rate seen in the plots? • How could we explain the shape of the STECs seen for satellites PRN28 and PRN29?
amc2 station location
October 30, 2003 gAGE/UPC
@ J. Sanz & J.M. Juan
35
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 3.3: Halloween storm evolution Exercise: Analyze the ionospheric delays for 6
consecutive days including the Halloween storm • This is a simple exercise aimed to illustrate the ionospheric delay variation during the Halloween storm. A period of 6 consecutive days (from October 28 to November 2, 2003) are analyzed using measurements collected in the “garl” station in North America. • The STEC variations are depicted from the geometry-free combination of codes P2-P1. Note: P2 P1
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
I K 21 @ J. Sanz & J.M. Juan
36
Ex. 3.3: Halloween storm evolution 1.- Read RINEX file: gLAB_linux gLAB_linux gLAB_linux gLAB_linux gLAB_linux gLAB_linux
-input:cfg -input:cfg -input:cfg -input:cfg -input:cfg -input:cfg
meas.cfg meas.cfg meas.cfg meas.cfg meas.cfg meas.cfg
[Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 7 8 9 10 11 xx 13 14 15 16 ] -input:obs -input:obs -input:obs -input:obs -input:obs -input:obs
garl3010.03o garl3020.03o garl3030.03o garl3040.03o garl3050.03o garl3060.03o
-input:nav -input:nav -input:nav -input:nav -input:nav -input:nav
brdc3010.03n brdc3020.03n brdc3030.03n brdc3040.03n brdc3050.03n brdc3060.03n
> > > > > >
garl3010.03.meas garl3020.03.meas garl3030.03.meas garl3040.03.meas garl3050.03.meas garl3060.03.meas
2.- Merge files and refer all the data to 0h of October 28th: Doy0301: cat garl30?0.03.meas |gawk '{d=($3-301)*86400;$4=$4+d; print $6, $4/3600, $15-$13, $7}' > PI.txt
3.- Plot results: graph.py -f PI.txt –x2 –y3 --l "ALL P2-P1" -f PI.txt -c'($1==04)' –x2 –y4 --l "PRN04: ELEV" -f PI.txt -c'($1==04)' –x2 –y3 –so --l "PRN04: P2-P1" --xn 0 --xx 144
gAGE/UPC
37
@ J. J. Sanz San nz & J.M. J.M M. Juan Jua J ua u an
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 3.3: Halloween storm evolution Zoom at time interval: 70 to 78 h graph.py -f PI.txt –x2 –y3 --l "ALL P2-P1" -f PI.txt -c'($1==04)' –x2 –y4 --l “04: EL" -f PI.txt -c'($1==04)' –x2 –y3 –so --l “04" --xn 0 --xx 144
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
graph.py -f PI.txt –x2 –y3 --l "ALL P2-P1" -f PI.txt -c'($1==04)' –x2 –y4 --l “04: EL" -f PI.txt -c'($1==04)' –x2 –y3 –so --l “04" --xn 70 --xx 78
@ J. Sanz & J.M. Juan
38
Ex. 3.3: Halloween storm evolution
Questions: • What is the maximum STEC seen before and after the storm? And during the storm? • The STEC of satellite PRN04 shows a flat pattern after time 74 hours which does not change with the elevation. Try to explain this phenomenon.
gAGE/UPC
@ J. Sanz & J.M. Juan
39
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 3.4: Single frequency pos. effects Exercise: Analyze the single frequency positioning solution under the Halloween storm. The following steps are recommended: 1. Using files amc23020.03o,brdc3030.03n compute with gLAB the following solutions: 1. Solution with full SPS modeling. Name output file as: gLAB.out 2. Solution with the ionospheric corrections disabled Î gLAB1.out 3. Solution with the 2-freq. Ionosphere-free code (PC) Î gLAB2.out
2. Plot results Note: The gLAB GUI or the command line sentences can also be used . A “notepad” with the command line sentence is provided to facilitate the sentence writing: just “copy” and “paste” from notepad to the working terminal
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
40
Ex. 3.4: Full processing Î gLAB.out 1. Compute SPP using files: amc23020.03o,brdc3030.03n
2 By default, the output file name is gLAB.out
3
1 Equivalent command line sentence:
gLAB_linux -input:cfg gLAB_p1_Full.cfg -input:obs amc3030.03o gAGE/UPC brdc3030.03n Research group of Astronomy &-input:nav R Geomatics
@ J. Sanz & J.M. Juan
41
Technical University Technical University y of Catalonia Catalonia
Ex. 3.4: Iono. Disabled Î gLAB1.out 2. Reprocess the same files, with the iono. corrections disabled
2 Disable Ionospheric corrections
1
Change output file name to gLAB1.out
3
Equivalent command line sentence: gLAB_linux -input:cfg gLAB_p1_NoIono.cfg -input:obs amc3030.03o gAGE/UPC brdc3030.03n Research group of Astronomy &-input:nav R Geomatics Technical University Technical University y of Catalonia Catalonia
@ J. Sanz & J.M. Juan
42
Ex. 3.4: Processing with PCÎ gLAB2.out 3. Reprocess the same files, but with 2-frequency ionosphere-free (PC)
1 Disable Ionospheric corrections and P1P2 corrections
2 Select Dual Frequency
3
Equivalent command line sentence: gLAB_linux -input:cfg gLAB_p1_IFree.cfg -input:obs amc3030.03o gAGE/UPC brdc3030.03n Research group of Astronomy &-input:nav R Geomatics
Change output file name to gLAB2.out
4
@ J. J. Sanz Sanz & J.M. Juan Juan Jua n
Technical Techn ical University University y of Catalonia Catalonia
43 43
Ex. 3.4: Single freq. positioning effects Execute in a single line: (or
use the gLAB GUI)
graph.py -f gLAB.out -x4 -y18 -s.- -c '($1=="OUTPUT")' -f gLAB.out -x4 -y19 -s.- -c '($1=="OUTPUT")' -f gLAB.out -x4 -y20 -s.- -c '($1=="OUTPUT")' --yn -40 --yx 70 --xl "time (s)" -t "NEU positioning error [SPP]:
-l "North error" -l "East error" -l "UP error" --yl "error (m)" Full model"
graph.py -f gLAB.out -x4 -y20 -s.- -c '($1=="OUTPUT")' --l "Full model" -f gLAB1.out -x4 -y20 -s.- -c '($1=="OUTPUT")' --l "No Iono." --cl r --yn -40 --yx 90 --xl "Time (s)" --yl "Up error (m)" -t "Vertical positioning error [SPP]" graph.py
-f gLAB1.out -x19 -y18 -so -c '($1=="OUTPUT")' --l "No Iono." --cl r -f gLAB.out -x19 -y18 -so -c '($1=="OUTPUT")' --l "Full mod" --cl b --xl "East error (m)" --yl "North error (m)" --xn -40 --xx 40 --yn -40 --yx 40 -t "Horizontal pos. error [SPP]"
P2-P1 shifted +4 m graph.py -f gLAB.out -x4 -y'($10-$9+4)' -s. -c '($1=="INPUT")' -f gLAB.out -x4 -y25 -s. -c '($1=="MODEL")' --cl r --xl "time (s)" --yl "meters" --yn -5 --yx 80 -t "Ionospheric Combination" gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. J. Sanz Sa San S an anz & J.M. J.M. Juan Ju Jua J u ua an
44 44 44
Ex. 3.4: Single freq. positioning effects gLAB1.out
gLAB.out
gLAB.out
gLAB1.out
gLAB.out
Ionospheric correction (broadcast Klobuchar ) Ionospheric delays are larger at noon due to the higher insulation.
Code delay
gAGE/UPC
Klobuchar model is unable to mitigate the large ionospheric errors during the storm. Position domain errors reach up to 40 meters with Klobuchar corrections used.
@ J. Sanz & J.M. Juan
45
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 3.4: Single freq. positioning effects 1-freq.[SPS]: with Klobuchar
Ionospheric correction (broadcast Klobuchar ) •The ionosphere-free combination (PC) of P1 and P2 codes is immune to the ionospheric storm. • Although PC is three-times noisier than P1 or P2, it provides positioning accurate at the level of a few meters during the storm. f 2P f 2P PC
2-freq.: Iono-free
1
1
2
2
f12 f 22
amc2 station location
October 30, 2003 gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
46
Ex. 3.4: Single freq. positioning effects Questions: • Discuss the results seen in the previous plots. Is the Klobuchar model able to remove the ionospheric error during the storm? What was the level of the error? • What is the position domain error level for single frequency users? • And for dual frequency users navigating with the ionosphere-free combination? • Discuss pros and cons of using the ionosphere-free combination against the single-frequency code with Klobuchar (consider nominal conditions and perturbed conditions).
gAGE/UPC
@ J. Sanz & J.M. Juan
47
Research group of Astronomy & Geomatics Technical University of Catalonia
OVERVIEW Introduction: gLAB processing in command line. Test cases on Atmospheric Propagation Effects: Troposphere, Ionosphere. ¾ Test cases on Measurement Noise and Multipath: C1, Ionosphere-free and Melbourne Wübbena combinations. Test cases on Carrier Smoothed Code: Code-carrier divergence. Test cases on Broadcast Orbits and Clocks Accuracy
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
48
Test cases on Measurement Noise and Multipath: C1, Iono-free and Melbourne Wübbena combinations.
gAGE/UPC
@ J. Sanz & J.M. Juan
49
Research group of Astronomy & Geomatics Technical University of Catalonia
Measurement noise and multipath Code and carrier Measurements Carrier is ambiguous, but precise Cycle-slip
• Code measurements are unambiguous but noisy (meter level measurement noise). • Carrier measurements are precise but ambiguous, meaning that they have few millimetres of noise, but also have unknown biases that could reach thousands of km.
• Carrier phase biases are estimated in the navigation filter along with the other parameters (coordinates, clock offsets, etc.). If these biases were fixed, Code is measurements accurate to the level of Zoom of unambiguous, few millimetres would be available for carrier noise but noisy positioning. However, some time is needed to decorrelate such biases from the other parameters in the filter, Note: Figure shows the noise of code and carrier prefitand the estimated values are not fully residuals, which are the input data for navigation equations. unbiased.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Backup
@ J. Sanz & J.M. Juan
50
Exercise 4. Code multipath The code multipath can be seen by plotting the difference of code and carrier ionosphere-free combinations (PC-LC). The evolution of this difference can be followed with a sampling rate of 1 Hz. Due to its geometric nature, the effect of multipath repeats with the receiver-satellite geometry. The RINEX files UPC33600.08N, UPC33610.08N, UPC33620.08N contain observations at 1 Hz collected by a GPS receiver with fixed coordinates over the same period of time on three consecutive days. The corresponding navigation files are BRD3600.08N, BRD3610.08N, BRD3620.08N. Using gLAB, read the RINEX files, plot the combination PC-LC and identify the effect of multipath. Analyse the measurements of satellites PRN20 and PRN25 in the time interval 67000 < t < 68000s. Include the satellite's elevation in the plots.
gAGE/UPC
@ J. Sanz & J.M. Juan
51
Research group of Astronomy & Geomatics Technical University of Catalonia
Exercise 4.1. PC Code multipath Complete the following steps to depict the noise and multipath in the PC combination: 1. Read the RINEX files, execute: gLAB linux -input:cfg meas.cfg -input:obs UPC33600.08 -input:nav BRD3600.08N > upc3360.meas
2. Verify the following field contents in the generated file upc3360.meas and others:
[Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 x x 9 10 11 xx 13 14 15 16 ]
3. Compute the difference of code and carrier ionosphere-free combinations: (i.e. apply next equation) : Pc
f12 P1 f 22 P2 f12 f 22
Lc
f L f L f f
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
2 1 1 2 1
2 2 2 2 2
J P1 P2 ; J 1 J L1 L2 J 1
M Pc
Pc Lc
@ J. Sanz & J.M. Juan
52
Exercise 4.1. PC Code multipath gawk 'BEGIN{g12=(154/120)**2}{if ($4>66000 && $4upc3.meas
b) Using previous expression, compute the C1 multipath and code noise: : gawk '{print $4,$11-$14-3.09*($14-$16)-21.3}' upc3.meas> upc3.C1
[*] results are Shifted by “-21.3” to remove the carrier ambiguity
c) Plot the raw (unsmoothed) measurements for PRN03: graph.py -f upc3.C1 -s- --l "C1 Raw" --xn 35000 --xx 40000 --yn -5 --yx 5 --xl "time (s)" --yl "meters" -t "PRN03, C1 Raw measurement noise and multipath"
gAGE/UPC
67 @ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 5.1: Iono. Divergence on Smoothing 2. Apply the Hatch filter to smooth the code using a filter length of N =100 sample (as the measurements are at 1Hz,this means 100 seconds smoothing). Then, as in the previous case, depict the multipath and noise of the smoothed code. a) Smoothing code (T=100sec): gawk 'BEGIN{Ts=100}{if (NR>Ts){n=Ts}else{n=NR}; C1s=$11/n+(n-1)/n*(C1s+($14-L1p));L1p=$14; print $4,C1s-$14-3.09*($14-$16)-21.3}' upc3.meas > upc3.C1s100
b) Plotting results and compare with the row C1. graph.py -f upc3.C1 -s- --l "C1 Raw" -f upc3.C1s100 -s.- --cl r --l "C1 SF smoothed" --xn 35000 --xx 40000 --yn -5 --yx 5 --xl "time (s)" --yl "meters" -t "PRN03: C1 100s smoothing and iono div."
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
68
Ex. 5.1: Iono. Divergence on Smoothing 3 . Using 2-frequency carriers it is possible to generate a combination with the same ionospheric delay (the same sign) as the code to avoid the code-carrier divergence 2 f 22 1 § 77 · 1.545 ; D J ¨ ¸ L1DFree L1 2D ( L1 L2 ) U I1 B ] f12 f 22 J 1 © 60 ¹ a) Apply the Hatch filter to compute the DFree smoothed code gawk 'BEGIN{Ts=100}{if (NR>Ts){n=Ts}else{n=NR}; C1f=$11;L1f=$14+2*1.545*($14-$16); C1fs=C1f/n+(n-1)/n*(C1fs+(L1f-L1p));L1p=L1f; print $4,C1fs-L1f-21.3}' upc3.meas > upc3.C1DFs100
b) Plot results and compare with the row C1 code: graph.py -f upc3.C1 -s- --l "C1 Raw" -f upc3.C1s100 -s.- --cl r --l "C1 SF smoothed (100s)" -f upc3.C1DFs100 –s.- --cl g --l "C1 DFree smooth(100s)" --xn 35000 --xx 40000 --yn -5 --yx 5 --xl "time (s)" --yl "meters"
gAGE/UPC
@ J. Sanz & J.M. Juan
69
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 5.1: Iono. Divergence on Smoothing 4 . Generate the ionosphere-free combinations of code and carrier measurements to compute the Ionosphere Free (IFree) smoothed code: CIFree { PC
J P1 P2 J 1
; LIFree { LC
J L1 L2 J 1
J
§ 77 · ¨ ¸ © 60 ¹
2
gawk 'BEGIN{g=(77/60)**2}{pc=(g*$13-$15)/(g-1); lc=(g*$14-$16)/(g-1); print $4,pc-lc-3.5}' upc3.meas > upc3.PC
• Apply the Hatch filter to compute the IFree smoothed code gawk 'BEGIN{g=(77/60)**2}{pc=(g*$13-$15)/(g-1); lc=(g*$14-$16)/(g-1); if (NR>100){n=100}else{n=NR}; ps=1/n*pc+((n-1)/n*(ps+lc-lcp)); lcp=lc; print $4,ps-lc-3.5}' upc3.meas > upc3.PCs100
• Plot results and compare with the unsmoothed PC: graph.py -f upc3.PC -s- --l "IFree raw" -f upc3.PCs100 -s.- --cl black --l "Ifree(100s)" --xn 35000 --xx 40000 --yn -5 --yx 5 --xl "time (s)" --yl "meters"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
70
Ex. 5.1: Iono. Divergence on Smoothing 5 . Repeat previous plots but using: N=360, N=3600 and compare results. Plot also the ionospheric delay (from L1-L2) (see more details in [R-1]): T=360s
T=100s C1
C1
PC
PC
gAGE/UPC
T=3600s C1
PC
STEC
Note that the y-range in bottom row plots is 3 times larger than in top plots @ J. Sanz & J.M. Juan
71
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 5.1: Iono. Divergence on Smoothing
Questions: • Discuss a possible source of the large oscillations seen in the plots. • Using the expressions of slide #65, estimate the expected accumulated ionospheric bias with smoothing time constant T=3600s. • Is the Divergence-Free smoothing immune to ionospheric temporal gradients? And to spatial gradients? Why? • Is the Ionosphere-Free smoothing immune to temporal gradients? And to spatial gradients?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
72
Ex.5.2.: Assessment on Halloween storm Repeat the previous exercise using the RINEX file amc23030.03o_1Hz collected for the station amc2 during the Halloween storm. Take N=100 (i.e. filter smoothing time constant W=100 sec).
gAGE/UPC
@ J. Sanz & J.M. Juan
73
Research group of Astronomy & Geomatics Technical University of Catalonia
OVERVIEW Introduction: gLAB processing in command line. Test cases on Atmospheric Propagation Effects: Troposphere, Ionosphere. Test cases on Measurement Noise and Multipath: C1, Ionosphere-free and Melbourne Wübbena combinations. Test cases on Carrier Smoothed Code: Code-carrier divergence. ¾ Test cases on Broadcast Orbits and Clocks Accuracy
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
74
Test cases on Broadcast Orbits and Clocks Accuracy
gAGE/UPC
@ J. Sanz & J.M. Juan
75
Research group of Astronomy & Geomatics Technical University of Catalonia
Broadcast v.s. precise IGS Orbits and clocks Satellite Mass Center to Antenna Phase Center Satellite Antenna Phase Center (APC)
Satellite Mass Center (MC)
Broadcast orbits are referred to the antenna phase center, but IGS precise orbits are referred to the satellite mass center.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Satellite MC to APC: The satellite MC to APC eccentricity vector depends on the satellite. The APC values used in the IGS orbits and clocks products are referred to the iono-free combination (LC, PC) . They are given in the IGS ANTEX files (e.g., igs05.atx).
@ J. Sanz & J.M. Juan
76
Ex.6.: Broadcast orbits and clocks accuracy assessment using the IGS precise products as the accurate reference (i.e. the truth). Complete the following steps: File brdc0800.07n contains the orbits and clocks data broadcast in the GPS navigation message. Files cod14193.sp3, cod14193.clk contain the precise orbits and clocks computed in postprocess by “CODE” center (IGS precise orbits and clocks products program). 1. Execute the following sentence to compute the difference of satellite coordinates and clock offsets between both orbits and clocks sources: gLAB_linux -input:nav brdc0800.07n -input:SP3 cod14193.sp3 -input:ant igs05_1402.atx >dif.tmp
2. Select the SATDIFF message of dif.tmp file: grep SATDIFF dif.tmp > dif.out SATDIFF message content is shown in the table beside. (see gLAB_linux –messages). The IGS post-processed products are accurate at few cm level, therefore they can be taken as the truth.
3. Plot dif.out file as in the first exercise. Note: SISRE
('Rad 'Clk) 2 1
49
('Alon 2 'Cross 2 )
gAGE/UPC
@ J. Sanz & J.M. Juan
77
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex.6.: Broadcast orbits and clocks accuracy assessment using the IGS precise products as the accurate reference (i.e. the truth).
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 shift in clocks. • For the Signal-In-Space-Range-Error (SISRE), please see the plot below.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
78
Ex.6.: Broadcast orbits and clocks accuracy assessment using the IGS precise products as the accurate reference (i.e. the truth).
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. • Notice that the biases in the radial component have disappeared.
gAGE/UPC
@ J. Sanz & J.M. Juan
79
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex.6.: Broadcast orbit and clock accuracy assessment using the IGS precise products as the accurate reference (i.e. the truth).
Questions: • What is the level of error of the broadcast orbits and clocks? • Why do the results improve using the gps_brd.atx, instead of igs05_1402.atx ANTEX file? • Is there any correlation between radial orbit errors and clock errors? • Which orbit errors are expected to affect the differential positioning more (radial, cross track, along track)?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
80
Thanks for your attention
gAGE/UPC
@ J. Sanz & J.M. Juan
81
Research group of Astronomy & Geomatics Technical University of Catalonia
Bibliography
R-1: J. Sanz-Subirana, J.M. Jaun-Zoroza, M. Hernández-Pajares. GNSS Data processing. Volume-I and Volume-II. ESA Publications Division, 2012. R-2: J. Sanz-Subirana, J.M. Jaun-Zoroza, M. Hernández-Pajares. Tutorial on GNSS Data Processing Laboratory Exercises. ESAInternational Summer School on GNSS, 2010. R-3: Hernández-Pajares M., J.M. Juan, J. Sanz, "EGNOS Test Bed Ionospheric Corrections Under the October and November 2003 Storms", IEEE Transactions on Geoscience and Remote Sensing, Vol.43(10), pp.2283-2293, 2005.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
82
Acknowledgements The ESA/UPC GNSS-Lab Tool suite (gLAB) has been developed under the ESA Education Office contract N. P1081434. The other data files used in this study were acquired as part of NASA's Earth Science Data Systems and archived and distributed by the Crustal Dynamics Data Information System (CDDIS). To Adrià Rovira-Garcia for his contribution to the edition of this material and gLAB updating.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
83
Tutorial 3 Differential Positioning with code measurements Contact:
[email protected] Web site: http://www.gage.upc.edu Slides associated to gLAB version 2.0.0
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
1
Aim of this tutorial This tutorial is devoted to analysing and assessing the differential positioning with code pseudorange measurements. Four different permanent receivers and two baselines 280km and 51km are considered. The atmospheric effects on differential positioning are the subject of the first session. The differential tropospheric and ionospheric delays are analysed for the two baselines considered and the absolute and differential user solution are computed and assessed. The ephemeris error on differential positioning is the subject of the second session. A 2000 metres of Along-Track error is simulated by manipulating the broadcast message, and the impact of this error on range and user domains is assessed for absolute and differential positioning. A theoretical expression to predict the range error on a given baseline is also verified in the last part of this session. Detailed guidelines for self-learning students are provided in this tutorial and in its associated notepad text file.
All software tools (including gLAB) and associated files for the laboratory session are included in the CD-ROM or USB stick associated with this tutorial.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
3
OVERVIEW ¾ Introduction: gLAB processing in command line Session A: Atmospheric effects • A1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • A2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km)
Session B: Orbit error effects • B1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • B2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km) • B3 Range domain orbit error.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
4
gLAB processing in command line
Console to execute “command line” sentences
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A “notepad” with the command line sentence is provided to facilitate the sentence writing: just “copy” and “ paste” from notepad to the working terminal. @ J. Sanz & J.M. Juan
5
gLAB processing in command line The different messages provided by gLAB and its content can be found in the [OUTPUT] section. By placing the mouse on a given message name, a tooltip appears describing the different fields.
In console mode: execute
gLAB_linux -messages
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Backup
@ J. Sanz & J.M. Juan
6
OVERVIEW Introduction: gLAB processing in command line ¾ Session A: Atmospheric effects • A1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • A2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km)
Session B: Orbit error effects • B1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • B2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km) • B3 Range domain orbit error.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
7
Session A Atmospheric effects on differential positioning with code measurements
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
8
Session A: Atmospheric effects Toulouse
MATA
MATA
GARR
Barcelona
GARR-MATA: 51 km EBRE-CREU: 288 km
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
9
Session A: Atmospheric effects Data sets: Measurement files: CREU0770.10o, EBRE0770.10o, GARR0770.10o, MATA0770.10o Orbit and clocks files: brdc0770.10n. Receiver coordinates: MATA GARR EBRE CREU
4776835.5870 202618.9947 4207574.6304 41.539929530 2.428858625 4796983.5767 160309.1177 4187340.3773 41.292941528 1.914040080 4833520.1197 41537.2015 4147461.6263 40.820888849 0.492363266 4715420.3054 273177.8809 4271946.7957 42.318843076 3.315603563
123.6209 634.6040 107.8284 133.4780
Note: the receivers were not moving (static receivers) during the data collection. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Data files and receiver coordinates
@ J. Sanz & J.M. Juan
10
OVERVIEW Introduction: gLAB processing in command line ¾ Session A: Atmospheric effects • A1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • A2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km)
Session B: Orbit error effects • B1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • B2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km) • B3 Range domain orbit error.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
11
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) Model Components computation • The script "ObsFile1.scr" generates a data file “STA.obs” with the following content 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [sta sat DoY sec P1 L1 P2 L2 Rho Trop Ion Elev Azim Prefit]
• Run this script for EBRE and CREU receivers: ObsFile1.scr EBRE0770.10o brdc0770.10n ObsFile1.scr CREU0770.10o brdc0770.10n
• Generate the navigation equations system for absolute positioning for each receiver and compute the user solution (see next two slides).
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.1 Model components computation
@ J. Sanz & J.M. Juan
12
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) Justify that the next sentence builds the navigation equations system for absolute positioning:
[Prefit]=[Los_k
See file content in previous slide
1]*[dx]
cat EBRE.obs | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4, $14 ,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1 }'> EBRE.mod
ª Pref º « 2» « Pref » » « « n» ¬ Pref ¼ 1
ª ρˆ 1 T « « ˆ2 T « ρ « « « ρˆ n T ¬
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
1º » » 1» dx » » 1»¼
time 30.00 30.00 30.00
[Pref] ------3.3762 -7.1131 4.3881
[
Los_k 1] -----------------------0.3398 -0.1028 0.0714 1 0.1725 0.5972 0.0691 1 -0.6374 0.0227 0.2725 1
ρˆ k { > cos( Elk )sin( Azk ), cos( Elk ) cos( Azk ), sin( Elk ) @ @ J. Sanz & J.M. Juan
13
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) The program kalman.f implements the kalman filter for code positioning (see source code). The INPUT file is the file EBRE.mod generated in the previous slide. The OUTPUT is the user solution file: 1 2 3 4 5 [time dE dN dU, dt]
The filter configuration is done by the namelist kalman.nml. • The namelist kalman_wn.nml configures the filter to process the coordinates and clock as white nose (i.e. Kinematic solution). • The namelist kalman_ct.nml configures the filter to process the coordinates as constants and clock as white nose (i.e. static solution).
The program is executed as:
cp kalman.nml_wn kalman.nml
cat EBRE.mod | kalman > EBRE.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.2. Absolute positioning
@ J. Sanz & J.M. Juan
14
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km)
Using the files EBRE.obs and CREU.obs, follow the next steps: 1. Build the navigation equations system for each receiver, for absolute positioning. 2. Compute the user solutions in kinematic mode. 3. Plot the results and compare the positioning errors.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.2. Absolute positioning
@ J. Sanz & J.M. Juan
15
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) 1.- Building the navigation equations system for absolute positioning: cat EBRE.obs | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4, $14 ,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1 }'> EBRE.mod
2.- Computing the user solution for absolute positioning: cp kalman.nml_wn kalman.nml
cat EBRE.mod | kalman > EBRE.pos
3.- Plotting results: graph.py
-f EBRE.pos -x1 -y2 -s.- -l "North error" -f EBRE.pos -x1 -y3 -s.- -l "East error" -f EBRE.pos -x1 -y4 -s.- -l "UP error" --xl "time (s)" --yl "error (m)" --yn -8 --yx 8 -t "EBRE: Standard Point Positioning"
gAGE/UPC
A.1.2. Absolute positioning
Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
16
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) 1.- Building the navigation equations system for absolute positioning: cat CREU.obs | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4, $14 ,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1 }'> CREU.mod
2.- Computing the user solution for absolute positioning: cp kalman.nml_wn kalman.nml
cat CREU.mod | kalman > CREU.pos
3.- Plotting results: graph.py
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-f CREU.pos -x1 -y2 -s.- -l "North error" -f CREU.pos -x1 -y3 -s.- -l "East error" -f CREU.pos -x1 -y4 -s.- -l "UP error" --xl "time (s)" --yl "error (m)" --yn -8 --yx 8 -t "CREU: Standard Point Positioning"
A.1.2. Absolute positioning
@ J. Sanz & J.M. Juan
17
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km)
Questions: •What is the expected accuracy of the computed coordinates (in absolute positioning)? •Why are the patterns seen for the receivers EBRE and CREU are so similar?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.2. Absolute positioning
@ J. Sanz & J.M. Juan
18
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) The script Dobs.scr computes the single difference of measurements files sta1.obs (reference station) and sta2.obs (user).
It can be executed by the sentence: Dobs.scr sta1.obs sta2.obs The output file (D_sta1_sta2.obs) has the following content: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [sta2 sat DoY sec DP1 DL1 DP2 DL2 DRho DTrop DIon El2 Az2 DPrefit]
Where: D(o)= (o)sta2 -- (o)sta1 EL2 and AZ2 are the satellite azimuth and elevation from sta2.
In our case, executing: Dobs.scr EBRE.obs CREU.obs the OUTPUT file D_EBRE_CREU.obs is generated.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.3. Differential positioning
@ J. Sanz & J.M. Juan
19
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) Justify that the next sentence builds the navigation equations system for differential positioning of CREU (user) relative to EBRE (reference station): Question: Is this combination equivalent to use $14? Why?
[DPrefit]=[Los_k
1]*[dx]
cat D_EBRE_CREU.obs | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4,$5-$9-$10-$11 ,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1 }'> D_EBRE_CREU.mod
ª DPref º « 2» « DPref » « » « n» ¬ DPref ¼ 1
ª ρˆ 1 T creu « « ˆ2 T « ρ creu « « « ρˆ n T creu ¬
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
1º » » 1» dx » » 1»¼
time 30.00 30.00 30.00
[DPref] ------3.3762 -7.1131 4.3881
[
Los_k 1] -----------------------0.3398 -0.1028 0.0714 1 0.1725 0.5972 0.0691 1 -0.6374 0.0227 0.2725 1
ρˆ k { > cos( Elk )sin( Azk ), cos( Elk ) cos( Azk ), sin( Elk ) @ @ J. Sanz & J.M. Juan
20
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km)
Using the files EBRE.obs and CREU.obs, follow the next steps: 1. Compute the single differences of measurements and model components. 2. Build the navigation equations system for the differential positioning of CREU receiver (user) relative to EBRE (reference station). 3. Compute the user solution in kinematic mode and in static mode. 4. Plot the results and discuss the positioning error found.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.3.1. Differential positioning. Full model
@ J. Sanz & J.M. Juan
21
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) 1. Computing the single differences of measurements and model components. Dobs.scr EBRE.obs CREU.obs
2.- Building the navigation equations system for differential positioning: cat D_EBRE_CREU.obs | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4,$5-$9-$10-$11,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1}'> D_EBRE_CREU.mod
3.- Computing the user solution for differential positioning: cp kalman.nml_wn kalman.nml
Kinematic:
cat D_EBRE_CREU.mod | kalman > EBRE_CREU.posK cp kalman.nml_ct kalman.nml
Static: gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
cat D_EBRE_CREU.mod | kalman > EBRE_CREU.posS A.1.3.1. Differential positioning. Full model
@ J. Sanz & J.M. Juan
22
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) 4.- Plotting results:
- kinematic mode: graph.py -f EBRE_CREU.posK -x1 -y2 -s. -l "North error" -f EBRE_CREU.posK -x1 -y3 -s. -l "East error" -f EBRE_CREU.posK -x1 -y4 -s. -l "UP error" --xl "time (s)" --yl "error (m)" --yn -8 --yx 8 -t "CREU-EBRE: 288 km: Differential Positioning"
- Static mode: graph.py -f EBRE_CREU.posS -x1 -y2 -s. -l "North error" -f EBRE_CREU.posS -x1 -y3 -s. -l "East error" -f EBRE_CREU.posS -x1 -y4 -s. -l "UP error" --xl "time (s)" --yl "error (m)" --yn -8 --yx 8 -t "CREU-EBRE: 288 km: Differential Positioning"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.3.1. Differential positioning. Full model
@ J. Sanz & J.M. Juan
23
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km)
Questions: •Looking at these results, justify intuitively why the errors are reduced in differential positioning. •Why is the error lower in static than in kinematic mode?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.3.1. Differential positioning. Full model
@ J. Sanz & J.M. Juan
24
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) Analyze the effect of the differential ionosphere on the differential positioning of CREU relative to EBRE station: Follow the next steps: 1. Using file D_EBRE_CREU.obs plot the differential ionospheric correction (from Klobuchar model) between EBRE and CREU. 2. Repeat the previous process, but without applying the ionospheric correction. Compare the results
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.3.2. Differential positioning. No ionospheric corrections
@ J. Sanz & J.M. Juan
25
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) Plotting the Klobuchar differential ionospheric correction: graph.py -f D_EBRE_CREU.obs -x4 -y'11' --yn -0.8 --yx 0.8 -t "CREU-EBRE: 288 km: Nominal diff Iono (Klob)"
Question: Justify the pattern seen in the nominal (Klobuchar) ionospheric corrections.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.3.2. Differential positioning. No ionospheric corrections
@ J. Sanz & J.M. Juan
26
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) Computing the differential solution, but without using ionospheric corrections: 1.- Building the navigation equations system for differential positioning, but without using the ionospheric corrections: cat D_EBRE_CREU.obs | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4,$5-$9-$10,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1}'> D_EBRE_CREU.mod
2.- Computing the user solution for differential positioning: Kinematic: Static: gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
cp kalman.nml_wn kalman.nml cat D_EBRE_CREU.mod | kalman > EBRE_CREU.posK cp kalman.nml_ct kalman.nml cat D_EBRE_CREU.mod | kalman > EBRE_CREU.posS A.1.3.2. Differential positioning. No ionospheric corrections
@ J. Sanz & J.M. Juan
27
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km)
Question: Taking into account the previous plot of the differential ionospheric corrections (slide #26), discuss the effect seen on the position domain.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.3.1. Differential positioning. Full model
@ J. Sanz & J.M. Juan
28
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km)
Question: Discuss the pattern seen in the figure. Why is the effect of the differential ionospheric error is higher in these static positioning results?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.3.2. Differential positioning. No ionospheric corrections
@ J. Sanz & J.M. Juan
29
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) Analyze the effect of the differential Troposphere on the differential positioning of CREU relative to EBRE station: Follow the next steps: 1. Using file D_EBRE_CREU.obs plot the differential trpospheric correction (from nominal model) between EBRE and CREU. 2. Repeat the previous process, but without applying the tropospheric correction. Compare the results
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.3.3. Differential positioning. No tropospheric corrections
@ J. Sanz & J.M. Juan
30
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) Plotting the nominal differential tropospheric correction: graph.py -f D_EBRE_CREU.obs -x4 -y'10' --yn -8 --yx 8 -t "CREU-EBRE: 288 km: Nominal diff Tropo"
Question: Justify the pattern seen in the nominal tropospheric corrections.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.3.3. Differential positioning. No tropospheric corrections
@ J. Sanz & J.M. Juan
31
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) Computing the differential solution, but without using tropospheric corrections: 1.- Building the navigation equations system for differential positioning, but without using the tropospheric corrections: cat D_EBRE_CREU.obs | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4,$5-$9-$11,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1}'> D_EBRE_CREU.mod
2.- Computing the user solution for differential positioning: Kinematic: Static: gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
cp kalman.nml_wn kalman.nml cat D_EBRE_CREU.mod | kalman > EBRE_CREU.posK cp kalman.nml_ct kalman.nml cat D_EBRE_CREU.mod | kalman > EBRE_CREU.posS A.1.3.3. Differential positioning. No tropospheric corrections
@ J. Sanz & J.M. Juan
32
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km)
Questions: • Which error source has the higher impact on the position domain higher the ionosphere or the troposphere? • Which is easier to model?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.3.1. Differential positioning. Full model
@ J. Sanz & J.M. Juan
33
A.1. Differential positioning of EBRE-CREU receivers (Long baseline: 288 km)
Question: • Compare the results with those of the previous case, when not considering the ionospheric error.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1.3.3. Differential positioning. No tropospheric corrections
@ J. Sanz & J.M. Juan
34
OVERVIEW Introduction: gLAB processing in command line ¾ Session A: Atmospheric effects • A1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • A2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km)
Session B: Orbit error effects • B1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • B2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km) • B3 Range domain orbit error.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
35
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km) Repeat the previous exercise, but using the permanent receivers GARR and MATA, with only 51 km of baseline.
Model Components computation • The script "ObsFile1.scr" generates a data file “STA.obs” with the following content 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [sta sat DoY sec P1 L1 P2 L2 Rho Trop Ion Elev Azim Prefit]
• Run this script for GARR and MATA receivers: ObsFile1.scr GARR0770.10o brdc0770.10n ObsFile1.scr MATA0770.10o brdc0770.10n
• Generate the navigation equations system for absolute positioning for each receiver and compute the user solution (see next two slides).
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.1 Model components computation
@ J. Sanz & J.M. Juan
36
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km)
Using the files GARR.obs and MATA.obs, follow the next steps: 1. Build the navigation equations system for each receiver, for absolute positioning. 2. Compute the user solutions in kinematic mode. 3. Plot the results and compare the positioning errors.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.2. Absolute positioning
@ J. Sanz & J.M. Juan
37
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km) 1.- Building the navigation equations system for absolute positioning: cat GARR.obs | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4, $14 ,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1 }'> GARR.mod
2.- Computing the user solution for absolute positioning: cp kalman.nml_wn kalman.nml
cat GARR.mod | kalman > GARR.pos
3.- Plotting the results: graph.py
-f GARR.pos -x1 -y2 -s.- -l "North error" -f GARR.pos -x1 -y3 -s.- -l "East error" -f GARR.pos -x1 -y4 -s.- -l "UP error" --xl "time (s)" --yl "error (m)" --yn -8 --yx 8 -t "GARR: Standard Point Positioning"
gAGE/UPC
A.2.2. Absolute positioning
Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
38
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km) 1.- Building the navigation equations system for absolute positioning: cat MATA.obs | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4, $14 ,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1 }'> MATA.mod
2.- Computing the user solution for absolute positioning: cp kalman.nml_wn kalman.nml
cat MATA.mod | kalman > MATA.pos
3.- Plotting the results: graph.py
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-f MATA.pos -x1 -y2 -s.- -l "North error" -f MATA.pos -x1 -y3 -s.- -l "East error" -f MATA.pos -x1 -y4 -s.- -l "UP error" --xl "time (s)" --yl "error (m)" --yn -8 --yx 8 -t "MATA: Standard Point Positioning"
A.2.2. Absolute positioning
@ J. Sanz & J.M. Juan
39
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km)
Questions: • Compare the results with the previous case with a baseline of 280 km. • Are the patterns even more similar now? Why?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.2. Absolute positioning
@ J. Sanz & J.M. Juan
40
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km)
Using the files GARR.obs and MATA.obs, follow the next steps: 1. Compute the single differences of measurements and model components. 2. Build the navigation equations system for the differential positioning of MATA receiver (user) relative to GARR (reference station). 3. Compute the user solution in kinematic mode and in static mode. 4. Plot the results and discuss the positioning error found.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.3.1 Differential positioning. Full model
@ J. Sanz & J.M. Juan
41
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km) 1. Computing the single differences of measurements and model components. Dobs.scr GARR.obs MATA.obs
2.- Building the navigation equations system for differential positioning: cat D_GARR_MATA.obs | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4,$5-$9-$10-$11,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1}'> D_GARR_MATA.mod
3.- Computing the user solution for differential positioning: Kinematic: Static: gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
cp kalman.nml_wn kalman.nml cat D_GARR_MATAA.mod | kalman > GARR_MATA.posK cp kalman.nml_ct kalman.nml cat D_GARR_MATA.mod | kalman > GARR_MATA.posS A.2.3.1 Differential positioning. Full model
@ J. Sanz & J.M. Juan
42
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km) 4.- Plotting the results:
- Kinematic mode: graph.py -f GARR_MATA.posK -x1 -y2 -s. -l "North error" -f GARR_MATA.posK -x1 -y3 -s. -l "East error" -f GARR_MATA.posK -x1 -y4 -s. -l "UP error" --xl "time (s)" --yl "error (m)" --yn -8 --yx 8 -t "GARR_MATA: 51 km: Differential Positioning"
- Static mode: graph.py -f GARR_MATA.posS -x1 -y2 -s. -l "North error" -f GARR_MATA.posS -x1 -y3 -s. -l "East error" -f GARR_MATA.posS -x1 -y4 -s. -l "UP error" --xl "time (s)" --yl "error (m)" --yn -8 --yx 8 -t "GARR_MATA: 51 km: Differential Positioning"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.3.1 Differential positioning. Full model
@ J. Sanz & J.M. Juan
43
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km)
Questions: • Compare the results with the previous case with a baseline of 280 km. • Are we reaching a similar level of accuracy? Why?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.3.1 Differential positioning. Full model
@ J. Sanz & J.M. Juan
44
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km) Analyze the effect of the differential ionosphere on the differential positioning of MATA relative to GARR station: Follow the next steps: 1. Using file D_GARR_MATA.obs plot the differential ionospheric correction (from Klobuchar model) between EBRE and CREU. 2. Repeat the previous process, but without applying the ionospheric correction. Compare the results
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.3.2. Differential positioning. No ionospheric corrections
@ J. Sanz & J.M. Juan
45
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km) Plotting the Klobuchar differential ionospheric correction: graph.py -f D_GARR_MATA.obs -x4 -y'11' --yn -0.8 --yx 0.8 -t "GARR-MATA: 51km: Nominal diff Iono (Klob)"
Question: Justify the pattern seen in the nominal (Klobuchar) ionospheric corrections. Compare the plot with that of the 280km baseline (slide #26). Do the results perform as expected?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.3.2. Differential positioning. No ionospheric corrections
@ J. Sanz & J.M. Juan
46
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km) Computing the differential solution, but without using ionospheric corrections: 1.- Building the navigation equations system for differential positioning, but without using the ionospheric corrections: cat D_GARR_MATA.obs | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4,$5-$9-$10,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1}'> D_GARR_MATA.mod
2.- Computing the user solution for differential positioning: Kinematic: Static: gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
cp kalman.nml_wn kalman.nml cat D_GARR_MATA.mod | kalman > GARR_MATA.posK cp kalman.nml_ct kalman.nml cat D_GARR_MATA.mod | kalman > GARR_MATA.posS A.2.3.2. Differential positioning. No ionospheric corrections
@ J. Sanz & J.M. Juan
47
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km)
Question: • Do the results confirm the expected effect of neglecting the ionospheric corrections for this baseline (using code measurements ) at the user level?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.3.2. Differential positioning. No ionospheric corrections
@ J. Sanz & J.M. Juan
48
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km)
Question: • Do the results confirm the expected effect of neglecting the ionospheric corrections for this baseline (using code measurements ) at the user level?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.3.2. Differential positioning. No ionospheric corrections
@ J. Sanz & J.M. Juan
49
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km) Analyze the effect of the differential Troposphere on the differential positioning of MATA relative to GARR station: Follow the next steps: 1. Using file D_GARR_MATA.obs plot the differential trpospheric correction (from nominal model) between EBRE and CREU. 2. Repeat the previous process, but without applying the tropospheric correction. Compare the results.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.3.2. Differential positioning. No tropospheric corrections
@ J. Sanz & J.M. Juan
50
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km) Plotting the nominal differential tropospheric correction: graph.py -f D_GARR_MATA.obs -x4 -y'10' --yn -8 --yx 8 -t "GARR_MATA: 51km: Nominal diff Tropo"
Question: Justify the pattern seen in the nominal tropospheric corrections. Compare the plot with that of the 280km baseline (slide #31). Do the results perform as expected?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.3.2. Differential positioning. No tropospheric corrections
@ J. Sanz & J.M. Juan
51
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km) Computing the differential solution, but without using tropospheric corrections: 1.- Building the navigation equations system for differential positioning, but without using the tropospheric corrections: cat D_GARR_MATA.obs | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4,$5-$9-$11,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1}'> D_GARR_MATA.mod
2.- Computing the user solution for differential positioning: Kinematic: Static: gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
cp kalman.nml_wn kalman.nml cat D_GARR_MATA.mod | kalman > GARR_MATA.posK cp kalman.nml_ct kalman.nml cat D_GARR_MATA.mod | kalman > GARR_MATA.posS A.2.3.2. Differential positioning. No tropospheric corrections
@ J. Sanz & J.M. Juan
52
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km)
Question: • Do the results confirm the expected effect of neglecting the tropospheric corrections for this baseline (using code measurements ) at the user level?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.3.2. Differential positioning. No tropospheric corrections
@ J. Sanz & J.M. Juan
53
A.2. Differential positioning of GARR_MATA receivers (Short baseline: 51 km)
Question: • Discuss the error found at the user level for the 50 Km of baseline. • Is the error level similar to the error seen with the 280km of baseline (slide 34#)? • Should the tropospheric corrections still be applied for these baselines?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.3.2. Differential positioning. No tropospheric corrections
@ J. Sanz & J.M. Juan
54
OVERVIEW Introduction: gLAB processing in command line Session A: Atmospheric effects • A1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • A2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km)
¾ Session B: Orbit error effects • B1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • B2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km) • B3 Range domain orbit error.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
55
Session B Differential positioning Orbit errors
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
56
B. Orbit error effect on Differential positioning.
The target of this exercise is to asses the satellite orbit error on absolute and differential positioning. This will be done by modifying the broadcast orbit parameters to generate an Along-track orbit error of about 2000m and, positioning two receivers with these corrupted orbits. The user positioning error using the original and the corrupted orbits will be compared for absolute and differential positioning, with the receivers and baselines used in the previous session.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B. Differential positioning. Orbit error
@ J. Sanz & J.M. Juan
57
Ephemeris Errors and Geographic decorrelation Position from broadcast ephemeris
Satellite location error
H
True position
ε
ε
Differential range error due to satellite obit error
ρuser
Uuser
GU
ε
ρuser
ρ ref
U ref
Uuser
GU
b sin I
U
ε T uˆ
ε T I ρˆ ρˆ T
Uref
ε
Uuser
Reference Station
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
with a baseline b
GU
B. Differential positioning. Orbit error
Uref
ε T sin I uˆ
b
U
b
Where: b = b bˆ
U
is the baseline vector
A conservative bound: User
ρref
GU
20km
b
U
H
20 1 H H 20000 1000
@ J. Sanz & J.M. Juan
58
B. Orbit error effect. Injecting an error to broadcast orbits: Along-track Error (PRN17) The following ephemeris block of PRN17 is modified In order to simulate an Along-track error of about 2000m. The corrupted file is renamed as: brdc0770.10nERR 17 10 3 18 20 0 0.0 1.379540190101E-04 2.842170943040E-12 0.000000000000E+00 7.800000000000E+01-5.059375000000E+01 4.506973447820E-09-2.983492318682E+00 -9.257976353169E-05 5.277505260892E-03 8.186325430870E-06 5.153578153610E+03 4.176000000000E+05-5.401670932770E-08-4.040348681654E-01-7.636845111847E-08 9.603630515702E-01 2.215312500000E+02-2.547856603060E+00-7.964974630307E-09 -3.771585673111E-10 1.000000000000E+00 1.575000000000E+03 0.000000000000E+00 2.000000000000E+00 0.000000000000E+00-1.024454832077E-08 7.800000000000E+01 4.104180000000E+05 4.000000000000E+00
diff brdc0770.10n brdc0770.10nERR- -------------------------------------------------< -2.579763531685E-06 5.277505260892E-03 8.186325430870E-06 5.153578153610E+03 > -9.257976353169E-05 5.277505260892E-03 8.186325430870E-06 5.153578153610E+03 ---------------------------------------------------------------------------------
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B. Differential positioning. Orbit error
@ J. Sanz & J.M. Juan
59
gAGE/UPC
research group of Astronomy and Geomatics
gAGE
By Miguel Juan Zornoza
ε
• Errors over the hyperboloid (i.e. U B U A ctt ) will not produce differential range errors. • The highest error is given by the vector uˆ , orthogonal to the hyperboloid and over the plain ˆ containing the baseline vector b and the LoS vector ρˆ .
uˆ
Note: Being the baseline b much smaller than the distance to the satellite, we can assume that the LoS vectors from A and B receives are essentially identical to U. That is, U B # U A # U
( U B U A ) / 2 : hyperboloid semiaxis
a
b / 2 : focal length where a
1 b cos I 2
Note: in this 3D problem
u
Note: u
b sin I
1
U
GH
Master of Science in GNSS
wI b sin I GH wH
Note: ε A ρ G GH
U GI
I ρˆ ρˆ bˆ T
sin I uˆ
Note: being uˆ a vector orthogonal to the LoS ρˆ , thence, H
Thence:
2G a
wa wI GH 2 wI wH
wa GH 2 wH
bˆ ρˆ T ρˆ - ρˆ ρˆ T bˆ I bˆ ρˆ ρˆ T bˆ
GH { H
GU { G ( U B U A )
I is NOT the elevation of ray.
Differential range error GU produced by an orbit error H parallel to vector uˆ
Let
ρˆ u bˆ u ρˆ
GU
b sin I
U
ε T uˆ
ε T I ρˆ ρˆ T
ε T sin I uˆ b
U
Where:
ε T uˆ
b
U
b = b bˆ
is the baseline J. Sanz Subirana, JM. Juan Zornoza, M. Hernández-Pajares,
vector
OVERVIEW Introduction: gLAB processing in command line Session A: Atmospheric effects • A1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • A2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km)
¾ Session B: Orbit error effects • B1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • B2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km) • B3 Range domain orbit error.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
61
B1. Orbit error: Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) Repeat the computation of the absolute positioning of receivers EBRE and CREU, but using the corrupted ephemeris file brdc0770.10nERR.
Model Components computation • The script "ObsFile1.scr" generates a data file “STA.obs” with the following content 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [sta sat DoY sec P1 L1 P2 L2 Rho Trop Ion Elev Azim Prefit]
• Run this script for EBRE and CREU receivers. Rename as STA.obsERR the output files ObsFile1.scr EBRE0770.10o brdc0770.10nERR mv EBRE.obs EBRE.obsERR ObsFile1.scr CREU0770.10o brdc0770.10nERR mv EBRE.obs EBRE.obsERR
• Generate the navigation equations system for absolute positioning for each receiver and compute the user solution (see the next two slides).
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.1.1. Absolute positioning. Orbit error
@ J. Sanz & J.M. Juan
62
B1. Orbit error: Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) 1.- Building the navigation equations system for absolute positioning: cat EBRE.obsERR | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4, $14 ,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1 }'> EBRE.modERR
2.- Computing the user solution for absolute positioning: cp kalman.nml_wn kalman.nml
cat EBRE.modERR | kalman > EBRE.posERR
3.- Plotting the results: graph.py
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-f EBRE.posERR -x1 -y2 -s.- -l "North error" -f EBRE.posERR -x1 -y3 -s.- -l "East error" -f EBRE.posERR -x1 -y4 -s.- -l "UP error" --xl "time (s)" --yl "error (m)" --yn -300 --yx 300 -t "EBRE: SPP: 2000m Along-Track orbit error"
B.1.1. Absolute positioning. Orbit error
@ J. Sanz & J.M. Juan
63
B1. Orbit error: Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) 1.- Building the navigation equations system for absolute positioning: cat CREU.obsERR | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4, $14 ,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1 }'> CREU.modERR
2.- Computing the user solution for absolute positioning: cp kalman.nml_wn kalman.nml
cat CREU.modERR | kalman > CREU.posERR
3.- Plotting the results: graph.py
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-f CREU.posERR -x1 -y2 -s.- -l "North error" -f CREU.posERR -x1 -y3 -s.- -l "East error" -f CREU.posERR -x1 -y4 -s.- -l "UP error" --xl "time (s)" --yl "error (m)" --yn -300 --yx 300 -t "CREU: SPP: 2000m Along-Track orbit error"
B.1.1. Absolute positioning. Orbit error
@ J. Sanz & J.M. Juan
64
B1. Orbit error: Differential positioning of EBRE-CREU receivers (Long baseline: 288 km)
Question: • Is the impact on user positioning error similar for both receivers? • From these plots, what is the expected level of error in differential positioning?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.1.1. Absolute positioning. Orbit error
@ J. Sanz & J.M. Juan
65
B1. Orbit error: Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) Analyse the effect of the 2000m orbit error on the differential positioning of CREU receiver relative to EBRE, with 280km of baseline.
Using the files EBRE.obsERR and CREU.obsERR, follow next steps: 1. Compute the single differences of measurements and model components. 2. Build the navigation equations system for the differential positioning of CREU receiver (user) relative to EBRE (reference station). 3. Compute the user solution in kinematic mode. 4. Plot the results and discuss the positioning error found.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.1.2. Differential positioning. Orbit error
@ J. Sanz & J.M. Juan
66
B1. Orbit error: Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) 1.- Computing the single differences of measurements and model components. Dobs.scr EBRE.obsERR CREU.obsERR mv D_EBRE_CREU.obs D_EBRE_CREU.obsERR
2.- Building the navigation equations system for differential positioning: cat D_EBRE_CREU.obsERR | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4,$5-$9-$10-$11,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1}'>D_EBRE_CREU.modERR
3.- Computing the user solution for differential positioning: Kinematic:
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
cp kalman.nml_wn kalman.nml cat D_EBRE_CREU.modERR| kalman > EBRE_CREU.posKERR
B.1.2. Differential positioning. Orbit error
@ J. Sanz & J.M. Juan
67
B1. Orbit error: Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) 4.- Plotting results:
graph.py -f D_EBRE_CREU.modERR -x1 -y2 -s. -l "North error" -f D_EBRE_CREU.modERR -x1 -y3 -s. -l "East error" -f D_EBRE_CREU.modERR -x1 -y4 -s. -l "UP error" --xl "time (s)" --yl "error (m)" --yn -15 --yx 15 -t "EBRE-CREU 280km: SPP: 2000m Along-Track orbit error"
Question: • Assuming an orbit error of 2000m (see slide #87), compute a threshold for the differential error.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.1.2. Differential positioning. Orbit error
@ J. Sanz & J.M. Juan
68
OVERVIEW Introduction: gLAB processing in command line Session A: Atmospheric effects • A1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • A2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km)
¾ Session B: Orbit error effects • B1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • B2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km) • B3 Range domain orbit error.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
69
B2. Orbit error: Differential positioning of GARR-MATA receivers (Short baseline: 51 km) Repeat the computation of the absolute positioning of receivers GARR and MATA, but using the corrupted ephemeris file brdc0770.10nERR.
Model Components computation • The script "ObsFile1.scr" generates a data file “STA.obs” with the following content 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [sta sat DoY sec P1 L1 P2 L2 Rho Trop Ion Elev Azim Prefit]
• Run this script for GARR and MATA receivers. Rename as STA.obsERR the output files ObsFile1.scr GARR0770.10o brdc0770.10nERR mv GARR.obs GARR.obsERR ObsFile1.scr MATA0770.10o brdc0770.10nERR mv MATA.obs MATA.obsERR
• Generate the navigation equations system for absolute positioning for each receiver and compute the user solution (see next two slides).
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.2.1. Absolute positioning. Orbit error
@ J. Sanz & J.M. Juan
70
B2. Orbit error: Differential positioning of GARR-MATA receivers (Short baseline: 51 km) 1.- Building the navigation equations system for absolute positioning: cat GARR.obsERR | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4, $14 ,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1 }'> GARR.modERR
2.- Computing the user solution for absolute positioning: cp kalman.nml_wn kalman.nml
cat GARR.modERR | kalman > GARR.posERR
3.- Plotting the results: graph.py
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-f GARR.posERR -x1 -y2 -s.- -l "North error" -f GARR.posERR -x1 -y3 -s.- -l "East error" -f GARR.posERR -x1 -y4 -s.- -l "UP error" --xl "time (s)" --yl "error (m)" --yn -300 --yx 300 -t "GARR: SPP: 2000m Along-Track orbit error"
B.2.1. Absolute positioning. Orbit error
@ J. Sanz & J.M. Juan
71
B2. Orbit error: Differential positioning of GARR-MATA receivers (Short baseline: 51 km) 1.- Building the navigation equations system for absolute positioning: cat MATA.obsERR | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4, $14 ,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1 }'> MATA.modERR
2.- Computing the user solution for absolute positioning: cp kalman.nml_wn kalman.nml
cat MATA.modERR | kalman > MATA.posERR
3.- Plotting the results: graph.py
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-f MATA.posERR -x1 -y2 -s.- -l "North error" -f MATA.posERR -x1 -y3 -s.- -l "East error" -f MATA.posERR -x1 -y4 -s.- -l "UP error" --xl "time (s)" --yl "error (m)" --yn -300 --yx 300 -t "MATA: SPP: 2000m Along-Track orbit error"
B.2.1. Absolute positioning. Orbit error
@ J. Sanz & J.M. Juan
72
B2. Orbit error: Differential positioning of GARR-MATA receivers (Short baseline: 51 km)
Question: • Is the impact on user positioning error similar for both receivers? • From these plots, what is the expected level of error in differential positioning?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.2.1. Absolute positioning. Orbit error
@ J. Sanz & J.M. Juan
73
B2. Orbit error: Differential positioning of GARR-MATA receivers (Short baseline: 51 km) Analyse the effect of the 2000m orbit error on the differential positioning of MATA receiver relative to GARR, with 51km of baseline.
Using the files GARR.obsERR and MATA.obsERR, follow the next steps: 1. Compute the single differences of measurements and model components. 2. Build the navigation equations system for the differential positioning of MATA receiver (user) relative to GARR (reference station). 3. Compute the user solution in kinematic mode. 4. Plot the results and discuss the positioning error found. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.2.2. Differential positioning. Orbit error
@ J. Sanz & J.M. Juan
74
B2. Orbit error: Differential positioning of GARR-MATA receivers (Short baseline: 51 km) 1. Computing the single differences of measurements and model components. Dobs.scr GARR.obsERR MATA.obsERR
2.- Building the navigation equations system for differential positioning: cat D_GARR_MATA.obsERR | gawk 'BEGIN{g2r=atan2(1,1)/45}{e=$12*g2r;a=$13*g2r; printf "%8.2f %8.4f %8.4f %8.4f %8.4f %1i \n", $4,$5-$9-$10-$11,-cos(e)*sin(a),-cos(e)*cos(a),-sin(e),1}'>D_GARR_MATA.modERR
3.- Computing the user solution for differential positioning: Kinematic:
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
cp kalman.nml_wn kalman.nml cat D_GARR_MATA.modERR| kalman > GARR_MATA.posKERR
B.2.2. Differential positioning. Orbit error
@ J. Sanz & J.M. Juan
75
B2. Orbit error: Differential positioning of GARR-MATA receivers (Short baseline: 51 km) 4.- Plotting results:
graph.py -f D_GARR_MATA.modERR -x1 -y2 -s. -l "North error" -f D_GARR_MATA.modERR -x1 -y3 -s. -l "East error" -f D_GARR_MATA.modERR -x1 -y4 -s. -l "UP error" --xl "time (s)" --yl "error (m)" --yn -8 --yx 8 -t "GARR_MATA 51km: SPP: 2000m Along-Track orbit error"
Question: • Assuming an orbit error of 2000m (see slide #87), compute a threshold for the differential error.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.2.2. Differential positioning. Orbit error
@ J. Sanz & J.M. Juan
76
OVERVIEW Introduction: gLAB processing in command line Session A: Atmospheric effects • A1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • A2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km)
¾ Session B: Orbit error effects • B1 Differential positioning of EBRE-CREU receivers (Long baseline: 288 km) • B2 Differential positioning of GARR-MATA receivers (Short baseline: 51 km) • B3 Range domain orbit error.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
77
B3. Orbit error: Differential positioning Range Domain Orbit Error Analyze the orbit error of PRN17 in the Range Domain.
The following procedure is proposed: Using the files brdc0770.10n and brdc0770.10nERR, follow the next steps: 1. Compute the absolute orbit for satellite PNR17 error by comparing the corrupted orbits with the original ones. 2. Compute the range error for the receivers EBRE and CREU 3. Compute the differential range error between EBRE and CREU 4. Compute the predicted range error between EBRE and CREU and compare with the present one.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3. Differential positioning. Range Domain Orbit error
@ J. Sanz & J.M. Juan
78
B3. Orbit error: Differential positioning Range Domain Orbit Error B.3.1.- Absolute error computation for satellite PRN17: Compute the discrepance between the satellite coordinates predicted from files brdc0770.10n and brdc0770.10nERR gLAB_linux -input:nav brdc0770.10n -input:nav brdc0770.10nERR -pre:dec 30 | grep SATDIFF > dif.sel
Plot the results for satellite PRN17: graph.py -f dif.sel -x4 -y11 -so -c '($6==17)' -f dif.sel -x4 -y12 -s. -c '($6==17)' -f dif.sel -x4 -y13 -s. -c '($6==17)' --xn 55000 --xl "GPS seconds of day" --yl
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.1. Absolute Orbit error
--cl y -l "Rad" --cl r -l "Alon" --cl g -l "Cross" "metres" -t "PRN17: Orbit error"
@ J. Sanz & J.M. Juan
79
B3. Orbit error: Differential positioning Range Domain Orbit Error
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.1. Absolute Orbit error
@ J. Sanz & J.M. Juan
80
B3. Orbit error: Differential positioning Range Domain Orbit Error B.3.2.- Absolute Range error computation for satellite PRN17 from EBRE: 1. Using the original orbits brdc0770.10n, compute the geometric range between EBRE and satellite PRN17 (i.e rang.ebre file). 1.1- Compute the satellite coordinates with the original orbits and generate a file with the following content:
1 2 3 4 [time X Y Z]
gLAB_linux -input:nav brdc0770.10n -pre:dec 30 | grep SATPVT | gawk '{if ($6==17) print $4,$7,$8,$9}' > xyz.brdc
1.2.- Using the coordinates EBRE=[4833520.1197 41537.2015 4147461.6263], compute the geometric range between EBRE and satellite PRN17: cat xyz.brdc | gawk 'BEGIN{x0=4833520.1197;y0=41537.2015;z0=4147461.6263} {dx=$2-x0;dy=$3-y0;dz=$4-z0;rho=sqrt(dx**2+dy**2+dz**2); printf "%s %16.6f \n", $1,rho}' > rang.ebre
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.2. Absolute Range Orbit error: EBRE
@ J. Sanz & J.M. Juan
81
B3. Orbit error: Differential positioning Range Domain Orbit Error 2. Repeat the previous computation using the corrupted orbits file brdc0770.10nERR (i.e. generate the rang.ebreERR file). 2.1- Compute the satellite coordinates with the corrupted orbits and generate a file with the following content:
1 2 3 4 [time X Y Z]
gLAB_linux -input:nav brdc0770.10nERR -pre:dec 30 | grep SATPVT | gawk '{if ($6==17) print $4,$7,$8,$9}' > xyz.brdcERR
2.2.- Using the coordinates EBRE=[4833520.1197 41537.2015 4147461.6263], compute the geometric range between EBRE and satellite PRN17: cat xyz.brdcERR|gawk 'BEGIN{x0=4833520.1197;y0=41537.2015;z0=4147461.6263} {dx=$2-x0;dy=$3-y0;dz=$4-z0;rho=sqrt(dx**2+dy**2+dz**2); printf "%s %16.6f \n", $1,rho}' > rang.ebreERR
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.2. Absolute Range Orbit error: EBRE
@ J. Sanz & J.M. Juan
82
B3. Orbit error: Differential positioning Range Domain Orbit Error 3. Calculate the discrepancy between the geometric ranges computed using the original and the corrupted orbits: cat rang.ebre rang.ebreERR | gawk '{i=$1*1;if (length(r[i])==0) {r[i]=$2}else{print i,$2-r[i]}}' > drang.ebre
4.- Plot the results graph.py -f drang.ebre -x1 -y2 -l"EBRE" --xl "time (s)" --yl "error (m)" --yx 600 -t"PRN17: 2000m AT orbit error PRN17: EBRE: Range Error"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.2. Absolute Range Orbit error: EBRE
@ J. Sanz & J.M. Juan
83
B3. Orbit error: Differential positioning Range Domain Orbit Error
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.2. Absolute Range Orbit error: EBRE
@ J. Sanz & J.M. Juan
84
B3. Orbit error: Differential positioning Range Domain Orbit Error
Absolute Range error computation for satellite PRN17 from CREU: a) Repeat the previous computations of section B.3.2 for the receiver CREU. b) Compare in the same plot the results for EBRE and CREU
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.2. Absolute Range Orbit error: CREU
@ J. Sanz & J.M. Juan
85
B3. Orbit error: Differential positioning Range Domain Orbit Error
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.2. Absolute Range Orbit error: EBRE
@ J. Sanz & J.M. Juan
86
B3. Orbit error: Differential positioning Range Domain Orbit Error
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.2. Absolute Range Orbit error: EBRE and CREU
@ J. Sanz & J.M. Juan
87
B3. Orbit error: Differential positioning Range Domain Orbit Error B.3.3 Differential range Error computation Using the previous files drang.ebre and drang.creu, compute the differential range orbit error of PRN17 between the receivers EBRE and CREU cat drang.ebre drang.creu | gawk '{i=$1*1;if (length(r[i])==0) {r[i]=$2}else{printf "%s %16.6f \n", i,$2-r[i]}}' > ddrang.creu_ebre
Plot the results graph.py -f ddrang.creu_ebre -x1 -y2 -s. --cl r --yn -10 --yx 35 --xl "time (s)" --yl "error (m)" -t"PRN17: 2000m AT orbit error PRN17: EBRE-CREU: Diff Range Error"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.3. Differential Range Orbit error: EBRE-CREU
@ J. Sanz & J.M. Juan
88
B3. Orbit error: Differential positioning Range Domain Orbit Error
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.3. Differential Range Orbit error: EBRE-CREU
@ J. Sanz & J.M. Juan
89
B3. Orbit error: Differential positioning Range Domain Orbit Error
Results comparison
gAGE/UPC
B.3.3. Differential Range Orbit error: EBRE-CREU
Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
90
B3. Orbit error: Differential positioning Range Domain Orbit Error B.3.4. Prediction of the differential range orbit error Verify the next expression, which relates the orbit error H with the differential range error GU: ε ε
GU
uˆ
U
εT u
b
ε T ªbˆ - ρˆ ρˆ T bˆ º ¬ ¼ U
Baseline vector
b rA
b
b
b
rB
A: EBRE
B: CREU
Receiver (ref station)
Receiver (user)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
rB - rA
rA
[4833520.1197, 41537.2015, 4147461.6263] [4833
rB
[4715420.3054, 273177.8809, 4271946.7957] [4715
B.3.4. Differential Range Orbit error: Prediction
@ J. Sanz & J.M. Juan
91
B3. Orbit error: Differential positioning Range Domain Orbit Error The following procedure can be applied: 1.- Compute the orbit error H vector from the original and corrupted orbits: gLAB_linux -input:nav brdc0770.10n -pre:dec 30 |grep SATPVT |gawk '{if ($6==17) print $4,$7,$8,$9}' > xyz.brdc
gLAB_linux -input:nav brdc0770.10nERR -pre:dec 30 |grep SATPVT |gawk '{if ($6==17) print $4,$7,$8,$9}'> xyz.brdcERR
2.- From previous results, generate a file err.dat with the orbit error (H) vector and the Line-Of-Sight (U) from CREU receiver (with coordinates [4715420.3054, 273177.8809, 4271946.7957]), according to format: err.dat=[sec Hx Hy Hz Ux Uy Uz] cat xyz.brdc xyz.brdcERR|awk 'BEGIN{xb=4715420.3054;yb=273177.8809;zb= 4271946.7957} {i=$1*1;dx=$2-xb;dy=$3-yb;dz=$4-zb;rho=sqrt(dx**2+dy**2+dz**2); if (length(x[i])==0){x[i]=$2;y[i]=$3;z[i]=$4} else{printf "%6i %16.6f %16.6f %16.6f %16.6f %16.6f %16.6f %16.6f \n", i,$2-x[i],$3-y[i],$4-z[i],dx,dy,dz,rho}}' |sort -n -k +1> err.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.4. Differential Range Orbit error: Prediction
@ J. Sanz & J.M. Juan
92
B3. Orbit error: Differential positioning Range Domain Orbit Error 3.- Using the expression:
GU
b
U
εT u
b
ε T ªbˆ - ρˆ ρˆ T bˆ º ¬ ¼ U
Baseline vector
b
rB - rA
and the receivers’ coordinates: EBRE: rA
[4833520.1197, 41537.2015, 4147461.6263] [4833
CREU: rB
[4715420.3054, 273177.8809, 4271946.7957] [4715
Compute the predicted differential orbit error dU for the receiver CREU relative to EBRE station. cat err.dat|gawk 'BEGIN{xa=4833520.1197;ya=41537.2015;za= 4147461.6263; xb=4715420.3054;yb=273177.8809;zb= 4271946.7957; bx=xb-xa; by=yb-ya; bz=zb-za; b=sqrt(bx*bx+by*by+bz*cz)} {rtc=($5*bx+$6*by+$7*bz)/$8/b;ux=bx/cb-$5/$8*rtc; uy=by/b-$6/$8*rtc;uz=bz/b-$7/$8*rtc;dr=-b/$8*($2*ux+$3*uy+$4*uz); printf "%6i %16.6f \n", $1,dr}' > rang.err
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.4. Differential Range Orbit error: Prediction
@ J. Sanz & J.M. Juan
93
B4. Orbit error: Differential positioning Range Domain Orbit Error Plot the results and compare with the result found in the previous exercise B.3.3 (i.e. with those of file ddrang.creu_ebre): graph.py -f ddrang.creu_ebre -x1 -y2 -so --cl r -l "Observed" -f rang.err -x1 -y2 -l "Predicted" --xl "time (s)" --yl "error (m)" -t"PRN17: 2000m AT orbit error PRN17: EBRE-CREU: Diff Range Error" --yn -10 --yx 35
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.4. Differential Range Orbit error: Prediction
@ J. Sanz & J.M. Juan
94
B3. Orbit error: Differential positioning Range Domain Orbit Error
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.4. Differential Range Orbit error: Prediction
@ J. Sanz & J.M. Juan
95
Thanks for your attention
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
Acknowledgements • To Institut Cartografic de Catalunya for the data files of receivers EBRE, CREU, GARR and MATA. • To Adrià Rovira-Garcia for his contribution to the editing of this material and gLAB updating and integrating this learning material into the GLUE. The ESA/UPC GNSS-Lab Tool suite (gLAB) has been developed under the ESA Education Office contract N. P1081434.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
96
Tutorial 4 Carrier ambiguity fixing Contact:
[email protected] Web site: http://www.gage.upc.edu Slides associated to gLAB version 2.0.0
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
1
Aim of this tutorial This tutorial is devoted to analyse and assess the ambiguity fixing and the differential positioning with carrier phase measurements (L1, L2). Two receivers UPC1 and UPC2 with a baseline of about 40 metres are considered. This study includes ambiguity fixing using the “cascade method” (i.e., fixing one at a time) and with the LAMBDA method. The effect of synchronization errors between the reference station and the user is and its effect on the navigation and ambiguity fixing is also analysed All software tools (including gLAB) and associated files for the laboratory session are included in the CD-ROM or USB stick associated with this tutorial.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
3
OVERVIEW Introduction: gLAB processing in command line.
Preliminary computations: Data files. Session A: Fixing DD ambiguities one at a time: UPC1-UPC2. Session B: Assessing the fixed ambiguities in navigation: Differential positioning of UPC1-UPC2 receivers.
Session C: Fixing DD ambiguities with LAMBDA method. Note: UPC1-UPC2 receivers baseline: 37.95 metres. gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
4
OVERVIEW ¾ Introduction: gLAB processing in command line.
Preliminary computations: Data files. Session A: Fixing DD ambiguities one at a time: UPC1-UPC2. Session B: Assessing the fixed ambiguities in navigation: Differential positioning of UPC1-UPC2 receivers.
Session C: Fixing DD ambiguities with LAMBDA method. Note: UPC1-UPC2 receivers baseline: 37.95 metres. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
5
gLAB processing in command line A “notepad” with the command line sentence is provided to facilitate the sentence writing: just “copy” and “ paste” from notepad to the working terminal.
Console to execute “command line” sentences
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
6
gLAB processing in command line The different messages provided by gLAB and its content can be found in the [OUTPUT] section. By placing the mouse on a given message name, a tooltip appears describing the different fields.
In console mode: execute
gLAB_linux -messages
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Backup
@ J. Sanz & J.M. Juan
7
OVERVIEW Introduction: gLAB processing in command line. ¾ Preliminary computations: Data files.
Session A: Fixing DD ambiguities one at a time: UPC1-UPC2. Session B: Assessing the fixed ambiguities in navigation: Differential positioning of UPC1-UPC2 receivers.
Session C: Fixing DD ambiguities with LAMBDA method. Note: UPC1-UPC2 receivers baseline: 37.95 metres. gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
8
Previous Preliminary Computations
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
9
P. Preliminary computations This section is devoted to prepare the data files to be used in the exercises. These data files will include the code and carrier measurements and the model components: geometric range, nominal troposphere and ionosphere corrections, satellite elevation and azimuth from each receiver… This data processing will be done with gLAB for each individual receiver. This preliminary processing will provide the baseline data files to perform computations easily using basic tools (such as awk for data files handling, to compute Double Differences of measurements) or using octave (MATLAB) scripts for the LAMBDA method implementation. Detailed guidelines for self learning students are provided in this tutorial and in its associated notepad text file.
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
10
P. Preliminary computations P1. Model Components computation • The script "ObsFile.scr" generates a data file with the following content 1 2 3 4 5 6 7 8 9 10 11 12 13 [sta sat DoY sec P1 L1 P2 L2 Rho Trop Ion elev azim]
• Run this script for all receivers: ObsFile.scr UPC10770.11o brdc0770.11n ObsFile.scr UPC20770.11o brdc0770.11n
• Merge all files into a single file: cat ????.obs > ObsFile.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
P1. Model components computation
@ J. Sanz & J.M. Juan
11
P. Preliminary computations Selecting measurements: Time interval [18000:19900] • To simplify computations, a time interval with always the same set of satellites in view and without cycle-slips is selected. • Moreover an elevation mask of 10 degrees will be applied. If the satellites change or cycle-slips appear during the data processing interval, care with the associated parameters handling must be taken in the navigation filter. Set up new parameters when new satellites appear and treat the ambiguities as constant between cycle-slips and white noise when a cycle-slip happens.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
P1. Model components computation
@ J. Sanz & J.M. Juan
12
P. Preliminary computations Selecting measurements: Time interval [18000:19900] • Select the satellites in the time interval [18000:19900] with elevation over 10º cat ObsFile.dat|gawk '{if ($4>=18000 && $410) print $0}' > obs.dat
• Reference satellite (over the time interval [18000:19900]) Confirm that the satellite PRN06 is the satellite with the highest elevation (this satellite will be used as the reference satellite)
obs.dat Î gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
1 2 3 4 5 6 7 8 9 10 11 12 13 [sta sat DoY sec P1 L1 P2 L2 Rho Trop Ion elev azim]
P1. Model components computation
@ J. Sanz & J.M. Juan
13
P. Preliminary computations P2. Double differences between receivers and satellites computation The script "DDobs.scr" computes the double differences between receivers and satellites from file obs.dat. 1 2 3 4 5 6 7 8 9 10 11 12 13 [sta sat DoY sec P1 L1 P2 L2 rho Trop Ion elev azim]
For instance, the following sentence: DDobs.scr obs.dat UPC1 UPC2 06 03 generates the file ------------------- DD_{sta1}_{sta2}_{sat1}_{sat2}.dat ---------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [sta1 sta2 sat1 sat2 DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2] -----------------------------------------------------------------------------------Where the elevation (EL) and azimuth (AZ) are taken from station #2. and where (EL1, AZ1) are for satellite #1 and (EL1, AZ1) are for satellite #2.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
P2. Double Differences computation
@ J. Sanz & J.M. Juan
14
P. Preliminary computations Compute the double differences between receivers UPC1 (reference) and UPC2 and satellites PRN06 (reference) and [PRN 03, 07,16, 18, 19, 21, 22, 24] DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr
obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat
UPC1 UPC1 UPC1 UPC1 UPC1 UPC1 UPC1 UPC1
UPC2 UPC2 UPC2 UPC2 UPC2 UPC2 UPC2 UPC2
06 06 06 06 06 06 06 06
03 07 16 18 19 21 22 24
Merge the files in a single file and sort by time:
cat DD_UPC1_UPC2_06_??.dat|sort -n -k +6 > DD_UPC1_UPC2_06_ALL.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
P2. Double Differences computation
@ J. Sanz & J.M. Juan
15
OVERVIEW Introduction: gLAB processing in command line.
Preliminary computations: Data files. ¾ Session A: Fixing DD ambiguities one at a time: UPC1-UPC2.
Session B: Assessing the fixed ambiguities in navigation: Differential positioning of UPC1-UPC2 receivers.
Session C: Fixing DD ambiguities with LAMBDA method. Note: UPC1-UPC2 receivers baseline: 37.95 metres. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
16
A. Fixing DD ambiguities one at a time: UPC1-UPC2 This exercise is devoted to study the ambiguity fixing using the cascade method, that is, fixing the ambiguities one at a time. In the first part, we are going to assess this approach for a single frequency receiver, trying to fix DDN1 and DDN2 independently. In the second part, we are going to assess this approach for dual frequency receivers, fixing first the wide-lane ambiguity DDNw and afterwards DDN1 and DDN2. The results (i.e. the DDN1 and DDN2 ambiguities) will be assessed in the next “Session B” by computing the navigation solution using the carrier phases repaired with the fixed DDN1 and DDN2 ambig. Finally, in Session C, the LAMBDA method will be applied for comparison. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
17
Resolving ambiguities one at a Time: single Freq.
gAGE
research group of Astronomy and Geomatics
A simple trial would be (for instance using L1 and P1):
P1 jk
U jk Q Pjk
L1jk
U jk O1 N1jk Q Ljk
1
o L1jk P1 jk
1
O1 20 cm V P | 1m
1
1
jk
V L | 1cm
V Nˆ
jk 1
Fail
Good
N 1 N 1/ 2
N N 1/ 2
gAGE/UPC
N 1
Similar results with L2, P2 measurements
ª L1jk P1 jk º « » O1 ¬ ¼ roundoff
O1 N1jk Q Pjk o Nˆ 1jk
1 jk 1
O1
VP | 5 1
jk
To much error (5 wavelengths)! Note that, assuming a Gaussian V Nˆ jk 1/ 2 distribution of errors, 1 guarantee only the 68% of success As the ambiguity is constant (between cycleslips), we would try to reduce uncertainty by averaging the estimate on time, but we will need 100 epochs to reduce noise up to ½ (but measurement errors are highly correlated on time!)
Master of Science in GNSS
@ J. Sanz & J.M. Juan
18
A1 Trying to fix ambiguities in Single frequency A1.1 Fixing N1 and N2 independently: Estimate graphically values of DDN1 and DDN2 (i.e. try to identify the true ambiguity from the plot). Hint: From file DD_UPC1_UPC2_06_ALL.dat, generate the file DDN1N2.dat with the following content: 1 2 3 4 5 6 [PRN sec DDN1 DDN2
where:
nint(DDN1) nint(DDN2)]
O; DDN2=[DDL2 -DDP2]/O DDN1=[DDL1 -DDP1]/O
Note: “nint” means near-integer gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Be careful: “nint" in awk: nint(x)must be generated as: int(x+0.5*sign(x)) @ J. Sanz & J.M. Juan
19
A1 Trying to fix ambiguities in Single frequency ----------------------------- DD_UPC1_UPC2_06_ALL.dat -----------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [UPC1 UPC2 06 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 ] ------------------------------------------------------------------------------------
a) From file DD_UPC1_UPC2_06_ALL.dat, generate the file DDN1N2.dat with the following content: 1 2 3 4 5 6 [PRN sec DDN1 DDN2
nint(DDN1) nint(DDN2)]
Execute, for instance: gawk 'BEGIN{c=299792458;f0=10.23e+6;l1=c/(154*f0);l2=c/(120*f0)} {A1=($8-$7)/l1; A2=($10-$9)/l2;if (A1!=0){signA1=A1/sqrt(A1*A1)}else{signA1=0}; if (A2!=0) {signA2=A2/sqrt(A2*A2)}else{signA2=0}; print $4,$6,A1,int(A1+0.5*signA1),A2,int(A2+0.5*signA2)}' DD_UPC1_UPC2_06_ALL.dat >
DDN1N2.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A1. DDN1 and DDN2 in single frequency
@ J. Sanz & J.M. Juan
20
A1 Trying to fix ambiguities in Single frequency b) Plot DDN1 and DDN2 for the different satellites and discuss if the ambiguity DDN1 and DDN2 can be fixed: 1 2 3 4 5 6 [PRN sec DDN1 DDN2
nint(DDN1) nint(DDN2)]
b1) DDN1 plot: graph.py -f DDN1N2.dat -x2 -y3 -c '($1==16)' -s. -f DDN1N2.dat -x2 -y4 -c '($1==16)' -sx --cl r --yn -4 --yx 10 --xl "time (s)" --yl "cycles L1" -t "DDN1 ambiguity: PRN16"
b2) DDN2 plot: graph.py -f DDN1N2.dat -x2 -y5 -c '($1==16)' -s. -f DDN1N2.dat -x2 -y6 -c '($1==16)' -sx --cl r --yn -8 --yx 6 --xl "time (s)" --yl "cycles L2" -t "DDN2 ambiguity: PRN16"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A1. DDN1 and DDN2 in single frequency
@ J. Sanz & J.M. Juan
21
A1 Trying to fix ambiguities in Single frequency b1) DDN1 plot: graph.py -f DDN1N2.dat -x2 -y3 -c '($1==16)' -s. -f DDN1N2.dat -x2 -y4 -c '($1==16)' -sx --cl r --yn -4 --yx 10 --xl "time (s)" --yl "cycles L1" -t "DDN1 ambiguity: PRN16"
Questions: 1.- Explain what is the meaning of this plot. 2.- Is it possible to identify the integer ambiguity? 3.- How reliability can be improved?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A1. DDN1 and DDN2 in single frequency
@ J. Sanz & J.M. Juan
22
A1 Trying to fix ambiguities in Single frequency b2) DDN2 plot: graph.py -f DDN1N2.dat -x2 -y5 -c '($1==16)' -s. -f DDN1N2.dat -x2 -y6 -c '($1==16)' -sx --cl r --yn -8 --yx 6 --xl "time (s)" --yl "cycles L2" -t "DDN2 ambiguity: PRN16"
Questions: 1.- Explain what is the meaning of this plot. 2.- Is it possible to identify the integer ambiguity? 3.- How reliability can be improved?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A1. DDN1 and DDN2 in single frequency
@ J. Sanz & J.M. Juan
23
A1 Trying to fix ambiguities in Single frequency ----------------------------- DD_UPC1_UPC2_06_ALL.dat -----------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [UPC1 UPC2 06 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 ] ------------------------------------------------------------------------------------
c) Make plots to analyze the DDP1 and DDP2 code noise. Hint: From file DD_UPC1_UPC2_06_ALL.dat, generate the file P1P2noise.dat with the following content: 1 2 3 4 5 [PRN sec DDP1-DDRho DDP2-DDRho]
Execute, for instance: gawk '{print $4,$6,$7-$11,$9-$11}' DD_UPC1_UPC2_06_ALL.dat > P1P2noise.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A1. DDN1 and DDN2 in single frequency
@ J. Sanz & J.M. Juan
24
A1 Trying to fix ambiguities in Single frequency c1 ) Depict the DDP1 code noise: graph.py -f P1P2noise.dat -x2 -y3 -c '($1==16)' -so --yn -2 --yx 1.5 --xl "time (s)" --yl "metres" -t "DDP1 noise: PRN16"
Questions: Discuss why the ambiguities cannot be fixed by rounding-off the expression DDN1=[DDL1 -DDP1]/O O
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A1. DDN1 and DDN2 in single frequency
@ J. Sanz & J.M. Juan
25
A1 Trying to fix ambiguities in Single frequency c2 ) Depict the DDP2 code noise: graph.py -f P1P2noise.dat -x2 -y4 -c '($1==16)' -so --yn -2 --yx 1.5 --xl "time (s)" --yl "metres" -t "DDP2 noise: PRN16"
Questions: Discuss why the ambiguities cannot be fixed by rounding-off the expression DDN2=[DDL2 –DDP2]/O
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A1. DDN1 and DDN2 in single frequency
@ J. Sanz & J.M. Juan
26
A1 Trying to fix ambiguities in Single frequency ----------------------------- DD_UPC1_UPC2_06_ALL.dat -----------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [UPC1 UPC2 06 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 ] ------------------------------------------------------------------------------------
d) Make plots to analyze the DDL1 and DDL2 carrier noise. Hint: From file DD_UPC1_UPC2_06_ALL.dat, generate the file L1L2noise.dat with the following content: 1 2 3 4 5 [PRN sec DDL1-DDRho DDL2-DDRho]
Execute, for instance: gawk '{print $4,$6,$8-$11,$10-$11}' DD_UPC1_UPC2_06_ALL.dat > L1L2noise.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A1. DDN1 and DDN2 in single frequency
@ J. Sanz & J.M. Juan
27
A1 Trying to fix ambiguities in Single frequency d1) Depict the DDL1 code noise: graph.py -f L1L2noise.dat -x2 -y3 -c '($1==16)' -so --yn 0.38 --yx 0.40 --xl "time (s)" --yl "metres" -t "DDL1 noise: PRN16"
Questions: Discuss the plot. What is the level of noise?
Compare the noise with the wavelength O=19.0cm
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A1. DDN1 and DDN2 in single frequency
@ J. Sanz & J.M. Juan
28
A1 Trying to fix ambiguities in Single frequency d2) Depict the DDL2 code noise: graph.py –f L1L2noise.dat -x2 -y4 -c'($1==16)' -so --yn -0.24 --yx -0.22 --xl "time (s)" --yl "metres" -t "DDL2 noise: PRN16"
Questions: Discuss the plot. What is the level of noise?
Compare the noise with the wavelength O=24.4cm
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A1. DDN1 and DDN2 in single frequency
@ J. Sanz & J.M. Juan
29
Resolving ambiguities one at a Time: Dual Freq.
gAGE
research group of Astronomy and Geomatics
Dual frequency measurements: wide-laning with the Melbourne-Wübbena combination P1 jk P2
jk
U jk Q Pjk 1
U
jk
jk 1
U
jk
jk 2
U
jk
L
L
Q
jk P2
O1 N
jk 1
O2 N
jk 2
Q
jk L1
Q
jk L2
PNjk
f1 P1 jk f 2 P2 jk f1 f 2
LWjk
f1 L1jk f 2 L2jk f1 f 2
U jk Q Pjk U jk OW NWjk Q Ljk
W
L L
jk 2
O1 N
jk 1
O2 N
jk 2
Q
OW NWjk Q Pjk o
V Nˆ |
jk L1 L2
jk W
O1 O2 N1jk O2 NWjk Q Ljk L
gAGE/UPC
O1 19.0 cm O2 24.4 cm O2 O1 5.4 cm V L | 1cm jk 1
Nˆ
Nˆ
Nˆ
jk jk jk 2 of Science 1 in GNSS W Master
2
ª L1jk L2jk O2 Nˆ Wjk º « » O1 O2 ¬ ¼ roundoff
Nˆ 1jk
V Nˆ | jk 1
1 O1 O2
2V jk L1
1.4cm 5 4cm 5.4
c f1 f 2
86.2 cm
V P | V P / 2 | 71cm jk N
1
jk
V L | 6 V L | 6 cm jk 1
ª LWjk PNjk º « » ¬ OW ¼ roundoff
Nˆ Wjk
N
1
OW
jk W
Fixing N1 (after fixing NW) jk 1
N1 N 2
N
p LWjk PNjk
NW
1
OW
VP
jk N
71cm 86 2cm 86.2
0.8
Now, with uncorrelated measurements from 10 epochs will reduce noise up to about ¼.
1/ 4 @ J. Sanz & J.M. Juan
30
A2 Dual Frequency Ambiguity Fixing A2.1 Fixing Wide-lane ambiguity (Nw): Estimate graphically values of DDNw (i.e. try to identify the true ambiguity from the plot). Hint: From file DD_UPC1_UPC2_06_ALL.dat, generate the file DDNw.dat with the following content: 1 2 [PRN sec
3 DDNw
4 nint(DDNw)]
where: DDNw=[DDLW-DDPN]/O OW
Note: LW
E L1 L2 E 1
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
; PN
E P1 P2 E 1
; E
f1 f2
154 ; OW 120
A2. 1 Fixing Wide-lane ambiguity DDNw
c f1 f 2
86.2cm
@ J. Sanz & J.M. Juan
31
A2 Dual Frequency Ambiguity Fixing ----------------------------- DD_UPC1_UPC2_06_ALL.dat -----------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [UPC1 UPC2 06 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 ] ------------------------------------------------------------------------------------
a) From file DD_UPC1_UPC2_06_ALL.dat, generate the file DDNw.dat with the following content: where: DDNw=[DDLW-DDPN]/O OW 1 2 3 4 [PRN sec
DDNw
nint(DDNw)]
Execute, for instance: cat DD_UPC1_UPC2_06_ALL.dat| gawk 'BEGIN{s12=154/120} {mw=(s12*$8-$10)/(s12-1)-(s12*$7+$9)/(s12+1);if(mw!=0){sign=mw/sqrt(mw*mw)} else{sign=0};printf "%02i %i %14.4f %i \n", $4,$6, mw/0.862,int(mw/0.862+0.5*sign)}'>
DDNw.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
32
A2 Dual Frequency Ambiguity Fixing b) Plot DDNw for the different satellites and discuss if the ambiguity DDNw can be fixed: 1 2 3 4 [PRN sec
DDNw
nint(DDNw)]
- Example PRN03 plot: graph.py -f DDNw.dat -x2 -y3 -c '($1==03)' -s. -f DDNw.dat -x2 -y4 -c '($1==03)' -sx --cl r --yn -1 --yx 7 --xl "time (s)" --yl "cycles Lw" -t "DDNw ambiguity: PRN03"
- Example PRN07 plot: graph.py -f DDNw.dat -x2 -y3 -c '($1==07)' -s. -f DDNw.dat -x2 -y4 -c '($1==07)' -sx --cl r --yn -4 --yx 4 --xl "time (s)" --yl "cycles Lw" -t "DDNw ambiguity: PRN07"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
33
A2 Dual Frequency Ambiguity Fixing graph.py -f DDNw.dat -x2 -y3 -c '($1==03)' -s. -f DDNw.dat -x2 -y4 -c '($1==03)' -sx --cl r --yn -1 --yx 7 --xl "time (s)" --yl "cycles Lw" -t "DDNw ambiguity: PRN03"
PRN03 plot:
Î DDNw= 3 ?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
34
A2 Dual Frequency Ambiguity Fixing graph.py -f DDNw.dat -x2 -y3 -c '($1==07)' -s. -f DDNw.dat -x2 -y4 -c '($1==07)' -sx --cl r --yn -4 --yx 4 --xl "time (s)" --yl "cycles Lw" -t "DDNw ambiguity: PRN07"
PRN07 plot:
Î DDNw= 0 ?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
35
A2 Dual Frequency Ambiguity Fixing The remaining plots: graph.py -f DDNw.dat -x2 -y3 -c '($1==16)' -s. -f DDNw.dat -x2 -y4 -c '($1==16)' -sx --cl r --yn -1 --yx 7 --xl "time (s)" --yl "cycles Lw" -t "DDNw ambiguity: PRN16" graph.py -f DDNw.dat -x2 -y3 -c '($1==18)' -s. -f DDNw.dat -x2 -y4 -c '($1==18)' -sx --cl r --yn -7 --yx 1 --xl "time (s)" --yl "cycles Lw" -t "DDNw ambiguity: PRN18" graph.py -f DDNw.dat -x2 -y3 -c '($1==19)' -s. -f DDNw.dat -x2 -y4 -c '($1==19)' -sx --cl r --yn -2 --yx 6 --xl "time (s)" --yl "cycles Lw" -t "DDNw ambiguity: PRN19" graph.py -f DDNw.dat -x2 -y3 -c '($1==21)' -s. -f DDNw.dat -x2 -y4 -c '($1==21)' -sx --cl r --yn 4 --yx 12 --xl "time (s)" --yl "cycles Lw" -t "DDNw ambiguity: PRN21" graph.py -f DDNw.dat -x2 -y3 -c '($1==22)' -s. -f DDNw.dat -x2 -y4 -c '($1==22)' -sx --cl r --yn -4 --yx 4 --xl "time (s)" --yl "cycles Lw" -t "DDNw ambiguity: PRN22"
graph.py -f DDNw.dat -x2 -y3 -c '($1==24)' -s. -f DDNw.dat -x2 -y4 -c '($1==24)' -sx --cl r --yn 0 --yx 8 --xl "time (s)" --yl "cycles Lw" -t "DDNw ambiguity: PRN24"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
36
A2 Dual Frequency Ambiguity Fixing PRN16
PRN18
PRN19
PRN21
PRN22
PRN24
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
37
A2 Dual Frequency Ambiguity Fixing A.2.2 Smoothing the DDNw: Smooth the DDNw with a 300 seconds sliding window, in order to improve the ambiguity fixing. Hint: From file DD_UPC1_UPC2_06_ALL.dat, generate the file DDNws.dat with the content: 1 2 3 [PRN sec DDNw
4 5 6 DDNws nint(DDNw) nint(DDNws)]
Execute, for instance (to smooth the DDNw): cat DDNw.dat|gawk '{dt=300;for (j=0;j1) {val=v[i];mean=m[i]/n[i]; print i,val,mean}}}}' | sort -n -k+1 > DDNws.tmp
Estimate again the ambiguity from the raw DDNw and smoothed DDNws: cat DDNws.tmp | gawk '{sign3=$3/sqrt($3*$3);sign4=$4/sqrt($4*$4); print $1,$2,$3,$4,int($3+0.5*sign3),int($4+0.5*sign4)}' > DDNws.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 2 Fixing Wide-lane ambiguity DDNw after smoothing
@ J. Sanz & J.M. Juan
38
A2 Dual Frequency Ambiguity Fixing b) Plot DDNw and DDNws for the different satellites and discuss if the 1 2 3 4 5 6 ambiguity DDNw can be fixed: [PRN sec DDNw
DDNws nint(DDNw) nint(DDNws)]
- Example: PRN03 plot: graph.py -f DDNws.dat -x2 -y3 -c '($1==03)' -f DDNws.dat -x2 -y5 -c '($1==03)' -f DDNws.dat -x2 -y4 -c '($1==03)' -f DDNws.dat -x2 -y6 -c '($1==03)' --yn 0 --yx 6 --xl "time (s)" --yl
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-s. -sx --cl r -s. --cl g -sx --cl m "cycles Lw" -t "DDNw ambig. PRN03"
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
39
A2 Dual Frequency Ambiguity Fixing graph.py -f DDNws.dat -x2 -y3 -c '($1==03)' -f DDNws.dat -x2 -y5 -c '($1==03)' -f DDNws.dat -x2 -y4 -c '($1==03)' -f DDNws.dat -x2 -y6 -c '($1==03)' --yn 0 --yx 6 --xl "time (s)" --yl
-s. -sx --cl r -s. --cl g -sx --cl m "cycles Lw" -t "DDNw ambig. PRN03"
PRN03 plot:
Î DDNw=3
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
40
A2 Dual Frequency Ambiguity Fixing graph.py -f DDNws.dat -f DDNws.dat -f DDNws.dat -f DDNws.dat --yn -3 --yx
-x2 -y3 -c '($1==07)' -s. -x2 -y5 -c '($1==07)' -sx --cl -x2 -y4 -c '($1==07)' -s. --cl -x2 -y6 -c '($1==07)' -sx --cl 3 --xl "time (s)" --yl "cycles
r g m Lw" -t "DDNw ambig. PRN07"
PRN07 plot:
Î DDNw=0
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
41
A2 Dual Frequency Ambiguity Fixing graph.py -f DDNws.dat -x2 -y3 -c '($1==16)' -f DDNws.dat -x2 -y5 -c '($1==16)' -f DDNws.dat -x2 -y4 -c '($1==16)' -f DDNws.dat -x2 -y6 -c '($1==16)' --yn 0 --yx 6 --xl "time (s)" --yl
-s. -sx --cl r -s. --cl g -sx --cl m "cycles Lw" -t "DDNw ambig. PRN16"
PRN16 plot:
Î DDNw=3
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
42
A2 Dual Frequency Ambiguity Fixing graph.py -f DDNws.dat -f DDNws.dat -f DDNws.dat -f DDNws.dat --yn -6 --yx
-x2 -y3 -c '($1==18)' -s. -x2 -y5 -c '($1==18)' -sx --cl -x2 -y4 -c '($1==18)' -s. --cl -x2 -y6 -c '($1==18)' -sx --cl 0 --xl "time (s)" --yl "cycles
r g m Lw" -t "DDNw ambig. PRN18"
PRN18 plot:
Î DDNw=-3
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
43
A2 Dual Frequency Ambiguity Fixing graph.py -f DDNws.dat -f DDNws.dat -f DDNws.dat -f DDNws.dat --yn -1 --yx
-x2 -y3 -c '($1==19)' -s. -x2 -y5 -c '($1==19)' -sx --cl -x2 -y4 -c '($1==19)' -s. --cl -x2 -y6 -c '($1==19)' -sx --cl 5 --xl "time (s)" --yl "cycles
r g m Lw" -t "DDNw ambig. PRN19"
PRN19 plot:
Î DDNw=2
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
44
A2 Dual Frequency Ambiguity Fixing graph.py -f DDNws.dat -x2 -y3 -c '($1==21)' -s. -f DDNws.dat -x2 -y5 -c '($1==21)' -sx --cl -f DDNws.dat -x2 -y4 -c '($1==21)' -s. --cl -f DDNws.dat -x2 -y6 -c '($1==21)' -sx --cl --yn 5 --yx 11 --xl "time (s)" --yl "cycles
r g m Lw" -t "DDNw ambig. PRN21"
PRN21 plot:
Î DDNw=8
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
45
A2 Dual Frequency Ambiguity Fixing graph.py -f DDNws.dat -f DDNws.dat -f DDNws.dat -f DDNws.dat --yn -3 --yx
-x2 -y3 -c '($1==22)' -s. -x2 -y5 -c '($1==22)' -sx --cl -x2 -y4 -c '($1==22)' -s. --cl -x2 -y6 -c '($1==22)' -sx --cl 3 --xl "time (s)" --yl "cycles
r g m Lw" -t "DDNw ambig. PRN22"
PRN22 plot:
Î DDNw=0
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
46
A2 Dual Frequency Ambiguity Fixing graph.py -f DDNws.dat -x2 -y3 -c '($1==24)' -f DDNws.dat -x2 -y5 -c '($1==24)' -f DDNws.dat -x2 -y4 -c '($1==24)' -f DDNws.dat -x2 -y6 -c '($1==24)' --yn 0 --yx 6 --xl "time (s)" --yl
-s. -sx --cl r -s. --cl g -sx --cl m "cycles Lw" -t "DDNw ambig. PRN24"
PRN24 plot:
Î DDNw=4
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 1 Fixing Wide-lane ambiguity DDNw
@ J. Sanz & J.M. Juan
47
A2 Dual Frequency Ambiguity Fixing A2.2 Fixing DDN1 from DDNw and DDL1, DDL2 Using the previous DDNw fixed values, estimate graphically the DDN1 ambiguity (i.e. try to identify the true ambiguity from the plot). Hint: From file DD_UPC1_UPC2_06_ALL.dat, and using the fixed DDNw, generate the file DDN1.dat with the following content: 1 2 3 4
where:
[PRN sec DDN1
DDN1=(DDL1 DDL2 O2 DDNw)/(O1 O2) PRN = [ 03 DDNw= [ 3
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
nint(DDN1)]
07 0
16 3
18 -3
19 2
21 8
A2. 2 Fixing DDN1 after fixing DDNw
22 0
24] 4]
@ J. Sanz & J.M. Juan
48
A2 Dual Frequency Ambiguity Fixing ----------------------------- DD_UPC1_UPC2_06_ALL.dat -----------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [UPC1 UPC2 06 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 ] ------------------------------------------------------------------------------------
From file DD_UPC1_UPC2_06_ALL.dat, and using the fixed DDNw, generate the 1 2 3 4 file DDN1.dat with the following content: [PRN sec DDN1 nint(DDN1)] where: DDN1=(DDL1 DDL2 O2 DDNw)/(O1 O2) Execute, for instance for PRN24 (with DDNw=4): gawk 'BEGIN{c=299792458;f0=10.23e+6;f1=154*f0;f2=120*f0;l1=c/f1;l2=c/f2} {Nw=4;if ($4==24) {amb=($8-$10-l2*Nw)/(l1-l2); print $4,$6,amb,int(amb+0.5*amb/sqrt(amb*amb))}}' DD_UPC1_UPC2_06_ALL.dat > DDN1_PRN24
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 2 Fixing DDN1 after fixing DDNw
@ J. Sanz & J.M. Juan
49
A2 Dual Frequency Ambiguity Fixing graph.py -f DDN1_PRN24 -x2 -y3 -c '($1==24)' -s. -f DDN1_PRN24 -x2 -y4 -c '($1==24)' -sx --cl r --yn 1 --yx 6 --xl "time (s)" --yl "cycles L1" -t "DDN1 ambiguity: PRN24"
PRN24 plot:
Î DDN1=4
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A2. 2 Fixing DDN1 after fixing DDNw
@ J. Sanz & J.M. Juan
50
A2 Dual Frequency Ambiguity Fixing ----------------------------- DD_UPC1_UPC2_06_ALL.dat -----------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [UPC1 UPC2 06 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 ] ------------------------------------------------------------------------------------
From file DD_UPC1_UPC2_06_ALL.dat, and using the fixed DDNw, generate the 1 2 3 4 file DDN1.dat with the following content: [PRN sec DDN1
nint(DDN1)]
Other possibility is to execute the following sentence to generate the file for all satellites: gawk 'BEGIN{for (i=0;i coco.meas
gLAB configuration file RINEX Navigation file
RINEX Measurement file
-pre:dec 1 -print:none -print:meas --model:satphasecenter --model:recphasecenter --model:satclocks --pre:cs:li --pre:cs:bw
OUTPUT: measurement file in columnar format [Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 7 8 9 10 11 xx xx 14 15 16 ]
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
35
Example 2: Ionospheric delay analysis 2.- Manipulate the file with the easy & powerful awk (or gawk) programming language (to compute the combinations of measurements): Æ From coco.meas file:
P1 L1 P2 L2 ] [Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 7 8 9 10 11 xx xx 14 15 16
Compute different ionospheric combination of codes and carriers, and generate the obs.txt file containing the fields: [PRN,sec, P2-P1, (P2-L2)/5.09, (P1-L1)/3.09, L1-L2, Elev/10] gawk '{print $6,$4,$15-$11,($15-$16)/5.09,($11-$14)/3.09,$14-$16,$7/10}' coco.meas > obs.txt
PRN #6
(P2-P1)
(L1-L2)
#15 -- #11
#14 -- #16
sec #4
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
(P2-L2)/5.09
(P1-L1)/3.09
#15 -- #16
#11-- #14
Elev/10 #7
@ J. Sanz & J.M. Juan
36
Example 2: Ionospheric delay analysis 3.-Plot results with “graph.py” (you can use the gnuplot as well) ÆFrom obs.txt file:
[PRN, sec, P2-P1, (P2-L2)/5.09, (P1-L1)/3.09, L1-L2, Elev/10] 1 2 3 4 5 6 7
Show in the same plot the following iono. delays for satellite PRN01: P2-P1, (P2-L2)/5.09, (P1-L1)/3.09, L1-L2, Elev./10
Condition: Select PRN01 (from 1-st field)
File to plot
Fields to plot: #2 (x-axis) versus #3 (y-axis)
graph.py -f obs.txt -c'($1==01)' -x2 -f obs.txt -c'($1==01)' -x2 -f obs.txt -c'($1==01)' -x2 -f obs.txt -c'($1==01)' -x2 -f obs.txt -c'($1==01)' -x2 --yn -10 --yx 15 --xl "time
Label: P2-P1
-y3 --l "P2-P1" –y4 --l "(P2-L2)/5.09" -y5 --l "(P1-L1)/3.09" –y6 --l "L1-L2" –y7 --l "Elev/10" (s)" --yl "meters of L1-L2 delay"
gAGE/UPC
@ J. Sanz & J.M. Juan
37
Research group of Astronomy & Geomatics Technical University of Catalonia
Example 2: Ionospheric delay analysis
zoom
PI { P2 P1
I K 21
LI { L1 L2
I Ambiguity
P1 L1
2D1 I ambiguity1
P2 L2
2D 2 I ambiguity 2
D1 J 21
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
1
1.546 ; D 2
J 21 1
f1 /
f2
2
1 D1
(154 / 120) 2
@ J. Sanz & J.M. Juan
38
Example 2: Sky plots )=40º )=90º
)=0º
coco
Sky plots at different latitudes
PRN01
gAGE/UPC
@ J. Sanz & J.M. Juan
39
Research group of Astronomy & Geomatics Technical University of Catalonia
Example 3: Zenith Troposphere Delay estimation PPP Template: Static positioning with dual freq. code & carrier (ionosphere-
free combination PC,LC) + post-processed precise orbits & clocks.
1. Select the PPP Template 2. Upload data files: -Measurement : roap1810.09o - ANTEX: igs05_1525.atx - Orbits & clocks: igs15382.sp3 - SINEX: igs09P1538.snx
2 1 gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
3. RUN gLAB
3
Default output file:
gLAB.out @ J. Sanz & J.M. Juan
40
Example 3: Zenith Troposphere Delay estimation Plotting Results • Coordinates are taken as constants in nav. filter. • Dual frequency Code and Carrier measurements. • Precise orbits and clocks. • Measurements modelling at the centimetre level.
gAGE/UPC
Centimetre level accuracy over 24h data is achieved in PPP static mode
@ J. Sanz & J.M. Juan
41
Research group of Astronomy & Geomatics Technical University of Catalonia
Example 3: Zenith Troposphere Delay estimation
The troposphere is estimated as a Random Walk process in the Kalman Filter. A process noise of 1cm/sqrt(h) has been taken.
1
2
ftp://cddis.gsfc.nasa.gov/pub/gps/products/troposphere/new/2009/181/roap1810.09zpd.gz The ZTD in this file is given in mm of delay. Thus, it is converted to m to compare with gLAB results grep ROAP roap1810.09zpd | gawk -F\: '{print $3} ' | gawk '{print $1,$2/1000}' > roap_igs.trp
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
42
Example 3: Zenith Troposphere Delay estimation Tropospheric delay The troposphere is the atmospheric layer situated between the Earth’s surface and an altitude of about 50 km. The effect of the 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 pseudo-range (code) and carrier phases in the same way. It can be modeled by: • A 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 reasonably predictable manner, and it is responsible for 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 totally random way. For high accuracy positioning, this component must be estimated together with the coordinates and other parameters in the navigation filter.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Backup
@ J. Sanz & J.M. Juan
43
OVERVIEW Introduction The gLAB tool suite Examples of GNSS processing using gLAB ¾ Laboratory session organization
LABORATORY Session Starting up your laptop Basic: Introductory lab exercises: Iono & Posit, SF, storm,TIDs Medium: Laboratory Work Projects: LWP1 to LWP4 Advanced: Homework gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
44
Laboratory session organization The laboratory session is organized as an assisted activity where a set of exercises must be developed individually or in groups of two. As they are conceived as self-learning work, a detailed guide is provided in the slides (pdf file) to carry out the exercises. A notepad file with the command line instructions is also provided to help the sentence writing (doing copy & paste). A set of questions is presented, and the answers are also included in the slides. Teachers will attend individual (or collective) questions that could arise during exercise resolution. gAGE/UPC
@ J. Sanz & J.M. Juan
45
Research group of Astronomy & Geomatics Technical University of Catalonia
Laboratory session organization The exercises are organized at three different levels of difficulty. The student can choose the level of exercises to do, although at least one introductory exercise is recommended to learn basic gLAB usage.
1. Basic: Introductory exercises. From 1 to 6. They consist of simple exercises to: 1) Study the Ionosphere effects on single frequency positioning. 2) To depict the STEC on a Radio occulation 3) Solar Flare effect on TEC, 4,5) TEC evolution during the Halloween Storm, 6) To depict a TID propagaction. a
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
GP
@ J. Sanz & J.M. Juan
46
Laboratory session organization 2. Medium: Laboratory Work Projects (LWP). Four different LWP are proposed (to choose from): • LWP1: To show a simple numerical method to estimate electron density profiles (Ne(h)) from RO data. • LWP2: To analyse the phase excess rate from GPS to LEO due to atmospheric (ionosphere & troposphere) bending.
a
G P
Ne
a
㻯㼛㼡㼞㼠㼑㼟㼥㻌㼛㼒㻌㼁㻯㻭㻾㻌 Actual measurements from FORMOSAT-3/COSMIC LEOs will be used
a U
GP
U A minimum knowledge of UNIX (e.g., awk) would be desirable
LWP1
gAGE/UPC
LWP2 47
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
Laboratory session organization 2. Medium: Laboratory Work Projects (LWP). Four different LWP are proposed (to choose from): • LWP3: To study the code-carrier ionosphere divergence effect on single-frequency carrier smoother code.
f
f
• LWP4: To analyse if second-order ionospheric effects can be depicted from three-frequency GNSS measurements. Given that session time is limited to 3h, students who feel comfortable using gLAB, can skip part of the previous basic exercises (Ex1, Ex2,.. ) and jump to the Lab. Work Project. A minimum knowledge of UNIX (e.g., awk) would be desirable
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
48
Laboratory session organization 3 . Advanced: Labeled as “Homework exercises” A set of additional exercises addressed to those students that already have a solid background in GPS data processing. These exercises are beyond the scope of this 3h laboratory session, and are given for a possible further discussion… As in the previous cases, the answers to the questions are also included as BACKUP slides. A minimum knowledge of UNIX (e.g., awk) is desirable for these homework exercises.
¦D k
k
Lk ¦ D k ' kUP sin H k
bias
APC correction term
I 2 L1
7427cB0 cos T 7257c sat N e B cos T ds STEC 3 ³rec 2 f1 2 f13
gawk 'BEGIN{g=(77/60)^2}{print $6, $4, (g*($13-$14)-($15-$16))/(g-1)}' meas.txt > PC.txt
gAGE/UPC
@ J. Sanz & J.M. Juan
49
Research group of Astronomy & Geomatics Technical University of Catalonia
OVERVIEW Introduction The gLAB tool suite Examples of GNSS processing using gLAB Laboratory session organization LABORATORY Session ¾ Starting up your laptop
Basic: Introductory lab exercises: Iono & Posit, SF, storm,TIDs Medium: Laboratory Work Projects: LWP1 to LWP4 Advanced: Homework gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
50
Starting up your laptop 1. Plug the stick into an USB port and boot your laptop from the stick.
2. Access the Boot Device Menu when starting up the laptop. Note: The way to do it depends on your computer: Usually, you should press [ESC] or [F4], [F10], [F12].... gAGE/UPC gA
@ J. Sanz & J.M. Juan
51
Research h group o of Astronomy & Geomatics Technical University of Catalonia
Starting up your laptop 3. The following screen will appear after about 2 minutes: Click on this icon to open a console
The US keyboard is set by default. You can change it by clicking on the upper right corner.
Click on the gLAB icon to start-up gLAB gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
52
Starting up your laptop
Now, the system is ready to start working! Console to execute “command line” sentences
gAGE/UPC
@ J. Sanz & J.M. Juan
53
Research group of Astronomy & Geomatics Technical University of Catalonia
Starting up your laptop
Console to execute “command line” sentences
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Copy and paste the sentences from notepad to console
@ J. Sanz & J.M. Juan
54
OVERVIEW Introduction The gLAB tool suite Examples of GNSS processing using gLAB Laboratory session organization LABORATORY Session Starting up your laptop ¾ Basic: Introductory lab exercises: Iono & Posit, Solar Flair, Halloween storm,TIDs
Medium: Laboratory Work Projects: LWP1 to LWP4 Advanced: Homework gAGE/UPC
@ J. Sanz & J.M. Juan
55
Research group of Astronomy & Geomatics Technical University of Catalonia
EX. 1 Halloween storm: October 2003 A severe ionospheric storm was experienced on October 29-31, 2003 producing and increase of the electron density which led to large ionospheric refraction values on the GPS signals. Such conditions were beyond the capability of the GPS Klobuchar model broadcast for single frequency users, producing large errors in the SPS (see details in [R-3]).. Dual frequency users, navigating with the ionospheric-free combination of GPS signals were not affected by such ionospheric errors, as the ionospheric refraction can be removed up to 99:9% using dualfrequency signals. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Backup
@ J. Sanz & J.M. Juan
56
Ex. 1: Assessing Iono effects on single freq. pos. Exercise: Repeat the previous study of Example 1 to analyze the single freq. solution, but for the Halloween storm. The following steps are recommended: 1. Using files amc23020.03o,brdc3030.03n compute with gLAB the following solutions: 1. Solution with full SPS modeling. Name output file as: gLAB.out 2. Solution with the ionospheric corrections disabled Î gLAB1.out 3. Solution with the 2-freq. Ionosphere-free code (PC) Î gLAB2.out
2. Plot results Note: The gLAB GUI or the command line sentences can also be used . A “notepad” with the command line sentence is provided to facilitate the sentence writing: just “copy” and “paste” from notepad to the working terminal
gAGE/UPC
@ J. Sanz & J.M. Juan
57
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 1: Full processing Î gLAB.out 1. Compute SPP using files: amc23020.03o,brdc3030.03n
2 By default, the output file name is gLAB.out
1
3
Equivalent command line sentence: gLAB_linux -input:cfg gLAB_p1_Full.cfg -input:obs amc3030.03o gAGE/UPC brdc3030.03n Research group of Astronomy &-input:nav R Geomatics Technical University Technical University y of Catalonia Catalonia
@ J. Sanz & J.M. Juan
58
Ex. 1: Iono. Disabled Î gLAB1.out 2. Reprocess the same files, with the iono. corrections disabled
2 Disable Ionospheric corrections
1
Change output file name to gLAB1.out
3
Equivalent command line sentence: gLAB_linux -input:cfg gLAB_p1_NoIono.cfg -input:obs amc3030.03o gAGE/UPC brdc3030.03n Research group of Astronomy &-input:nav R Geomatics
@ J. Sanz & J.M. Juan
59
Techn Technical ec ical ca University U Unive ersity s y of of Catalonia Ca a onia Catalo Catal a
Ex. 1: Processing with PCÎ gLAB2.out 3. Reprocess the same files, but with 2-frequency ionosphere-free (PC)
1 Disable Ionospheric corrections and P1P2 corrections
Equivalent command line sentence: gLAB_linux -input:cfg gLAB_p1_IFree.cfg -input:obs amc3030.03o gAGE/UPC brdc3030.03n Research group of Astronomy &-input:nav R Geomatics Technical Techn ical University University y of Catalonia Catalonia
2 Select Dual Frequency
3
Change output file name to gLAB2.out
4
@ J. J. Sanz Sanz & J.M. Juan J n Jua
60 60
Ex. 1: Assessing Iono effects on single freq. pos. Execute in a single line: (or
use the gLAB GUI)
graph.py -f gLAB.out -x4 -y18 -s.- -c '($1=="OUTPUT")' -f gLAB.out -x4 -y19 -s.- -c '($1=="OUTPUT")' -f gLAB.out -x4 -y20 -s.- -c '($1=="OUTPUT")' --yn -40 --yx 70 --xl "time (s)" -t "NEU positioning error [SPP]:
-l "North error" -l "East error" -l "UP error" --yl "error (m)" Full model"
graph.py -f gLAB.out -x4 -y20 -s.- -c '($1=="OUTPUT")' --l "Full model" -f gLAB1.out -x4 -y20 -s.- -c '($1=="OUTPUT")' --l "No Iono." --cl r --yn -40 --yx 90 --xl "Time (s)" --yl "Up error (m)" -t "Vertical positioning error [SPP]" graph.py
-f gLAB1.out -x19 -y18 -so -c '($1=="OUTPUT")' --l "No Iono." --cl r -f gLAB.out -x19 -y18 -so -c '($1=="OUTPUT")' --l "Full mod" --cl b --xl "East error (m)" --yl "North error (m)" --xn -40 --xx 40 --yn -40 --yx 40 -t "Horizontal pos. error [SPP]"
P2-P1 shifted +4 m graph.py -f gLAB.out -x4 -y'($10-$9+4)' -s. -c '($1=="INPUT")' -f gLAB.out -x4 -y25 -s. -c '($1=="MODEL")' --cl r --xl "time (s)" --yl "meters" --yn -5 --yx 80 -t "Ionospheric Combination" gAGE/UPC
@ J. J. Sanz Sa San S an anz & J.M. J.M. Juan Ju Jua J uan
61 61 61
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 1: Assessing Iono effects on single freq. pos. gLAB1.out
gLAB.out
gLAB.out
gLAB1.out
gLAB.out
Ionospheric correction (broadcast Klobuchar ) Ionospheric delays are larger at noon due to the higher insulation.
Code delay
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Klobuchar model is unable to mitigate the large ionospheric errors during the storm. Position domain errors reach up to 40 meters with Klobuchar corrections used.
@ J. Sanz & J.M. Juan
62
Ex. 1: Assessing Iono effects on single freq. pos. Ionospheric correction (broadcast Klobuchar )
1-freq.[SPS]: with Klobuchar
•The ionosphere-free combination (PC) of P1 and P2 codes is immune to the ionospheric storm. • Although PC is three-times noisier than P1 or P2, it provides positioning accurate at the level of a few meters during the storm. f 2P f 2P PC
2-freq.: Iono-free
1
1
2
2
f12 f 22
amc2 station location
October 30, 2003 gAGE/UPC
@ J. Sanz & J.M. Juan
63
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 2: STEC in a Radio Occultation (RO) Radio Occultation (RO) commonly refers to a sounding technique in which a radio signal from a transmitting satellite (e.g., GPS) passes through a planetary atmosphere before arriving at a receiver on board a Low Earth Orbiter (LEO) satellite. Along the ray path, the phase of the radio signal is perturbed in a manner related to the refractivity. RO measurements can reveal the refractivity, from which one can then derive atmospheric quantities such as Pressure, Temperature and the partial pressure of water vapor; and electron density, among others.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
a
GP
This is a simple exercise where the STEC variation along a radio occultation will be depicted using GPS L1, L2 measurements from a receiver on board a LEO of COSMIC constellation. In the LWP1, Electron Density Profiles will be retrieved from this data using an algorithm equivalent to the Abel Transform.
@ J. Sanz & J.M. Juan
64
FORMOSAT-3/COSMIC mission Constellation Observing System for Meteorology Ionosphere and Climate: 6 microsatellites; orbit altitude ~ 800km • Three instruments: GPS receiver. 4 antennas: 2 for POD, 2 for RO. TIP, Tri-band beacon • Weather + Space Weather data. Global observations of: Pressure, Temperature, Humidity Refractivity Ionospheric Electron Density Ionospheric Scintillation • Demonstrate quasi-operational GPS limb sounding with global coverage in near-real time • Climate Monitoring
㻯㼛㼡㼞㼠㼑㼟㼥㻌㼛㼒㻌㼁㻯㻭㻾㻌 㻯㼛㼡㼞㼠㼑㼟㼥㻌㼛㼒㻌㼁㻯㻭㻾㻌
Information available at www.cosmic.ucar.edu
gAGE/UPC
@ J. Sanz & J.M. Juan
65
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 2: STEC in a Radio Occultation (RO) Exercise: The file “RO.obs” contains the following fields [*]: YY DoY HH.HH CODE PRN 1
2
3
4
5
|Å------ LEO ------>|| elev r_LEO AR_LEO DEC_LEO r_GPS AR_GPS DEC_GPS L1 L2 (deg) (km) (Deg) (Deg) (km) (Deg) (Deg) (cycles) 6 7 8 9 10 11 12 13 14
L1-L2 arc (m) 15 16
Plot the L1-L2 measurement in function of time to depict the variation of STEC along the occultation: Select for instance : PRN=02 and “CODE=l241”, that corresponds p to LEO=4 and Antenna 1 - Selecting: CODE=l241 and PRN=02 grep l241 RO.obs|gawk '{if ($5==02) print $3,$15}'> ro.dat - Ploting L1-L2 graph.py -f ro.dat --xl "time (H)" --yl "meters of L1-L2" -t"RO: L1-L2: COSMIC #4 Antenna #1"
[*] This file has been generated from files (http://cosmic-io.cosmic.ucar.edu/cdaac): podObs_2006.253.004.01.01_rnx, leoOrb_2006.253.004.01_2009.2650_sp3, igs13920.sp3
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
66
@ J. Sanz & J.M. Juan
66
Ex. 2: STEC in a Radio Occultation (RO) The previous plot shows only the variation of the Integrated Electron Content along the ray path (STEC). More information can be retrieved from occultation measurements. For instance: • Electron Density Profile of the Ionosphere (LWP1). • Phase excess rate, which is related to the bending of ray (LWP2).
a
Ne
G P
a
a U
G P
U
gAGE/UPC
@ J. Sanz & J.M. Juan
67
Research group of Astronomy & Geomatics Technical University of Catalonia
Given that session time is limited to 2h, participants who feel comfortable using gLAB, can skip part of the next basic exercises (Ex3..., Ex6) and jump to the Laboratory Work Projects (LWP). There, if you prefer, you can jump to slide #87 and choose one from the four LWPs
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
68
Ex. 3: Solar Flare October 28, 2003 On October 28, 2003, an intense solar eruption (a Solar Flare) was detected around 11h UT in an active region which had grown one of the largest sunspots ever seen by the SOlar Helioscopic Observatory (SOHO). It appeared as a bright spike in the SOHO ultraviolet images. This sudden enhancement of the solar radiation in the X-ray and extreme ultra-violet band produced a sudden increase in the ionospheric electron density on the daylight hemisphere, (see [R-3]). gAGE/UPC
@ J. Sanz & J.M. Juan
69
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 3: Solar Flare October 28, 2003 Exercise: Analyze the effect of the Solar Flare on the Slant Total Electron Content (STEC) measurements of four permanent IGS receivers ankr, asc1, kour and qaq1, covering a wide range of longitude and latitude. qaq1
Data sets: ankr3010.03o, asc13010.03o, kour3010.03o, qaq13010.03o
ankr kour
asc1
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
70
Ex. 3: Solar Flare October 28, 2003 Execute: gLAB_linux gLAB_linux gLAB_linux gLAB_linux
-input:cfg -input:cfg -input:cfg -input:cfg
[Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 7 8 9 10 11 xx 13 14 15 16 ]
meas.cfg meas.cfg meas.cfg meas.cfg
-input:obs -input:obs -input:obs -input:obs
ankr3010.03o asc13010.03o kour3010.03o qaq13010.03o
graph.py -f ankr3010.03.meas -x4 -y'($14-$16)' --l -f asc13010.03.meas -x4 -y'($14-$16)' --l -f kour3010.03.meas -x4 -y'($14-$16)' --l -f qaq13010.03.meas -x4 -y'($14-$16)' --l --xl "time (s)" --yl "meters of L1-L2" --xn 38500 --xx 40500 --yn -20 --yx 20 -t "28 Oct 2003 Solar flare"
> > > >
ankr3010.03.meas asc13010.03.meas kour3010.03.meas qaq13010.03.meas
"ankr" "asc1" "kour" "qaq1"
qaq1
ankr kour
asc1
gAGE/UPC
@ J. Sanz & J.M. Juan
71
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 3: Solar Flare October 28, 2003
qaq1
ankr kour
asc1
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
72
Ex. 4: Halloween storm: P2-P1 analysis Associated with the Solar Flare analysed in the previous exercise, a Coronal Mass Ejection occurred, which sent a large particle cloud impacting the Earth's magnetosphere about 19 hours later, on October 29. Subsequent impacts were still occurring several hours later. This material interacted with the Earth's magnetosphere and a Storm Enhancement Density (SED) appeared in North America and affected later the northern latitudes in Europe. Extra large gradients of TEC associated with this phenomenon were also produced, degrading the GPS positioning performance. The TEC evolution in October 30, 2003 (i.e., Day 303 of year 2003) can be seen in the movie TEC 2003oct30 anim.gif.
gAGE/UPC
@ J. Sanz & J.M. Juan
73
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 4: Halloween storm: P2-P1 analysis The measurement files garl3010.03o, garl3020.03o, garl3030.03o, garl3040.03o, garl3050.03o, garl3060.03o were collected by the permanent receiver garl in Empire, Nevada, USA ( I= 40.42 deg O =-119:36 deg) from October 28 to November 2, 2003. Using these files, plot the STEC for all satellites in view and discuss the range of such variations. Analyse, in particular, the satellite PRN 04 and calculate the maximum rate of STEC variation in mm=s of L1 delay. Add the elevation of satellite PRN 04 in the plot. The associated broadcast navigation les are brdc3010.03n, brdc3020.03n, brdc3030.03n, brdc3040.03n, brdc3050.03n, brdc3060.03n. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
74
Ex. 4: Halloween storm: P2-P1 analysis Exercise: Depict the ionospheric delays for the different satellites in view from station amc2 • This is a simple exercise aimed to illustrate how to use gLAB to easily analyze GNSS measurements and their combinations. • gLAB will used to read the RINEX measurements file and to generate a “text” with the measurements provided in a columnar format (more suitable to make plots). • Using such “text” file, the STEC pattern for the different satellites in view during the storm is depicted from the geometry-free combination of codes P2-P1. Note:
P2 P1
I K 21
gAGE/UPC
@ J. Sanz & J.M. Juan
75
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 4: Halloween storm: P2-P1 analysis The next commands read a RINEX file and generate a text file (in columnar format) that allows to easily plot the measurements and their combinations: 1. Using the configuration file meas.cfg, READ the RINEX and generate the MEAS message with data format: Execute:
[Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 7 8 9 10 11 xx 13 14 15 16 ]
gLAB_linux -input:cfg meas.cfg -input:obs amc23030.03o -input:nav brdc3030.03n > amc23030.03.meas
2. From meas.txt file, Compute the ionospheric combination of codes: PI=P2-P1. Generate the file PI.txt with the following content: [PRN, hour, PI, elevation]
gawk '{print $6, $4/3600, $15-$13, $7}' amc23030.03.meas > PI.txt 3. From PI.txt file, Plot the PI=P2-P1 for time interval [15 to 24].hours. Show in the same graph: 1) ALL satellites, 2) PRN 13, 28 and 29, and 3) The elevation of each satellite.(13, 28 and 29) graph.py -f PI.txt -x2 -y3 --l "ALL" -f PI.txt -c'($1==28)' -x2 -y3 -so --l "28:P2-P1" -f PI.txt -f PI.txt -c'($1==29)' -x2 -y3 -so --l "29:P2-P1" -f PI.txt -f PI.txt -c'($1==13)' -x2 -y3 -so --l "13:P2-P1" -f PI.txt gAGE/UPC --xn 15 --xx 25 --yn 0 --yx 85 --xl "time (s)" --yl "meters Research group of Astronomy & Geomatics Technical University of Catalonia
Backup
-c'($1==28)' -x2 -y4 --l "29:ELEV" -c'($1==29)' -x2 -y4 --l "13:ELEV" -c'($1==13)' -x2 -y4 --l "13:ELEV" 76 of L1-L2 delay" @ J. Sanz & J.M. Juan 76
Ex. 4: Halloween storm: P2-P1 analysis
amc2 station location
October 30, 2003 gAGE/UPC
@ J. Sanz & J.M. Juan
77
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 5: Halloween storm evolution Exercise: Analyze the ionospheric delays for 6
consecutive days including the Halloween storm • This is a simple exercise aimed to illustrate the ionospheric delays variation during the Halloween storm. A period of 6 consecutive days (from October 28 to November 2, 2003) are analyzed using measurements collected in the “garl” station in North America. • The STEC variations are depicted from the geometry-free combination of codes P2-P1. Note: P2 P1
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
I K 21 @ J. Sanz & J.M. Juan
78
Ex. 5: Halloween storm evolution 1.- Read RINEX file: gLAB_linux gLAB_linux gLAB_linux gLAB_linux gLAB_linux gLAB_linux
-input:cfg -input:cfg -input:cfg -input:cfg -input:cfg -input:cfg
meas.cfg meas.cfg meas.cfg meas.cfg meas.cfg meas.cfg
[Id YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2P L2P] 1 2 3 4 5 6 7 8 9 10 11 xx 13 14 15 16 ] -input:obs -input:obs -input:obs -input:obs -input:obs -input:obs
garl3010.03o garl3020.03o garl3030.03o garl3040.03o garl3050.03o garl3060.03o
-input:nav -input:nav -input:nav -input:nav -input:nav -input:nav
brdc3010.03n brdc3020.03n brdc3030.03n brdc3040.03n brdc3050.03n brdc3060.03n
> > > > > >
garl3010.03.meas garl3020.03.meas garl3030.03.meas garl3040.03.meas garl3050.03.meas garl3060.03.meas
2.- Merge files and refer all the data to 0h of October 28th: Doy0301: cat garl30?0.03.meas |gawk '{d=($3-301)*86400;$4=$4+d; print $6, $4/3600, $15-$13, $7}' > PI.txt
3.- Plot results: graph.py -f PI.txt –x2 –y3 --l "ALL P2-P1" -f PI.txt -c'($1==04)' –x2 –y4 --l "PRN04: ELEV" -f PI.txt -c'($1==04)' –x2 –y3 –so --l "PRN04: P2-P1" --xn 0 --xx 144
gAGE/UPC
79
@ J. J. Sanz San nz & J.M. J.M M. Juan Jua J ua u an
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 5: Halloween storm evolution Zoom at time interval: 70 to 78 h graph.py -f PI.txt –x2 –y3 --l "ALL P2-P1" -f PI.txt -c'($1==04)' –x2 –y4 --l “04: EL" -f PI.txt -c'($1==04)' –x2 –y3 –so --l “04" --xn 0 --xx 144
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
graph.py -f PI.txt –x2 –y3 --l "ALL P2-P1" -f PI.txt -c'($1==04)' –x2 –y4 --l “04: EL" -f PI.txt -c'($1==04)' –x2 –y3 –so --l “04" --xn 70 --xx 78
@ J. Sanz & J.M. Juan
80
Ex. 6: Travelling Ionospheric Disturb. Travelling Ionospheric Disturbances (TIDs) are understood as plasma density fluctuations that propagate through the ionosphere at an open range of velocities and frequencies. The trend of such fluctuations can be seen from the geometry free combination of GPS carrier measurements LI L1 L2 . Some authors distinguish between Large-Scale TIDs (LSTIDs) with a period greater than 1 hour and moving faster than 0,3 km/s, and Medium- Scale TIDs (MSTIDs) with shorter periods (from 10 minutes to 1 hour) and moving slower (0.05-0.3 km/s). The LSTIDs seem to be related to geomagnetic disturbances (i.e., aurora, ionospheric storms, etc.). The origin of MSTIDs seems to be more related to meteorological phenomena such as neutral winds, eclipses, or solar terminator that produces Atmospheric Gravity Waves (AGW) being manifested as TIDs at ionospheric heights, due to the collision between neutral and ionised molecules.
gAGE/UPC
@ J. Sanz & J.M. Juan
81
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 6: Travelling Ionospheric Disturb. In [R4, 2006] a simple method to detect MSTIDs is proposed. It consists of detrending the geometry free combination of GPS carrier measurements from the diurnal variation and elevation angle dependences, applying the following equation:
G LI (t ) LI (t ) LI (t W ) LI (t W ) / 2
where a value of 300sec is suitable to keep enough variation of LI (i.e., STEC). Using the previous equation, the detrending is done simply by subtracting from each value an average value of the previous and posterior measurements (i.e., the curvature of the LI temporal dependency). It must be pointed out that that this detrending procedure can be used in real time with a single receiver, so it is suitable for identifying these ionospheric perturbations in navigation applications.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
82
Ex. 6: Travelling Ionospheric Disturb. An example of MSTID propagation can be depicted as follows using the measurements of three stations SODB, MHCB and MONB, which are separated by a few tens of kilometres. The target is to reproduce the figure 10 of the above mentioned paper [R4, 2006].
monb
mhcb sodb
[R4, 2006] Hernández-Pajares, M; Juan, M.; Sanz, J., 2006].
gAGE/UPC
@ J. Sanz & J.M. Juan
83
Research group of Astronomy & Geomatics Technical University of Catalonia
Ex. 6: Travelling Ionospheric Disturb. Exercise: Execute in a single line: # a) Reading RINEX files: gLAB_linux -input:cfg meas.cfg -input:obs mhcb2910.01o > mhcb.meas gLAB_linux -input:cfg meas.cfg -input:obs monb2910.01o > monb.meas gLAB_linux -input:cfg meas.cfg -input:obs sodb2910.01o > sodb.meas monb
# b) gawk gawk gawk
Selecting satellite '{if ($6==14) print '{if ($6==14) print '{if ($6==14) print
PRN16: $0}' mhcb.meas > mhcb_14.meas $0}' monb.meas > monb_14.meas $0}' sodb.meas > sodb_14.meas
mhcb sodb
# c) Detrending on the geometry-free combination L1-L2: gawk '{for (i=0;i21){tt=t[0]*t[10]*t[20];if (tt!=0) print t[10],(l[10]-(l[0]+l[20])/2)}}' mhcb_14.meas > mhcb_dLi.meas gawk '{for (i=0;i21){tt=t[0]*t[10]*t[20];if (tt!=0) print t[10],(l[10]-(l[0]+l[20])/2)}}' monb_14.meas > monb_dLi.meas gawk '{for (i=0;i21){tt=t[0]*t[10]*t[20]; if (tt!=0) print t[10],(l[10]-(l[0]+l[20])/2)}}' sodb_14.meas > sodb_dLi.meas
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
84
Ex. 6: Travelling Ionospheric Disturb. Execute in a single line: graph.py -f sodb_dLi.meas -s.- --l "sodb: PRN14" -f mhcb_dLi.meas -s.- --l "mhcb: PRN14" -f monb_dLi.meas -s.- --l "monb: PRN14" --xn 55500 --xx 57000 --yn -0.05 --yx 0.07 --xl "time (s)" --yl "Detrended STEC (meters of L1-L2 delay)" -t "MS Travelling Ionospheric Disturbance (MSTID) propagation"
monb
mhcb
gAGE/UPC g AGE/UPC
sodb @ J. Sanz & J.M. Juan
85
Research group off Astronomy A t & Geomatics Technical University of Catalonia
OVERVIEW Introduction The gLAB tool suite Examples of GNSS processing using gLAB Laboratory session organization LABORATORY Session Starting up your laptop Basic: Introductory lab exercises: Iono & Posit, SF, storm,TIDs ¾ Medium: Laboratory Work Projects: LWP1 to LWP4
Advanced: Homework gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
86
LWP1: Electron Density Profile from RO In the previous Exercise #2 the variation of the Integrated Electron Content along the ray path (STEC) has been shown. From these integrated measurements during an occultation it is possible to retrieve the electron density profile (i.e., Ne(h)) of the ionosphere.
Ne
G P
a
LWP1: Target In this LWP we will retrieve the Ne(h) using a simple numerical algorithm which is equivalent to the Abel transform (see [R-6]).
gAGE/UPC
@ J. Sanz & J.M. Juan
87
Research group of Astronomy & Geomatics Technical University of Catalonia
LWP1: Electron Density Profile from RO • The basic observable of this technique is the additional delay, due to the refractivity index, of a radio signal when passing through the atmosphere. • This additional delay is proportional to the integrated refractivity, in such a way that we can obtain an estimation of the vertical refractivity profiles using observations at different elevation angles by solving an inverse problem. • Traditionally, the solution of this inverse problem is obtained by using the Abel inversion algorithm assuming a refractivity index that only depends on the altitude (see [RD-6])
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
a
Ne
GP
As it is know, STEC and Ne are related by:
STEC ( p )
³
LEO
GPS
N e dl
An equivalent expression, assuming spherical symmetry
STEC ( pn ) 2¦ i 1 N e ( pi ) li ,n n
where p stands for the impact parameter (the closest point to the Earth centre along the optical ray path). @ J. Sanz & J.M. Juan
88
LWP1: Electron Density Profile from RO Thence, starting from the outer ray (p1=rLEO), for a given ray i, where i=1,…, with impact parameter pi, its STEC can be written in a discrete representation as: STEC ( pi )
2 N e ( pi ) li ,i
L1 L2
j i 1
D STEC b
¦ N (p ) l e
j
i, j
j 1
where lii is the fraction of ith ray within the spherical layer ith (see [R-6]). The previous equation defines a triangular linear equations system that can be solved recursively for the electron density Ne(p).
where p stands for the impact parameter (the closest point to the Earth centre along the optical ray path).
As measurements we use L1-L2 carrier phases that are related with the STEC by: L1 L2 D STEC b where the bias term b is eliminated making differences to a reference in the arch data.
gAGE/UPC
89
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
89
LWP1: Electron Density Profile from RO The program “abel.perl” implements the previous algorithm to estimate the Ne(p) profile from GPS L1-L2 carrier measurements. • The input data is [p(n),L1-L2(n)], with p in km and L1-L2 in meters (of L1-L2 delay) where the impact parameter must be sorted from larger to lower value. Î Only measurements with negative elevation must be given (i.e., occultation).
• The output data is: [n,p(n),L1-L2(n),Ne(n)], where Ne is given in e-/m3.
Note: the Impact parameters can be computed from the LEO elevation (elev) and its distance to Earth’s centre (rLEO) by (see figure):
p
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
rLEO cos(elev)
@ J. Sanz & J.M. Juan
90
LWP1: Electron Density Profile from RO Exercise: The file “RO.obs” contains the following fields (see Ex.5): YY DoY HH.HH CODE PRN 1
2
3
4
5
|Å------ LEO ------>|| elev r_LEO AR_LEO DEC_LEO r_GPS AR_GPS DEC_GPS L1 L2 (deg) (km) (Deg) (Deg) (km) (Deg) (Deg) (cycles) 6 7 8 9 10 11 12 13 14
L1-L2 arc (m) 15 16
1.- Using the file RO.obs, select the measurements with negative elevations for GPS satellite PRN02, the LEO #4 and antenna #1, and generate the input file [p(n),L1-L2(n)] for program “abel.perl” - Selecting: CODE=l241 and PRN=02 and negative elevations (ocult)
grep l241 RO.obs|gawk '{if ($5==02 && $6Ts){n=Ts}else{n=NR}; C1s=$11/n+(n-1)/n*(C1s+($14-L1p));L1p=$14; print $4,C1s-$14-3.09*($14-$16)-21.3}' upc3.meas > upc3.C1s100
b) Plotting results and compare with the row C1. graph.py -f upc3.C1 -s- --l "C1 Raw" -f upc3.C1s100 -s.- --cl r --l "C1 SF smoothed" --xn 35000 --xx 40000 --yn -5 --yx 5 --xl "time (s)" --yl "meters" -t "PRN03: C1 100s smoothing and iono div."
gAGE/UPC
@ J. Sanz & J.M. Juan
115
Research group of Astronomy & Geomatics Technical University of Catalonia
LWP3: Iono. Divergence on Smoothing 3 . . Using 2-frequency carriers it is possible to generate a combination with the same ionospheric delay (the same sign) as the code to avoid the code-carrier 2 divergence: f 22 1 § 77 · 1.545 ; D J ¨ ¸ L1DFree L1 2D ( L1 L2 ) U I1 B ] f12 f 22 J 1 © 60 ¹ a) Apply the Hatch filter to compute the DFree smoothed code gawk 'BEGIN{Ts=100}{if (NR>Ts){n=Ts}else{n=NR}; C1f=$11; L1f=$14+2*1.55*($14-$16); C1fs=C1f/n+(n-1)/n*(C1fs+(L1f-L1p));L1p=L1f; print $4,C1fs-L1f-21.3}' upc3.meas > upc3.C1DFs100
b) Plot results and compare with the row C1 code: graph.py -f upc3.C1 -s- --l "C1 Raw" -f upc3.C1s100 -s.- --cl r --l "C1 SF smoothed (100s)" -f upc3.C1DFs100 –s.- --cl g --l "C1 DFree smooth(100s)" --xn 35000 --xx 40000 --yn -5 --yx 5 --xl "time (s)" --yl "meters"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
116
LWP3: Iono. Divergence on Smoothing 4 . Generate the ionosphere-free combinations of code and carrier measurements to compute the Ionosphere Free (IFree) smoothed code: CIFree { PC
J P1 P2 J 1
; LIFree { LC
J L1 L2 J 1
J
§ 77 · ¨ ¸ © 60 ¹
2
gawk 'BEGIN{g=(77/60)**2}{pc=(g*$13-$15)/(g-1); lc=(g*$14-$16)/(g-1); print $4,pc-lc-3.5}' upc3.meas > upc3.PC
• Apply the Hatch filter to compute the IFree smoothed code gawk 'BEGIN{g=(77/60)**2}{pc=(g*$13-$15)/(g-1); lc=(g*$14-$16)/(g-1); if (NR>100){n=100}else{n=NR}; ps=1/n*pc+((n-1)/n*(ps+lc-lcp)); lcp=lc; print $4,ps-lc-3.5}' upc3.meas > upc3.PCs100
• Plot results and compare with the unsmoothed PC: graph.py -f upc3.PC -s- --l "IFree raw" -f upc3.PCs100 -s.- --cl black --l "Ifree(100s)" --xn 35000 --xx 40000 --yn -5 --yx 5 --xl "time (s)" --yl "meters"
gAGE/UPC
@ J. Sanz & J.M. Juan
117
Research group of Astronomy & Geomatics Technical University of Catalonia
LWP3: Iono. Divergence on Smoothing 5 . Repeat previous plots but using: N=360, N=3600 and compare results. Plot also the ionospheric delay (from L1-L2) (see more details in [R-1]): T=360s
T=100s C1
PC
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
T=3600s
C1
C1
PC
PC
STEC
Note that the y-range in bottom row plots is 3 times larger than in top plots @ J. Sanz & J.M. Juan
118
LWP3: Iono. Divergence on Smoothing Repeat the previous exercise using the RINEX file amc23030.03o_1Hz collected for the station amc2 during the Halloween storm. Take N=100 (i.e, filter smoothing time constant W=100 sec).
gAGE/UPC
@ J. Sanz & J.M. Juan
119
Research group of Astronomy & Geomatics Technical University of Catalonia
LWP4: Second order Ionospheric Effect The aim of LWP4 is to build a combination of carriers measurements at three different frequencies to remove the geometry and the first order ionosphere effects. Once this combination is obtained, its suitability to depict the second order ionospheric effects will be analyzed. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
The assessment will be based on actual GPS measurements at frequencies L1, L2 and L5 @ J. Sanz & J.M. Juan
120
LWP4: Second order Ionospheric Effect First order Ionospheric delay As commented before, about the 99.9% of the ionospheric delay
I1
I1
depends on the inverse of squared frequency:
where STEC is the number of electrons per area unit
40.3 STEC f2
STEC
along ray path (STEC: Slant Total Electron Content). Its effect on code and carrier is equal but with opposed sign:
I1carr
³ N ds e
I1code
Second order Ionospheric delay Previous expression comes from a simplification of the ionospheric delay derivation, where the dependence of the refraction index with the magnetic field B is neglected. If such dependence is taken into account, higher order terms appears (but, they represent less than 0.1% of total effect)
1 7257c N e B cos T ds ; I 2carr I 2code 3 ³ 2 f In global geodetic computations, I2 mainly affects to the satellite clock estimates (cm level) and orbits (few mm), but the impact on receiver positions is smaller than1mm, (see [R-5] and [R-1]). The second order ionospheric term is given by: I 2code
gAGE/UPC
@ J. Sanz & J.M. Juan
121
Research group of Astronomy & Geomatics Technical University of Catalonia
LWP4: Second order Ionospheric Effect Second order Ionospheric delay combination Question estio 1: Show that there is a unique linear combination of three carriers cancelling both geometry and (first order) ionospheric refraction. a) Apply results to GPS L1, L2 oth g and L5 signals. b) Using file l5dt1260.09o depict such combination of carriers. Hint: Let ai Li a j L j ak Lk be a linear combination of three carrier measurements at frequencies f i , f j , f k . The coefficients ai , a j , ak , shall verify the conditions:
ai a j ak 0 °° 2 2 ®ai Eij a j Eik ak ° 3 3 °¯ai Eij a j Eik ak
0 1
m geometry-free m 1st-oder iono-free m 2nd-order iono
with
Eij
fi / f j
Note: The first equation cancels all non-frequency dependent effects (geometric range, clocks, troposphere…) The second equation cancels all effects that depends of inverse squared frequency (1st-order: ionosphere and instrumental delays). The last equation is to normalize the coefficients giving the combination in delay units at frequencyf i .
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
122
LWP4: Second order Ionospheric Effect Answer to question 1a: Show that there is a unique linear combination of three carriers cancelling both the geometry and the (first order) ionospheric refraction. Apply results to the L1, L2 and L5 signals. Applying previous equations system to GPS signals f1
a1 a2 a5 0 ° 2 2 ®a1 E12 a2 E15 a5 0 ° 3 3 ¯a1 E12 a j E15 a5 1
154 f 0 , f 2 120 f 0 , f5 115 f 0 .
with
a1
6.287
E12 154 /120 E15 154 /115
a2
34.084
a3
27.797
Thence, the combination is: LI2 { 6.287 L1 34.084 L2 27.797 L5
(in delay units at f1 frequency).
On the other hand, assuming the carriers Li uncorrelated and with the same V L , the noise associated to this combination is given by: V LI2 44.4V L Note: As I 2code
1 I 2carr , the combination of codes is given by: 2
PI2 { 3.144C1 17.042C2 13.899C5 ; V PI2
gAGE/UPC
22.2V C 123
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
LWP4: Second order Ionospheric Effect Answer to question 1b: Make a plot to depict the geometry-free and first-order ionosphere-free combination of GPS carrier phase measurements [L1,L2,L5]. Use files l5dt1260.09o, l5dt1260.09n [*] (and satellite PRN01). 1. Using the configuration file meas.cfg, READ the RINEX and generate the MEAS file with content: [MEAS YY Doy sec GPS PRN el Az N. list C1C L1C C1P L1P C2C L2C C2P L2P C5X L5X ] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
gLAB_linux -input:cfg meas.cfg -input:obs l5dt1260.09o -input:nav l5dt1260.09n -pre:dec 0| grep GPS > l5dt.meas 2. From l5dt9.meas file, generate a file with the following content:
[sec LI2 1 2
elev] 3
gawk '{if ($6==01) {print $4,6.287*$14-34.084*$18+27.797*$20,$7}}' l5dt.meas > LI2.dat
[*] Note, although the elevation is not needed for this exercise (and thence the broadcast orbit file l5dt1260.09n, it is computed because it will be useful for a further study).
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
124
LWP4: Second order Ionospheric Effect 3.- Plotting results: graph.py -f LI2.dat -x1 -y2--l "LI2[125]" --xn 29700 --xx 49200 --yn 5128 --yx 5134 --xl "time (s)" --yl "meters of L1 delay"
Discussion: 1. What is the order of magnitude of the second order ionospheric effect? 2. Is the pattern seen in the figure due to the 2nd order ionospheric effect or it is related to other phenomena? Hint: Add the elevation in the previous plot and explore if the pattern could be related to the antenna phase centers of the different signals.
gAGE/UPC
@ J. Sanz & J.M. Juan
125
Research group of Astronomy & Geomatics Technical University of Catalonia
LWP4: Second order Ionospheric Effect 3.- Plotting results with the elevation added: graph.py -f LI2.dat -x1 -y'($2-5133)' –s- --l "LI2[125]" -f LI2.dat -x1 -y'($3/10)' –s- --l "Elev/10" –s--xn 29700 --xx 49200 --yn -7 --yx 7 --xl "time (s)" --yl "meters of L1 delay"
Note: The figure is shifted (by 5133m) to align with the x-axis. This bias is due to the carrier ambiguity (see HW1).
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
126
LWP4: Second order Ionospheric Effect Answers to the previous discussion: 1. What is the order of magnitude of the second order ionospheric effect? 2. Is the pattern seen in the figure due to the 2nd order ionospheric effect or it is related to other phenomena? The I2 effect on ground measurements is typically less than 2cm of L1 delay(see HW3 or [R-5]). Thence, the pattern must be related to another phenomena, as explained as follows: • In the derivation of previous combination LI2, the antenna phase center (APC) correction for the GPS signals has not been taken into account. Indeed, as L1, L2 and L5 have different APCs, the geometric range for such signals is slightly different, producing an elevation dependent error if it is not modelled. • In HW1 it is shown that, assuming only APC correction in the UP component, the APC effect can be removed from LI2 as: where ai , a j , ak are the combination coefficients, LI2+ ai ' iUP a j ' jUP ak ' kUP sin H ' iUP ,' jUP ,' kUP are the antenna phase centres for the different signals and H is the elevation of ray
gAGE/UPC
127
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
LWP4: Second order Ionospheric Effect 0.09, ' 2 0.12, ' 5 Question 2: Using the following values for the APCs '1 (in meters, see HW1) plot the previous expression and discuss results. UP
UP
UP
0.28
Now the combination to plot is:
LI2_corr { 6.287( L1 0.09sin H ) 34.084( L2 0.12sin H ) 27.797( L5 0.28sin H ) 1.- Using previous file l5dt.meas, generate a file content:
[sec LI2corr elev] 1 2 3
gawk '{if ($6==01) {s=sin($7*3.14/180); print $4,6.287*($14+0.09*s)- 34.084*($18+0.12*s)+27.797*($20+0.28*s),$7}}' l5dt.meas > LI2corr.dat
2.- Plot results: raph.py -f LI2corr.dat -x1 -y'($2-5133)' -s- --l "LI2[125]" -f LI2.dat -x1 -y'($3/10)' --l "Elev/10" -s--xn 29700 --xx 49200 --yn -7 --yx 7 --xl "time (s)" --yl “L1 meters"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
128
LWP4: Second order Ionospheric Effect Final questions: 1. Discuss if the second-order ionospheric effect can be depicted from GPS data. Hint: 1. The expected I2 effect on a ground receiver is less than 2cm in L1 delay (see HW3) 2. The estimation noise of LI2 is V LI2 44.4V.L .Thence even in an ideal case without APC errors and no carrier multipath (take for instance V L 2mm ), the noise will be over the phenomena threshold.
2.- The same question for Galileo data (see HW2).
gAGE/UPC
@ J. Sanz & J.M. Juan
129
Research group of Astronomy & Geomatics Technical University of Catalonia
OVERVIEW Introduction The gLAB tool suite Examples of GNSS processing using gLAB Laboratory session organization LABORATORY Session Starting up your laptop Basic: Introductory lab exercises: Iono & Posit, SF, storm,TIDs Medium: Laboratory Work Projects: LWP1 to LWP4 ¾ Advanced: Homework
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
130
Home Work Aim Different complementary questions (theoretical and experimental) related to the LW4 are asked in this homework section. The aim is to analyze in depth the combinations of three frequency signals.
The assessment will be based in actual GPS measurements at frequencies L1, L2 and L5, as well as Galileo at E1, E5 and E5b frequencies
gAGE/UPC
@ J. Sanz & J.M. Juan
131
Research group of Astronomy & Geomatics Technical University of Catalonia
HW1: APC effect on the LI2 combination. Question 1: Study the effect of the Antenna Phase Centre (APC) on the
LI2 combination in order to analyze the elevation dependent pattern seen in previous of LWP2 and HW1 plots for the GPS signals (see [R-1]).
Answer : GNSS signals at different frequencies (e.g., L1, L2, L5) have, in general, different APCs and they can produce an elevation dependent effect in the LI2 combination. Indeed, referring the geometric range to a common reference (the Antenna Reference Point [ARP]) and assuming only APC in the UP component, it follows (see figure):
U
Uk APC(Lk )
' kUP
U
U
Uk
k
'
U k 'U k
where:
'U k
' kUP sin H
Thence, the APC correction to apply to LI2 combination is given by:
¦D k
k
Lk ¦ D k ' kUP sin H k
bias
APC correction term
where the bias term is due to the carrier ambiguities. Note:gAGE/UPC the satellite APC is not considered as the deviation angle from the direction pointing to the Earth centre is less than 14º.
Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
132
HW1: APC effect on the LI2 combination. Question 2: Knowing the L1 and L2 signals APCs, estimate the L5 APC. a) The file l5dt1260.09o has been collected by a TRIMBLE NETR8 receiver with TRM59800.00 antenna. According the ANTEX file igs05_1525.atx the antenna phase centers of L1 and L2 are given by: # TRM59800.00 # G01 # 0.37 # G02 # 0.09
NONE 0.86
90.02
0.01
119.89
TYPE / SERIAL NO START OF FREQUENCY NORTH / EAST / UP START OF FREQUENCY NORTH / EAST / UP
Taking into account previous results, estimate the APC of L5 signal. Note: Neglect the North/East components against the UP component. According previous table Î '1 0.09002m, ' 2 0.11989m UP
UP
gAGE/UPC
@ J. Sanz & J.M. Juan
133
Research group of Astronomy & Geomatics Technical University of Catalonia
HW1: APC effect on the LI2 combination. Answer to Question 2: (Knowing the L1 and L2 APCs, estimate the L5 APC.) The APC of L5 signal, together with the carrier ambiguity (bias), can be estimated from carrier measurements along a continuous data arch (for the three carriers) as follows:
¦D L k
k
' kUP sin H
bias
k
D1 L1 (t ) D 2 L2 (t ) D 5 L5 (t ) (D1'1 D 2 ' 2 ) sin H (t ) bias >D 5 sin H (t ) @ ' 5 UP UP
y (t )
ª y (t1 ) º « # » « » «¬ y (tn ) »¼
y
ª1 D 5 sin H (t1 ) º «# » ªbias º # « » « '5 » «¬1 D 5 sin H (tn ) »¼ ¬ UP ¼
A
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
ªbias º « » ' 5 ¬ UP ¼
UP
A A T
1
y
@ J. Sanz & J.M. Juan
134
HW1: APC effect on the LI2 combination. Numerical application to L1, L2 and L5 signals: 34.084, a3
Applying the values a1 6.287, a2 to previous equation, it follows:
27.797, '1UP
0.09002, ' 2UP
0.11989
6.287 L1 (t ) 34.084 L2 (t ) 27.797 L5 (t ) 43.505sin H (t ) bias > 27.797 sin H (t ) @ ' 5UP
y (t )
ª y (t1 ) º « # » « » «¬ y (tn ) »¼
y
ª1 27.797 sin H (t1 ) º «# » ªbias º # « » « '5 » «¬1 27.797 sin H (tn ) »¼ ¬ UP ¼
A
ªbias º o« » ¬ ' 5UP ¼
A A T
1
y ' 5UP 0.283m bias 5133.1m
Using the L1, L2, L5 values of file l5dt1260.09o in the time interval 30000> sta.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
P.1. Computation of reference values of receiver coordinates
@ J. Sanz & J.M. Juan
11
P. Preliminary computations Toulouse
GARR
INDx PLAN Barcelona
IND1
IND2
IND1-IND2: 7.197 m IND2-IND3: 18.380 m PLAN-GARR: 15.228 km
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
P.1. Computation of reference values of receiver coordinates
IND3
@ J. J. Sanz San Sa S an a nz & J.M. J.M. Juan Jua ua an
12 12
P. Preliminary computations P.1. Computation of reference values of receiver coordinates Plotting results: graph.py -f gLAB.out -x4 -y18 -s.- -c -f gLAB.out -x4 -y19 -s.- -c -f gLAB.out -x4 -y20 -s.- -c --yn -.5 --yx .5 --xl "time
'($1=="OUTPUT")' -l "North error" '($1=="OUTPUT")' -l "East error" '($1=="OUTPUT")' -l "UP error" (s)" --yl "error (m)" -t "PPP"
Note: the values of "APPROXIMATE COORDINATES written in RINEX files correspond to the precise APC of LC coordinates.
As a starting point, assume the same APC for L1 and LC gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
P.1. Computation of reference values of receiver coordinates
@ J. Sanz & J.M. Juan
13
P. Preliminary computations P.1. Computation of reference values of receiver coordinates Plotting results: more sta.pos PLAN GARR IND1 IND2 IND3
4787328.7916 4796983.5170 4787678.1496 4787678.9809 4787689.5146
166086.0719 160309.1774 183409.7131 183402.5915 183392.8859
4197602.8893 4187340.3887 4196172.3056 4196171.6833 4196160.1653
41.418528940 41.292941948 41.403026173 41.403018646 41.402880392
1.986956885 1.914040816 2.193853893 2.193768411 2.193647610
320.0721 634.5682 109.5681 109.5751 109.5743
Question: What is the expected accuracy of the computed coordinates?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
P.1. Computation of reference values of receiver coordinates
@ J. Sanz & J.M. Juan
14
P. Preliminary computations P.1. Computation of reference values of receiver coordinates Using octave (or MATLAB), compute the baseline length between the different receivers:
• Computation example: octave
Results:
IND1=[ 4787678.1496 183409.7131 4196172.3056 ] IND2=[ 4787678.9809 183402.5915 4196171.6833]
IND1-IND2: IND2-IND3: IND1-IND3: PLAN-GARR: PLAN-IND1: IND1-GARR:
norm(IND1-IND2,2) ans = 7.1969 exit
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
P.1. Computation of reference values of receiver coordinates
7.197 m 18.380 m 23.658 m 15.228 km 17.386 km 26.424 km
@ J. Sanz & J.M. Juan
15
P. Preliminary computations P.2. Model Components computation • The script "ObsFile.scr" generates a data file with the following content 1 2 3 4 5 6 7 8 9 10 11 12 13 [sta sat DoY sec P1 L1 P2 L2 Rho Trop Ion elev azim]
• Run this script for all receivers: ObsFile.scr ObsFile.scr ObsFile.scr ObsFile.scr ObsFile.scr
PLAN0540.13O GARR0540.13O IND10540.13O IND20540.13O IND30540.13O
brdc0540.13n brdc0540.13n brdc0540.13n brdc0540.13n brdc0540.13n
• Merge all files into a single file: cat ????.obs > ObsFile.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
P.2. Model components computation
@ J. Sanz & J.M. Juan
16
P. Preliminary computations Selecting measurements: Time interval [14500:16500] • To simplify computations, a time interval with always the same set of satellites in view and without cycle-slips is selected. • Moreover an elevation mask of 10 degrees will be applied. If the satellites change or cycle-slips appear during the data processing interval, care with the associated parameters handling must be taken in the navigation filter. Set up new parameters when new satellites appear and treat the ambiguities as constant between cycle-slips and white noise when a cycle-slip happens.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
P.2. Model components computation
@ J. Sanz & J.M. Juan
17
P. Preliminary computations Selecting measurements: Time interval [14500:16500] • Select the satellites with elevation over 10º in the time interval [14500:16500] cat ObsFile.dat|gawk '{if ($4>=14500 && $410) print $0}' > obs.dat
• Reference satellite (over the time interval [14500:16500]) Confirm that the satellite PRN06 is the satellite with the highest elevation (this satellite will be used as the reference satellite)
obs.dat Î gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
1 2 3 4 5 6 7 8 9 10 11 12 13 [sta sat DoY sec P1 L1 P2 L2 Rho Trop Ion elev azim]
P.2. Model components computation
@ J. Sanz & J.M. Juan
18
OVERVIEW Introduction: gLAB processing in command line Preliminary computations: data files & reference values
¾ Session A: Differential positioning of IND2-IND3 receivers (baseline: 18 metres)
Session B: Differential positioning of IND1-IND2 receivers (baseline: 7 metres, but synchronization errors)
Session C: Differential positioning of PLAN-GARR receivers (baseline: 15 km, Night time): tropospheric effects
Session D: Differential positioning of PLAN-GARR receivers (baseline: 15 km, Day time): tropospheric and Ionospheric effects
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
19
Session A Differential positioning of IND2- IND3 receivers (baseline: 18 metres)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
20
A. IND2- IND3 Differential positioning A.1. Double differences between receivers and satellites computation The script "DDobs.scr" computes the double differences between receivers and satellites from file obs.dat. 1 2 3 4 5 6 7 8 9 10 11 12 13 [sta sat DoY sec P1 L1 P2 L2 Rho Trop Ion elev azim]
For instance, the following sentence: DDobs.scr obs.dat IND2 IND3 06 03 generates the file ------------------- DD_{sta1}_{sta2}_{sat1}_{sat2}.dat ---------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [sta1 sta2 sat1 sat2 DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2] -----------------------------------------------------------------------------------Where the elevation (EL) and azimuth (AZ) are taken from station #2. and where (EL1, AZ1) are for satellite #1 and (EL1, AZ1) are for satellite #2.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1. Double Differences computation
@ J. Sanz & J.M. Juan
21
A. IND2- IND3 Differential positioning Compute the double differences between receivers IND2 (reference) and IND3 and satellites PRN06 (reference) and [PRN 03, 07,11, 16, 18, 19, 21, 22, 30] DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr
obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat
IND2 IND2 IND2 IND2 IND2 IND2 IND2 IND2 IND2
IND3 IND3 IND3 IND3 IND3 IND3 IND3 IND3 IND3
06 06 06 06 06 06 06 06 06
03 07 11 16 18 19 21 22 30
Merge the files in a single file and sort by time:
cat DD_IND2_IND3_06_??.dat|sort -n -k +6 > DD_IND2_IND3_06_ALL.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1. Double Differences computation
@ J. Sanz & J.M. Juan
22
A. IND2- IND3 Differential positioning ----------------------------- DD_IND2_IND3_06_ALL.dat -------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [IND2 IND3 06 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2] ---------------------------------------------------------------------------------
PRN06 (ref)
OUTPUT file
PRNXX
Where the elevation (EL) and azimuth (AZ) are taken from station IND3 (the user) and where, (EL1, AZ1) are for satellite PNR06 (reference) and (EL1, AZ1) are for satellite PRNXX
IND2 (ref) gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1. Double Differences computation
IND3 (user) @ J. Sanz & J.M. Juan
23
A.2. IND2-IND3 Baseline vector estimation with P1 code (using the time-tagged reference station measurements) In this exercise we will considerer an implementation of differential positioning where the user estimates the baseline vector using the time-tagged measurements of the reference station. This approach is usually referred to as relative positioning and can be applied in some applications where the coordinates of the reference station are not accurately known and where the relative position vector between the reference station and the user is the main interest. Examples are formation flying, automatic shipboard landing… Of course, the knowledge of the reference receiver location would allow the user to compute its absolute coordinates. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
24
A.2. IND2-IND3 Baseline vector estimation with P1 code (using the time-tagged reference station measurements)
This is a simple approach, but synchronism delays between the time tag measurements of the reference station and the user must be taken into account for real-time positioning. We will start positioning with the code C1 measurements, which is the simplest approach. Afterwards we will focus on positioning with L1 carrier by floating and fixing ambiguities. As the target is to perform differential positioning with carrier and carrier ambiguity fixing, we will work with double differences of measurements from the beginning (to have integer ambiguities), although these are not needed for code positioning. gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
25
A.2. IND2-IND3 Baseline vector estimation with P1 code (using the time-tagged reference station measurements) Preliminary: Using octave (or MATLAB), and the receiver coordinates estimated before, compute the baseline vector between IND2-IND3. Give the results in the ENU local system (at IND3). IND2=[4787678.9809 183402.5915 4196171.6833] IND3=[4787689.5146 183392.8859 4196160.1653] IND3-IND2 ans= 10.5337
-9.7056 -11.5180
IND3 (lat and long):
l=2.193647610*pi/180 f=41.402880392*pi/180
R=[ -sin(l) -cos(l)*sin(f) cos(l)*cos(f)
gAGE/UPC
cos(l) 0 ; -sin(l)*sin(f) cos(f); sin(l)*cos(f) sin(f)]
bsl_enu=R*(IND3-IND2)'
ans
Research group of Astronomy & Geomatics Technical University of Catalonia
(XYZ)
-10.1017 -15.3551 -0.0008 (ENU)
@ J. Sanz & J.M. Juan
26
From ECEF (x,y,z) to Local (e,n,u) coordinates
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Backup
@ J. Sanz & J.M. Juan
27
A.2. IND2-IND3 Baseline vector estimation with P1 code (using the time-tagged reference station measurements) A.2.1 Estimate the baseline vector between IND2 and IND3 receivers using the code measurements of file (DD_IND2_IND3_06_ALL.dat). Note: Use the entire file (i.e. time interval [14500:16500]).
[DDP1]=[Los_k - Los_06]*[baseline]
Notation ª DDP163 º « 67 » DDP 1 « » » « « 630 » «¬ DDP1 »¼
r { Baseline vector ª ρˆ 3 ρˆ 6 T º « » T DDP1 k j { DDP1(involving satellites j and k ) « ˆ7 ˆ6 » « ρ ρ » r ρˆ k { Line-Of-Sight unit vector to satelite k « » » « k T « ρˆ 30 ρˆ 6 » ρˆ { >cos( Elk )sin( Azk ), cos( Elk ) cos( Azk ), sin( Elk )@ ¬ ¼
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.1. Baseline vector estimation with DDP1 (using with all epochs)
@ J. Sanz & J.M. Juan
28
A.2. IND2-IND3 Baseline vector estimation with P1 code (using the time-tagged reference station measurements) A.2.1 Estimate the baseline vector between IND2 and IND3 receivers using the code measurements of file (DD_IND2_IND3_06_ALL.dat). Note: Use the entire file (i.e. time interval [14500:16500]).
[DDP1]=[Los_k - Los_06]*[baseline]
Notation ª DDP163 º « 67 » DDP 1 « » » « « 630 » «¬ DDP1 »¼
ª ρˆ 3 ρˆ 6 T º « » T « ˆ7 ˆ6 » « ρ ρ » r » « « » T « ρˆ 30 ρˆ 6 » ¬ ¼
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
DDP1 k j { DDP1(involving satellites j and k )
DDP1 k j
DP1,kusrj DP1,krefj
P
j 1,usr
P1,jref
P1,kusr P1,jref P1,kref
Measurements broadcast by the reference station.
A.2.1. Baseline vector estimation with DDP1 (using with all epochs)
@ J. Sanz & J.M. Juan
29
A.2. IND2-IND3 Baseline vector estimation with P1 code (using the time-tagged reference station measurements) A.2.1 Estimate the baseline vector between IND2 and IND3 receivers using the code measurements of file (DD_IND2_IND3_06_ALL.dat). Note: Use the entire file (i.e. time interval [14500:16500]).
[DDP1]=[Los_k-Los_06]*[baseline] PRN06 (ref)
ª DDP163 º « 67 » DDP 1 « » « » « 630 » «¬ DDP1 »¼
ª ρˆ 3 ρˆ 6 T º « » T « ˆ7 ˆ6 » « ρ ρ » r « » « » T 30 6 « ρˆ ρˆ » ¬ ¼
ρˆ j { ª¬cos( El j )sin( Az j ), cos( El j ) cos( Az j ), sin( El j ) º¼
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.1. Baseline vector estimation with DDP1 (using with all epochs)
PRN j
ρˆ 6
ρˆ j
r IND2 (ref)
IND3 (user) @ J. Sanz & J.M. Juan
30
A.2. IND2-IND3 Baseline vector estimation with P1 code (using the time-tagged reference station measurements)
Justify that the next sentence builds the navigation equations system See file content in slide #21
[DDP1]=[Los_k - Los_06]*[baseline]
cat DD_IND2_IND3_06_ALL.dat | gawk 'BEGIN{g2r=atan2(1,1)/45} {e1=$14*g2r;a1=$15*g2r;e2=$16*g2r;a2=$17*g2r; printf "%14.4f %8.4f %8.4f %8.4f \n", $7, -cos(e2)*sin(a2)+cos(e1)*sin(a1), -cos(e2)*cos(a2)+cos(e1)*cos(a1), -sin(e2)+sin(e1)}' > M.dat ª DDP º « » « DDP » « » « 630 » «¬ DDP1 »¼ 63 1 67 1
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
ª ρˆ 3 ρˆ 6 T º « » T « ˆ7 ˆ6 » « ρ ρ » r « » « » « ρˆ 30 ρˆ 6 T » ¬ ¼
[DDP1] ------3.3762 -7.1131 4.3881
[ Los_k - Los_06] -------------------0.3398 -0.1028 0.0714 0.1725 0.5972 0.0691 -0.6374 0.0227 0.2725
ρˆ k { > cos( Elk )sin( Azk ), cos( Elk ) cos( Azk ), sin( Elk ) @ @ J. Sanz & J.M. Juan
31
A.2. IND2-IND3 Baseline vector estimation with P1 code (using the time-tagged reference station measurements) The receiver was not moving (static) during the data collection. Thence, we can merge all the epochs in a single system to compute the static LS solution: T ª DDP16,3 (t1 ) º « » 6,7 « DDP1 (t1 ) » « » « » 6,30 « DDP1 (t1 ) » « » « » « DDP16,3 (tn ) » « » 6,7 « DDP1 (tn ) » « » « » 6,30 «¬ DDP1 (tn ) »¼
ª ρˆ 3 (t ) ρˆ 6 (t ) º 1 1 « » T » « 7 6 « ρˆ (t1 ) ρˆ (t1 ) » « » « » « ρˆ 30 (t ) ρˆ 6 (t ) T » 1 1 « » « » r « » T « ρˆ 3 (tn ) ρˆ 6 (tn ) » « » « ρˆ 7 (t ) ρˆ 6 (t ) T » n n « » « » « » T « ρˆ 30 (tn ) ρˆ 6 (tn ) » ¬ ¼
y=Gx Least Squares Solution
x = (G TG)-1 G T y P = (G TG)-1
gAGE/UPC [DDP1]=[Los_k - Los_06]*[baseline]
Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
32
A.2. IND2-IND3 Baseline vector estimation with P1 code (using the time-tagged reference station measurements) Solve the equations system using octave (or MATLAB) and assess the estimation error: octave load M.dat
bsl_enu =[-10.1017 -15.3551 -0.0008]
y=M(:,1); G=M(:,2:4);
Estimation error:
x=inv(G'*G)*G'*y x(1:3)' -10.2909 -15.3856 -0.6511
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
x(1:3)-bsl_enu' -0.1891639885218108 -0.0304617199913011 -0.6502684114849081
A.2.1. Baseline vector estimation with DDP1 (using all epochs)
@ J. Sanz & J.M. Juan
33
A.2. IND2-IND3 Baseline vector estimation with P1 code (using the time-tagged reference station measurements) A.2.2. Repeat the previous computation, but using just the two epochs: t1=14500 and t2=14515. • Selecting the two epochs: cat DD_IND2_IND3_06_ALL.dat|gawk '{if ($6==14500||$6==14515) print $0}‘ >tmp.dat
• Building the equations system: cat tmp.dat | gawk 'BEGIN{g2r=atan2(1,1)/45} {e1=$14*g2r;a1=$15*g2r;e2=$16*g2r;a2=$17*g2r; printf "%14.4f %8.4f %8.4f %8.4f \n", $7, -cos(e2)*sin(a2)+cos(e1)*sin(a1), -cos(e2)*cos(a2)+cos(e1)*cos(a1), -sin(e2)+sin(e1)}' > M.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.1. Baseline vector estimation with DDP1 (using all epochs)
@ J. Sanz & J.M. Juan
34
A.2. IND2-IND3 Baseline vector estimation with P1 code (using the time-tagged reference station measurements) Solving the equations system using octave (or MATLAB) and assessing the estimation error: octave load M.dat bsl_enu =[-10.1017 -15.3551 -0.0008]
y=M(:,1); G=M(:,2:4); x=inv(G'*G)*G'*y x(1:3)' -10.9525 -14.7363
-1.7780
x(1:3)-bsl_enu' -0.850763748698302 0.618803236835673 -1.777167174810606
Questions: 1.- What is the level of accuracy? 2.- Why does the solution degrade when taking only two epochs?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.2.1. Baseline vector estimation with DDP1 (using with all epochs)
@ J. Sanz & J.M. Juan
35
A.3. IND2-IND3 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) A.3.1 Estimate the baseline vector between IND2 and IND3 receivers using the L1 carrier measurements of file (DD_IND2_IND3_06_ALL.dat). Consider only the two epochs used in the previous exercise: t1=14500 and t2=14515
The following procedure can be applied: 1. Compute the FLOATED solution, solving the equations system with octave. Assess the accuracy of the floated solution. 2. Apply the LAMBDA method to FIX the ambiguities. Compare the results with the solution obtained by rounding directly the floated solution and by rounding the solution after decorrelation. 3. Repair the DDL1 carrier measurements with the DDN1 FIXED ambiguities and plot results to analyze the data. 4. Compute the FIXED solution.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.3.1. Baseline vector estimation with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
36
A.3. IND2-IND3 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) A.3.1 Estimate the baseline vector between IND2 and IND3 receivers using the L1 carrier measurements of file (DD_IND2_IND3_06_ALL.dat).
[DDL1]= [Los_k - Los_06]*[baseline] + [ A ]*[lambda1*DDN1]
Notation (for each epoch t) ª ρˆ ρˆ º ª DDL º « ª1 0 » « » « «0 1 » ˆ ˆ DDL ρ ρ « » « »r « 6,3 1 6,7 1
« » « 6,30 » ¬« DDL1 ¼»
3
6 T
7
6 T
« » « » T 30 6 « ρˆ ρˆ » ¬ ¼
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
« « ¬0 0
0 º ª O1 DDN º » « 0 »» « O1 DDN » » »« » »« 1 ¼ ¬« O1 DDN16,30 ¼» 6,3 1 6,7 1
0
A.3.1. Baseline vector estimation with DDL1 (using only two epochs)
y=Gx Where the vector of unknowns x includes the user coordinates and ambiguities
@ J. Sanz & J.M. Juan
37
A.3. IND2-IND3 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) The receiver was not moving (static) during the data collection. Therefore, for each epoch we have the equations system: ª DDL (t1 ) º « » « DDL (t1 ) » » « » « 6,30 «¬ DDL1 (t1 ) »¼
ª ρˆ 3 (t ) ρˆ 6 (t ) T º 1 1 ª1 0 « » T » « « ˆ7 6 0 1 « ρ (t1 ) ρˆ (t1 ) » r « « » « « « » ¬0 0 « ρˆ 30 (t ) ρˆ 6 (t ) T » 1 1 ¬ ¼
ª DDL (t2 ) º « » « DDL (t2 ) » » « » « 6,30 «¬ DDL1 (t2 ) »¼
ª ρˆ 3 (t ) ρˆ 6 (t ) T º 2 2 ª1 0 « » T » «0 1 « ˆ7 6 « ρ (t2 ) ρˆ (t2 ) » r « « » « « « » ¬0 0 « ρˆ 30 (t ) ρˆ 6 (t ) T » 2 2 ¬ ¼
6,3 1 6,7 1
6,3 1 6,7 1
0
0 º ª O1 DDN16,3 º « » 0 »» « O1 DDN16,7 » » »« »« 6,30 » 1 ¼ «¬ O1 DDN1 »¼
0
0 º ª O1 DDN16,3 º « » 0 »» « O1 DDN16,7 » » »« » »« 1 ¼ «¬ O1 DDN16,30 »¼
y1 = G1 x y1:=y[t1] G1:=G[t1]
y2 = G2 x y2:=y[t2] G2:=G[t2]
gAGE/UPC [DDL1]=[Los_k - Los_06]*[baseline] + [ A ]*[lambda1*DDN1]
Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
38
A.3. IND2-IND3 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) In the previous computation we have not taken into account the correlations between the double differences of measurements. This matrix will be used now, as the LAMBDA method will be applied to FIX the carrier ambiguities. P
y
a) Show that the covariance matrix of DDL1 is given by Py
ª2 1 « 2 2 «1 2V « « ¬1 1
1
1º 1 »» » » 2¼
b) Given the measurement vectors (y) and Geometry matrices (G) for two epochs y1:=y[t1] ; G1:=G[t1] ; Py y2:=y[t2] ; G2:=G[t2] ; Py show that the user solution and covariance matrix can be computed as: P=inv(G1'*W*G1+G2'*W*G2);
y = G x; W = Py-1 T
-1
T
x = (G WG) G Wy
P = gAGE/UPC (G T WG)-1 Research group of Astronomy & Geomatics Technical University of Catalonia
where: W=inv(Py)
x=P*(G1'*W*y1+G2'*W*y2) ;
A.3.1. Baseline vector estimation with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
39
A.3. IND2-IND3 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) The script MakeL1BslMat.scr builds the equations system [DDL1]=[ Los_k- Los_06]*[baseline] + [ A ]*[O1*DDN1] for the two epochs required t1=14500 and t2=14515, using the input file DD_IND2_IND3_06_ALL.dat generated before.
Execute:
MakeL1BslMat.scr DD_IND2_IND3_06_ALL.dat 14500 14515 The OUTPUT are the files M1.dat and M2.dat associated with each epoch. Where: the columns of files M.dat are the vector y (first column) and Matrix G (next columns)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.3.1. Baseline vector estimation with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
40
A.3. IND2-IND3 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) 1. Computing the FLOATED solution (solving the equations system). The following procedure can be applied
octave
P=inv(G1'*W*G1+G2'*W*G2); x=P*(G1'*W*y1+G2'*W*y2);
load M1.dat load M2.dat
x(1:3)' -8.9463
y1=M1(:,1); G1=M1(:,2:11); y2=M2(:,1); G2=M2(:,2:11); Py=(diag(ones(1,7))+ones(7))*2e-4; W=inv(Py);
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-15.9102
-0.78636
bsl_enu =[-10.1017 -15.3551 -0.0008] x(1:3)'-bsl_enu ans= 1.1554 -0.555 -0.78556
A.3.1. Baseline vector estimation with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
41
A.3. IND2-IND3 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) 2. Applying the LAMBDA method to FIX the ambiguities. The following procedure can be applied (justify the computations done) Compare the different results found:
Decorrelation and integer LS search solution
octave
[Qz,Zt,Lz,Dz,az,iZ] = decorrel (Q,a); [azfixed,sqnorm] = lsearch (az,Lz,Dz,2); afixed=iZ*azfixed; sqnorm(2)/sqnorm(1) ans = 3.31968973623500 afixed(:,1)' -8 20 -9 -8 -10 0 -8
c=299792458; f0=10.23e+6; f1=154*f0; lambda1=c/f1 a=x(4:10)/lambda1; Q=P(4:10,4:10);
Rounding directly the floated solution
Rounding the decorrelated floated solution
round(a)' -10 21
afix=iZ*round(az); -8 20 -9 -8 -10
-4
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-11
-4
5
-3
A.3.1. Baseline vector estimation with DDL1 (using only two epochs)
0
-8
@ J. Sanz & J.M. Juan
42
A.3. IND2-IND3 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) 3. Repair the DDL1 carrier measurements with the DDN1 FIXED ambiguities and plot results to analyze the data. octave amb=lambda1*afixed(:,1); save ambL1.dat amb
Using the previous file ambL1.dat and "DD_IND2_IND3_06_ALL.dat", generate a file with the following content: ----------------------------- DD_IND2_IND3_06_ALL.fixL1 --------------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [IND2 IND3 06 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 O DDN1] ------------------------------------------------------------------------------------------
Note: This file is identical to file "DD_IND2_IND3_06_ALL.dat", but with the ambiguities added in the last field #18.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.3.1. Baseline vector estimation with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
43
A.3. IND2-IND3 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) a) Generate a file with the satellite PRN number and the ambiguities: grep -v \# ambL1.dat > na1 cat DD_IND2_IND3_06_ALL.dat|gawk '{print $4}'|sort -nu|gawk '{print $1,NR}’ >sat.lst paste sat.lst na1 > sat.ambL1
b) Generate the "DD_IND2_IND3_06_ALL.fixL1" file: cat DD_IND2_IND3_06_ALL.dat| gawk 'BEGIN{for (i=1;i cos( Elk )sin( Azk ) cos( Elk ) cos( Azk ) sin( Elk ) @
A.5.1. Differential positioning with DDP1 (using with all epochs)
@ J. Sanz & J.M. Juan
64
A.5. IND2-IND3 differential positioning with P1 code (using the computed differential corrections) A.5.1 Using code DDP1 measurements, estimate the coordinates of receiver IND3 taking IND2 as a reference receiver. Justify that the associated equations system is given by:
[DDP1-DDRho]=[Los_k - Los_06]*[dr]
Notation ª DDP DD U º « 6,7 » « DDP DD U » « » « 6,30 6,30 » «¬ DDP1 DD U »¼ 6,3 1 6,7 1
6,3
DDP1 k j { DDP1(involving satellites j and k )
k j DDP1 k j DD U k j D P1,kusrj Uusr D P1,krefj Urefk j ª ρˆ 3 ρˆ 6 T º « » k ª P1,jusr Uusrj P1,kusr Uusr º ª P1,jref Urefj P1,kref Urefk º « ˆ7 ˆ6 T » ρ ρ ¬ ¼ ¬ ¼ » dr « « » « » Computed corrections « ρˆ 30 ρˆ 6 T » j j j PRC1 { P1,ref U ref broadcast by the ¬ ¼
reference station.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.5.1. Differential positioning with DDP1 (using with all epochs)
@ J. Sanz & J.M. Juan
65
A.5. IND2-IND3 differential positioning with P1 code (using the computed differential corrections) A.5.1 Using code DDP1 measurements, estimate the coordinates of receiver IND3 taking IND2 as a reference receiver. Note: Use the entire file (i.e. time interval [14500:16500]).
[DDP1-DDRho]=[Los_k-Los_06]*[dr] ª DDP DD U º « 6,7 » « DDP DD U » « » « 6,30 6,30 » ¬« DDP1 DD U ¼» 6,3 1 6,7 1
6,3
ª ρˆ 3 ρˆ 6 T º « » T « ˆ7 ˆ6 » « ρ ρ » dr » « « » « ρˆ 30 ρˆ 6 T » ¬ ¼
ρˆ j { ª¬cos( El j )sin( Az j ), cos( El j ) cos( Az j ), sin( El j ) º¼
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
PRN06 (ref)
PRN j
ρˆ j
ρˆ 6
dr rIND3 - r0,IND3 IND2 (ref)
A.5.1. Differential positioning with DDP1 (using with all epochs)
IND3 (user) @ J. Sanz & J.M. Juan
66
A.5. IND2-IND3 differential positioning with P1 code (using the computed differential corrections) Justify that the next sentence builds the navigation equations system See file content in slide #21
[DDP1-DDRho]=[Los_k - Los_06]*[dr]
cat DD_IND2_IND3_06_ALL.dat | gawk 'BEGIN{g2r=atan2(1,1)/45} {e1=$14*g2r;a1=$15*g2r;e2=$16*g2r;a2=$17*g2r; printf "%14.4f %8.4f %8.4f %8.4f \n", $7-$11, -cos(e2)*sin(a2)+cos(e1)*sin(a1), -cos(e2)*cos(a2)+cos(e1)*cos(a1), -sin(e2)+sin(e1)}' > M.dat ª DDP DD U º « 6,7 » « DDP DD U » « » « 6,30 6,30 » ¬« DDP1 DD U ¼» 6,3 1 6,7 1
6,3
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
ª ρˆ 3 ρˆ 6 T º « » « ˆ7 ˆ6 T » « ρ ρ » dr » « » « « ρˆ 30 ρˆ 6 T » ¬ ¼
[DDP1-DDRho] [Los_k - Los_REF] -------------------------3.3762 0.3398 -0.1028 0.0714 -7.1131 0.1725 0.5972 0.0691 4.3881 -0.6374 0.0227 0.2725
ρˆ k { > cos( Elk )sin( Azk ) cos( Elk ) cos( Azk ) sin( Elk ) @
@ J. Sanz & J.M. Juan
67
A.5. IND2-IND3 differential positioning with P1 code (using the computed differential corrections) The receiver was not moving (static) during the data collection. Therefore, we can merge all the epochs in a single system to compute the static LS solution: T ª DDP16,3 (t1 ) DD U 6,3 (t1 ) º « » 6,7 6,7 « DDP1 (t1 ) DD U (t1 ) » « » « » 6,30 6,30 « DDP1 (t1 ) DD U (t1 ) » « » « » « DDP16,3 (tn ) DD U 6,3 (t1 ) » « » 6,7 6,7 « DDP1 (tn ) DD U (t1 ) » « » « » 6,30 6,30 «¬ DDP1 (tn ) DD U (t1 ) »¼
ª ρˆ 3 (t ) ρˆ 6 (t ) º 1 1 « » T » « 7 6 « ρˆ (t1 ) ρˆ (t1 ) » « » « » « ρˆ 30 (t ) ρˆ 6 (t ) T » 1 1 « » « » dr « » T « ρˆ 3 (tn ) ρˆ 6 (tn ) » « » « ρˆ 7 (t ) ρˆ 6 (t ) T » n n « » « » « » T « ρˆ 30 (tn ) ρˆ 6 (tn ) » ¬ ¼
y=Gx Least Squares Solution
x = (G TG)-1 G T y P = (G TG)-1
gAGE/UPC [DDPL1]=[Los_k - Los_06]*[baseline]
Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
68
A.5. IND2-IND3 differential positioning with P1 code (using the computed differential corrections) Solve the equations system using octave (or MATLAB) and assess the estimation error: octave
Absolute coordinates of IND3.
load M.dat
Taking into account that the ”a priori” coordinates of IND3 are: IND3=[4787689.5146 183392.8859 4196160.1653 ]
y=M(:,1); G=M(:,2:4); x=inv(G'*G)*G'*y x' -0.1892 -0.0305
-0.6504
Therefore the estimated absolute coordinates of IND3 are: IND3+ x(1:3)' ans= 4787689.3254 183392.8554 4196159.5149
Note: as we have used the true coordinates of IND3 as the ”a priori” to linerize the model, the vector x provides the estimation error directly.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.5.1. Differential positioning with DDP1 (using with all epochs)
@ J. Sanz & J.M. Juan
69
A.5. IND2-IND3 differential positioning with P1 code (using the computed differential corrections) A.5.2. Repeat the previous computation, but using just the two epochs: t1=14500 and t2=14515. • Selecting the two epochs: cat DD_IND2_IND3_06_ALL.dat|gawk '{if ($6==14500||$6==14515) print $0}‘ >tmp.dat
• Building the equations system: cat tmp.dat | gawk 'BEGIN{g2r=atan2(1,1)/45} {e1=$14*g2r;a1=$15*g2r;e2=$16*g2r;a2=$17*g2r; printf "%14.4f %8.4f %8.4f %8.4f \n", $7-$11, -cos(e2)*sin(a2)+cos(e1)*sin(a1), -cos(e2)*cos(a2)+cos(e1)*cos(a1),-sin(e2)+sin(e1)}' > M.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.5.2. Estimate baseline vector with DDP1 (using only two epochs)
@ J. Sanz & J.M. Juan
70
A.5. IND2-IND3 differential positioning with P1 code (using the computed differential corrections) Solve the equations system using octave (or MATLAB) and assess the estimation error: octave
Absolute coordinates of IND3.
load M.dat
Taking into account that the ”a priory” coordinates of IND3 are: IND3=[4787689.5146 183392.8859 4196160.1653 ]
y=M(:,1); G=M(:,2:4); x=inv(G'*G)*G'*y x(1:3)' -0.8509 0.6190 -1.7783
Thence the estimated absolute coordinates of IND3 are: IND3+ x(1:3)' ans= 4787688.6637 183393.5049 4196158.3870
Questions: What is the level of accuracy? Why does the solution degrade when taking only two epochs?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.5.2. Differential positioning with DDP1 (using with all epochs)
@ J. Sanz & J.M. Juan
71
A.6. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections) A.6.1 Using DDL1 carrier measurements, estimate the coordinates of receiver IND3 taking IND2 as a reference receiver. Consider only the two epochs used in the previous exercise: t1=14500 and t2=14515.
The following procedure can be applied: 1. Compute the FLOATED solution, solving the equations system with octave. Assess the accuracy of the floated solution. 2. Apply the LAMBDA method to FIX the ambiguities. Compare the results with the solution obtained by rounding directly the floated solution and by rounding the solution after decorrelation. 3. Repair the DDL1 carrier measurements with the DDN1 FIXED ambiguities and plot results to analyze the data. 4. Compute the FIXED solution.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.6.1. Estimate IND3 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
72
A.6. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections) A.6.1 Estimate the coordinates of receiver IND3 taking IND2 as reference receiver, using the L1 carrier measurements of file (DD_IND2_IND3_06_ALL.dat)
[DDL1-DDRho]= [Los_k - Los_06]*[dr] + [ A ]*[lambda1*DDN1]
Notation ª DDL DD U º « 6,7 » DDL DD U « » » « « 6,30 6,30 » ¬« DDL1 DD U ¼» 6,3 1 6,7 1
6,3
ª ρˆ 3 ρˆ 6 T º ª1 0 « » T «0 1 « ˆ7 ˆ6 » « ρ ρ » dr « « « » « « » T ¬0 0 30 6 « ρˆ ρˆ » ¬ ¼
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
y=Gx
0 º ª O1 DDN º « » 0 »» « O1 DDN » Where the vector of » »« » unknowns x includes »« 1 ¼ ¬« O1 DDN16,30 ¼» the user coordinates 6,3 1 6,7 1
0
and ambiguities
A.6.1. Estimate IND3 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
73
A.6. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections) The receiver was not moving (static) during the data collection. Thence, for each epoch we have the equations system: ª DDL16,3 (t1 ) DD U 6,3 (t1 ) º « » 6,7 6,7 « DDL1 (t1 ) DD U (t1 ) » « » « » 6,30 6,30 ¬« DDL1 (t1 ) DD U (t1 ) ¼»
ª ρˆ 3 (t ) ρˆ 6 (t ) T º 1 1 ª1 0 « » T » «0 1 « ˆ7 6 « ρ (t1 ) ρˆ (t1 ) » dr « « » « « » « ¬0 0 « ρˆ 30 (t ) ρˆ 6 (t ) T » 1 1 ¬ ¼
ª DDL16,3 (t2 ) DD U 6,3 (t2 ) º « » 6,7 6,7 « DDL1 (t2 ) DD U (t2 ) » « » « » 6,30 6,30 ¬« DDL1 (t2 ) DD U (t2 ) ¼»
ª ρˆ 3 (t ) ρˆ 6 (t ) T º 2 2 ª1 0 « » T » «0 1 « ˆ7 6 « ρ (t2 ) ρˆ (t2 ) » dr « « « » « « » ¬0 0 « ρˆ 30 (t ) ρˆ 6 (t ) T » 2 2 ¬ ¼
0
0 º ª O1 DDN16,3 º « » 0 »» « O1 DDN16 ,7 » » »« »« 6,30 » 1 ¼ ¬« O1 DDN1 ¼»
0
0 º ª O1 DDN16,3 º « » 0 »» « O1 DDN16 ,7 » » »« »« 6,30 » 1 ¼ ¬« O1 DDN1 ¼»
y1 = G1 x y1:=y[t1] G1:=G[t1]
y2 = G2 x y2:=y[t2] G2:=G[t2]
gAGE/UPC [DDL1-DDRho]=[Los_k - Los_06]*[dr] + [ A ]*[lambda1*DDN1]
Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
74
A.6. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections) In the previous computation we have not taken into account the correlations between the double differences of measurements. This matrix will be used now, as the LAMBDA method will be applied to FIX the carrier ambiguities. P
y
a) Show that the covariance matrix of DDL1 is given by Py
ª2 1 « 2 2 «1 2V « « ¬1 1
1
1º 1 »» » » 2¼
b) Given the measurement vectors (y) and Geometry matrices (G) for two epochs y1:=y[t1] ; G1:=G[t1] ; Py y2:=y[t2] ; G2:=G[t2] ; Py show that the user solution and covariance matrix can be computed as: P=inv(G1'*W*G1+G2'*W*G2);
y = G x; W = Py-1 T
-1
T
x = (G WG) G Wy
P = gAGE/UPC (G T WG)-1 Research group of Astronomy & Geomatics Technical University of Catalonia
where: W=inv(Py)
x=P*(G1'*W*y1+G2'*W*y2) ;
A.6.1. Estimate IND3 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
75
A.6. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections) The script MakeL1DifMat.scr builds the equations system [DDL1-DDRho]=[ Los_k- Los_06]*[dr] + [ A ]*[O1*DDN1] for the two epochs required t1=14500 and t2=14515, using the input file DD_IND2_IND3_06_ALL.dat generated before.
Execute:
MakeL1DifMat.scr DD_IND2_IND3_06_ALL.dat 14500 14515 The OUTPUT are the files M1.dat and M2.dat associated with each epoch. Where: the columns of files M.dat are the vector y (first column) and Matrix G (next columns)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.6.1. Estimate IND3 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
76
A.6. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections) 1. Computing the FLOATED solution (solving the equations system). The following procedure can be applied P=inv(G1'*W*G1+G2'*W*G2); x=P*(G1'*W*y1+G2'*W*y2);
octave load M1.dat load M2.dat
x(1:3)' 0.9484 -0.3299
y1=M1(:,1); G1=M1(:,2:11);
Taking into account that the ”a priori” coordinates of IND3 are: IND3=[4787689.5146 183392.8859 4196160.1653]
y2=M2(:,1); G2=M2(:,2:11); Py=(diag(ones(1,7))+ones(7))*2e-4; W=inv(Py);
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-0.8996
Thence the estimated absolute coordinates of IND3 are: IND3+ x(1:3)' 4787690.4630 183392.5560 4196159.2657
A.6.1. Estimate IND3 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
77
A.6. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections) 2. Applying the LAMBDA method to FIX the ambiguities. Compare the results with the solution obtained by rounding the floated solution. The following procedure can be applied (justify the computations done) Decorrelation and integer LS search solution
octave
[Qz,Zt,Lz,Dz,az,iZ] = decorrel (Q,a); [azfixed,sqnorm] = lsearch (az,Lz,Dz,2); afixed=iZ*azfixed; sqnorm(2)/sqnorm(1) ans = 4.43344394778937 afixed(:,1)' -8 20 -9 -8 -10 0 -8
c=299792458; f0=10.23e+6; f1=154*f0; lambda1=c/f1 a=x(4:10)/lambda1; Q=P(4:10,4:10);
Rounding directly the floated solution
Rounding the decorrelated floated solution
round(a)' -10 20
afix=iZ*round(az); -8 20 -9 -8 -10
-4
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-10
-5
4
-4
A.6.1. Estimate IND3 coordinates with DDL1 (using only two epochs)
0
-8
@ J. Sanz & J.M. Juan
78
A.6. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections)
Questions: 1. - Can the ambiguities be well fixed? 2. - Has the reliability improved? Why? 3. - The values found for the ambiguities are the same than in the previous case?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.6.1. Estimate IND3 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
79
A.6. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections) 3. Repair the DDL1 carrier measurements with the DDN1 FIXED ambiguities and plot results to analyze the data. octave amb=lambda1*afixed(:,1); save ambL1.dat amb
Using the previous file ambL1.dat and "DD_IND2_IND3_06_ALL.dat", generate a file with the following content: ----------------------------- DD_IND2_IND3_06_ALL.fixL1 --------------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [IND2 IND3 06 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 O DDN1] ------------------------------------------------------------------------------------------
Note: This file is identical to file "DD_IND2_IND3_06_ALL.dat", but with the ambiguities added in the last field #18.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.6.1. Estimate IND3 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
80
A.6. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections) a) Generate a file with the satellite PRN number and the ambiguities: grep -v \# ambL1.dat > na1 cat DD_IND2_IND3_06_ALL.dat|gawk '{print $4}'|sort -nu|gawk '{print $1,NR}’ >sat.lst paste sat.lst na1 > sat.ambL1
b) Generate the "DD_IND2_IND3_06_ALL.fixL1" file: cat DD_IND2_IND3_06_ALL.dat| gawk 'BEGIN{for (i=1;i L1fix.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.6.2. Estimate IND3 coordinates with DDL1 (single epoch LS, whole interval)
@ J. Sanz & J.M. Juan
85
A.6. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections) Plot the baseline estimation error graph.py -f L1fix.pos -x1 –y2 -f L1fix.pos -x1 –y3 -f L1fix.pos -x1 –y4 --yn -.1 --yx .1 --xl "time L1 ambiguities fixed”
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-s.-s.-s.(s)"
-l "North error" -l "East error" -l "UP error" --yl "error (m)" -t “IND2-IND3: 18.38m:
A.6.2. Estimate IND3 coordinates with DDL1 (single epoch LS, whole interval)
@ J. Sanz & J.M. Juan
86
A.6. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections)
Differential Positioning error after fixing ambiguities Question: compare this plot with that obtained previously when estimating the baseline from the timetagged measurements. Are the errors similar?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.6.2. Estimate IND3 coordinates with DDL1 (single epoch LS, whole interval)
@ J. Sanz & J.M. Juan
87
OVERVIEW Introduction: gLAB processing in command line
Preliminary computations: data files & reference values Session A: Differential positioning of IND2-IND3 receivers (baseline: 18 metres)
¾ Session B: Differential positioning of IND1-IND2 receivers (baseline: 7 metres, but synchronization errors)
Session C: Differential positioning of PLAN-GARR receivers (baseline: 15 km, Night time): tropospheric effects
Session D: Differential positioning of PLAN-GARR receivers (baseline: 15 km, Day time): tropospheric and Ionospheric effects
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
88
Session B Differential positioning of IND1- IND2 receivers (baseline 7 metres and not synchronised receivers)
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
89
B. Differential positioning of IND1- IND2 receivers The same exercises as in previous session will be repeated here for IND1 and IND2 receivers. These receivers are located in the same environment as IND2 and IND3 and the baseline is even shorter (7 metres, instead of 18 metres). The main difference in the receiver clock offset: • The receivers IND2 and IND3 apply clock steering and have a very short clock offset (just a tenth of nanoseconds), while the receiver IND1 has a large clock offset drift, accumulating up to 1 ms. • The effect of the synchronization errors on the two different implementations of differential positioning used in the previous session is one of the targets of this laboratory session.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
IND1 IND2
IND3
IND1-IND2: IND2-IND3:
90 90
7.197 m 18.380 m @ J. Sanz & J.M. Juan
90
B. IND1- IND2 Differential positioning B.1. Double differences between receivers and satellites computation The script "DDobs.scr" computes double differences between receivers and satellites from file obs.dat. 1 2 3 4 5 6 7 8 9 10 11 12 13 [sta sat DoY sec P1 L1 P2 L2 Rho Trop Ion elev azim]
For instance, the following sentence: DDobs.scr obs.dat IND1 IND2 06 03 generates the file ------------------- DD_{sta1}_{sta2}_{sat1}_{sat2}.dat ---------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [sta1 sta2 sat1 sat2 DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2] -----------------------------------------------------------------------------------Where the elevation (EL) and azimuth (AZ) are taken from station #2. and where (EL1, AZ1) are for satellite #1 and (EL1, AZ1) are for satellite #2.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.1. Double Differences computation
@ J. Sanz & J.M. Juan
91
B. IND1- IND2 Differential positioning Compute the double differences between receivers IND1 (reference) and IND2 and satellites PRN06 (reference) and [PRN 03, 07,11, 16, 18, 19, 21, 22, 30] DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr
obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat
IND1 IND1 IND1 IND1 IND1 IND1 IND1 IND1 IND1
IND2 IND2 IND2 IND2 IND2 IND2 IND2 IND2 IND2
06 06 06 06 06 06 06 06 06
03 07 11 16 18 19 21 22 30
Merge the files in a single file and sort by time:
cat DD_IND1_IND2_06_??.dat|sort -n -k +6 > DD_IND1_IND2_06_ALL.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.1. Double Differences computation
@ J. Sanz & J.M. Juan
92
B. IND1- IND2 Differential positioning ----------------------------- DD_IND1_IND2_06_ALL.dat -------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [IND1 IND2 06 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2] ---------------------------------------------------------------------------------
PRN06 (ref)
OUTPUT file
PRN j
Where the elevation (EL) and azimuth (AZ) are taken from station IND2 (the user) and where (EL1, AZ1) are for satellite PNR06 (reference) and (EL1, AZ1) are for satellite PRNXX
IND1 (ref) gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
IND2 (user)
B.1. Double Differences computation
@ J. Sanz & J.M. Juan
93
B.2. IND1-IND2 Baseline vector estimation with P1 code (using the time-tagged reference station measurements) Preliminary: Using octave (or MATLAB), and the receiver coordinates estimated before, compute the baseline vector between IND1-IND2. Give the results in the ENU local system (at IND2). IND1=[4787678.1496 183409.7131 4196172.3056] IND2=[4787678.9809 183402.5915 4196171.6833] IND2-IND1 ans= 0.8313 -7.1216 -0.6223
IND2 (lat and long):
l= 2.193768411 *pi/180 f= 41.403018646 *pi/180
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
(XYZ)
R=[ -sin(l) -cos(l)*sin(f) cos(l)*cos(f)
cos(l) 0 ; -sin(l)*sin(f) cos(f); sin(l)*cos(f) sin(f)]
bsl_enu=R*(IND2-IND1)'
ans -7.1482 -0.8359 0.0070 (ENU)
@ J. Sanz & J.M. Juan
94
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) B.3.1 Estimate the baseline vector between IND1 and IND2 receivers using the L1 carrier measurements of file (DD_IND1_IND2_06_ALL.dat). Consider only the two epochs used in the previous exercise: t1=14500 and t2=14515
The following procedure can be applied: 1. Compute the FLOATED solution, solving the equations system with octave. Assess the accuracy of the floated solution. 2. Apply the LAMBDA method to FIX the ambiguities. Compare the results with the solution obtained by rounding directly the floated solution and by rounding the solution after decorrelation. 3. Repair the DDL1 carrier measurements with the DDN1 FIXED ambiguities and plot results to analyze the data. 4. Compute the FIXED solution.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.1. Baseline vector estimation with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
95
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) B.3.1 Estimate the baseline vector between IND1 and IND2 receivers using the L1 carrier measurements of file (DD_IND1_IND2_06_ALL.dat).
[DDL1]= [Los_k - Los_06]*[baseline] + [ A ]*[lambda1*DDN1]
Notation ª DDL º « » « DDL » « » « 6,30 » ¬« DDL1 ¼» 6,3 1 6,7 1
ª ρˆ 3 ρˆ 6 T º ª1 0 « » T «0 1 « ˆ7 ˆ6 » ρ ρ « »r « « « » « « » T ¬0 0 30 6 « ρˆ ρˆ » ¬ ¼
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
0 º ª O1 DDN º « » 0 »» « O1 DDN » » »« » »« 1 ¼ ¬« O1 DDN16,30 ¼» 6,3 1 6,7 1
0
B.3.1. Baseline vector estimation with DDL1 (using only two epochs)
y=Gx Where the vector of unknowns x includes the user coordinates and ambiguities
@ J. Sanz & J.M. Juan
96
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) The receiver was not moving (static) during the data collection. Therefore, for each epoch we have the equations system: ª DDL (t1 ) º « » « DDL (t1 ) » » « » « 6,30 «¬ DDL1 (t1 ) »¼
ª ρˆ 3 (t ) ρˆ 6 (t ) T º 1 1 ª1 0 « » T » « « ˆ7 6 0 1 « ρ (t1 ) ρˆ (t1 ) » r « « « » « « » ¬0 0 « ρˆ 30 (t ) ρˆ 6 (t ) T » 1 1 ¬ ¼
ª DDL (t2 ) º « » « DDL (t2 ) » » « » « 6,30 ¬« DDL1 (t2 ) ¼»
ª ρˆ 3 (t ) ρˆ 6 (t ) T º 2 2 ª1 0 « » T «0 1 « ˆ7 » 6 « ρ (t2 ) ρˆ (t2 ) » r « « » « « « » ¬0 0 « ρˆ 30 (t ) ρˆ 6 (t ) T » 2 2 ¬ ¼
6,3 1 6,7 1
6,3 1 6,7 1
0
0 º ª O1 DDN16,3 º » « 0 »» « O1 DDN16,7 » » »« » »« 1 ¼ «¬ O1 DDN16,30 »¼
0
0 º ª O1 DDN16,3 º » « 0 »» « O1 DDN16,7 » » »« » »« 1 ¼ ¬« O1 DDN16,30 ¼»
y1 = G1 x y1:=y[t1] G1:=G[t1]
y2 = G2 x y2:=y[t2] G2:=G[t2]
gAGE/UPC [DDL1]=[Los_k - Los_06]*[baseline] + [ A ]*[lambda1*DDN1] @ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
97
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) In the previous computation we have not taken into account the correlations between the double differences of measurements. This matrix will be used now, as the LAMBDA method will be applied to FIX the carrier ambiguities. P
y
a) Show that the covariance matrix of DDL1 is given by Py
ª2 1 « 2 2 «1 2V « « ¬1 1
1
1º 1 »» » » 2¼
b) Given the measurement vectors (y) and Geometry matrices (G) for two epochs y1:=y[t1] ; G1:=G[t1] ; Py y2:=y[t2] ; G2:=G[t2] ; Py show that the user solution and covariance matrix can be computed as: P=inv(G1'*W*G1+G2'*W*G2);
y = G x; W = Py-1 T
-1
T
x = (G WG) G Wy
P = gAGE/UPC (G T WG)-1 Research group of Astronomy & Geomatics Technical University of Catalonia
where: W=inv(Py)
x=P*(G1'*W*y1+G2'*W*y2) ;
B.3.1. Baseline vector estimation with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
98
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) The script MakeL1BslMat.scr builds the equations system [DDL1]=[ Los_k- Los_06]*[baseline] + [ A ]*[O1*DDN1] for the two epochs required t1=14500 and t2=14515, using the input file DD_IND1_IND2_06_ALL.dat generated before.
Execute:
MakeL1BslMat.scr DD_IND1_IND2_06_ALL.dat 14500 14515 The OUTPUT are the files M1.dat and M2.dat associated with each epoch. Where: the columns of files M.dat are the vector y (first column) and Matrix G (next columns)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.1. Baseline vector estimation with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
99
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) 1. Computing the FLOATED solution (solving the equations system). The following procedure can be applied
octave
P=inv(G1'*W*G1+G2'*W*G2); x=P*(G1'*W*y1+G2'*W*y2);
load M1.dat load M2.dat y1=M1(:,1); G1=M1(:,2:11);
x(1:3)' -8.8883 -2.2187 2.4998 bsl_enu =[-7.1482 -0.8359 0.0070]
y2=M2(:,1); G2=M2(:,2:11); Py=(diag(ones(1,7))+ones(7))*2e-4; W=inv(Py);
x(1:3)'-bsl_enu ans= -1.7401 -1.3828 2.4928
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.1. Baseline vector estimation with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
100
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) 2. Applying the LAMBDA method to FIX the ambiguities. The following procedure can be applied (justify the computations done) Compare the different results found: Decorrelation and integer LS search solution
octave
[Qz,Zt,Lz,Dz,az,iZ] = decorrel (Q,a); [azfixed,sqnorm] = lsearch (az,Lz,Dz,2); afixed=iZ*azfixed; sqnorm(2)/sqnorm(1) ans = 1.61389475957901 afixed(:,1)' 17 -5 -2 4 -26 0 13
c=299792458; f0=10.23e+6; f1=154*f0; lambda1=c/f1 a=x(4:10)/lambda1; Q=P(4:10,4:10);
Rounding directly the floated solution
Rounding the decorrelated floated solution
round(a)' 10 -11 13
afix=iZ*round(az); 7 -22 16 -18 -3
-10
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-8
7
10
B.3.1. Baseline vector estimation with DDL1 (using only two epochs)
1
-8
@ J. Sanz & J.M. Juan
101
@ J. Sanz & J.M. Juan
102
B.3. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections)
Questions: 1. - Can the ambiguities be fixed? 2. - Give a possible explanation about why the ambiguities cannot be fixed
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.1. Baseline vector estimation with DDL1 (using only two epochs)
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements)
Repeat previous processing, but using t1=14500 and t2=15530
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.2. Baseline vector estimation with DDL1 (using t=14500, 15530)
@ J. Sanz & J.M. Juan
103
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) The script MakeL1BslMat.scr builds the equations system [DDL1]=[ Los_k- Los_06]*[baseline] + [ A ]*[O1*DDN1] for the two epochs required t1=14500 and t2=15530, using the input file DD_IND1_IND2_06_ALL.dat generated before.
Execute:
MakeL1BslMat.scr DD_IND1_IND2_06_ALL.dat 14500 15530 The OUTPUT are the files M1.dat and M2.dat associated with each epoch. Where: the columns of files M.dat are the vector y (first column) and Matrix G (next columns)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.2. Baseline vector estimation with DDL1 (using t=14500, 15530)
@ J. Sanz & J.M. Juan
104
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) 1. Computing the FLOATED solution (solving the equations system). The following procedure can be applied
octave
P=inv(G1'*W*G1+G2'*W*G2); x=P*(G1'*W*y1+G2'*W*y2);
load M1.dat load M2.dat y1=M1(:,1); G1=M1(:,2:11);
x(1:3)' -6.78678 -0.7794 -0.2434 bsl_enu =[-7.1482 -0.8359 0.0070]
y2=M2(:,1); G2=M2(:,2:11); Py=(diag(ones(1,7))+ones(7))*2e-4; W=inv(Py);
x(1:3)'-bsl_enu ans= 0.3614 0.0565 -0.2504
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.2. Baseline vector estimation with DDL1 (using t=14500, 15530)
@ J. Sanz & J.M. Juan
105
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) 2. Applying the LAMBDA method to FIX the ambiguities. The following procedure can be applied (justify the computations done) Compare the different results found: Decorrelation and integer LS search solution
octave
[Qz,Zt,Lz,Dz,az,iZ] = decorrel (Q,a); [azfixed,sqnorm] = lsearch (az,Lz,Dz,2); afixed=iZ*azfixed; sqnorm(2)/sqnorm(1) ans = 1.10192131979339 afixed(:,1)' 9 -16 22 -10 7 9 9
c=299792458; f0=10.23e+6; f1=154*f0; lambda1=c/f1 a=x(4:10)/lambda1; Q=P(4:10,4:10);
Rounding directly the floated solution
Rounding the decorrelated floated solution
round(a)' 8 -17 24
afix=iZ*round(az); 8 -17 24 -12
-12
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
9
10
9
B.3.2. Baseline vector estimation with DDL1 (using t=14500, 15530)
9
10
8
@ J. Sanz & J.M. Juan
106
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements)
Questions: 1. - Can the ambiguities be fixed? 2. - Give a possible explanation about why the ambiguities cannot be fixed
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.2. Baseline vector estimation with DDL1 (using t=14500, 15530)
@ J. Sanz & J.M. Juan
107
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements)
Repeat previous processing, but using t1=14500 and t2=15000
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.3. Baseline vector estimation with DDL1 (using t=14500, 15000)
@ J. Sanz & J.M. Juan
108
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) The script MakeL1BslMat.scr builds the equations system [DDL1]=[ Los_k- Los_06]*[baseline] + [ A ]*[O1*DDN1] for the two epochs required t1=14500 and t2=15000, using the input file DD_IND1_IND2_06_ALL.dat generated before.
Execute:
MakeL1BslMat.scr DD_IND1_IND2_06_ALL.dat 14500 15000 The OUTPUT are the files M1.dat and M2.dat associated with each epoch. Where: the columns of files M.dat are the vector y (first column) and Matrix G (next columns)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.3. Baseline vector estimation with DDL1 (using t=14500, 15000)
@ J. Sanz & J.M. Juan
109
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) 1. Computing the FLOATED solution (solving the equations system). The following procedure can be applied
octave
P=inv(G1'*W*G1+G2'*W*G2); x=P*(G1'*W*y1+G2'*W*y2);
load M1.dat load M2.dat
x(1:3)' -6.7640
y1=M1(:,1); G1=M1(:,2:11); y2=M2(:,1); G2=M2(:,2:11); Py=(diag(ones(1,7))+ones(7))*2e-4; W=inv(Py);
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-0.7441
-0.2256
bsl_enu =[-7.1482 -0.8359 0.0070] x(1:3)'-bsl_enu ans= 0.3842 0.0918 -0.2326
B.3.3. Baseline vector estimation with DDL1 (using t=14500, 15000)
@ J. Sanz & J.M. Juan
110
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) 2. Applying the LAMBDA method to FIX the ambiguities. The following procedure can be applied (justify the computations done) Compare the different results found: Decorrelation and integer LS search solution
octave
[Qz,Zt,Lz,Dz,az,iZ] = decorrel (Q,a); [azfixed,sqnorm] = lsearch (az,Lz,Dz,2); afixed=iZ*azfixed; sqnorm(2)/sqnorm(1) ans = 1.36905617725904 afixed(:,1)' 9 -16 22 -10 7 9 9
c=299792458; f0=10.23e+6; f1=154*f0; lambda1=c/f1 a=x(4:10)/lambda1; Q=P(4:10,4:10);
Rounding directly the floated solution
Rounding the decorrelated floated solution
round(a)' 8 -17 24
afix=iZ*round(az); 7 -18 26 -14 12
-12
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
9
10
9
B.3.3. Baseline vector estimation with DDL1 (using t=14500, 15000)
11
8
@ J. Sanz & J.M. Juan
111
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements)
OPTIONAL: Repeat taking t1=14500 and t2=17000 Questions: 1. - Have the results improved? 2. - Has the reliability improved? 3. - Why it is not possible to fix the ambiguities?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.3.3. Baseline vector estimation with DDL1 .
@ J. Sanz & J.M. Juan
112
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) Hint: Check possible synchronism errors between the receivers’ time tags. For instance, use the following sentence to compute the receiver clocks of IND1, IND2 and IND3 receivers with gLAB (the last field is the receiver clock offset): gLAB_linux -input:obs IND10540.13O -input:nav brdc0540.13n -pre:dec 1|grep FILTER gLAB_linux -input:obs IND20540.13O -input:nav brdc0540.13n -pre:dec 1|grep FILTER gLAB_linux -input:obs IND30540.13O -input:nav brdc0540.13n -pre:dec 1|grep FILTER
Questions: Discuss how the relative receiver clock offset can affect the baseline estimation.
gAGE/UPC
B.3.3. Baseline vector estimation with DDL1 .
Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
113
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) In the previous exercise we have shown how the synchronism errors between the time-tagged measurements affect the ambiguity fixing when trying to estimate the baseline vector. PRN06 (ref)
PRN06 (ref)
PRN j
ρˆ 6
ρˆ j
ρˆ 6
r IND1(ref) IND2 (ref)
j 1, ref
L
gAGE/UPC
ρˆ j dr rIND3 - r0,IND3
IND2(user) IND3 (user)
Time-tagged measurements broadcast by reference station
Research group of Astronomy & Geomatics Technical University of Catalonia
PRN j
IND3 (user) IND2(user)
IND2 (ref) IND1(ref)
PRC { L j 1
B.3.3. Baseline vector estimation with DDL1 .
j 1, ref
U
j ref
Computed corrections broadcast by the reference station.
@ J. Sanz & J.M. Juan
114
B.3. IND1-IND2 Baseline vector estimation with L1 carrier (using the time-tagged reference station measurements) Next we are going to repeat the differential positioning, but using the computed differential corrections. In this case, as the corrections vary slowly, the synchronization errors will not be an issue. PRN06 (ref)
PRN06 (ref)
PRN j
ρˆ 6
ρˆ j
ρˆ 6
r IND2 (ref) IND1(ref)
j 1, ref
L
gAGE/UPC
ρˆ j dr rIND3 - r0,IND3
IND1(ref) IND2 (ref)
IND2(user) IND3 (user)
Time-tagged measurements broadcast by reference station
Research group of Astronomy & Geomatics Technical University of Catalonia
PRN j
PRC { L j 1
j 1, ref
U
j ref
IND2(user) IND3 (user)
Computed corrections broadcast by the reference station.
B.3.3. Baseline vector estimation with DDL1 .
@ J. Sanz & J.M. Juan
115
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections) B.4.1 Using DDL1 carrier measurements, estimate the coordinates of receiver IND2 taking IND1 as a reference receiver. Consider only the two epochs used in the previous exercise: t1=14500 and t2=14530
The following procedure can be applied: 1. Compute the FLOATED solution, solving the equations system with octave. Assess the accuracy of the floated solution. 2. Apply the LAMBDA method to FIX the ambiguities. Compare the results with the solution obtained by rounding the floated solution directly and by rounding the solution after decorrelation. 3. Repair the DDL1 carrier measurements with the DDN1 FIXED ambiguities and plot results to analyze the data. 4. Compute the FIXED solution.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
A.6.1. Estimate IND2 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
116
B.4. IND2-IND3 differential positioning with L1 carrier (using the computed differential corrections) B.4.1 Estimate the coordinates of receiver IND2 taking IND1 as the reference receiver, using the L1 carrier measurements of file (DD_IND1_IND2_06_ALL.dat)
[DDL1-DDRho]= [Los_k - Los_06]*[dr] + [ A ]*[lambda1*DDN1]
Notation ª DDL DD U º « 6,7 » DDL DD U « » » « « 6,30 6,30 » ¬« DDL1 DD U ¼» 6,3 1 6,7 1
6,3
ª ρˆ 3 ρˆ 6 T º ª1 0 « » T «0 1 « ˆ7 ˆ6 » « ρ ρ » dr « « « » « « » T ¬0 0 30 6 « ρˆ ρˆ » ¬ ¼
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
y=Gx
0 º ª O1 DDN º « » 0 »» « O1 DDN » Where the vector of » »« » unknowns x includes »« 1 ¼ ¬« O1 DDN16,30 ¼» the user coordinates 6,3 1 6,7 1
0
and ambiguities
B.4.1. Estimate IND2 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
117
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections) The receiver was not moving (static) during the data collection. Therefore, for each epoch we have the equations system: ª DDL16,3 (t1 ) DD U 6,3 (t1 ) º « » 6,7 6,7 « DDL1 (t1 ) DD U (t1 ) » « » « » 6,30 6,30 ¬« DDL1 (t1 ) DD U (t1 ) ¼»
ª ρˆ 3 (t ) ρˆ 6 (t ) T º 1 1 ª1 0 « » T » «0 1 « ˆ7 6 « ρ (t1 ) ρˆ (t1 ) » dr « « » « « » « ¬0 0 « ρˆ 30 (t ) ρˆ 6 (t ) T » 1 1 ¬ ¼
ª DDL16,3 (t2 ) DD U 6,3 (t2 ) º « » 6,7 6,7 « DDL1 (t2 ) DD U (t2 ) » « » « » 6,30 6,30 ¬« DDL1 (t2 ) DD U (t2 ) ¼»
ª ρˆ 3 (t ) ρˆ 6 (t ) T º 2 2 ª1 0 « » T » «0 1 « ˆ7 6 « ρ (t2 ) ρˆ (t2 ) » dr « « « » « « » ¬0 0 « ρˆ 30 (t ) ρˆ 6 (t ) T » 2 2 ¬ ¼
0
0 º ª O1 DDN16,3 º « » 0 »» « O1 DDN16 ,7 » » »« »« 6,30 » 1 ¼ ¬« O1 DDN1 ¼»
0
0 º ª O1 DDN16,3 º « » 0 »» « O1 DDN16 ,7 » » »« »« 6,30 » 1 ¼ ¬« O1 DDN1 ¼»
y1 = G1 x y1:=y[t1] G1:=G[t1]
y2 = G2 x y2:=y[t2] G2:=G[t2]
gAGE/UPC [DDL1-DDRho]=[Los_k - Los_06]*[dr] + [ A ]*[lambda1*DDN1] 118
Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections) In the previous computation we have not taken into account the correlations between the double differences of measurements. This matrix will be used now, as the LAMBDA method will be applied to FIX the carrier ambiguities. P
y
a) Show that the covariance matrix of DDL1 is given by Py
ª2 1 « 2 2 «1 2V « « ¬1 1
1º 1 »» » » 2¼
1
b) Given the measurement vectors (y) and Geometry matrices (G) for two epochs y1:=y[t1] ; G1:=G[t1] ; Py y2:=y[t2] ; G2:=G[t2] ; Py show that the user solution and covariance matrix can be computed as: P=inv(G1'*W*G1+G2'*W*G2);
y = G x; W = Py-1 T
-1
T
x = (G WG) G Wy
P = gAGE/UPC (G T WG)-1 Research group of Astronomy & Geomatics Technical University of Catalonia
where: W=inv(Py)
x=P*(G1'*W*y1+G2'*W*y2) ;
B.4.1. Estimate IND2 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
119
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections) The script MakeL1DifMat.scr builds the equations system [DDL1-DDRho]=[ Los_k- Los_06]*[dr] + [ A ]*[O1*DDN1] for the two epochs required t1=14500 and t2=14530, using the input file DD_IND1_IND2_06_ALL.dat generated before.
Execute:
MakeL1DifMat.scr DD_IND1_IND2_06_ALL.dat 14500 14530 The OUTPUT are the files M1.dat and M2.dat associated with each epoch. Where: the columns of files M.dat are the vector y (first column) and Matrix G (next columns)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.41. Estimate IND2 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
120
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections) 1. Computing the FLOATED solution (solving the equations system). The following procedure can be applied P=inv(G1'*W*G1+G2'*W*G2); x=P*(G1'*W*y1+G2'*W*y2);
octave load M1.dat load M2.dat
y1=M1(:,1); G1=M1(:,2:11); y2=M2(:,1); G2=M2(:,2:11); Py=(diag(ones(1,7))+ones(7))*2e-4; W=inv(Py);
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
x(1:3)' 0.3132 -0.2648 0.6237 Taking into account that the ”a priori” coordinates of IND2 are: IND2=[4787678.9809 183402.5915 4196171.6833] Therefore the estimated absolute coordinates of IND3 are: IND2+ x(1:3)' 4787679.2940 183402.3267 4196172.3070
B.4.1. Estimate IND2 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
121
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections) 2. Applying the LAMBDA method to FIX the ambiguities. The following procedure can be applied (justify the computations done) Compare the different results found. Decorrelation and integer LS search solution
octave
[Qz,Zt,Lz,Dz,az,iZ] = decorrel (Q,a); [azfixed,sqnorm] = lsearch (az,Lz,Dz,2); afixed=iZ*azfixed; sqnorm(2)/sqnorm(1) ans = 2.25895684415922 afixed(:,1)' 9 -17 22 -10 6 10 7
c=299792458; f0=10.23e+6; f1=154*f0; lambda1=c/f1 a=x(4:10)/lambda1; Q=P(4:10,4:10);
Rounding directly the floated solution
Rounding the decorrelated floated solution
round(a)' 8 -17 22
afix=iZ*round(az); 9 -17 22 -10
-12
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
5
11
7
A.6.1. Estimate IND2 coordinates with DDL1 (using only two epochs)
6
10
7
@ J. Sanz & J.M. Juan
122
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections)
Questions: 1.- Can the ambiguities be fixed now? Why? 2.- Discuss why the synchronism errors affect the two differential positioning implementations.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.4.1. Estimate IND2 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
123
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections) 3. Repair the DDL1 carrier measurements with the DDN1 FIXED ambiguities and plot results to analyze the data. octave amb=lambda1*afixed(:,1); save ambL1.dat amb
Using the previous the file ambL1.dat and "DD_IND1_IND2_06_ALL.dat", generate a file with the following content: ----------------------------- DD_IND2_IND3_06_ALL.fixL1 --------------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [IND1 IND2 06 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 O DDN1] ------------------------------------------------------------------------------------------
Note: This file is identical to file "DD_IND1_IND2_06_ALL.dat", but with the ambiguities added in the last field #18.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.4.1. Estimate IND2 coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
124
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections) a) Generate a file with the satellite PRN number and the ambiguities: grep -v \# ambL1.dat > na1 cat DD_IND1_IND2_06_ALL.dat|gawk '{print $4}'|sort -nu|gawk '{print $1,NR}’ >sat.lst paste sat.lst na1 > sat.ambL1
b) Generate the "DD_IND2_IND3_06_ALL.fixL1" file: cat DD_IND1_IND2_06_ALL.dat| gawk 'BEGIN{for (i=1;i L1fix.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.4.2. Estimate IND2 coordinates with DDL1 (single epoch LS, whole interval)
@ J. Sanz & J.M. Juan
133
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections) Plot the baseline estimation error graph.py -f L1fix.pos -x1 –y2 -f L1fix.pos -x1 –y3 -f L1fix.pos -x1 –y4 --yn -.1 --yx .1 --xl "time L1 ambiguities fixed"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
-s.-s.-s.(s)"
-l "North error" -l "East error" -l "UP error" --yl "error (m)" -t "IND1-IND2: 7.20m:
B.4.2. Estimate IND2 coordinates with DDL1 (single epoch LS, whole interval)
@ J. Sanz & J.M. Juan
134
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections)
Differential Positioning error after fixing ambiguities Question: Discuss the accuracy achieved and the possible error sources that could affect this result (e.g. Antenna Phase Centres…)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.4.2. Estimate IND2 coordinates with DDL1 (single epoch LS, whole interval)
@ J. Sanz & J.M. Juan
135
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections) B.4.3. Repeat previous computations, but using the Unsmoothed code P1. i.e., compute the LS single epoch solution for the whole interval 14500< t P1model.dat
b) Compute the Least Squares solution cat P1model.dat |LS > P1.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.4.3. Estimate IND2 coordinates with DDP1 (single epoch LS, whole interval)
@ J. Sanz & J.M. Juan
137
@ J. Sanz & J.M. Juan
138
B.4. IND1-IND2 differential positioning with L1 carrier (using the computed differential corrections)
Positioning error with the P1 code
Question: Discuss the results by comparing them with the previous ones with DDL1 carrier in the relative positioning implementation.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.4.3. Estimate IND2 coordinates with DDP1 (single epoch LS, whole interval)
B.4. IND1-IND2 differential positioning with L1 carrier B.4.4. Repeat the previous computations, but for the baseline vector estimation and using the time-tagged measurements of the reference station, instead of the differential corrections. That is, compute the LS single epoch solution for the whole interval 14500< t L1model.dat
b) Compute the Least Squares solution cat L1model.dat |LS > L1fix.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.4.4. Baseline vector estimation with DDL1 (single epoch LS, whole interval)
@ J. Sanz & J.M. Juan
140
B.4. IND1-IND2 differential positioning with L1 carrier
Plot the baseline estimation error graph.py -f L1bslfix.pos -x1 -y'($2+7.1482)' -s.- -l "North error" -f L1bslfix.pos -x1 -y'($3+0.8359)' -s.- -l "East error" -f L1bslfix.pos -x1 -y'($4+0.0070)' -s.- -l "UP error" --yn -.4 --yx .4 --xl "time (s)" --yl "error (m)" -t "Baseline error: IND1-IND2: 7.20m: L1 ambiguities fixed: synchronism errors”
Note: bsl_enu =[-7.1482 -0.8359 0.0070]
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.4.4. Baseline vector estimation with DDL1 (single epoch LS, whole interval)
@ J. Sanz & J.M. Juan
141
@ J. Sanz & J.M. Juan
142
B.4. IND1-IND2 differential positioning with L1 carrier
Baseline estimation error after fixing ambiguities Question: Discuss why does the accuracy degrades respect to the previous case. Why this large error appears?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
B.4.4. Baseline vector estimation with DDL1 (single epoch LS, whole interval)
OVERVIEW Introduction: gLAB processing in command line
Preliminary computations: data files & reference values Session A: Differential positioning of IND2-IND3 receivers (baseline: 18 metres)
Session B: Differential positioning of IND1-IND2 receivers (baseline: 7 metres, but synchronization errors)
¾ Session C: Differential positioning of PLAN-GARR receivers (baseline: 15 km, Night time): tropospheric effects
Session D: Differential positioning of PLAN-GARR receivers (baseline: 15 km, Day time): tropospheric and Ionospheric effects
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
143
Session C Differential positioning of PLAN- GARR receivers (baseline: 15 km. Night time) Analysis of differential tropospheric error effects
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
144
C. PLAN- GARR Differential positioning The previous exercises have been done over short baselines (less than 20 metres), where the errors introduced by the troposphere and ionosphere completely cancel when making differences of measurements. Toulouse In this session we will consider a larger baseline (15 km) in order to assess the effect of the atmosphere on the ambiguity fixing and positioning. In this session we will consider Night time data in order to have a lower ionospheric error.
Barcelona
PLAN-GARR: 15.228 km
gAGE/UPC
@ J. Sanz & J.M. Juan
Research group of Astronomy & Geomatics Technical University of Catalonia
145
C. PLAN- GARR Differential positioning C.1. Double differences between receivers and satellites computation The script "DDobs.scr" computes the double differences between receivers and satellites from file obs.dat. 1 2 3 4 5 6 7 8 9 10 11 12 13 [sta sat DoY sec P1 L1 P2 L2 Rho Trop Ion elev azim]
For instance, the following sentence: DDobs.scr obs.dat PLAN GARR 06 03 generates the file ------------------- DD_{sta1}_{sta2}_{sat1}_{sat2}.dat ---------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [sta1 sta2 sat1 sat2 DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2] -----------------------------------------------------------------------------------Where the elevation (EL) and azimuth (AZ) are taken from station #2. and where (EL1, AZ1) are for satellite #1 and (EL1, AZ1) are for satellite #2.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.1. Double Differences computation
@ J. Sanz & J.M. Juan
146
C. PLAN- GARR Differential positioning Compute the double differences between receivers PLAN (reference) and GARR and satellites PRN06 (reference) and [PRN 03, 07,11, 16, 18, 19, 21, 22, 30] DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr DDobs.scr
obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat obs.dat
PLAN-GARR PLAN-GARR PLAN-GARR PLAN-GARR PLAN-GARR PLAN-GARR PLAN-GARR PLAN-GARR PLAN-GARR
06 06 06 06 06 06 06 06 06
03 07 11 16 18 19 21 22 30
Merge the files in a single file and sort by time:
cat DD_PLAN_GARR_06_??.dat|sort -n -k +6 > DD_PLAN_GARR_06_ALL.dat
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.1. Double Differences computation
@ J. Sanz & J.M. Juan
147
C.2. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections) C.2.1 Using DDL1 carrier measurements, estimate the coordinates of receiver GARR taking PLAN as a reference receiver. Consider only the two epochs used in the previous exercise: t1=14500 and t2=14590.
The following procedure can be applied: 1. Compute the FLOATED solution, solving the equations system with octave. Assess the accuracy of the floated solution. 2. Apply the LAMBDA method to FIX the ambiguities. Compare the results with the solution obtained by rounding the floated solution directly and by rounding the solution after decorrelation. 3. Repair the DDL1 carrier measurements with the DDN1 FIXED ambiguities and plot results to analyze the data. 4. Compute the FIXED solution.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.2.1. Estimate GARR coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
148
C.2. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections) C.2.1 Estimate the coordinates of receiver GARR taking PLAN as the reference receiver, using the L1 carrier measurements of file (DD_PLAN_GARR_06_ALL.dat)
[DDL1-DDRho]= [Los_k - Los_06]*[dr] + [ A ]*[lambda1*DDN1]
Notation ª DDL DD U º « 6,7 » DDL DD U « » » « « 6,30 6,30 » ¬« DDL1 DD U ¼» 6,3 1 6,7 1
6,3
ª ρˆ 3 ρˆ 6 T º ª1 0 « » T «0 1 « ˆ7 ˆ6 » « ρ ρ » dr « « « » « « » T ¬0 0 30 6 « ρˆ ρˆ » ¬ ¼
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
y=Gx
0 º ª O1 DDN º « » 0 »» « O1 DDN » Where the vector of » »« » unknowns x includes »« 1 ¼ ¬« O1 DDN16,30 ¼» the user coordinates 6,3 1 6,7 1
0
and ambiguities
C.2.1. Estimate GARR coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
149
C.2. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections) The receiver was not moving (static) during the data collection. Therefore for each epoch we have the equations system: ª DDL16,3 (t1 ) DD U 6,3 (t1 ) º « » 6,7 6,7 « DDL1 (t1 ) DD U (t1 ) » « » « » 6,30 6,30 ¬« DDL1 (t1 ) DD U (t1 ) ¼»
ª ρˆ 3 (t ) ρˆ 6 (t ) T º 1 1 ª1 0 « » T » «0 1 « ˆ7 6 « ρ (t1 ) ρˆ (t1 ) » dr « « » « « » « ¬0 0 « ρˆ 30 (t ) ρˆ 6 (t ) T » 1 1 ¬ ¼
ª DDL16,3 (t2 ) DD U 6,3 (t2 ) º « » 6,7 6,7 « DDL1 (t2 ) DD U (t2 ) » « » « » 6,30 6,30 ¬« DDL1 (t2 ) DD U (t2 ) ¼»
ª ρˆ 3 (t ) ρˆ 6 (t ) T º 2 2 ª1 0 « » T » «0 1 « ˆ7 6 « ρ (t2 ) ρˆ (t2 ) » dr « « « » « « » ¬0 0 « ρˆ 30 (t ) ρˆ 6 (t ) T » 2 2 ¬ ¼
0
0 º ª O1 DDN16,3 º « » 0 »» « O1 DDN16 ,7 » » »« »« 6,30 » 1 ¼ ¬« O1 DDN1 ¼»
0
0 º ª O1 DDN16,3 º « » 0 »» « O1 DDN16 ,7 » » »« »« 6,30 » 1 ¼ ¬« O1 DDN1 ¼»
y1 = G1 x y1:=y[t1] G1:=G[t1]
y2 = G2 x y2:=y[t2] G2:=G[t2]
gAGE/UPC [DDL1-DDRho]=[Los_k - Los_06]*[dr] + [ A ]*[lambda1*DDN1] 150
Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
C.2. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections) In the previous computation we have not taken into account the correlations between the double differences of measurements. This matrix will be used now, as the LAMBDA method will be applied to FIX the carrier ambiguities. P
y
a) Show that the covariance matrix of DDL1 is given by Py
ª2 1 « 2 2 «1 2V « « ¬1 1
1º 1 »» » » 2¼
1
b) Given the measurement vectors (y) and Geometry matrices (G) for two epochs y1:=y[t1] ; G1:=G[t1] ; Py y2:=y[t2] ; G2:=G[t2] ; Py show that the user solution and covariance matrix can be computed as: P=inv(G1'*W*G1+G2'*W*G2);
y = G x; W = Py-1 T
-1
T
x = (G WG) G Wy
P = gAGE/UPC (G T WG)-1 Research group of Astronomy & Geomatics Technical University of Catalonia
where: W=inv(Py)
x=P*(G1'*W*y1+G2'*W*y2) ;
C.2.1. Estimate GARR coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
151
C.2. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections) The script MakeL1DifMat.scr builds the equations system [DDL1-DDRho]=[ Los_k- Los_06]*[dr] + [ A ]*[O1*DDN1] for the two epochs required t1=14500 and t2=14590, using the input file DD_PLAN_GARR_06_ALL.dat generated before.
Execute:
MakeL1DifMat.scr DD_PLAN_GARR_06_ALL.dat 14500 14590 The OUTPUT are the files M1.dat and M2.dat associated with each epoch. Where: the columns of files M.dat are the vector y (first column) and Matrix G (next columns)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.2.1. Estimate GARR coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
152
C.2. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections) 1. Computing the FLOATED solution (solving the equations system). The following procedure can be applied P=inv(G1'*W*G1+G2'*W*G2); x=P*(G1'*W*y1+G2'*W*y2);
octave load M1.dat load M2.dat
y1=M1(:,1); G1=M1(:,2:13); y2=M2(:,1); G2=M2(:,2:13); Py=(diag(ones(1,9))+ones(9))*2e-4; W=inv(Py);
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
x(1:3)' 0.6879 -0.2712 -0.7924 Taking into account that the ”a priori” coordinates of GARR are: GARR=[4796983.5170 160309.1774 4187340.3887] Therefore the estimated absolute coordinates of GARR are: GARR+ x(1:3)' 4796984.2049 160308.9062 4187339.5963
C.2.1. Estimate GARR coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
153
C.2. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections) 2. Applying the LAMBDA method to FIX the ambiguities. The following procedure can be applied (justify the computations done) Compare the different results found. Decorrelation and integer LS search solution octave c=299792458; f0=10.23e+6; f1=154*f0; lambda1=c/f1 a=x(4:12)/lambda1; Q=P(4:12,4:12);
Rounding the floated solution directly round(a)'
-19337 130765326 -1759092 -1498083 130765325 130765316 130765339 122888034 130765336
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
[Qz,Zt,Lz,Dz,az,iZ] = decorrel (Q,a); [azfixed,sqnorm] = lsearch (az,Lz,Dz,2); afixed=iZ*azfixed; sqnorm(2)/sqnorm(1) ans = 1.19278115892607 afixed(:,1)' -19337 130765326 -1759092 -1498083 130765325 130765316 130765339 122888034 130765336
Rounding the decorrelated floated solution afix=iZ*round(az); -19337 130765326 -1759092 -1498083 130765325 130765316 130765339 122888034 130765336
C.2.1. Estimate GARR coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
154
C.2. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections)
Questions: 1. Can the ambiguities be fixed with a certain degree of confidence? 2. Repeat the computations taking: t= 14500 and 14900. 3. Repeat the computations taking: t= 14500 and 15900. 4. Discuss why the ambiguities cannot be fixed.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.2.1. Estimate GARR coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
155
C.2. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections) Hint: Plot the differential Tropospheric and Ionospheric delays (from the gLAB model) and discuss their potential impact on the ambiguity fixing. graph.py -f DD_PLAN_GARR_06_ALL.dat -x6 -y'13' -so --yn -0.06 --yx 0.06 –cl g -l "DDIono" -f DD_PLAN_GARR_06_ALL.dat -x6 -y'12' -so --cl r --yn -0.06 --yx 0.06 -l "DDTropo" --xl "time (s)" --yl "metres"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.2.1. Estimate GARR coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
156
C.2. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.2.1. Estimate GARR coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
157
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere)
Repeat the previous exercise, but correcting the measurements with the nominal tropospheric correction model.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
158
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere) C.3.1 Using DDL1 carrier measurements, estimate the coordinates of receiver GARR taking PLAN as a reference receiver and correcting troposphere. Consider only the two epochs used in the previous exercise: t1=14500 and t2=14590
The following procedure can be applied: 1. Compute the FLOATED solution, solving the equations system with octave. Assess the accuracy of the floated solution. 2. Apply the LAMBDA method to FIX the ambiguities. Compare the results with the solution obtained by rounding the floated solution directly and by rounding the solution after decorrelation. 3. Repair the DDL1 carrier measurements with the DDN1 FIXED ambiguities and plot results to analyze the data. 4. Compute the FIXED solution.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.1. Estimate GARR coordinates with DDL1 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
159
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere) The script MakeL1DifTrpMat.scr builds the equations system [DDL1-DDRho-Trp]=[ Los_k- Los_06]*[dr] + [ A ]*[O1*DDN1] for the two epochs required t1=14500 and t2=14590, using the input file DD_PLAN_GARR_06_ALL.dat generated before.
Execute: MakeL1DifTrpMat.scr DD_PLAN_GARR_06_ALL.dat 14500 14590
The OUTPUT are the files M1.dat and M2.dat associated with each epoch. Where: the columns of files M.dat are the vector y (first column) and Matrix G (next columns)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.1. Estimate GARR coordinates with DDL1 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
160
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere) 1. Computing the FLOATED solution (solving the equations system). The following procedure can be applied P=inv(G1'*W*G1+G2'*W*G2); x=P*(G1'*W*y1+G2'*W*y2);
octave load M1.dat load M2.dat
x(1:3)' 0.2140 -0.1732
y1=M1(:,1); G1=M1(:,2:13);
Taking into account that the ”a priori” coordinates of GARR are: GARR=[4796983.5170 160309.1774 4187340.3887] Therefore the estimated absolute coordinates of GARR are: GARR+ x(1:3)' 4796983.7310 160309.0042 4187340.5422
y2=M2(:,1); G2=M2(:,2:13); Py=(diag(ones(1,9))+ones(9))*2e-4; W=inv(Py);
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.1. Estimate GARR coordinates with DDL1 (using tropospheric corrections)
0.1535
@ J. Sanz & J.M. Juan
161
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere) 2. Applying the LAMBDA method to FIX the ambiguities. The following procedure can be applied (justify the computations done) Compare the different results found. Decorrelation and integer LS search solution octave c=299792458; f0=10.23e+6; f1=154*f0; lambda1=c/f1 a=x(4:12)/lambda1; Q=P(4:12,4:12);
Rounding the floated solution directly round(a)' -19334 130765336 -1759081 -1498083 130765334
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
130765320 130765323 122888029 130765334
[Qz,Zt,Lz,Dz,az,iZ] = decorrel (Q,a); [azfixed,sqnorm] = lsearch (az,Lz,Dz,2); afixed=iZ*azfixed; sqnorm(2)/sqnorm(1) ans = 2.47022808203678 afixed(:,1)' -19333 130765338 -1759080 -1498083 130765319 130765324 130765334 122888028 130765333
Rounding the decorrelated floated solution afix=iZ*round(az) -19333 130765338 -1759080 -1498083 130765319 130765324 130765334 122888028 130765333
C.3.1. Estimate GARR coordinates with DDL1 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
162
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections)
Questions: Can the ambiguities be fixed now? Discuss, why?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.1. Estimate GARR coordinates with DDL1 (using only two epochs)
@ J. Sanz & J.M. Juan
163
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere) 3. Repair the DDL1 carrier measurements with the DDN1 FIXED ambiguities and plot results to analyze the data. octave amb=lambda1*afixed(:,1); save ambL1.dat amb
Using the previous file ambL1.dat and "DD_PLAN_GARR_06_ALL.dat", generate a file with the following content: ----------------------------- DD_PLAN_GARR_06_ALL.fixL1 --------------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [PLAN GARR 06 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 O DDN1] ------------------------------------------------------------------------------------------
Note: This file is identical to file "DD_PLAN_GARR_06_ALL.dat", but with the ambiguities added in the last field #18.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.1. Estimate GARR coordinates with DDL1 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
164
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere) a) Generate a file with the satellite PRN number and the ambiguities: grep -v \# ambL1.dat > na1 cat DD_PLAN_GARR_06_ALL.dat|gawk '{print $4}'|sort -nu|gawk '{print $1,NR}’ >sat.lst paste sat.lst na1 > sat.ambL1
b) Generate the "DD_PLAN_GARR_06_ALL.fixL1" file: cat DD_PLAN_GARR_06_ALL.dat| gawk 'BEGIN{for (i=1;i L1fix.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.2. Estimate GARR coordinates with DDL1 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
174
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere) Plot the baseline estimation error graph.py -f L1fix.pos -x1 –y2 -s.- -l "North error" -f L1fix.pos -x1 –y3 -s.- -l "East error" -f L1fix.pos -x1 –y4 -s.- -l "UP error" --yn -.1 --yx .1 --xl "time (s)" --yl "error (m)" -t "PLAN-GARR: 15.2 km: L1 ambiguities fixed: No wet tropo estim."
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.2. Estimate GARR coordinates with DDL1 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
175
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere)
Differential Positioning error after fixing ambiguities Question: Discuss the possible sources of the bias found in the vertical component.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.2. Estimate GARR coordinates with DDL1 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
176
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere) Remember that the reference coordinates have been taken relative to the Antenna Phase Centre in the ionosphere-free combination LC Question: Taking into account the following parameters of the PLAN and GARR antennas, calculate the relative error introduced by the difference between the L1 and LC APC of both receivers in the differential positioning. According to the RINEX and ANTEX files, we have: PLAN: TRM55971.00 (millimetres) G01 1.29 -0.19 66.73 NORTH / EAST / UP G02 0.38 0.61 57.6 GARR: TRM41249.00 (millimetres) G01 0.28 0.49 55.91 NORTH / EAST / UP G02 0.15 0.46 58.00
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.2. Estimate GARR coordinates with DDL1 (APC error effect)
@ J. Sanz & J.M. Juan
177
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere) Solution: GARR:
PLAN:
dL1=5.591 cm dL2=5.800 cm dLC=1/(g-1)*(g*dL1-dL2)=5.3cm
dL1=6.673 cm dL2=5.769 cm dLC=1/(g-1)*(g*dL1-dL2)=8.1cm
Then:
Then:
dL1=dLC+0.3 cm
dL1=dLC-1.4 cm
L1 (GARR)
Then the relative error: DL1(GARR-PLAN)=+1.7cm
+0.3 cm LC (PLAN)
LC (GARR)
-1.4 cm L1 (PLAN)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.2. Estimate GARR coordinates with DDL1 (APC error effect)
@ J. Sanz & J.M. Juan
178
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere) Repeat the positioning error plot, but correcting for the relative Antenna Phase Centres (APCs): graph.py -f L1fix.pos -x1 –y2 -s.- -l "North error" -f L1fix.pos -x1 –y3 -s.- -l "East error" -f L1fix.pos -x1 –y '($4-0.017)' -s.- -l "UP error" --yn -.1 --yx .1 --xl "time (s)" --yl "error (m)" -t "PLAN-GARR: 15.2 km: L1 amb. fixed: -1.7 cm dAPC_L1: No wet tropo estim."
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.2. Estimate GARR coordinates with DDL1 (APC error effect)
@ J. Sanz & J.M. Juan
179
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere)
Differential Positioning error after fixing ambiguities Question: Discuss on the remaining error sources which could explain the error bias found in the vertical component.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.2. Estimate GARR coordinates with DDL1 (APC error effect)
@ J. Sanz & J.M. Juan
180
C.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere) C.3.3. Repeat the previous computations, but using the Unsmoothed code P1. i.e., compute the LS single epoch solution for the whole interval 145000< t P1model.dat
b) Compute the Least Squares solution cat P1model.dat |LS > P1.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.3. Estimate GARR coordinates (using tropospheric corrections)
@ J. Sanz & J.M. Juan
182
C.3. PLAN-GARR differential positioning (using the computed differential corrections including troposphere)
Positioning error with the unsmoothed code Question: Discuss the results by comparing them with the previous ones with DDL1 carrier.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
C.3.3. Estimate GARR coordinates (using tropospheric corrections)
@ J. Sanz & J.M. Juan
183
OVERVIEW Introduction: gLAB processing in command line
Preliminary computations: data files & reference values Session A: Differential positioning of IND2-IND3 receivers (baseline: 18 metres)
Session B: Differential positioning of IND1-IND2 receivers (baseline: 7 metres, but synchronization errors)
Session C: Differential positioning of PLAN-GARR receivers (baseline: 15 km, Night time): tropospheric effects
¾ Session D: Differential positioning of PLAN-GARR receivers (baseline: 15 km, Day time): tropospheric and Ionospheric effects
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
184
Session D Differential positioning of PLAN- GARR receivers (baseline: 15 km. Day time) Analysis of differential tropospheric and Ionospheric error effects gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
185
D. Differential positioning of PLAN-GARR receivers The previous session has been carried out using measurements collected during the night time, when the effect of the ionosphere is lower. The effect of the ionosphere over a baseline of 15km (and in solar maximum conditions) will be assessed in this session using day-time measurements. The exercise will end with the computation of the unambiguous DDSTEC from dual-frequency carrier measurements (after fixing the ambiguities in both carriers). The solutions computed using the DDL1 carrier (with the ambiguity fixed) corrected by the unambiguous DDSTEC and corrected by the nominal Klobuchar model will be compared. Finally, the solution using the unambiguous DDLC carrier (iono-free combination) will be also computed to compare results. gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
186
D.1 Measurements selection Selecting measurements: Time interval [39000:41300] • Select the satellites within the time interval [39000:41300]. Exclude satellites PRN01 and PRN31 in order to have the same satellites over the whole interval cat ObsFile.dat|gawk '{if ($4>=39000 && $4sat.lst paste sat.lst na1 > sat.ambL1
b) Generate the "DD_PLAN_GARR_13_ALL.fixL1" file: cat DD_PLAN_GARR_13_ALL.dat| gawk 'BEGIN{for (i=1;i L1fix.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.3.2. Estimate GARR coordinates with DDL1 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
203
D.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere) Plot the baseline estimation error graph.py -f L1fix.pos -x1 –y2 -s.- -l "North error" -f L1fix.pos -x1 –y3 -s.- -l "East error" -f L1fix.pos -x1 –y4 -s.- -l "UP error" --yn -.1 --yx .1 --xl "time (s)" --yl "error (m)" -t "PLAN-GARR: 15.2 km: L1 ambiguities fixed: No wet tropo estim."
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.3.2. Estimate GARR coordinates with DDL1 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
204
D.3. PLAN-GARR differential positioning with L1 carrier (using the computed differential corrections including troposphere)
Differential Positioning error after fixing ambiguities Question: Discuss on the remaining error sources which could explain the error found in the North, East and Vertical components.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.3.2. Estimate GARR coordinates with DDL1 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
205
D.4. PLAN-GARR differential positioning with L2 carrier (using the computed differential corrections including troposphere)
Repeat the previous exercise, but positioning with the L2 carrier
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
206
D.4. PLAN-GARR differential positioning with L2 carrier (using the computed differential corrections including troposphere) D.4.1 Using DDL2 carrier measurements, estimate the coordinates of receiver GARR taking PLAN as a reference receiver and correcting troposphere. Consider only the two epochs used in the previous exercise: t1=39000 and t2=40500.
The following procedure can be applied: 1. Compute the FLOATED solution, solving the equations system with octave. Assess the accuracy of the floated solution. 2. Apply the LAMBDA method to FIX the ambiguities. Compare the results with the solution obtained by rounding the floated solution directly and by rounding the solution after decorrelation. 3. Repair the DDL2 carrier measurements with the DDN2 FIXED ambiguities and plot results to analyze the data. 4. Compute the FIXED solution.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.4.1. Estimate GARR coordinates with DDL2 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
207
D.4. PLAN-GARR differential positioning with L2 carrier (using the computed differential corrections including troposphere) The script MakeL2DifTrpMat.scr builds the equations system [DDL2-DDRho-Trp]=[ Los_k- Los_13]*[dr] + [ A ]*[O2*DDN2] for the two epochs required t1=39000 and t2=40500, using the input file DD_PLAN_GARR_13_ALL.dat generated before.
Execute: MakeL2DifTrpMat.scr DD_PLAN_GARR_13_ALL.dat 39000 40500
The OUTPUT are the files M1.dat and M2.dat associated with each epoch. Where: the columns of files M.dat are the vector y (first column) and Matrix G (next columns)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.4.1. Estimate GARR coordinates with DDL2 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
208
D.4. PLAN-GARR differential positioning with L2 carrier (using the computed differential corrections including troposphere) 1. Computing the FLOATED solution (solving the equations system). The following procedure can be applied P=inv(G1'*W*G1+G2'*W*G2); x=P*(G1'*W*y1+G2'*W*y2);
octave load M1.dat load M2.dat
x(1:3)' -0.2949
y1=M1(:,1); G1=M1(:,2:12);
Taking into account that the ”a priori” coordinates of GARR are: GARR=[4796983.5170 160309.1774 4187340.3887] Therefore the estimated absolute coordinates of GARR are: GARR+ x(1:3)' 4796983.2221 160309.1937 4187340.4454
y2=M2(:,1); G2=M2(:,2:12); Py=(diag(ones(1,8))+ones(8))*2e-4; W=inv(Py);
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
0.0163
0.0567
D.4.1. Estimate GARR coordinates with DDL2 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
209
D.4. PLAN-GARR differential positioning with L2 carrier (using the computed differential corrections including troposphere) 2. Applying the LAMBDA method to FIX the ambiguities. The following procedure can be applied (justify the computations done) Compare the different results found. Decorrelation and integer LS search solution octave
[Qz,Zt,Lz,Dz,az,iZ] = decorrel (Q,a); [azfixed,sqnorm] = lsearch (az,Lz,Dz,2); afixed=iZ*azfixed; sqnorm(2)/sqnorm(1) ans = 15.3627929427384 afixed(:,1)'
c=299792458; f0=10.23e+6; f2=120*f0; lambda2=c/f2 a=x(4:10)/lambda2; Q=P(4:10,4:10);
-1075655 -675593
Rounding the floated solution directly
938718 -356299
468181 1439836
Rounding the decorrelated floated solution afix=iZ*round(az)
round(a)' -1075654 -675592
1343160 -313616
1343161 -313617
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
938718 -356299
468182 1439835
-1075655 -675593
D.4.1. Estimate GARR coordinates with DDL2 (using tropospheric corrections)
1343160 -313616
938718 -356299
468181 1439836
@ J. Sanz & J.M. Juan
210
D.4. PLAN-GARR differential positioning with L2 carrier (using the computed differential corrections including troposphere) 3. Repair the DDL2 carrier measurements with the DDN2 FIXED ambiguities and plot results to analyze the data. octave amb=lambda2*afixed(:,1); save ambL2.dat amb
Using the previous the file ambL2.dat and "DD_PLAN_GARR_13_ALL.fixL1", generate the a file with the following content: ----------------------------- DD_PLAN_GARR_13_ALL.fixL1L2 ----------------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 PLAN GARR 13 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 O DDN1 O DDN2 ----------------------------------------------------------------------------------------------
Note: This file is identical to file "DD_PLAN_GARR_13_ALL.fixL1", but with the ambiguities added in the last field #19.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.4.1. Estimate GARR coordinates with DDL2 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
211
D.4. PLAN-GARR differential positioning with L2 carrier (using the computed differential corrections including troposphere) a) Generate a file with the satellite PRN number and the ambiguities: grep -v \# ambL2.dat > na2 cat DD_PLAN_GARR_13_ALL.dat|gawk '{print $4}'|sort -nu|gawk '{print $1,NR}’ >sat.lst paste sat.lst na2 > sat.ambL2
b) Generate the "DD_PLAN_GARR_13_ALL.fixL1L2" file: cat DD_PLAN_GARR_13_ALL.fixL1| gawk 'BEGIN{for (i=1;i L2fix.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.4.2. Estimate GARR coordinates with DDL4 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
221
D.4. PLAN-GARR differential positioning with L2 carrier (using the computed differential corrections including troposphere) Plot the baseline estimation error graph.py -f L2fix.pos -x1 -f L2fix.pos -x1 -f L2fix.pos -x1 --yn -.05 --yx .15 --xl km: L2 ambiguities fixed:
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
–y2 -s.- -l "North error" –y3 -s.- -l "East error" –y4 -s.- -l "UP error" "time (s)" --yl "error (m)" -t "PLAN-GARR: 15.2 No wet tropo estim."
D.4.2. Estimate GARR coordinates with DDL2 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
222
D.4. PLAN-GARR differential positioning with L2 carrier (using the computed differential corrections including troposphere)
Differential Positioning error after fixing ambiguities Question: Discuss the possible sources of the bias found in the vertical component.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.4.2. Estimate GARR coordinates with DDL2 (using tropospheric corrections)
@ J. Sanz & J.M. Juan
223
D.5.1 PLAN-GARR differential positioning with L1 carrier (with ambiguity fixed and correcting from tropo. and Klobuchar iono.) ----------------------------- DD_PLAN_GARR_13_ALL.fixL1L2 ----------------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 PLAN GARR 13 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 O DDN1 O DDN2 ----------------------------------------------------------------------------------------------
Plot the unambiguous DDSTEC as a function of time and elevation, using Klobuchar model (it corresponds to the field #13 of file DD_PLAN_GARR_13_ALL.fixL1L2).
Execute: graph.py -f DD_PLAN_GARR_13_ALL.fixL1L2 -x6 –y13 -so -l "DDIon (Klobuchar Iono Model)" --xl "time (s)" --yl "(m L1 delay)" --yn -.1 --yx .1 -t "PLAN-GARR: 15.2 km: DDSTEC" graph.py -f DD_PLAN_GARR_13_ALL.fixL1L2 –x16 –y13 -so -l "DDIon (Klobuchar Iono Model)" --xl "elevation (deg.)" --yl "(m L1 delay)" --yn -.1 --yx .1 -t "PLAN-GARR: 15.2 km: DDSTEC"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.5.1. Estimate GARR coordinates with DDL1 (using tropo & Iono Klobuchar)
@ J. Sanz & J.M. Juan
224
D.5.1 PLAN-GARR differential positioning with L1 carrier (with ambiguity fixed and correcting from tropo. and Klobuchar iono.)
Modelled DDIono (Klobuchar) as a function of time Question: Discuss this plot
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.5.1. Estimate GARR coordinates with DDL1 (using tropo & Iono Klobuchar)
@ J. Sanz & J.M. Juan
225
D.5.1 PLAN-GARR differential positioning with L1 carrier (with ambiguity fixed and correcting from tropo. and Klobuchar iono.)
Modelled DDIono (Klobuchar) as a function of elevation Question: Why a larger dispersion is found at a low elevation?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.5.1. Estimate GARR coordinates with DDL1 (using tropo & Iono Klobuchar)
@ J. Sanz & J.M. Juan
226
D.5.1 PLAN-GARR differential positioning with L1 carrier (with ambiguity fixed and correcting from tropo. and Klobuchar iono.) ----------------------------- DD_PLAN_GARR_13_ALL.fixL1L2 ----------------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 PLAN GARR 13 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 O DDN1 O DDN2 ----------------------------------------------------------------------------------------------
Plot the prefit-residuals: Prefit= DDL1-DDRho-Lambda1*DDN1-DDTropo+DDIon: 1.- As a function of time graph.py -f DD_PLAN_GARR_13_ALL.fixL1L2 -x6 -y'$8-$11-$18-$12+$13' -so -l "Prefit DDL1" --xl "time (s)" --yl "metres" --yn -.1 --yx .1 -t "PLAN-GARR: 15.2 km: DDL1-DDRho-DDTropo+DDIon-Lambda1*DDN1"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.5.1. Estimate GARR coordinates with DDL1 (using tropo & Iono Klobuchar)
@ J. Sanz & J.M. Juan
227
D.5.1 PLAN-GARR differential positioning with L1 carrier (with ambiguity fixed and correcting from tropo. and Klobuchar iono.)
DDL1 Pre-fit residuals as a function of time. Question: Discuss the noise seen in the plot.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.5.1. Estimate GARR coordinates with DDL1 (using tropo & Iono Klobuchar)
@ J. Sanz & J.M. Juan
228
D.5.1 PLAN-GARR differential positioning with L1 carrier (with ambiguity fixed and correcting from tropo. and Klobuchar iono.) D.5.1. Using the DDL1 carrier with the ambiguities FIXED, and correcting from both troposphere and Klobuchar ionosphere (DDSTEC), compute the LS single epoch solution for the whole interval 39000< t L1model_Klob.dat
b) Compute the Least Squares solution cat L1model_Klob.dat |LS > L1fixKlob.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.5.1. Estimate GARR coordinates with DDL1 (using tropo & Iono Klobuchar)
@ J. Sanz & J.M. Juan
230
D.5.1 PLAN-GARR differential positioning with L1 carrier (with ambiguity fixed and correcting from tropo. and Klobuchar iono.) Plot the positioning error graph.py -f L1fixKlob.pos -x1 –y2 -s.- -l "North error" -f L1fixKlob.pos -x1 –y3 -s.- -l "East error" -f L1fixKlob.pos -x1 –y4 -s.- -l "UP error" --yn -.1 --yx .1 --xl "time (s)" --yl "error (m)" -t "PLAN-GARR: 15.2 km: L1 ambiguities fixed + Tropo + Klobuchar"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.5.1. Estimate GARR coordinates with DDL1 (using tropo & Iono Klobuchar)
@ J. Sanz & J.M. Juan
231
D.5.1 PLAN-GARR differential positioning with L1 carrier (with ambiguity fixed and correcting from tropo. and Klobuchar iono.)
Differential Positioning error with L1, ambiguities fixed and troposphere with ionosphere (from Klobuchar) corrections Question: Discuss the results.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.5.1. Estimate GARR coordinates with DDL1 (using tropo & Iono Klobuchar)
@ J. Sanz & J.M. Juan
232
D.6. Unambiguous DDSTEC determination ----------------------------- DD_PLAN_GARR_13_ALL.fixL1L2 ----------------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 PLAN GARR 13 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 O DDN1 O DDN2 ----------------------------------------------------------------------------------------------
Using DDL1, DDL2 and the fixed ambiguities DDN1 and DDN2 obtained before, compute and plot the unambiguous DDSTEC as a function of time and elevation. Execute: graph.py -f DD_PLAN_GARR_13_ALL.fixL1L2 -x6 -y'($8-$18-$10+$19)*1.546' -so -l "DDL1-Amb1-(DDL2-Amb2)" --xl "time (s)" --yl "(m L1 delay)" --yn -.1 --yx .1 -t "PLAN-GARR: 15.2 km: DDSTEC" graph.py -f DD_PLAN_GARR_13_ALL.fixL1L2 –x16 -y'($8-$18-$10+$19)*1.546' -so -l "DDL1-Amb1-(DDL2-Amb2)" --xl "elevation (deg.)" --yl "(m L1 delay)" --yn -.1 --yx .1 -t "PLAN-GARR: 15.2 km: DDSTEC"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.6. Unambiguous DDSTEC determination
@ J. Sanz & J.M. Juan
233
D.6. Unambiguous DDSTEC determination
Unambiguous DDSTEC as a function of time Question: Discuss the noise seen in the plot.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.6. Unambiguous DDSTEC determination
@ J. Sanz & J.M. Juan
234
D.6. Unambiguous DDSTEC determination
Unambiguous DDSTEC as a function elevation Question: Why do we have an elevation-dependent pattern?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.6. Unambiguous DDSTEC determination
@ J. Sanz & J.M. Juan
235
D.6. Unambiguous DDSTEC determination ----------------------------- DD_PLAN_GARR_13_ALL.fixL1L2 ----------------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 PLAN GARR 13 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 O DDN1 O DDN2 ----------------------------------------------------------------------------------------------
Plot the prefit-residuals: Prefit= DDL1-DDRho-Lambda1*DDN1-DDTropo+alpha1*STEC: 1.- As a function of time
D1
f 22 f f 22 2 1
1
J 1
1.546 § 77 ·
2
J ¨ ¸ graph.py -f DD_PLAN_GARR_13_ALL.fixL1L2 © 60 ¹ -x6 -y'$8-$11-$18-$12+1.546*($8-$18-$10+$19)' -so -l "Prefit DDL1" --xl "time (s)" --yl “metres" --yn -.15 --yx .15 -t "PLAN-GARR: 15.2 km: DDL1-DDRho-Lambda1*DDN1-DDTropo+alpha1*STEC"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.6. Unambiguous DDSTEC determination
@ J. Sanz & J.M. Juan
236
D.6. Unambiguous DDSTEC determination
DDL1 Pre-fit residuals as a function of time. Question: Discuss the noise seen in the plot.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.6. Unambiguous DDSTEC determination
@ J. Sanz & J.M. Juan
237
D.6. Unambiguous DDSTEC determination ----------------------------- DD_PLAN_GARR_13_ALL.fixL1L2 ----------------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 PLAN GARR 13 PRN DoY sec DDP1 DDL1 DDP2 DDL2 DDRho DDTrop DDIon El1 Az1 El2 Az2 O DDN1 O DDN2 ----------------------------------------------------------------------------------------------
Plot the prefit-residuals: Prefit= DDL1-DDRho-Lambda1*DDN1-DDTropo+alpha1*STEC: 2.- As a function of elevation graph.py -f DD_PLAN_GARR_13_ALL.fixL1L2 -x16 -y'$8-$11-$18-$12+1.546*($8-$18-$10+$19)' -so -l "Prefit DDL1" --xl "elevation (deg.)" --yl “metres" --yn -.15 --yx .15 -t "PLAN-GARR: 15.2 km: DL1-DDRho-Lambda1*DDN1-DDTropo+alpha1*STEC"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.6. Unambiguous DDSTEC determination
@ J. Sanz & J.M. Juan
238
D.6. Unambiguous DDSTEC determination
DDL1 Pre-fit residuals as a function of elevation. Question: Why do we have an elevation-dependent pattern?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.6. Unambiguous DDSTEC determination
@ J. Sanz & J.M. Juan
239
D.6.1 PLAN-GARR differential positioning with L1 carrier (with ambiguity fixed and correcting from tropo. and actual Iono.) D.6.1. Using the DDL1 carrier with the ambiguities FIXED, and correcting from both troposphere and ionosphere (DDSTEC), compute the LS single epoch solution for the whole interval 39000< t L1model_stec.dat
b) Compute the Least Squares solution cat L1model_stec.dat |LS > L1fixStec.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.6.1. Estimate GARR coordinates with DDL1 (using tropo & DDSTEC corrections)
@ J. Sanz & J.M. Juan
241
D.6. PLAN-GARR differential positioning with L1 carrier (with ambiguity fixed and correcting from tropo. and DDSTEC) Plot the positioning error graph.py -f L1fixStec.pos -x1 –y2 -s.- -l "North error" -f L1fixStec.pos -x1 –y3 -s.- -l "East error" -f L1fixStec.pos -x1 –y4 -s.- -l "UP error" --yn -.1 --yx .1 --xl "time (s)" --yl "error (m)" -t "PLAN-GARR: 15.2 km: L1 ambiguities fixed + Tropo + DDSTEC"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.6.1. Estimate GARR coordinates with DDL1 (using tropo & DDSTEC corrections)
@ J. Sanz & J.M. Juan
242
D.6. PLAN-GARR differential positioning with L1 carrier (with ambiguity fixed and correcting from tropo. and DDSTEC)
Differential Positioning error with L1, ambiguities fixed with Tropo and DDSTEC removed. Question: Is any bias expected due to the L1-LC APCs, when removing the ionosphere using the unambiguous DDSTEC?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.6.1. Estimate GARR coordinates with DDL1 (using tropo & DDSTEC corrections)
@ J. Sanz & J.M. Juan
243
D.7. PLAN-GARR differential positioning with LC carrier (with ambiguities fixed and correcting troposphere) Repeat the previous exercise, but using the ionosphere free combination of carriers DDLC, with the ambiguities fixed.
The following procedure can be applied a) generate a file with the following content;
[Time], [DD(LC-Amb)-DDRho-DDTrp], [Los_k - Los_13] where: Time= seconds of day DD(LC-Amb) – DDRho –DDTrp = Prefit residulas (i.e., "y" values in program LS.f) Los_k – Los_13 = The three components of the geometry matrix (i.e., matrix "a" in program LS.f)
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.7. Estimate GARR coordinates with DDLC FIXED (using tropo)
@ J. Sanz & J.M. Juan
244
D.7. PLAN-GARR differential positioning with LC carrier (with ambiguities fixed and correcting troposphere) [Time], [DD(LC-Amb)-DDRho-DDTrp], [Los_k - Los_13] cat DD_PLAN_GARR_13_ALL.fixL1L2 | gawk 'BEGIN{g2r=atan2(1,1)/45} The following sentence can be used: {e1=$14*g2r;a1=$15*g2r;e2=$16*g2r;a2=$17*g2r;g=(77/60)**2; L1=$8-$18;L2=$10-$19;LC=(g*L1-L2)/(g-1); printf "%s %14.4f %8.4f %8.4f %8.4f \n", $6,LC-$11-$12, -cos(e2)*sin(a2)+cos(e1)*sin(a1),-cos(e2)*cos(a2)+cos(e1)*cos(a1), -sin(e2)+sin(e1)}' > LCmodel.dat
b) Compute the Least Squares solution cat LCmodel.dat |LS > LCfix.pos
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.7. Estimate GARR coordinates with DDLC FIXED (using tropo)
@ J. Sanz & J.M. Juan
245
D.7. PLAN-GARR differential positioning with LC carrier (with ambiguities fixed and correcting troposphere) Plot the positioning error graph.py -f L1fixStec.pos -x1 –y2 -s.- -l "North error" -f L1fixStec.pos -x1 –y3 -s.- -l "East error" -f L1fixStec.pos -x1 –y4 -s.- -l "UP error" --yn -.1 --yx .1 --xl "time (s)" --yl "error (m)" -t "PLAN-GARR: 15.2 km: LC ambiguities FIXED + Tropo"
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.7. Estimate GARR coordinates with DDLC FIXED (using tropo)
@ J. Sanz & J.M. Juan
246
D.7. PLAN-GARR differential positioning with LC carrier (with ambiguities fixed and correcting troposphere)
Differential Positioning error with DDLC, ambiguities fixed. Question: Compare this iono-free solution with that obtained with DDL1, removing the troposphere and ionosphere using the unambiguous DDSTEC. Are the results the same? Why?
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
D.7. Estimate GARR coordinates with DDLC FIXED (using tropo)
@ J. Sanz & J.M. Juan
247
@ J. Sanz & J.M. Juan
248
Thanks for your attention
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
Acknowledgements • To the University of Delft for the MATLAB files of LAMBDA method. • To the INDRA company and Institut Cartogràfic de Catalunya for the data files of receivers IND1,IND2, IND2 and PLAN, GARR, respectively. • To Adrià Rovira-Garcia for his contribution to the editing of this material and gLAB updating and integrating this learning material into the GLUE.
The ESA/UPC GNSS-Lab Tool suite (gLAB) has been developed under the ESA Education Office contract N. P1081434.
gAGE/UPC Research group of Astronomy & Geomatics Technical University of Catalonia
@ J. Sanz & J.M. Juan
List of Acronyms
List of Acronyms
AGW
Atmospheric Gravity Waves
ANTEX
ANTenna EXchange format
APC
Antenna Phase Centre
ARP
Antenna Reference Point
ASCII
American Standard Code for Information Interchange
A/S
Anti-Spoofing
C/A
Coarse/Acquisition
CDDIS
Crustal Dynamics Data Information System
CODE
Centre for Orbit Determination in Europe
CRF
Celestial Reference Frame
CRS
Conventional Celestial Reference System
CS
Cycle Slip
DAT
Data Analysis Tool
DCB
Differential Code Bias
DLL
Dynamic Link Library
DLR
Deutsches Zentrum f¨ ur Luft- und Raumfahrt
DOP
Dilution Of Precision
DoY
Day of Year
DPC
Data Processing Core
ECEF
Earth-Centred, Earth-Fixed
ECI
Earth-Centred Inertial
EMR
Energy Mines and Resources
ENU
East North Up
ESA
European Space Agency
gAGE
Research group of Astronomy and Geomatics 319
TM-23/2
320
GAL
GALileo Satellite Identifier
GDOP
Geometric Dilution Of Precision
GEO
GEOstationary Satellite Identifier
GIPSY
GPS Inferred Positioning SYstem
gLAB
GNSS-LAB tool suite
GLO
Glonass Satellite Identifier
Glonass
GLObal NAvigation Satellite System
GNSS
Global Navigation Satellite System
GNU
GNU’s Not Unix
GPS
Global Positioning System
GRACE
Gravity Recovery and Climate Experiment
GRAPHIC
Group and Phase Ionospheric Calibration
GFree
Geometry Free
GUI
Graphical User Interface
HDOP
Horizontal Dilution Of Precision
HTML
HyperText Markup Language
IAC
Information Analytical Centre
ICD
Interface Control Document
IFree
Ionosphere Free
IGL
IGS Glonass orbit products
IGRF
International Geomagnetic Reference Field
IGS
International GNSS Service
IGST
IGS Time
IODE
Issue Of Data Ephemerides
IODN
Issue Of Data Navigation
IONEX
IONosphere map EXchange format
IRI
International Reference Ionosphere
ITRF
International Terrestrial Reference Frame
JPL
Jet Propulsion Laboratory
LEO
Low Earth Orbit
LS
Least Squares
List of Acronyms
LSTIDs
Large-Scale TIDs
MC
Satellite Mass Centre
MCC
Mission Control Centre
MJD
Modified Julian Day
MM
Monument Marker
MSDOS
Microsoft Disk Operating System
MSTID
Medium-Scale Travelling Ionospheric Disturbance
MSTIDs
Medium-Scale Travelling Ionospheric Disturbances
MW
Melbourne–W¨ ubbena
NANU
Notice Advisory to NAVSTAR Users
NASA
National Aeronautics and Space Administration
NEU
North East Up
NGA
National Geospatial-Intelligence Agency
NSE
Navigation System Error
OS
Operating System
PCO
Phase Centre Offset
PCV
Phase Centre Variation
PDOP
Precision Dilution Of Precision
PNG
Portable Network Graphics
PPP
Precise Point Positioning
PRN
Pseudo-Random Noise
PVT
Position, Velocity, Time
PZ-90
Parametry Zemli 1990 (Parameters of Earth 1990)
RINEX
Receiver INdependent EXchange format
RK4
Fourth-order Runge–Kutta
RMS
Root Mean Square
RO
Radio Occultation
S/A
Selective Availability
SBAS
Satellite-Based Augmentation System
SED
Storm Enhancement Density
SINEX
Solution (Software/technique) INdependent EXchange format 321
TM-23/2
322
SIS
Signal In Space
SISRE
Signal In Space Range Error
SOHO
SOlar Helioscopic Observatory
SP3
Standard Product #3
SPP
Standard Point Positioning
SPS
Standard Positioning Service
SSI
Signal Strength Indicator
STEC
Slant Total Electron Content
STROP
Slant TROPospheric delay
SU
Soviet Union
SV
Space Vehicle
SVN
Space Vehicle Number
TDOP
Time Dilution Of Precision
TEC
Total Electron Content
TECU
Total Electron Content Unit
TGD
Total Group Delay
TID
Travelling Ionospheric Disturbance
TRF
Terrestrial Reference Frame
TRS
Conventional Terrestrial Reference System
TUM
Technische Universit¨at M¨ unchen
UPC
Technical University of Catalonia
USNO
United States Naval Observatory
UTC
Coordinated Universal Time
VDOP
Vertical Dilution Of Precision
WGS-84
World Geodetic System 84
ZTD
Zenith Tropospheric Delay