77 136.it - en
77 136.it - en
com
Chapter 8
Insertion Procedure
A Rinex le, when downloaded from the internet, is in a doubly compressed format.
Compression is necessary for exchanging GNSS observation data via the internet.
Taking as a reference the Rinex 2.11 le from the Padua station dated 02/04/2020
(already analyzed in chapter 3 and visible in figure 6.1), the first compression is the
one that corresponds to a .Z final extension. The consequent decompression can be
performed using a winzip program or similar. The second compression is in a
proprietary format: this type of format identi es data that is ordered and stored
according to a particular encoding scheme. The decoding and interpretation of this
data store can only be achieved with particular software or hardware that the
company itself has developed. Some of the most well-known proprietary formats and
their relative extensions are: Microsoft Excel .xls,MP3 .mp3and Windows Media
Video .wmv. As for Rinex files, the proprietary format is encountered when you need
to compress or decompress files according to the procedureHatanaka (which takes
its name from its creator and developer Yuichi Hatanaka): it allows to convert the
format of GNSS observation les from the RINEX format (version 2.xx or 3.xx) to a
compressed format (the CompactRINEX format) and vice versa. Specifically, the
second compression is the ..dfor the observational les and the .nfor those browsing.
The decompression is done automatically via the bash script
crz2rnx.sh
which returns in the format ".OR"the observational ones and ".N"navigation ones. As for
the practical development of the following steps, the procedure was carried out for new
stations having observation Rinex dated February 4, 2020.
77
78 CHAPTER 8. INPUT PROCEDURE
For example, to know all the parameters of February 4th (at the moment only the
day of the year reported in Rinex is known), as you can see in figure 8.1, you have to
type in the prompt:
Figure 8.1: Scripttoday.pl.By providing the date with the given syntax, the
program returns: day of the week and year, GPS day and week
The working structure of the script can be seen in Appendix A.1. Once you have
entered the software interface, select the toolWith guresand from the drop-down
menu that appears (visible in figure 8.2) press the itemSet session/compute date:
Once the window in figure 8.3 appears, you need to set the date which is assumed
to be the same as theBernesecoincides with that of the Rinex. The new Rinex are
dated February 4th, therefore the year and day are set as shown in figure 8.3. In this
way, at the bottom of the software screen, the year and day become the desired
ones.
8.2. POSITIONING CHECK 79
Figure 8.3: Window for setting the day you are supposed to work on (must coincide with
the day indicated in the Rinex les of the new stations)
https://www.oc.nps.edu/oc2902w/coord/llhxyz.htm
and manually enter the coordinates of each station. The second, if there are
multiple stations, is to implement the Matlab functionecef2llaavailable in Navigation
Toolboxwhich, knowing the coordinates in the ECEF system, converts them into the
navigation system (Latitude, Longitude, Altitude). With this second mode,
proceeding in order, you need to open the terminal in the folder containing the Rinex
and, through the commandgrep,face to face with the data filter, type:
If there are multiple les, the character "?" can be inserted instead of their
name and extension. In this way, as can be seen in figure 8.4, the terminal filters,
for each Rinex, the name of the le with the keyword in purple, the line of les
containing the keyword in white and the keyword itself in red.
With the commandgrep,all the irrelevant lines are le. To remove parts of le
printed, if you printed the screen on a (whose name can for example
to be "grep_ le",you can use, for example, the perl command:
substr(name_le,start_character,characters_from_beginning)
which following the syntax allows you to filter, for the file, from the number of the
character you want to keep (the characters start from zero), for a certain number of
characters. Ai In this discussion this command is executed twice so that
remain in the the output only the names of the stations and the coordinates which are then
united in one them via the "Input_matlab.pl" script reported in Appendix A.2
80 CHAPTER 8. INPUT PROCEDURE
Figure 8.4: The commandgrep:typing "grep APPROX file_name" in the folder where the Rinex
files are located, in addition to the keyword, the entire line of the files is read
Table 8.1: Input file structure for MatLab; the number of characters is indicated in
brackets
If you are not familiar with the Linux environment, this procedure can also be
performed in a spreadsheet and then transferred to a text sheet with the order,
structure and number of characters described in table 8.1:
8.2. POSITIONING CHECK 81
With the file just generated, via the MatLab functionecef2llapresent in the
navigation_toolbox,it is possible to calculate latitude, longitude and altitude of all
receivers; also, through the scriptXYZ2LLA (reported in Appendix B.1) you get the output
in KML format (readable byGoogle Earth).Opening the KML file withGoogle Earth it is
possible to locate the geographical position of the stations (identified by the Matlab logo
and visible in figure 8.5).
If no errors have been made, the STA file is generated inside the STA folder,
divided into 5 sections (TYPE) with a similar structure (the first one is shown in figure
8.7):
ˆRENAMING OF STATION where, following the name of the site, after a space,
the Marker Number is reported; if it has not yet been assigned by the IGS,
manually enter 00000M000 as shown in figure 8.7. The FLAG (generally 001),
the operating period of the site (it is left blank or a very large period is
reported), the original name of the station (if the station name is changed if
the station already exists) and the name of the Rinex le from which the data
are extracted are then reported;
ˆSTATION INFORMATION For each station, you can specify the name
of the receiver, the receiver serial number, the antenna name, the antenna
serial number, the antenna eccentricity, and a description of the station;
8.4. CRD FILE 83
Figure 8.7: Example of the first part of the le.STA: pay attention to how the
receivers have been named
ˆthe coordinates in the ECEF system of the stations (taken from Rinex) at the current time;
For this purpose, the file shown in figure 8.8 was created containing the
coordinates extrapolated from the Rinex of day 035.
84 CHAPTER 8. INPUT PROCEDURE
Header with creation date (it does not need to coincide with the current era)
Reference geoid (IGS14'(WGS84) Era of the Rinex (date of the same)
Number Domes Number X [m] Y [m] Z [m] FLAG
Figure 8.8: le.CRD. Analyzing, from the left, we find: the list of new stations, the domes
number, the approximate coordinates and the FLAG
ˆThe domes number (which is remembered to be made up of the first four letters of the
marker name and marker number);
ˆthe velocities along the three directions (X, Y, Z) in meters per year;
ˆthe receiver tectonic plate. The acronyms of the tectonic plates are reported
in figure 8.9 following the distinction in figure 8.10.
Similar to the le.CRD, also for the le.PLD, the date in the header does not
necessarily have to coincide with the current era or that of the Rinex.
8.6. FILE SPEED 85
For the present discussion, the file shown in figure 8.9 was created containing the
coordinates extrapolated from the Rinex of day 035.
Figure 8.9: le.PLD. Analyzing, from the left, you find: the list of new stations, the
domes number, the station voltage (if known), any signals and plaque
8.10). If a site is not available in the ITRF coordinate or velocity list, this program is
a good approximation for calculating coordinate propagation because it
calculates model velocities based on a plate definition file. If a station name is not
listed in the plate definition file, a zero velocity is set by default. If the new station
is close to one whose velocity is already known, the two stations can be merged
into a single a priori velocity file.
Inside the window, check that the inputs selected by default by the software
match those just generated in the STA folder (with the exception of the speed which,
not having precise information, is not known). By pressingRUNand scrolling down on
OUTPUTit is possible to have a first check on the operation: if the procedure is carried
out correctly, as reported in figure 8.12, the stations for which the speeds have been
calculated correspond to the stations in the list.
Some of the most common possible errors may be:
ˆthe correct amount of space was not left between names (for example, for spaces not
you have to use the TAB key because it is read as a single space and therefore the columns get
out of alignment)
ˆSome stations were not transcribed or one of the previous ones was left
(used as a reference model for spaces).
Figure 8.13: le.VEL. Analysing, from the left, you can find: the list of new stations, the
domes number, the velocities of the stations along the three directions, any signals and
the plate they belong to.
Figure 8.15: the UPA_2014.CRD. Analyzing, from the left, we find: the list of new stations,
the domes number, the coordinates approximated to 2010 and the FLAG
8.8. ATL FILE 89
The generated ATL le is structured as follows: first of all there is a header in which
the corrections and the displacements of the centers of mass (CMC) are described.
After the header, for each station, the coefficients are reported (in figure 8.17 those
for the BLGN station are reported; the others have the same structure)
Figure 8.17: le.ATL: after the header the values for the BLGN station are reported
90 CHAPTER 8. INPUT PROCEDURE
After selectingYESto the voice:Do you want to correct your loading values for the motion?
and having left out the other fields, in the windowWhere are your stations? you must enter
the name of the stations and the calculated coordinates in the UPS_2014.CRD file following
the required syntax. For the stations of day 035, the structure is that of figure 8.19.
Figure 8.19: Structure and syntax to enter to generate the .BLQ file
After completing this step, you need to enter your email address to which the
BLQ file will be sent.
8.9.BLQ FILE 91
The header of the ocean tide loading table (figure 8.20 shows the one for the
stations in this paper) provides the center of mass corrections (CMC).
Figure 8.20: Top, header of the BLQ le. Bottom, example of the 11 tidal coefficients
for the BLGN station
92 CHAPTER 8. INPUT PROCEDURE
1. Aosta Valley-Piedmont-Liguria;
2. Lombardy;
5. Emilia-Romagna;
6. Marche-Umbria;
7. Abruzzo;
8. Lazio;
9. Molise-Campania;
10. Puglia-Basilicata-Greece;
11. Calabria-Sicily;
12. Sardinia.
Through geolocation performed withGoogle Earth (figure 8.5) and with the help of
figure 8.21 it is possible to define the cluster of each station as displayed in figure
8.22
Created all input les for theBerneseit is necessary to insert the new receivers
inside the pre-existing les with the same format in the BERNEZ/STAITA folder; this
operation must be performed manually, for each station, of each les.
8.10. CLUB FILE 93
Figure 8.21: On the left, subdivision of the Italian territory into Clusters; on the right,
geolocation of the stations
ˆdownloadu52.pl
ˆprcdu52.pl
9.1.1 Downloadu52.pl
The download process includes updating the le of the stations and receivers,
calibrating the antennas, acquiring the les Rinex, atmospheric parameters and
satellite orbits. To launch the script with the prompt you need to be inside the
folder GPSUSER/BERNEZ/perlscripts and type the following instruction:
where:
ˆDOW (Day Of Week) indicates the days of the week in the range [0-6] where 0
corresponds to Sunday and 6 to Saturday.
If you want to download data for February 4, 2020 (the today.pl script shown
in figure 8.1 provides the number and day of the week), since it is a Tuesday (day
2 of the GPS week), you need to type:
95
96CHAPTER 9. MAIN SCRIPTS FOR GNSS DATA PROCESSING
Bernutilu52.pm
in which are collected, host, user and password of the various ftp addresses in which
there are the daily Rinex of the GNSS stations provided by the various public and private
bodies such as the National Institute of Geophysics and Volcanology (INGV), NETGEO,
Italian Regions, etc. In other words, theBernutilu52.pmis aimed at downloading the
Rinex; action that is specified via the commandwgetwhich allows you to download the to
regardless of the protocol (httpor(ftp)of the site. In case of error, a log is produced wherethe
the type of problem is possibly specified. The rinex, once downloaded, are: placed inside
the ORX folder, automatically unzipped from the zip and converted into RINEX format via
the script
crz2rnx.sh
9.1.2 Prcdu52.pl
The main parts of the data processing script are partly reported and described in
appendix A.3. To launch the script with the prompt you need to be inside the
GPSUSER/BERNEZ/perlscripts folder and type the following instruction:
where:
ˆTYPE indicates whether the daily (rx2sxm) or weekly (comb) campaign was
performed using precise orbits;
ˆDOW (Day Of Week) indicates the days of the week in the range [0-6] where 0
corresponds to Sunday and 6 to Saturday.
To run the daily GNSS data processing procedure for February 4, 2020 with
fast orbits, you need to type:
Instead, if you want to perform the weekly combination of daily solutions with precise
orbits, you need to type:
perl prcdu52.pl 2091 comb 0 6
The processing procedure consists in the implementation in succession or in
parallel of the scripts contained in the GPSUSER/SCRIPT folder, a detailed list of which
is given in Appendix C. When a script is called during processing, by default, it is
transcribed into the le:
R2S_BPE.OUT
This is automatically generated inside the BPE folder of the campaign being
processed. This allows, in the event of an error during the procedure, to
determine which was the last script launched before the program crashed.
The time of the data processing procedure depends on the performance of the
machine and, above all, on the size of the network: the denser the network, the longer
the time taken but also the accuracy of the solutions.
9.2.1 Itarapid.sh
The script, a schematic outline of which is given in Appendix A.4, is launched by the
user from the GPSUSER/BERNEZ/perlscripts folder by typing:
. /itarapid.sh WEEK DOWstartDOWNend
If no arguments are provided (GPS week, WEEK and start and end day, DOW),
the previous day will be calculated: that is, downloadu52.pl, chdrnx.pl (to check
the les rinex, prcdu52.pl and reportemaildrapid.pl (to report any errors) are
launched sequentially. Once Saturday, which coincides with day 6 of the GPS
week, has been processed, the weekly combination of solutions is performed
which estimates the position of the stations for the GPS week just passed, based
on the combination of the daily solutions obtained with the rapid orbits. To
launch the script manually, you need to type:
perl prcdu52.pl WEEK combrDOWNstartDOWNend
At the end of the weekly procedure, the Bernese Bulletin is issued, a detailed
description of which will be presented in the next chapter. In addition to the updated
coordinates, it also reports the graphs indicating the millimetric displacement of the
stations and their direction.
98CHAPTER 9. MAIN SCRIPTS FOR GNSS DATA PROCESSING
If no arguments are provided (GPS week, WEEK and start and end day, DOW),
the day corresponding to two weeks before will be calculated. For all days the
download is performed again in order to obtain the precise orbits. As for the
processing procedure, the
Even at the end of this process, if no error reports have been sent via the perl
script reportemail.pl, registered users will be sent the weekly Bernese Bulletin
with the solution obtained by means of precise orbits.
Chapter 10
Conclusions
Once the processing procedure has been successfully completed, the folders in which the
combinations of both daily and weekly solutions are collected in the respective macros
are SOL and OUT. The output les are over 2000 and in different formats: for example, in
the SOL folder the solution in binary format is placed, while in the OUT folder, the
solution in the navigation reference system. The reason why there are over 2000 types of
output is linked to the fact that the solution is calculated for each hour. Furthermore, for
each hourly interval, a combination of the solutions is also performed assuming the
absence of certain atmospheric parameters, some of which, through processing, are
determined numerically and used in other geophysical fields.
where
constitute the actual solution of the processing. For the case in question the
les are:
The first part of the le, regardless of the type of orbits used, reports, as reported in
table 10.1, the a priori coordinates of the stations. In this table, and also in the following
ones, only the "BLGN" station is considered since the structure is the same for all of them.
99
100 CHAPTER 10. CONCLUSIONS
name X (m) Y (m) Z (m) Lat (°) Long (°) Height (m)
Table 10.1: Structure of the first section of the daily solutions file in which the a
priori coordinates of the stations are reported
In the second section of the le, for each station, the coordinates are reported with
the relative corrections, as reported in table 10.2. The corrections, despite the
stations having just been added, are rather small. This implies that the approximate
coordinates extracted from the Rinex les were precise; however, this is not always
true: for example, it may happen that incorrect coordinates are provided and, if it
was not detected in the previous steps, it may emerge in this step since there would
be a rather high correction and mean square deviation.
name coordinate correction (m) estimated value (m) rms a priori coordinates (m)
rapid orbits
BLGN X - 0.00573 4466810.62906 0.00156 4466810.63479
precise orbits
Table 10.2: Structure of the second section of the daily solutions file where the
estimated coordinates and the relative corrections are reported
The third section of the le describes the corrections made at various times of the
day taking into account the specific and different atmospheric parameters for each
station. For example, for the BLGN station:
10.1. THE DAILY SOLUTION 101
name coordinate value (m) estimated value (m) rms ∆ (m) era
rapid orbits
BLGN N 0.00004 0.00004 0.00017 0.00000 2020-02-04 00:00:00
precise orbits
Table 10.3: Structure of the third section of the daily solutions file in which the
corrections due to the atmospheric parameters are reported
The fourth section of the le (Table 10.4) contains the a priori coordinates, the coordinates
estimated by processing and the relative corrections both in the ECEF reference system and in
the navigation system. In addition to the corrections, in the navigation reference system, the
eccentricity of the error ellipsoid is also determined in both 3-D and 2-D. The ellipse (in 2-D)
and the error ellipsoid (in 3-D), from a statistical point of view, represent the area or volume
within which, given the center, there is a good probability of finding an individual randomly
selected from the population. The greater the eccentricity and the radius of the ellipse, the
more homogeneous the distribution of the stations and the more accurate the final result. A
representation of the ellipse in 2D is shown in
figure below in whichσxAndσyare the squared deviations along the respective directions.
√
x+σ2y)+ (σ2x−σ2y)2+4σ2xy
to2=(σ2 2
√
x+σ2y)− (σ2x−σ2y)2+4σ2xy
b2=(σ2 2
( )
2σxy
ϕ=1 2arctan σx2−σ2y
102 CHAPTER 10. CONCLUSIONS
name coordinate a priori value (m) estimated value (m) correction (m) RMS
rapid orbits
BLGN X 4466810.63479 4466810.62906 - 0.00573 0.00156
precise orbits
Table 10.4: Structure of the fourth section of the daily solutions file in which, for all
coordinates, the a priori value, the estimated value, their di erence and the standard
deviation are found.
Finally, in the fifth and last section, as shown in table 10.6, the corrections due
to tropospheric interferences are reported throughout the hours of the day.
Taking the BLGN station as a reference, the results found (taken from a file inside
the ATM folder and not generated by theBernese) I am:
10.1. THE DAILY SOLUTION 103
rapid orbits
name corrections (m) rms (m) ellipsoid error (m)
name North East Zenith North East Zenith Max RMS Min RMS Azi
BLGN 0.00004 - 0.00020 0.07975 0.00017 0.00016 0.00298 0.00017 0.00016 -2
BLGN 0.00003 - 0.00020 0.08626 0.00016 0.00015 0.00238 0.00016 0.00015 -2
BLGN 0.00001 - 0.00020 0.08517 0.00016 0.00015 0.00226 0.00016 0.00015 -2
BLGN - 0.00000 - 0.00020 0.08492 0.00015 0.00014 0.00209 0.00015 0.00014 -2
BLGN - 0.00002 - 0.00021 0.07438 0.00014 0.00013 0.00229 0.00014 0.00013 -1
BLGN - 0.00004 - 0.00021 0.08661 0.00013 0.00012 0.00228 0.00013 0.00012 -1
BLGN - 0.00005 - 0.00021 0.08316 0.00013 0.00012 0.00196 0.00013 0.00012 -1
BLGN - 0.00007 - 0.00021 0.09620 0.00012 0.00011 0.00221 0.00012 0.00011 -1
BLGN - 0.00008 - 0.00021 0.09238 0.00012 0.00011 0.00248 0.00012 0.00011 0
BLGN - 0.00010 - 0.00021 0.08725 0.00011 0.00010 0.00221 0.00011 0.00010 0
BLGN - 0.00011 - 0.00022 0.04719 0.00011 0.00010 0.00275 0.00011 0.00010 0
BLGN - 0.00013 - 0.00022 0.03834 0.00011 0.00010 0.00249 0.00011 0.00010 1
BLGN - 0.00014 - 0.00022 0.03017 0.00011 0.00009 0.00264 0.00011 0.00009 1
BLGN - 0.00016 - 0.00022 0.03269 0.00011 0.00009 0.00235 0.00011 0.00009 1
BLGN - 0.00017 - 0.00022 0.01281 0.00012 0.00010 0.00200 0.00012 0.00010 1
BLGN - 0.00019 - 0.00022 0.02835 0.00012 0.00010 0.00191 0.00012 0.00010 1
BLGN - 0.00020 - 0.00023 0.02628 0.00013 0.00010 0.00242 0.00013 0.00010 1
BLGN - 0.00022 - 0.00023 0.02765 0.00013 0.00011 0.00270 0.00013 0.00011 1
BLGN - 0.00024 - 0.00023 0.03494 0.00014 0.00011 0.00221 0.00014 0.00011 1
BLGN - 0.00025 - 0.00023 0.03153 0.00015 0.00012 0.00227 0.00015 0.00012 1
BLGN - 0.00027 - 0.00023 0.03613 0.00015 0.00013 0.00218 0.00015 0.00013 1
BLGN - 0.00028 - 0.00023 0.04015 0.00016 0.00013 0.00236 0.00016 0.00013 1
BLGN - 0.00030 - 0.00024 0.04055 0.00017 0.00014 0.00310 0.00017 0.00014 1
BLGN - 0.00031 - 0.00024 0.04138 0.00018 0.00015 0.00238 0.00018 0.00015 1
BLGN - 0.00033 - 0.00024 0.03191 0.00019 0.00016 0.00313 0.00019 0.00016 1
Table 10.5: Structure of the fifth part of the le of daily solutions with rapid orbits
The file just presented, with its five sections, constitutes the daily solution. From a
practical point of view it is useful to verify that there are no errors during the daily
procedure; however, for reasons mainly related to the computer memory,
104 CHAPTER 10. CONCLUSIONS
precise orbits
Table 10.6: Structure of the fifth section of the daily solutions file with precise
orbits
where:
ˆ7 is the number of days that make up the campaign (it is put because it can
it may happen that one day it is not processed due to some error).
The week containing day 35 of 2020, as shown in Figure 8.1, is 2091; therefore,
the les to be analyzed with rapid and precise orbits are:
Similarly to the daily campaign, also in the weekly one, in the first section of
the le, as highlighted in table 10.7, the a priori coordinates of the station network
are reported. Taking as a reference, also for the weekly solution, the BLGN
station:
name X (m) Y(m) Z(m) Lat (°) Long (°) Height (m)
Number of pseudo-observations 3 3
Number of explicit parameters 1260 1314
Number of implicit parameters 181821 195240
Table 10.8: Statistical parameters provided in the second section of the weekly
solution
The third section (table 10.9) contains the average variation of displacements
during the whole week in the ECEF reference system:
name coordinate correction (m) estimated value (m) rms a priori coordinates (m)
rapid orbits
BLGN X 0.00028 4466810.63502 0.00044 4466810.63474
precise orbits
The fourth section of the le, reported for the BLGN station in Table 10.10, contains the a
priori coordinates, the calculated coordinates and the corresponding corrections in both the
ECEF reference system and the navigation system. For the corrections in the navigation
reference system, the eccentricity of the error ellipse is also determined.
rapid orbits
BLGN X 4466810.63474 4466810.63502 0.00028 0.00044
precise orbits
The last section of the le (table 10.11) reports, for each station, the weekly
mean square deviation and that of each day, from Sunday (0) to Saturday (6).
rapid orbits
name coordinate rmsweek rms0 RMS1 RMS2 RMS3 RMS4 RMS5 RMS6
BLGN N 0.68 - 0.51 - 0.31 1.23 - 0.18 0.70 - 0.53 0.34
BLGN AND 0.76 - 0.70 0.54 0.78 - 0.87 - 0.75 - 0.66 - 0.52
precise orbits
BLGN AND 1.15 - 1.09 1.38 0.60 - 1.49 - 0.93 - 0.75 - 0.92
http://www.epncb.oma.be/_productsservices/coordinates/
The Bernese Bulletin for the week 2091 calculated with the precise orbits is available on
the Veneto GPS network website:
http://147.162.229.63/Dati/Bernese/2020/bolwk2091.txt
In Appendix D, for reasons of length of the file, in addition to the structure of the bulletin, the
data of the BLGN station only are reported. The structure of the bulletin is as follows:
ˆComparison in millimetres of the station coordinates with respect to the com- solution
unweighted binata mean square value of the residuals for each coordinate;
ˆList of stations not processed during the week because the data is not available
present or because they were discarded.
Furthermore, the Bernese Bulletin also provides maps with graphic indicators of
presence (red) or absence (blue) of each station in the weekly solution.
The weekly bulletin is accompanied by the file utmegg%YWEEK%.sum, containing the
geographic coordinates of the sites (latitude, longitude and geodetic elevation), the plane
coordinates (UTM) in meters and the time zone they belong to.
Appendix A
A.1 Today.pl
The scriptToday.plis used to determine, given a date, the day of the year and the GPS day and
week, or vice versa. It is launched from the prompt by typing:
Where:
ˆvar are the days before today that I have to define the data
ˆ '-o' specifies the output type; otherwise it provides all the various combinations
109
110 APPENDIX A. PERL AND BASH SCRIPTS
Usage: gps_date <[ -ymd | -yd | -wd | -mjd | -doy DATSTR ] [ -t[today] ]>
[ -hms | -hid TIMSTR ]
[ -h | -d | -w + /-INT ]
[ -o OUTSTR ]
[ -v ]
A.2 Downloadu52.pl
# !/usr/bin/perl
# list of some of the scripts called use Gps_Date;
use Bernutilu52;
$remotedir = "/pub/product/$gpsweek";
$localdir = $datadir.'/wk'.$gpsweek.'/ORB'; =
$remotefile "igs".$gpsweek."7.erp.Z";
112 APPENDIX A. PERL AND BASH SCRIPTS
$mode = 'binary';
# List of receivers not present in the list provided by AIUB and their addition
system("echo \"CHC P5E 2 P1 L1: 1 GR\"> $ld/AddToREC_File");
system("echo \" P2 L2: 1 \">>$ld/AddToREC_File");
system("echo \" \">>$ld/AddToREC_File");
# process repeated for all receivers and their subsequent addition into the analysis
A.2. DOWNLOADU52.PL 113
# Renaming stations because they already exist example: BORR -> BOR0 for (my
$i=$first; $i<=$last; ) {
$year2 = &gps_date("-wd $gpsweek $i -o %y");
my $English = $datadir."/".$campdir[$i].'/ORX/BOR0'.$doy[$i].'0.'.$year2.'O'; my $Euref =
$datadir."/".$campdir[$i].'/ORX/BORR'.$doy[$i].'0.'.$year2.'O';
# statements for which the receiver name is incorrect. Example: VELO system("sed -i
's/TPS E_GGD /TPS EGGDT /g' VELO*.??O");
# execute and remove link of files in ORX folder in RAW for (my $i=$first;
$i<=$last; ) {
$year2 = &gps_date("-wd $gpsweek $i -o %y");
chdir $datadir.'/'.$campdir[$i].'/ORX'; foreach my
$rnxfile (glob("*.${year2}O"))
114 APPENDIX A. PERL AND BASH SCRIPTS
A.3 prcd52u.pl
# !/usr/bin/perl
# list of some of the scripts called use Gps_Date;
# flag types:
# 1 PPP: with the Bernese this type of calculation can be tackled.
# the part of the script related to this point is not analyzed because it is not used
my $index = "0";
for ($index=$first; $index<=$last; ) {
$$BPE1{BPE_CAMPAIGN} = '${P}'."/$campnam[$index]";
$$BPE1{PCF_FILE} = 'RNX2SNXM';
$$BPE1{SESSION} = $doy[$index]."0";
A.3. PRCD52U.PL 115
$$BPE1{YEAR} = $year;
$$BPE1{TASKID} = "R2";
$$BPE1{SYSOUT} = "R2S_BPE";
$$BPE1{STATUS} = "R2S_BPE";
$index++;}
$$BPE1{BPE_CAMPAIGN} = '${P}'."/U/wk".$gpsweek; $
$BPE1{PCF_FILE} = 'COMB';
$$BPE1{SESSION} = $doy[6]."0";
$$BPE1{YEAR} = $year4;
$$BPE1{TASKID} = "aw";
$$BPE1{SYSOUT} = "AWK_BPE";
$$BPE1{STATUS} = "AWK_BPE";
# similar to the previous one; varies the types of orbits analyzed if ($flag eq
"combr") {
%newVar = ("V_R" => "R", "V_OTYPE" => "RAPID");
116 APPENDIX A. PERL AND BASH SCRIPTS
# estimate atmospheric parameters (calculate final solution) with precise orbits if ($flag eq
"tropo" || $flag eq "all") {
printf "estimating troposheric parameters (fixed mean coordinates, FINAL orbits)";
(-e $filetobecopied);
copy($filetobecopied, $newfile);
# estimation of atmospheric parameters (calculation of the final solution) with rapid orbits
# similar to the previous one; varies the types of orbits analyzed if ($flag eq
"tropor" || $flag eq "all") {
printf "estimating troposheric parameters (fixed mean coordinates, RAPID orbits)";
%newVar = ("V_R" => "R", "V_OTYPE" => "RAPID");
A.4. ITARAPID.SH 117
A.4 itarapid.sh
# !/bin/bash
ARGC=$#
YWEEK=$(today.pl -1 -o %W)
YDOW=$(today.pl -1 -o %w)
done
YY=$(today.pl -2 -o %y)
YDOY=$(today.pl -2 -o %j)
118 APPENDIX A. PERL AND BASH SCRIPTS
# initialize daily data processing procedure with fast orbits perl prcd52u.pl $YWEEK
rx2sxmr $YDOW $YDOW
# Editor of the weekly Bernese Bulletin with rapid orbits scp $P/U/${YY}
_${YDOY}/OUT/UPA${YY}${YDOY}0R.OUT
[email protected] :/var/www/daily_output/UPA${YY}${YDOY}0R.OUT;
if [ -e "$P/U/wk${YWEEK}/OUT/HLM${YWEEK}7R.LST" ]; then
echo "High residuals found: $P/U/wk${YWEEK}/OUT/HLM${YWEEK}
7R.LST. Re-run MANUALLY." exit 0
yes
. /bulletCEmap.sh $YWEEK
. /bulletSSmap.sh $YWEEK
. /bulletSARDmap.sh $YWEEK
cd $U/BERNEZ/perlscripts
/usr/bin/dos2unix -n bolwk$YWEEK /tmp/bolwk$YWEEK.dos2unix /
usr/bin/iconv --from-code=ISO-8859-1 --to-code=UTF-8 -o
bolwk$YWEEK /tmp/bolwk$YWEEK.dos2unix
# Publication of the weekly bulletin on the Veneto GPS network website YYYY=$
(today.pl -wd $YWEEK 0 -o %Y)
scp bolwk$YWEEK
[email protected] :/var/www/Dati/Bernese/$YYYY/bolwk${YWEEK}_rapid.txt cp
$P/U/wk$YWEEK/SOL/UPA${YWEEK}7R.NQ0 $P/EUP /G/UPA${YWEEK}7.NQ0 fi
120 APPENDIX A. PERL AND BASH SCRIPTS
# !/bin/bash
# the procedure, this time, is executed with the precise orbits. perl
prcd52u.pl $YWEEK rx2sxm $YDOW $YDOW
perl reportemaild.pl $YWEEK $YDOW
Editing of the weekly Bernese Bulletin with precise orbits if [ $YDOW -eq
6 ]; then
cd $U/BERNEZ/perlscripts
echo Week $YWEEK complete, proceeding with combine and bulletin generation sleep
5
rm -f $P/U/wk$YWEEK/BPE/AWK_BPE.*
perl prcd52u.pl $YWEEK comb 0 6 perl
reportemail.pl $YWEEK 0 6
if [ -e "$P/U/wk${YWEEK}/OUT/HLM${YWEEK}7.LST" ]; then
echo "High residuals found: $P/U/wk${YWEEK}/OUT/HLM${YWEEK}7.LST. Re-
run MANUALLY."
exit 0
yes
perl xtract.pl $YWEEK
cp bolwk$YWEEK
bolwk_current . /teoriche.sh
cd $U/BERNEZ/fortranprog . /
et2utmegg.sh $YWEEK
cd $U/BERNEZ/GMT
/bulletinmap.sh $YWEEK . /
bullet3VENEmap.sh $YWEEK
. /bulletNWmap.sh $YWEEK
. /bulletCEmap.sh $YWEEK
. /bulletSSmap.sh $YWEEK
. /bulletSARDmap.sh $YWEEK
cd $U/BERNEZ/perlscripts
/usr/bin/dos2unix -n bolwk$YWEEK /tmp/bolwk$YWEEK.dos2unix /
usr/bin/iconv --from-code=ISO-8859-1 --to-code=UTF-8 -o
bolwk$YWEEK /tmp/bolwk$YWEEK.dos2unix
cp $P/U/wk$YWEEK/G/UPA${YWEEK}7.NQ0 $P/EUP/G/UPA${YWEEK}7.NQ0
$U/BERNEZ/perlscripts/serie.pl cd
$P/EUP/OUT
. /extrneuv52 UPA1632.PLT
# update of coordinates in ETRF2000 sdr on the GPS Veneto network site perl /home/gps/
GPSDATA/CAMPAIGN52/EUP/SCRIPTS/IGS14toETRF2000Vels.pl
. /extrvel_up52 UPA1632.OUT $U/BERNEZ/
perlscripts/gencsv.pl $U/BERNEZ/perlscripts/
velocity.sh $U/BERNEZ/perlscripts/collectRes.pl $
{YWEEK}
cp -f $P/EUP/OUT/psvelo_${YWEEK}.txt $P/EUP/OUT/psvelo_current.txt
yes
A.6. INPUT_MATLAB.PL 123
A.6 Input_matlab.pl
Script created to generate the input to feed to matlab. The output is a le in which the first four
characters are the names of the stations and the others are the XY Z coordinates. To be
executed, this perl must be in the same folder where the le generated with the command is
located grep ((see section 5.2)
B.1XYZ2NEU.m
%The Input_file file obtained via grep from UBUNTU is loaded %part in
which a table is created with only the XYZ coordinates
%e removing the contribution of the grep used to find the position %of the
receivers
[lat,lon,alt] = ecef2lla(x,y,z)
length=length(lat(1,:))'; %% kml icon
format
125
126 APPENDIX B. MATLAB SCRIPTS AND OUTPUTS
LineStringColor=string(repmat('cyan',[length 1]));
Icon=string(repmat('111',[length 1]));
IconColor=string(repmat('red',[length 1]));
IconHeading=string(repmat('line-180',[length 1]));
Name=string(name_station{1});
%% write an excel file
B = [Name 360/2/pi*lat(:) 360/2/pi*lon(:) alt' LineStringColor Icon... IconColor
IconHeading ];
C = {'Name','Latitude', 'Longitude','Altitude','LineStringColor','Icon',...
'IconColor','IconHeading'};
%filename = 'ECEF2LLA.xlsx';
%writecell(C,filename,'Sheet','1','Range','A1');
%writematrix(B,filename,'sheet','1','Range','A2');
iconDir = fullfile(matlabroot,'toolbox','matlab','icons');
iconFilename = fullfile(iconDir,'matlabicon.gif');
%'Description',description);
winopen ECEF2LLA.kml;
B.2. ECEF2LLA.KML 127
B.2 ECEF2LLA.kml
Description for a single icon of the language implemented in kml format.
When the user launches the data processing procedure, the scripts that are executed are the
following:
${U}/PCF/RNX2SNXM.PCF
------------------------------------------------------------------------------------
Mean time in seconds
PID Script OPT say CPU = PGM + Aux Max CPU Session PID_SUB Rerun Error
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 001
RNX2STA R2S_GEN 0 0 0 0 193340 001_000 0 0
002 STAMERGE R2S_GEN 0 0 0 0 193340 002_000 0 0
003 COOVEL R2S_GEN 0 0 0 0 193340 003_000 0 0
006 ATX2PCV R2S_GEN 22 21 0 22 193340 006_000 0 0
031 ION_MRG R2S_GEN 0 0 0 0 193340 031_000 0 0
101 POLUPDH R2S_GEN 0 0 0 0 193340 101_000 0 0
111 ORBMRGH R2S_GEN 0 0 0 0 193340 111_000 0 0
112 PRE-TAB R2S_GEN 0 0 0 0 193340 112_000 0 0
113 ORBGENH R2S_GEN 3 3 0 3 193340 113_000 0 0
199 DUMMY NO_OPT 0 0 0 0 193340 199_000 0 0
211 RNXSMTAP R2S_GEN 0 0 0 0 193340 211_000 0 0
212 RNXSMT_H R2S_GEN 7 6 0 11 193340 212_024 0 0
221 RXOBV3AP R2S_GEN 0 0 0 0 193340 221_000 0 0
222 RXOBV3_H R2S_GEN 158 157 0 158 193340 222_001 0 0
231 CODSPPA R2S_GEN 0 0 0 0 193340 231_000 0 0
232 CODSPP_P R2S_GEN 5 5 0 7 193340 232_042 0 0
233 CODXTR R2S_GEN 0 0 0 0 193340 233_000 0 0
299 DUMMY NO_OPT 0 0 0 0 193340 299_000 0 0
301 INIT_BSL R2S_GEN 0 0 0 0 193340 301_000 0 0
302 SNGDIF R2S_GEN 147 146 0 151 193340 302_000 0 0
303 SNGDIF R2S_GE2 151 150 0 157 193340 303_000 0 0
311 MAUPRPAP R2S_GEN 0 0 0 0 193340 311_000 0 0
312 MAUPRP_P R2S_GEN 8 7 0 115 193340 312_002 0 0
313 MPRXTR R2S_GEN 0 0 0 0 193340 313_000 0 0
129
130APPENDIX C. SCRIPTS IMPLEMENTED DURING GNSS DATA PROCESSING
Bernese Bulletin
http://147.162.229.63/scidata/velocity_vert.pdf
131
132 APPENDIX D. BERNESE BULLETIN
==================================
ORBIT FILES:
COD20910.SP3
COD20911.SP3
COD20912.SP3
COD20913.SP3
COD20914.SP3
COD20915.SP3
COD20916.SP3
-------------------------------------
Bernese GNSS Software, Version 5.2
Program : ADDNEQ2
Purpose : Combine normal equation systems :
Campaign ${P}/U/wk2091
Phase center variations Earth : ${X}/GEN/PCV.I14
rotation parameters Resulting : ---
normal equations SINEX : ${P}/U/wk2091/SOL/UPA20917.NQ0 :
${P}/U/wk2091/SOL/UPA20917.SNX
====================================
INPUT NORMAL EQUATION FILES: Binary files of the weekly solution taken to perform the
weekly combination
1 ${P}/U/wk2091/G/R1_200330.NQ0 $
2 {P}/U/wk2091/G/R1_200340.NQ0 $
3 {P}/U/wk2091/G/R1_200350.NQ0 $
4 {P}/U/wk2091 /G/R1_200360.NQ0 $
5 {P}/U/wk2091/G/R1_200370.NQ0 $
6 {P}/U/wk2091/G/R1_200380.NQ0 $
7 {P}/U/wk2091/G/R1_200390.NQ0
Main characteristics of normal equation files: observation period of previous files with total
number of observations, parameters and degrees of freedom
---------------------------------
File From You No. degree of
observations / parameters / freedom
--------------------------------------------------------------------------------
G Rms (m) X Y Z X Y Z-scale (ppm)
--------------------------------------------------------------------------------1
0.00236 0.0142 0.0087 -0.0108 - 0.0002 0.0006 0.0002 - 0.00068
2 0.00318 0.0213 -0.0205 -0.0116 0.0004 0.0007 -0.0006 - 0.00050
3 0.00402 0.0529 -0.0146 -0.0257 0.0001 0.0017 -0.0007 - 0.00265
4 0.00403 - 0.0662 0.0437 0.0813 - 0.0008 -0.0034 0.0012 - 0.00271
5 0.00283 - 0.0557 0.0518 0.0454 - 0.0008 -0.0023 0.0016 - 0.00002
6 0.00226 - 0.0402 0.0286 0.0290 - 0.0005 -0.0016 0.0009 0.00057
7 0.00317 - 0.0503 0.0145 0.0474 - 0.0002 -0.0022 0.0005 - 0.00006
--------------------------------------------------------------------------------
======================================================================== =============================
COMPARISON OF STATION COORDINATES WITH RESPECT TO THE COMBINED SOLUTION IN MM
- UNWEIGHTED RMS OF INDIVIDUAL COORDINATE RESIDUALS
--------------------------------------------------------------------------------
RMS 1234567
--------------------------------------------------------------------------------
BLGN 00000M000 N 0.76 - 0.43 - 0.02 1.38 - 0.19 0.95 - 0.60 - 0.32
BLGN 00000M000 AND
1.15 - 1.09 1.38 0.60 -1.49 -0.93 -0.75 -0.92
BLGN 00000M000 U . 76 -0.37 -1.65 -6.08 -1.00 -0.53 0.47 - 2.06
======================================================================== ==============================
COORDINATES (ETRS89): WK 2091 ; MINIMALLY CONSTRAINED STATIONS ARE MARKED WITH W
========================================================= =====================================
X (m) Y (m) Z (m)
============================
MISSING STATIONS
== ...
=============================
======================================================================== ===============================
[2] Rolf Dach, Simon Lutz,Peter Walser, Pierre Fridez, Bernese GNSS SoftwareVersion 5.2, AIUB, 2015
[3] Matt King, Stuart Edwards, Peter Clarke, Precise Point Positioning: Breaking the Monopoly of
Relative GPS Processing, 2002
[4] A. Caporali, M. Bertocco, L. Nicolini, N. Praticelli, J. Zurutuza, Report on the state of the GPS
network of the Veneto Region, 2019
[5] A. Stoppini, Slides of the "Presentation at the SIFET National Conference", June 2009
[6] Notes from the course "Satellite Navigation" held by Prof. A. Caporali
[7] Notes from the course "Satellite Attitude Control" held by Prof. A. Francesconi
[8] Notes from the course "Aerospace Instrumentation" held by Prof. E. Lorenzioni
[9] Gaio Renè, Master's thesis: Integrated navigation with GPS and Galileo constellations,
University of Padua, 2016
[10] Carlotta Morini, PhD Thesis: Streaming of GNSS data via the Internet and related
applications, University of Padua, 2007
[11] Werner Gurtner, Lou Estey, RINEX The Receiver Independent Exchange FormatVersion
3.04, November 2018
[12] Werner Gurtner, RINEX: The Receiver Independent Exchange Format Version 2.11, AIUB
2007
[15] Stefan Schaer, Gerhard Beutler, Markus Rothach, MAPPING AND PREDICTING THE
IONOSPHERE, AIUB 1998
[17]https://gnss-metadata.eu
[18]http://147.162.229.63/Web/index.php
135
136 BIBLIOGRAPHY
[19]http://www.ingv.it/it/
[20]http://en.beidou.gov.cn
[21]https://gssc.esa.int/navipedia
[22]http://www.netgeo.it/
[23]https://www.stonex.it/it/
[24]https://www.nasa.gov/