gLAB - Release Notes

gLAB v5.5.1 (2020/12/11)

This is a maintenance release to fix the processing problems with the updated ANTEX with multi-constellation and multi-frequency receiver APC (since igs14_2112.atx).

Modifications and bug fixes:

  • Updated CDDIS links in the GUI for downloading data.
  • Fixed bug when ANTEX has multi-constellation and multi-frequency receiver APC.

Future updates:

  • Multiconstellation
  • SBAS DFMC

 

File nameTypeDescription
input.c fixed Fixed not separating the receiver APC corrections by constellations. This made that the last frequency read from the last constellation was the value saved.
gLAB_GUI added Added link "ftp://ftp.sirgas.org/pub/gps/SIRGAS/" in menu "Download Data: Precise Files".
Added link "ftp://gssc.esa.int/gnss/products/1962/mgex/" in menu "Download Data: Other Files".
changed Changed CDDIS link in "Download Data: RINEX Observation Files Version 2" from "ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily/" to "https://cddis.nasa.gov/archive/gnss/data/daily/".
Changed CDDIS link in "Download Data: RINEX Observation Files Version 2" from "ftp://cddis.gsfc.nasa.gov/pub/gps/data/highrate/" to "https://cddis.nasa.gov/archive/gnss/data/highrate/".
Changed CDDIS link in "Download Data: RINEX Observation Files Version 3" from "ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily/campaign/mgex/daily/rinex3/" to "https://cddis.nasa.gov/archive/gnss/data/campaign/mgex/daily/rinex3/".
Changed CDDIS link in "Download Data: RINEX Navigation Files Version 2" from "ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily/" to "https://cddis.nasa.gov/archive/gnss/data/daily/".
Changed CDDIS link in "Download Data: RINEX Navigation Files Version 3" from "ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily/" to "https://cddis.nasa.gov/archive/gnss/data/daily/".
Changed CDDIS link in "Download Data: RINEX Navigation Files Version 3" from "ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily/campaign/mgex/daily/rinex3/" to "https://cddis.nasa.gov/archive/gnss/data/campaign/mgex/daily/rinex3/".
Changed CDDIS link in "Download Data: RINEX Navigation Files Version 3" from "ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily/campaign/mgex/daily/rinex3/2013/brdm/" to "https://cddis.nasa.gov/archive/gnss/data/campaign/mgex/daily/rinex3/2013/brdm/".
Changed CDDIS link in "Download Data: RINEX Navigation Files Version 3" from "ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily/campaign/mgex/daily/rinex3/2014/cnav/" to "https://cddis.nasa.gov/archive/gnss/data/campaign/mgex/daily/rinex3/2014/cnav/".
Changed CDDIS link in "Download Data: Precise Files" from "ftp://cddis.gsfc.nasa.gov/pub/gnss/products/" to "https://cddis.nasa.gov/archive/gnss/products/".
Changed CDDIS link in "Download Data: Precise Files" from "ftp://cddis.gsfc.nasa.gov/pub/glonass/products/" to "https://cddis.nasa.gov/archive/glonass/products/".
Changed CDDIS link in "Download Data: Precise Files" from "ftp://cddis.gsfc.nasa.gov/pub/gps/products/mgex/" to "https://cddis.nasa.gov/archive/gnss/products/mgex/".
Changed CDDIS link in "Download Data: Other Files" from "ftp://cddis.gsfc.nasa.gov/pub/gps/products/ionex/" to "https://cddis.nasa.gov/archive/gnss/products/ionex/".
Changed CDDIS link in "Download Data: Other Files" from "ftp://cddis.gsfc.nasa.gov/pub/gps/products/troposphere/new/" to "https://cddis.nasa.gov/archive/gnss/products/troposphere/new/".
Changed CDDIS link in "Download Data: Other Files" from "ftp://cddis.gsfc.nasa.gov/pub/gps/products/mgex/dcb/" to "https://cddis.nasa.gov/archive/gnss/products/mgex/dcb/".
Changed CDDIS link in "Download Data: Other Files" from "ftp://cddis.gsfc.nasa.gov/pub/gps/products/mgex/" to "https://cddis.nasa.gov/archive/gnss/products/mgex/".
Changed incorrect link from "ftp://gssc.esa.int/gnss/products/ionex/" to "ftp://gssc.esa.int/gnss/products/troposphere_zpd/" in "Download Data: Other Files" menu.
Removed blank line between "ZTD (troposphere)" links in "Download Data: Other Files" menu.

 

gLAB v5.5.0 (2020/11/13)

This is a release to just add NeQuick in gLAB, as we wanted the addition of NeQuick prior to the future full multi-constellation and multi-frequency update. To complement this release, several bugfixes have been backported from the multiconstellation version (still in development).

New highlighted features:

  • Added NeQuick ionosphere model.
  • Added a "Contact Us" help menu in the GUI. The contact email in this new menu was already in the "About Us" help menu, but we realized many users did not find it and contacted us through other means.

Modifications and bug fixes:

  • Updated links in the GUI for downloading data.
  • Fixed several bugs in the core and in the GUI. See full list below.

Future updates:

  • Multiconstellation
  • SBAS DFMC

 

File nameTypeDescription
dataHandling.c added Added NeQuick code from JRC.
changed When selecting GEO with highest elevation, if any GEO is under alarm it will be excluded from selection even if it is the one with highest elevation (with an explicit INFO message informaing about the alarm state), except for the case that there is only GEO in the SBAS data file (in this case it will stated that is selected because it is the only GEO available).
fixed Fix occasional crash in precise orbit concatenation due to incorrect conditions check.
Fix crash in precise orbit concatenation when using a precise clock file with at least 5 concatenated days and in one of the days (not the first or the last) a satellite was available but in the other days it wasn't.
Fixed memory leak from removed SP3 data when a precise orbit data was used with four or more concatenated days.
Fixed all GEO elevations computed to value '0.0' for selection of GEO with highest elevation.
It ocurred when the SBAS data file started before the first epoch of the RINEX observation file and on the first epoch of the observations file the SBAS data buffers were already full.
dataHandling.h added Added check for minimum arc length in L1-C1, BW and LI cycle-slip detectors.
filter.c changed The SATSEL message "SBAS iono unavailable" will now show the GEO PRN used.
gLAB.c changed Fixed bug that made to ignore SBAS satellite corrections that were not processed the first or the last one when option select best GEO was enabled.
gLAB_GUI added Added NeQuick ionosphere model.
Added menu "Contact Us" inside Help menu.
Added link "ftp://gssc.esa.int/gnss/data/daily/" in menus "Download Data: RINEX Observation Files Version 2", "Download Data: RINEX Observation Files Version 3", "Download Data: RINEX Navigation Files Version 2" and "Download Data: RINEX Navigation Files Version 3".
Added link "ftp://gssc.esa.int/gnss/data/highrate/" in menus "Download Data: RINEX Observation Files Version 2" and "Download Data: RINEX Observation Files Version 3".
Added link "ftp://gssc.esa.int/gnss/products/" in menu "Download Data: Precise Files".
Added link "ftp://ftp.ga.gov.au/geodesy-outgoing/gnss/data/daily/" in "Download Data: RINEX Observation Files Version 2", "Download Data: RINEX Observation Files Version 3" and "Download Data: RINEX Navigation Files Version 2".
Added link "ftp://ftp.ga.gov.au/geodesy-outgoing/gnss/data/highrate/" in menu "Download Data: RINEX Observation Files Version 2".
Added link "ftp://gssc.esa.int/gnss/products/ionex/" in menu "Download Data: Other Files".
changed Changed "GPS Receiver Types" link in "Other files" from "https://sideshow.jpl.nasa.gov/pub/gipsy_products/gipsy_params/GPS_Receiver_Types.gz" to "https://sideshow.jpl.nasa.gov/pub/gipsy_products/gipsy_params/GPS_Receiver_Types.gz".
Changed "Valencian Cartographic Institute" credentials page from "http://icverva.icv.gva.es:8080/es/rinex" to "http://www.icv.gva.es/es/web/icv-erva/descarga-ficheros-rinex".
Changed the button text from "OK" to "Close" in "GNSS Date Converted" and "GNSS Coordinate Converter".
Changed default date in "GNSS Date Converter" from 06/01/1980 to 01/01/2000. This is to be able to set a date between the 1st and th 5th month without having to change the month or year first, as in these cases changing first the day was blocked at it would result in a data prior to 06/01/1980, which is not allowed.
Removed links "ftp://igs.bkg.bund.de/IGS/highrate_v3/" and "ftp://igs.bkg.bund.de/MGEX/highrate_v3/" from RINEX observation files version 3.
Removed "EGNOS NTRIP servers" ("https://igs.bkg.bund.de/root_ftp/NTRIP/streams/streamlist_egnos-ip.htm"), "FAMOS NTRIP servers" ("https://igs.bkg.bund.de/root_ftp/NTRIP/streams/streamlist_famos.htm") and "World-Wide NTRIP servers" ("https://igs.bkg.bund.de/root_ftp/NTRIP/streams/streamlist_world-wide.htm") from "List of NTRIP servers" menu.
Updated/corrected several tooltips.
fixed Fixed generation of wrong parameter "-input:klb" instead of "-input:bds" when BeiDou ionosphere model was selected and its model parameters were read from a separate RINEX navigation file.
Fixed ionosphere model not set to "Klobuchar (Beidou)" when loading a configuration file with parameter "-input:bds".
Fixed incorrect error message "MODEL: Klobuchar iono selected in PPP mode, but no external navigation file given" shown when processing in with precise products and using Klobuchar ionosphere model when it should have not shown any error.
Fixed missing tooltip in "Interpolation Degree" label in "A Priori Receiver Form" when DGNSS mode was enabled.
graph.py fixed Fixed exception when the INFO lines contained filepaths with non-ascii characters. These encoding errors will be ignored as these INFO lines are the only one that may contain non ASCII characters and are not used by the plotting tool.
input.c fixed Fixed wrong allocation of satellite slots when header lines '# OF SOLN SATS' and 'PRN LIST' were not present in the RINEX clock file.
Fixed satellite clock data being omitted in RINEX clock files when the satellite number was below 10 and the PRN number was padded with a space character instead of a '0'.
Fixed SBAS handling of special events (UDREI=15 or alarm message) not being treated every second if decimation to 1 or less and the RINEX observation file had a data rate smaller than 1 Hz.
Fixed SBAS handling of special events (UDREI=15 or alarm message) being checked twice on the epochs to be processed and decimation was set to a value greater than 1.
model.c added Added NeQuick code from JRC.
fixed Fixed crash when there were available a full set of SBAS corrections during modelling phase for a GEO and the GEO was not unselected.
model.h added Added NeQuick code from JRC.
output.c changed When user selects an end epoch which is after the last epoch in the RINEX observation file, the last epoch of summary shown in the summary will be the last epoch processed, not the last epoch set by the user.
fixed Fixed incorrect number of epochs missing in summary when the user selects an end epoch which is after the last epoch available in the RINEX observation file.

 

gLAB v5.4.4 (2019/05/10)

This is a maintenance release. No new features have been added.

Modifications and bug fixes:

  • The GUI under Linux (in all architectures) is now compiled with library libmng2 statically linked. Therefore, it is not needed to install this library. This allows all Linux distributions that do not have libmng2 library (e.g. Debian) to be able to run the GUI.
  • The gLAB core is now built with compiler option '-fno-stack-protector'. This options makes the compiler not to add extra code for checking for stack smashing when returning from a function. As gLAB already has checks for avoiding buffer overflows, this check it is not necessary. With this change, the processing time gets reduced around 7%.
  • Fixed a few bugs in the core and in the GUI. See full list below.

Future updates:

  • Measurement selection for cycle-slip detection and in the processing (finished).
  • Multiconstellation (in progress)

 

File nameTypeDescription
gLAB.c added Added check for minimum arc length in L1-C1, BW and LI cycle-slip detectors.
changed gLAB is now compiled with flag "-fno-stack-protector". This flag
prevents the compiler to add code for checking for stack smashing at the return of most of the functions. As gLAB already has checks to prevent  buffer overflow, it is not necessary this checks. With this flag, the processing time gets reduced around 7%.
fixed Fixed wrong initialization of continuity risk values. This made to
account for an additional (false) discontinuity in the computed
continuity risk in the SBAS summary when the start of the SBAS
summary did not match with the start of the RINEX observation
file. This bug did not affect SBAS plots continuity risk
computation.
gLAB_GUI added Added missing check for minimum value for "N-sample" field in L1-C1 cycle-slip detector.
changed The gLAB GUI in Linux x86_64, ARMv7 and ARM64 is now built with libmng2 library linked statically. Therefore, the gLAB GUI can now be run in Linux operative systems that do not have libmng2 available, such as Debian.
Changed gAGE URLs from "www.gage.es" to "gage.upc.es".
fixed Fixed incorrect error message when gLAB was unable to connect to gAGE servers when checking for new gLAB versions.
Fixed incorrect error message for "N-sample" field in Melbourne-Wubbenna cycle-slip detector. The text had * "N-sample cannot be equal or greater than 2" when it has to be "N-sample cannot be less than 2".
Fixed incorrect check of "N-sample" field in Geometry-free cycle-slip detector. This made to accept any value greater than 0, when the minimum acceptable value is 2.
graph.py changed Changed error message from "ERROR: One of the column number provided does not exist in line number {0:d} of SBAS maps data file" to
"ERROR: One of the column number provided does not exist in line number {0:d} of data file". That is, the "SBAS map" words have been removed, as the error could also occur with non SBAS map data files.
model.c fixed Fixed memory leak when computing IONEX ionosphere corrections.
Fixed memory leak when computing F-PPP ionosphere corrections.
output.c fixed Fixed incorrect print of SNR value in MODEL message when using RINEX 2 files and the SNR was read as a measurement.

 

gLAB v5.4.3 (2019/03/20)

This is a maintenance release. No new features have been added.

Modifications and bug fixes:

  • Fixed a few bugs in the core and in the GUI. See full list below.

Future updates

  • Multiconstellation (in progress)

 

File nameTypeDescription
datahandling.c fixed Fixed wrong value of constant MAXAPROXPOSERROR. It had '1E-5', when the correct value should be '1E5'. This error in the constant value made not to discard any satellite by its elevation, as this constant set the threshold for considering the solution converged enough for accepting the satellite elevation values as correct.
This bug affected all modes except SBAS plots modes, and ocurred only in version 5.4.2.
gLAB_GUI added Added "IGS Website with RINEX standards" with a link to an IGS website with links to RINEX standards in the "File Standards" help menu.
graph.py added Added options '--nogeometriesintitle', '--NoGeometriesInTitle', '--noepochsintitle' and '--NoEpochsInTitle'. All of them have the same effect: not to add the number of epochs or geometries in the title in Stanford or Stanford-ESA modes.
Added option '--sfesawithregions' in Stanford-ESA mode to plot the five regions (available, MI, HMI, Unavailable, Unavailable and MI) as in Stanford plot mode. With this option, the user can now create a Stanford Plot from a quantized file already created by the user (e.g. a file created from epochs of several years).
Added option '--sfesawithepochs' to write 'Epochs' instead of geometries in the Stanford-ESA plot. Added capability to set the number of epochs/geometries, number of points that are not MI, the number of points that are MI and the number of points of each of the five regions (available, MI, HMI, Unavailable, Unavailable and MI).
Added options '--hal' and '--val' for setting the alarm limits in the horizontal and vertical axis respectively in Stanford-ESA plots.
Added options '--availepochpos', '--unavailepochpos', '--hmiepochpos', '--miavailepochpos' and '--miunavailepochpos' in Stanford and Stanford-ESA modes for setting the position for the text printed in each of the regions (available, MI, HMI, Unavailable, Unavailable and MI) respectively.
Options '--percentilex', '--percentiley', '--percentilexlist' and '--percentileylist' from Stanford mode now also work in Stanford-ESA mode.

 

fixed Fixed some geometries not counted as MIs in Stanford-ESA mode when the quantized protection level value was 0.
Fixed crash in Stanford-ESA mode when the total number of geometries in any of the axis was 0 or 1.
Fixed incorrect plotting size in Stanford mode when user set a title with two newlines and option 'adjust to margin' was not set.
Fixed "System unavailable" number of epochs in Stanford plots, which was also counting the epochs with MIs and over the alarm limit, when it should only count the number of epochs over the alarm but not MI.

 

gLAB v5.4.2 (2019/03/08)

This is a maintenance release. No new features have been added.

Modifications and bug fixes:

  • Fixed a few bugs in the core and in the GUI. See full list below.

Future updates

  • Multiconstellation (in progress)

 

File nameTypeDescription
gLAB.c added Added parameters '-model:khpa', '-model:kvpa', '-model:khnpa' and '-model:kvnpa' for changing the values of Kh and Kv factors used for computing the protection levels.
Added INFO messages in SBAS plots mode for Kh and Kv values.
Added INFO messages in SBAS plots mode for SBAS receiver type used.
Added INFO message in SBAS plots mode when Klobuchar model or no ionosphere model is used.
Added INFO messages in SBAS plots mode for the cases that a specific sigma or correction is disabled. These messages already appeared in SBAS processing mode, so now they appear in both modes.
Added INFO message in SBAS plots mode with the list of SBAS GEO satellites available in the SBAS data file and not excluded by the user.
If any of the HDOP, PDOP or GDOP filters is disabled in SBAS processing mode, it will print an INFO message stating that it is OFF, instead of not printing anything.
changed Changed INFO messages in SBAS plots mode for SBAS messages timeouts.
If any of these messages are disabled (such as MT10), instead of appearing its timeout, it will print "Message disabled".
Changed parameter '-model:sigmpath'. Now it accepts an optional third argument for setting the value dividing the elevation inside the exponential (in previous versions it was fixed to '10').
This third argument is optional for maintaining compatibility with previous versions.
fixed Fixed INFO messages about DOP filters appearing twice in SBAS plots mode (before and after the timeouts messages).
Fixed last positions in latitude and longitude not being computed and plotted in SBAS plots mode when the step was below 1. It was due to precision errors in the tenth decimal when comparing the maximum latitude/longitude value with the current latitude/longitude value.
Fixed buffer overflow when there were too many deprecated options provided by parameter.
Updated help messages.
gLAB_GUI added Added "Show K factor values" groupbox under the SBAS Advanced options for setting the K factor values used for computing the protection levels.
Added third term for user defined "Fixed Sigma Multipath" for SBAS receiver. This additional term allows to set the factor dividing the elevation inside the exponential.
fixed Fixed parameter for Sigma noise for user defined receiver being set when it was disabled and viceversa.
changed Changed displayed units for elevation based weights in the FILTER tab. Previously the unit was "metres" for all terms, but the correct units are "metres" for the first two terms and "degrees" for the last term.
Changed gLAB paper citation.
graph.py fixed Fixed bug in Stanford plots mode that made to appear false MIs when the difference between the error and the protection level was smaller than the resolution step for quantization and both values were not greater than the maximum value in their axis.
dataHandling.c changed When selection GEO with highest elevation, if a priori position is set to "calculate", in the first iteration it will do a temporary GEO selection (and it will show it in the printed INFO message), and it will select the GEO with highest elevation when the a priori position has converged. It will be done regardless GEO switching is enabled or disabled.
If SBAS file contains data from GEOs of multiple service providers (e.g. EGNOS, WAAS, etc), it will compute the elevation of all GEOs, instead of only computing the elevation of the GEOs available in the almanac message of the first GEO read.
output.c added Added INFO messages in SBAS processing mode for Kh and Kv values.
Added INFO messages in SBAS processing mode for SBAS receiver type used.
If any of the HDOP, PDOP or GDOP filters is disabled, it will print an INFO message stating that it is OFF, instead of not printing anything.
changed Changed INFO messages in SBAS processing mode for SBAS messages timeouts.
If any of these messages are disabled (such as MT10), instead of appearing its timeout, it will print "Message disabled".

 

gLAB v5.4.1

New highlighted features:

  • Added new options in the plotting tool for adding up the availability from all FIRs or from a user FIR selection.
  • In Windows 64 bit, the GUI is now built under Qt 5.12.1 (64 bit). This fixes the random crashes ocurring on startup.

Modifications and bug fixes:

  • Changed default SBAS GEO selection to "Highest Elevation" (previous value was "First Read").
  • Changed default SBAS switching cooltime to 0 (previous value was 20 seconds). This ensures that PA solution is computed whenever possible.
  • In SP3 files, the data interval is now computed instead of read from the header. This fixes reading errors if the header data interval was incorrect.
  • Fixed some RTCM2 files not being decoded at all.
  • Fixed infinite loop when reading non concatenated SP3 which didn't have the line "EOF" at the end.
  • Fixed incorrect printing of SBAS GEO PRN in SBASOUT message when "Select Best GEO" option was enabled (it was computing the solution using the GEO with smaller protection, but it printed the wrong GEO PRN).
  • Some more fixes, see full list below.

Future updates:

  • Measurement selection for cycle-slip detection and in the processing (in progress).
  • Multiconstellation (in progress). 

 

DateFile nameTypeDescription
2019/02/15 dataHandling.c added Added an INFO message with the elevation of the SBAS GEO satellites available (and if it was selected or not) when the selection of GEO with highest elevation is done.
filter.c changed SATSEL message "SBAS corrections unavailable" now also print the GEO PRN.
INFO messages for SBAS stating that a GEO change or mode change or that an epoch is going to be skipped now prints the GEO PRN used.
gLAB.c changed Changed default GEO PRN to use in SBAS. It will now select by default the GEO with highest elevation (except in SBAS plots mode, which still is the first GEO read).
Changed default time between switches (or switching cooltime) in SBAS from 20 seconds to 0 seconds (no limit of changes in an epoch).
fixed Fixed compiler warning '-Wimplicit-fallthrough'.
gLAB_GUI added Added link to ANTEX standard description file in menu "Help->File Standards".
Added link "ftp://cddis.gsfc.nasa.gov/pub/gps/products/" for SINEX files in the menu "Download Data: Precise Files".
Added missing tooltips for "Constellation Letter" and "PRN Number" in the "SP3 File" options of the OUTPUT tab.
changed In 64 bit Windows, the GUI is now built under Qt 5.12.1 (64 bit). 32 bit Windows remain in Qt 5.7.1. The upgrade of Qt version fixes the startup crash that ocurred sometimes.
Changed default SBAS GEO selection to "Highest Elevation" (previous value was "First Read").
Changed default SBAS switching cooltime to 0 (previous value was 20 seconds).
fixed Fixed bug which did not allow the user to select "Class 1" Airborne Receiver Type in SBAS mode.
graph.py added Added option '--firsumdeg' for computing the total degradation percentage in all or some of the FIRs enabled in the SBAS plots. By default it selects all of them, but if user selects one or more FIRs, only the selected FIRs will be used for the total degradation computation.
Added options '--firsumdegeu', '--firsumdegconus', '--firsumdegalaska', '--firsumdegcanada', '--firsumdegmexico' and '--firsumdeguserfir' for controlling which FIRs want to be used for the total degradation computation.
Added options '--firdegtextheaderfirsum', '--firdegtextfooterfirsum', '--firdegtextfirsum', '--firdegtextsizefirsum', '--firdegtextcolorfirsum' and '--firdegtextpositionfirsum' for controlling the output text and its properties for the total degradation computation.
fixed Fixed an error when printing the number of points below the bin value inside the FIR area for user defined FIR areas.
input.c added Added check for wrong measurements or for combinations for the destination measurement when reading the file for adding user defined error.
changed SP3 file interval is now computed instead of reading it from the header. If the interval in the header did not match the real data interval, SP3 orbit computation did not work.
When converting RTCM2 files to text, the ouput files will now be overwritten instead of appending the new data at the end.
fixed Fixed infinite loop when a non concatenaded SP3 file had no EOF line at the end (when this occurred, the last epoch of data was not saved).
Fixed error message "not a valid RTCM2.x message" with a valid RTCM2.x file. It was due to the two last parity bits from the previous message needed to compute the current message parity bits. In the first message read (or if a message was reading), the last two parity bits wre not known, therefore it is necessary to try with all possible four combinations (00, 01, 10 and 11), but it was being checked just with one of them.
model.c fixed Fixed windUp correction computation being accumulated more than once when the modelling process was computed more than once in a single epoch (for instance, when the a priori coordinates have to converge). This error barely had impact on the solution, as in kinematic PPP the error was at the centimeter level, and in static PPP the error was absorved by the ambiguities.
output.c fixed Fixed incorrect data interval written in the header of the output SP3 file created by gLAB. This ocurred when the decimation set by the user was smaller than the RINEX observation data rate.
Fixed wrong GEO PRN print in SBASOUT message when option to select best GEO was enabled. Function 'printBuffersBestGEO' now sets the variable with the GEO PRN used for printing the GEO PRN in the SBASOUT message.


gLAB v5.4.0

New highlighted features:

  • More code optimization for PPP! The optimization is in the precise orbit and clock data handling. Previously it saved all the data without empty samples or samples with 0s. Now, if there are missing samples, they are stored at a fixed rate (adding empty samples if necessary), therefore seeking for a specific sample is very fast. This reduces computational time in the following percentages (measured with a 24h +15 minute data file and with SP3 and CLK concatenated with 3 days of data and at 1Hz data rate):
    • CLK sampling rate 5min: Around 15% faster.
    • CLK sampling rate 30 seconds: Around 60% faster.
    • CLK sampling rate 5 seconds: Around 85% faster. 
  • Added support for SP3 version 'd'. Furthermore, If number of entries in the header of the SP3 file does not match the number of entries read in the file, gLAB will show a warning message, instead of showing an error message and exiting.
  • Compatibility with Linux ARMv7(hf) and ARMv8 (aarch64)!. Previously, the command line and the plotting worked in this platforms. Now the GUI executables (in the Linux version) are also provided for Linux ARMv7(hf) and ARMv8 (aarch64).
  • On 64 bit Windows, the plotting tool is now provided with Python 3.6 64bit, instead of Python 2.6 32 bit. Python 3 is slightly faster and has improved memory usage. It should fix some problems when computing some errors when computing SBAS Availability, as well as enabling the option "Adjust to Margin" (Python 2.6 did not support this option). Furthermore, using 64 bit executable removes the 4GB memory limitation, which could be a problem when computing large SBAS plots (such as SBAS Ionosphere Availability plots).
  • Command line help improved. For the processing core, now each option is separated by a blank line to ease readibility. In the plotting tool, in each parameter it is explicitly shown if it needs additional values or not.
  • In the processing core, several improvements for SBAS, especially for SBAS maps:
    • In SBAS processing, new option to make gLAB select the GEO with smallest protection levels in each epoch.
    • In SBAS processing, if in an epoch the geometry matrix is singular and GEO switching or mode switching is enabled, gLAB will change GEO or mode instead of just skipping the epoch without trying other GEO/modes.
    • In SBAS plots mode, if protection levels are above alarm limits, or geometry matrix is singular, gLAB will try another GEO if GEO switching is enabled, instead of just skipping the epoch at the given coordinate.
    • In SBAS plots mode, when computing DOP maps, if protection levels are above the alarm limits, the DOP in this epoch will not be accounted in the global DOP mean or percentile (previously, any epoch whose geometry matrix was invertible was accounted to the global DOP mean or percentile). In this way, outliers are filtered from the DOP mean, which could be easily biased from an epoch with very bad geometry.
    • Memory usage for SBAS DOP percentile maps have been halved by storing values for percentile computation as "float" type instead of "double" (although all computations are done with "double" type).
    • New SBAS plots manual (in command line mode, but also accesible in the GUI). It explains how SBAS plots are computed, and detailed instructions on how to join the output results from several days of computed SBAS maps.
    • gLAB can handle now any number of concurrent GEOs with alarm.
  • In the plotting tool, lots of improvements, specially for SBAS maps plots:
    • Added "Not Avail" bin to all SBAS plots. All coordinates with 0 epochs of data will be set to this bin.
    • Added CONUS, Alaska, Canada and Mexico FIRs. Each of them can be set independently from each other, including all its properties.
    • Now it is possible to set as many user defined FIRs as desired, and set its properties independently from each other.
    • FIR degradation text now by default will have the value of in the top of the colour bar bin , instead of "Avail".
    • FIR degradation text can now be shown automatically in a table format, very useful when there many differents FIRs.
    • FIR degradation text can be now also printed to standard output, or to a file or both. It is also possible to print the FIR and then exit the program without showing the plot or without  saving the plot to a file (useful for batch processing)
    • Continuity Risk maps can be shown also as percentges (service continuity value) , instead of the continuity risk.
    • Added new templates for SBAS maps. These templates are typically used for SBAS maps reports.
    • Many more improvements. See full list below.

Modifications and bug fixes:

  • Fixed a bug when reading observation RINEX files  that could mess up the internal satellite index if there were BeiDou, QZSS or IRNSS observations data before the GPS satellites.
  • Fixed several bugs related to multithreading.
  • Fixed discontinuity at the start of the day (or hour in hourly maps) not being accounted.
  • Fixed an infinite loop in backwards processing when there were two epochs with the same timestamps (one of them being a event epoch).
  • Much more, see full list below.

Future updates:

  • Measurement selection for cycle-slip detection and in the processing (in progress).
  • Multiconstellation (in progress). 
DateFile nameTypeDescription
2018/11/16 dataHandling.c added Added function 'qsort_compare_float' for comparing float values for the qsort(quick sort) C function.
Added function 'SBASGEOselection' for selection a GEO in SBAS mode.
Added function 'SBASGEOAlarmCheck' for checking alarm conditions in SBAS mode. Furthermore, gLAB is capable of handling any number of alarms is different GEOs at the same time, while before, it could handle only two (which could create errors if there more than two GEOs with alarm at the same time).
Added function 'SaveDataforGEOselection' for saving modelled data for each GEO with solution (when option select best GEO is enabled).
Added function 'SelectBestGEO' for selecting best GEO from the GEOs with solution (when option select best GEO is enabled).
changed Several 'static' variables in different functions have been changes to "const" (when possible) to ensure there are no race conditions with multithreading.
Several 'static' variables in different functions (specially in function 'meastype2measstr') now have below the OpenMP directive '#pragma omp threadprivate()' to avoid race conditions in multithreading.
Modified 'ConcatenateSP3' function. Before, when saving the orbit and clock data, it removed all epochs with 0s or invalid data. Now, it saves all data equally spaced in time (using the interval from the SP3 or clock file), adding 0s when necessary. In this way, it is easy to find the current sample to be used, as it is possible to compute the position of the sample by dividing the time passed from the start of SP3 data to the current epoch by the time interval, whereas before it had to cycle sample by sample until it found the desired one. For big files (such as 5 second clock files), it is a big speed boost when searching for the required samples.
Memory usage for DOP percentile computation has been halved by changing the  storage of the DOP values from type 'double' to 'float'. This only affects to the storage of the values, as all the computation to get the DOP values are computed using 'double' precision.
filter.c changed In SBAS availability maps, the epochs to be taken into account for computation for the HDOP, PDOP or GDOP mean or percentile computation must be the epochs that are under the protection levels. Before, any epoch whose DOP could be computed was taken into account for the mean and percentile. This made that epochs with very large DOP (e.g more than one million) would totally bias the mean DOP value.
Initialization of epoch values for computing the continuity risk is now done in the gLAB.c instead. This is faster, as the initialization is checked only once, while before it was checked every time there was a PA solution. This applies for SBAS navigation and SBAS availability maps modes.
In SBAS or DGNSS modes, if geometry matrix is singular, it will try to change GEO or mode in SBAS or to SPP mode in DGNSS instead of directly skipping the solution.
If option to select best GEO is enabled, for each iteration where there is an available solution, it will save the modelled data and protection levels, and keep looping through all GEOs. Then, from the GEOs with solution, it will selected the one with smallest protection levels.
fixed Fixed initialization of values for computing the continuity risk. Before the initial value for the last epoch with PA solution was the first epoch with PA solution, while now it is one epoch before the first epoch processed. This applies for SBAS navigation and SBAS availability maps modes.
Fixed discontinuities that started in the first epoch processed were not detected. It only affected the maritime continuity risk computation, as there was a discontinuity not taken into account. It didn't affect the aviation continuity risk computation, as there were no PA epochs before that discontinuity. This applies for SBAS navigation and SBAS availability maps modes. The error was due to the initialization of values for computing the continuity risk.
Fixed computation of stable period in the first discontinuity computed (only occurred if the first processed epoch had a PA solution). Before, the size of the stable period prior to the discontinuity would be one epoch smaller than the real value. This would affect the aviation continuity risk computation only if the length of the stable period was smaller than the window size, thus affecting one epoch less (due to that when the stable period is smaller than the window size, the number of affected epochs is the lenght of the stable period). This applies for SBAS  navigation and SBAS availability maps modes. The error was due to the initialization of values for computing the continuity risk.
gLAB.c added Added option '-print:progressalways' for forcing gLAB to printing the progress bar to the terminal even if the output is piped or gLAB is not able to detect if output is a terminal or not. By default, gLAB disables the progress bar if the starndard output is piped, to avoid potentially messing up the input of the next command (for instance, a pipe to 'less' or 'more' commmands). For other cases (for example, piping to an 'awk' or 'grep' command), it is safe to print the progress bar, as when the standard output is not a terminal, gLAB reopens it in a different file descriptor, therefore output prints and progress bar are not mixed.
Added option '-sbasplotsinfo' (also accepted as '-sbasmapsinfo') for showing a new manual section about the necessary files for computing SBAS maps and the scripts for joining the output of multiple SBAS maps output files into a single file.
Added option '-model:selectbestgeo' for SBAS mode to make gLAB compute the SBAS model with all GEO available and select then the one with smallest protection levels.
Added check in SBAS plots mode for start epoch of navigation messages. If they start two days before the current day or earlier, a warning message will be shown, as this means that the navigation file is from another day or there are navigation messages from previous dates or the transmission time of the navigation messages are incorrect.
Added check in SBAS plots mode for start epoch of navigation messages. If it does not start at least 2 hours before the current processing day, a warning message will be printed. Not adding this 2 hours may do that navigation messages are missing at the start of the day.
Added check in SBAS plots mode for end epoch of navigation messages. If it does not  end at least 2 hours after the current processing day, a warning message will be  printed. Not adding this 2 hours may do that navigation messages are missing at the end of the day.
Added check in SBAS plots for DOP percentiles options. If user sets the option to compute the DOP percentiles (option '-sbasplots:doppercentile') but did not enable any DOP map (such as HDOP, PDOP or GDOP), an error message will be shown and gLAB will exit. Previously, in this case an INFO message was printed stating that DOP percentile computation had been enabled, but no DOP percentiles were computed.
Added INFO message in SBAS plots mode stating that navigation data files available usually have missing navigation messages and that the user should create one from several sources.
Added INFO message in SBAS plots mode about the multithread version of gLAB, which can significantly reduce computation time.
Added INFO message in processing mode and SBAS plots mode stating if message type 0 is ignored or not.
Added INFO message in processing mode and SBAS plots mode stating if message type 0 is read as type 2 message.
Added INFO messages in SBAS plots mode with the timeouts of the SBAS messages.
changed Command line help now have a blank line between each option in order to ease readibility.
If option '-numthreads' is provided to the gLAB version compiled without multithreading, it will now show an error message stating that it is not the multithread version, instead of showing an "unknown option" error.
In SBAS plots mode, if with one GEO the geometry matrix is singular or the protection levels are over the alarm limits, if GEO switching is enabled, instead of skipping the epoch, it will try another GEO.
INFO message with window size in SBAS plots mode now show the unit of the window size (seconds).
Disabled satellite navigation message health check flag by default in SBAS mode. According to MOPS, SBAS can override the health flag.
Parameter description and help messages now indicate that all input or output time tags are in GPS time.
Updated help messages.
fixed Fixed several warnings which appeared when compiling with gcc7.
Fixed bug in SBAS plots mode that made to try to create an empty SBAS discontinuity file  when the continuity risk map was disabled. This made gLAB to exit with the following error message: "ERROR Opening output file [] for SBAS solution discontinuities".
Fixed global variables 'printbufferMODEL', 'printbufferSBASCORR', 'printbufferSBASVAR', 'printbufferSBASIONO' and 'printbufferSBASUNSEL' declared as local global variables  (in file 'gLAB.c') instead of using the ones declared in file 'output.c'.
gLAB_GUI added First gLAB version where the GUI is also compiled for ARMv7(hf) and aarch64(ARMv8 64bit) in Linux platforms.
Added link "ftp://cddis.gsfc.nasa.gov/pub/gps/products/mgex/" in the menu "Download Data: Precise Files".
Added links "https://ftp.ngs.noaa.gov/ANTCAL/LoadFile?file=ngs14.atx" and "https://ftp.ngs.noaa.gov/ANTCAL/LoadFile?file=ngs08.atx" in the menu "Download Data: Other Files".
Added manual "gLAB command line SBAS maps description" in the menu "User manuals".
Added option "Select Best GEO" in SBAS options.
changed Changed "Runge-Kutta" effect to "Runge effect" in all the tooltips.
Changed error message when generating equivalent command line instructions. Instead of "configuration file again" the text is "command line instruction again".
In Linux, system library "libjasper" is now statically linked, as this library is no longer provided in Ubuntu 18.
When compiling in Linux, the output filename will change according to the platform being built (x86,x86_64, ARMv7hf, ARM64).
Updated tooltips to indicate that all time tags are in GPS time.
Updated/corrected several tooltips.
fixed Fixed compilation of gLAB GUI in Qt5.10 or greater (in these Qt versions it was necessary to add the preprocessor statement "#include <QDoubleValidator>" in header files glab_gui.h and coord_converter.h).
Fixed incorrect tab order in several elements in the GUI.
graph.py added Added option '--stanetlabelnumsta' for automatically adding the number of stations read for each network in the label.
Added option '--sbasplotsize' for manually setting the plotting size (in centimetres) of the SBAS plot.
Added options '--sbastopfiguremargin', '--sbasbottomfiguremargin',  '--sbasleftfiguremargin', '--sbasrightfiguremargin' for manually setting the SBAS plot top, bottom, left and  right margins respectively.
Added "NA" (Not Available) bin in all SBAS plots. Points in this bin will the ones with 0 epochs (column NUMEPOCHS with value equal to zero), or values that go outside the maximum or minimum (for example, for continuity risk maps, values below 0 or above 1).
Added option '--disablenotavailbin' for disabling the "NA" (Not Available) bin in the SBAS plots.
Added option '--notavailbincolor' for changing the colour of the "NA" (Not Available) bin.
Added option '--notavailbintext' for changing the text of the "NA" (Not Available) bin.
Added options '--availmapbinstext', '--contriskmapbinstext', '--contriskmarmapbinstext',  '--ionoavailmapbinstext', '--hdopmapbinstext', '--pdopmapbinstext' and '--gdopmapbinstext' for setting the text to be shown in the colourbar bins for SBAS Availability, Continuity Risk, Maritime Continuity Risk, Iono Availability, HDOP, PDOP and GDOP maps respectively.
Added options '--availcbartitle', '--contriskcbartitle', '--contriskmarcbartitle',  '--ionoavailcbartitle', '--hdopcbartitle', '--pdopcbartitle' and '--gdopcbartitle' for setting a user defined title on the top of the colourbar for SBAS Availability, Continuity Risk, Maritime Continuity Risk, Iono Availability, HDOP, PDOP and GDOP maps respectively.
Added option '--firconus' for plotting the CONUS FIR area in SBAS and world maps.
Added option '--firalaska' for plotting the Alaska FIR area in SBAS and world maps.
Added option '--fircanada' for plotting the Canada FIR area in SBAS and world maps.
Added option '--firmexico' for plotting the Mexico FIR area in SBAS and world maps.
Added options '--firlinetypeeu', '--firlinetypeconus', '--firlinetypealaska', '--firlinetypecanada' and '--firlinetypemexico', for changing the line type for the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR respectively.
Added options '--firlinewidtheu', '--firlinewidthconus', '--firlinewidthalaska', '--firlinewidthcanada' and '--firlinewidthmexico' for changing the line width for the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR respectively.
Added options '--firlinecoloreu', '--firlinecolorconus', '--firlinecoloralaska', '--firlinecolorcanada' and '--firlinecolormexico' for changing the line colour for the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR respectively.
Added options '--firmarkersizeeu', '--firmarkersizeconus', '--firmarkersizealaska', '--firmarkersizecanada' and '--firmarkersizemexico' for changing the marker size for the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR respectively.
Added option '--firdegtextheader' to add a header to the FIR degradation text for the user defined FIR areas. This option has to be set for each user defined FIR area.
Added options '--firdegtextheadereu', '--firdegtextheaderconus', '--firdegtextheaderalaska', '--firdegtextheadercanada' and '--firdegtextheadercanada' for adding a header to the FIR degradation text for the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR respectively.
Added option '--nofirborder' for not plotting the user defined FIR area borders in the plot. This option is useful for the case that the user only wants the degradation percentage, but the FIR itself.
Added options '--nofirbordereu', '--nofirborderconus', --nofirborderalaska', '--nofirbordercanada', '--nofirbordermexico' for not plotting borders of the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR respectively in the map.
Added option '--firdegtextfooter' to add a footer to the FIR degradation text for the user defined FIR areas. This option has to be set for each user defined FIR area.
Added options '--firdegtextfootereu', '--firdegtextfooterconus', '--firdegtextfooteralaska', '--firdegtextfootercanada' and '--firdegtextfootermexico' for adding a footer to the FIR degradation text for the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR respectively.
Added options '--firdegtexteu', '--firdegtextconus', '--firdegtextalaska', '--firdegtextcanada' and '--firdegtextmexico' for changing the degradation FIR text of the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR respectively.
Added option '--firdegtextbins' for setting the list of bins for which the availability shall be computed. For each bin in the list, a line with the values will be printed. defined FIR areas. This option has to be set for each user defined FIR area.
Added options '--firdegtextbinseu', '--firdegtextbinsconus', '--firdegtextbinsalaska', '--firdegtextbinscanada' and '--firdegtextbinsmexico' for setting the list of bins for which  the availability shall be computed for the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR respectively.
Added options '--firdegtextsizeeu', '--firdegtextsizeconus', '--firdegtextsizealaska', '--firdegtextsizecanada' and '--firdegtextsizemexico' for changing the FIR degradation text size for the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR respectively.
Added options '--firdegtextcoloreu', '--firdegtextcolorconus', '--firdegtextcoloralaska', '--firdegtextcolorcanada' and '--firdegtextcolormexico' for changing the FIR degradation text colour for the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR respectively.
Added options '--firdegtextpositioneu', '--firdegtextpositionconus', '--firdegtextpositionalaska', '--firdegtextpositioncanada' and '--firdegtextpositionmexico' for changing the FIR degradation text position for the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR respectively.
Added option '--nofirdegtext' for not printing the user defined FIR degradation text in the plot.
Added options '--nofirdegtexteu', '--nofirdegtextconus', --nofirdegtextalaska', '--nofirdegtextcanada', '--nofirdegtextmexico' for not printing the European FIR, CONUS FIR, Alaska FIR, Canada FIR and Mexico FIR degradation text respectively in the map.
Added option '--firdegtexttable' for printing the FIR degradation text values in a table. This is useful when multiple FIR areas are shown.
Added option '--printfirdegtext' for printing to standard output the FIR degradation text. If option '--firdegtexttable' is set, the whole table will be printed.
Added option '--writetofilefirdegtext' for writing to a file the FIR degradation text. If option '--firdegtexttable' is set, the whole table will be written to the file.
Added option '--onlyprintfirdegtext' for making the program to exit after printing the FIR degradation text but without showing the SBAS availability maps (useful for batch processing).
Added option '--sbasserviceformat' for automatically setting an alternative format for SBAS maps.
Added option '--sbasservicemaritimeformat' for automatically setting an alternative format for SBAS maritime maps.
Added option '--sbasservicebinaryformat' for automatically setting an alternative format for SBAS maps which has only one two bins (plus the 'Not Avail' bin).
Added option '--sbasservicemaritimebinaryformat' for automatically setting an alternative format for SBAS maritime maps which has only one two bins (plus the 'Not Avail' bin).
Added option '--disablebineqcond' for disabling the condition in "greater equal" or "less equal" (option '--bineqcond') which is enabled by default when using options '--sbasserviceformat', '--sbasservicemaritimeformat', '--sbasservicebinaryformat' or '--sbasservicemaritimebinaryformat'.
Added option '--contriskaspercentage' for showing the bin values in the continuity risk and maritime continuity risk as percentages instead of unitary values.
Added option '--countries' for drawing the country borders in SBAS availability maps and world maps/integrity maps/station maps.
Added option '--usastates' for drawing the USA state borders in SBAS availability maps and world maps/integrity maps/station maps.
Added option '--textmark' for adding a text mark in the plot. Multiple text marks can be set by providing this option as many times as necessary.
Added option '--textmarkcolor' for setting the colour of the text mark. Set this option for each text mark.
Added option '--textmarksize' for setting the size of the text mark. Set this option for each text mark.
Added option '--textmarkposition' for setting the position of the text mark. Set this option for each text mark.
Added check for empty input files. If input file is empty, it will show an error message and exit, instead of showing empty plots or crashing.
Added check for values for the colourbar bins. Now values outside the nominal ranges will not be accepted ([0-100] for availability and ionosphere availability maps, [0-1] for continuity risk and maritime continuity risk and [0-infinite] for DOP maps).
Added missing check for assuring that the number of colours provided for the SBAS ionosphere availability map matches the number of bins in the colourbar.
Added checks for the contour lines to be computed. Now it will not let you set the value of the smallest bin (as this makes the python function to crash). Furthermore, if one of the defined bins does not appear in any of the positions in the map, the contour line for this bin will be skipped, as this case made the python function to show incorrect contour lines.
Added check for Python versions >=2.7.15 and >=3.6 in SBAS availability maps. In these versions it is necessary to set greater margins in order to fit the horizontal legend or the colourbar bin texts.
changed In 64 bit Windows, python is now distributed with Python 3.6.6 64bit, instead of Python 2.6 32 bit (in Windows 32-bit still remains Python 2.6 32 bit).
Help message now shows explicitly the values that must be provided to the parameters (if required), by showing next to the parameter '<text>' (a text is required), '#' (a numerical value is required),  '#,#,...' (a list of numerical values is required), etc.
Option '--bineqcond' is now also accepted as '--BinEqCond'.
Option '--fireu' is now also accepted as '--FIREu'.
It is possible to define as many user defined FIR areas as needed, instead of just one, by  using the parameter '--firuser' as many times as necessary. Each user defined FIR area properties can be defined independently, by providing the parameters for setting the user defined FIR area properties as many times as necessary (in the same order as given in option '--firuser').
User defined FIRs are now also plotted in worst integrity maps.
European FIR area or used defined FIR area can now be set both at the same time. Moreover, any hard-coded FIR area can be set independently from any other FIR area set (including its drawing properties).
Option '--firdegtext' now can also print the number of points over the bin value inside the  FIR area, the number of points below below the bin value inside the FIR area, the total number of points inside the FIR area and the total number of points in the whole plot.
If the bin with value '100' in SBAS availability or ionosphere availability map is set and the option '--bineqcond' is set, this bin will appear with the default of text '=100' instead of '≥100'.
If the bin with value '0' in SBAS continuity risk, maritime continuity risk or DOP maps is set and the option '--bineqcond' is set, this bin will appear with the default of text '=0' instead of '≤0'.
In standard 2D plots, space for a title with up to three lines will be left even if option '--atm' is disabled (before the space was left only if '--atm' option was enabled).
If option '--firdegtext' is provided, FIR degradation computation will be automatically enabled (so it matches the behaviour of options '--firdegtextsize', '--firdegtextcolor' and '--firdegtextposition', which automatically enabled the FIR degradation computation).
Error messages due to invalid values in parameters or in input files will now always show the invalid value in the error message (except for user defined column numbers).
Errors due to incorrect colour or line type are now captured and show in an error message, instead of printing the Python's full traceback (except in Windows).
Parameter '--availcontourlevels' now can also be called as '--availcontourlines'. Both options are equally valid.
Parameter '--contriskcontourlevels' now can also be called as '--contriskcontourlines'. Both options are equally valid.
Parameter '--contriskmarcontourlevels' now can also be called as '--contriskmarcontourlines'. Both options are equally valid.
Changed behaviour when an invalid parameter is given. Now, instead of printing the help and the error message, it will just print the error message.
If user sends SIGINT signal (Ctrl+c in Unix terminal), the program will terminate without printing the traceback (except on Windows).
Changed option name from '--FIRDegrafation' to '--FIRDegradation' due to it was a typo in the name, as the lower case option is '-firdegradation'. The previous name '--FIRDegrafation' will still be accepted for backwards compatibility.
Changed slightly the input of parameter '--contriskmarbincolors', as now the colour of the "NA" (Not Available) bin must not be provided, where as before it had to be provided. The colour of the "NA" bin is now changed with parameter '--notavailbincolor'.
Changed value formatting in error message when checking user defined contour values for continuity risk and maritime continuity risk maps. The offending value will be printed with exponential format instead of decimal format, in order to prevent that values smaller than 0.1 (such as 1e-3) is not shown as '0.0'.
String formatting in all the graph.py code now uses the new python formatting style ("{0:s}".format(val)) instead of the old formatting style ("%s" %val).
Changed the reference coordinate system to 'axes fraction' (that is, coordenate origin is at  the bottom left of the figure) for all user defined positions for watermark, textmark and SBAS maps degradation text.
If user sets bins over 99.9 (99.99, 99.999,...) the plot margins will auto adjust to fit the number in the colourbar text.
fixed Fixed bin "100.0" text in colourbar going out of the borders when user manually selected  the "100.0" bin in SBAS availability and ionosphere availability maps.
Fixed user defined FIR text (option '--firdegtext') not working when using Python3.
Fixed world maps/integrity maps/station maps not working with old Linux distributions using Python 2.6 (e.g. Ubuntu 10.04).
Fixed division by zero when computing the degradation values when there were no points inside the European FIR or user defined FIR area.
Fixed legend not appearing in station maps when only the station name was printed.
Fixed the string "DOP" being replaced for the DOP map type when the title has been defined the user (it had to occur only when the title was automatically set).
Fixed error in Python 2 when station names was a number. Now the number will read as the name, instead of crashing.
In SBAS DOP plots, if the number of epochs were 0, then the mean and percentile DOP was also 0, therefore this points were plotted to be under the minimum DOP threshold set (by default, shown in red colour), which was incorrect. Now, when the number of epochs is 0, this points will be internally set as "999", so they are shown in the greatest bin.
SBAS plots with an aspect ratio of 1.4 or below (defined as (MaxLon-MinLon)/(MaxLat-MinLon)  or the relation with the width and height) were plotted incorrectly (labels, title or even the image was out of bounds) due to an incorrect size handling inside Python libraries. It has been fixed by forcing to leave margins in the plots.
For default SBAS plots (EGNOS default coverage area), if option '--prntextnewline' was enabled, the title would go out of bounds. Now the margin will increase in order to leave space for the extra line.
Fixed bug that made European FIR in station maps use the properties from the user defined FIRs, instead of the European FIR properties.
Fixed bug that made to apply maritime continuity risk contour levels to non maritime Continuity risk.
Some parameters which were expected to be provided only once (in concrete '--availbincolors', '--contriskbincolors', '--contriskmarbincolors', '--ionoavailbincolors', '--hdopbincolors', '--pdopbincolors', '--gdopbincolors', '--firdegtextbinseu', '--xtickslist' and '--ytickslist') would mess up the results or crash the program if they were provided more than once, as it mixed all the data provided each time the parameter was provided. Now it will only use the data given the last time the parameter is read.
Fixed "IOError: [Errno 32] Broken pipe" exception when the help was shown ('-h' parameter) and the output was redirected to a pipe (for instance, a pipe to the 'less' command), and the pipe was closed before reaching the end of the help.
input.c added Added check in SBAS plots mode for data for convergence time in SBAS data file. If there is a convergence time of 15 minutes or more, a message is printed with the detected convergence time. Otherwise a warning is printed stating that there is no data for convergence time.
Added function 'getEpochFromObsFile'. This function reads one line of the observation file, reads the timestamp and then moves the file pointer one line back.
Added support for SP3 version d.
changed If number of entries in the header of the SP3 file does not match the number of entries read in the file, gLAB will shown a warning message, instead of showing an error message and exiting.
Updated 'readPosFile' function to the save the reference position data with the new internal format for SP3 orbits (data is now saved equally spaced in time, adding 0s when necessary).
Changed behaviour with SBAS message type 0 (alarm message). Before, if the alarm message was not filled with 0, the alarm flag is not triggered. Now, anytime an alarm message is received, the alarm will be triggered except when the alarm message is not filled with zeros and the alarm message is read as type 2 message.
fixed Fixed memory leak in functions 'readRINEXB' and 'readEMS' due to the condition to free memory was never met.
Fixed gLAB not printing the progress bar when the first epoch was an event epoch and the following had the same timestamp. This made that the file interval estimation was 0, and the number of estimated epochs in file was infinite (double variable overflow), therefore, the 0.1% increase percentage of epochs completed was never reached and thus the progress bar was not updated.
Fixed infinite loop in backwards processing when an event epoch and the following had the same timestamp.
Fixed bug that made not to enable the internal gLAB flag that an alarm message had been received when mixed GEO was not enabled. This made that if a GEO received an alarm, it entered the one minute cooldown time, but the minute cooldown never ended (due to the alarm flag was not enabled). During the cooldown time, all GEO messages must be ignored, therefore the GEO data buffer got frozen since the epoch of the alarm received until the  end of file. This bug only occured in version 5.3.0.
model.c changed Modified 'getPositionSP3' and 'getClockSP3' functions for making them work with the new internal format of saving SP3 data.
Removed GEO selection and GEO alarm check from function 'computeSBAS' to avoid race conditions in multithreading. This checks are now done in functions 'SBASGEOselection' and 'SBASGEOAlarmCheck' (defined in 'dataHandling.c' file), which are called in 'gLAB.c' file after the SBAS data is read. This fixes weird unavailability areas (such as a thin horizontal line in SBAS maps with multithreading and more than two GEOs with alarm.
fixed Fixed bug that made to never select a GEO satellite when GEO satellite selection was set the one with highest elevation and mixed GEO data was not enabled. This bug only occured in version 5.3.0.
output.c added Added function 'printBuffersBestGEO' for printing data buffered when option select best GEO is enabled. If option 'printSBASUNUSED' is enabled, it will print first all the messages from the discarded GEOs.
Added INFO message for GEO acquisition time.
Added INFO message for GEO switching cooltime.
changed Several 'static' variables in different functions now have below the OpenMP directive '#pragma omp threadprivate()' to avoid race conditions in multithreading.
fixed Fixed last epoch of discontinuities ocurring at the end of each hour (except at hour 23) being computed with an extra epoch at the end (the first epoch of the next hour). That is, these discontinuities were an epoch longer due to the last epoch was considered as the first epoch of the next hour, instead of the last epoch of the current hour. This  did not affect the continuity risk computation.
Fixed incorrect number given in "Total epochs missing in observation file (during summary period and decimated" and in "Total epochs missing in observation file (during summary  period)" reported in the summary (in all modes) when decimation was greater than the observation file data interval.
preprocessing.c changed Function 'checkCycleSlips' now have most of the local variables declared inside the main for loop. This allows the compiler to do small optimizations, and also simplify the '#pragma omp' directive.


gLAB v5.3.0

New highlighted features:

  • Code optimization! This reduces computational time in the following percentages (measured with a 24h data file):
    • SPP/PPP: Around 10% faster.
    • SBAS: Around 30% faster.
    • DGNSS with RINEX or RTCM2: Around 10% faster.
    • DGNSS with RTCM3: Around 50% faster.
  • Added EGM96 geoid model to KML files. This is the geoid model that Google Earth uses, therefore, now heights in the KML file should match with the ones in Google Earth.
  • Statistical summary now includes the 95 percentile (or user defined percentile) and the maximum value of PDOP, GDOP, TDOP, HDOP and VDOP.
  • Statistical summary now includes the number of epochs missing, the number of data gaps and the maximum size of the data gaps in the RINEX observation file (for DGNSS with RINEX file, it is also included the same data for the reference station file).
  • SBAS Maps mode now also computes HDOP, PDOP and GDOP maps (the median and the user defined percentile value).
  • New options for the station maps. Now it is possible to set a marker instead of just the name (or both). The markers and names can now be grouped by station networks, allowing to set the marker size, type or colour and the name size, colour and alignment independently for each network.
  • New options for the SBAS availability maps. Now user can set the number, values and colours of the bins, set if the thresholds must be "equal than" instead of "greater than". It is also possible to plot the European FIR area (or a user defined area) and compute the availability in that region.
  • Added SBAS HDOP, PDOP and GDOP maps.
  • Added HDOP and PDOP filters (in navigation and SBAS plots mode). HDOP and PDOP filters conditions can be logically ORed (that is, for a given epoch, only one of the conditions have to be met).
  • Added computation for Maritime Continuity Risk (fixed window) according to IALA (International Association of Marine Aids to Navigation and Lighthouse Authorities).
  • Changed SBAS Maritime defaults. In addition to disabling MT10,27 and 28, it will also enable GEO switching, set HDOP filter to 4, set PDOP filter to 6, set HDOP and PDOP conditions being ORed, set alarm limits to 100Km and set the window size to 900 samples (15 minutes).

Modifications and bug fixes:

  • Disabled check for non-ASCII characters in filenames. If your system terminal can handle the non-ASCII characters, gLAB will also handle them, and viceversa.
  • Fixed a bug in SBAS mode that made to timeout all RRC values under alarm conditions.
  • Fixed a bug in SBAS that added a false discontinuity to all SBAS hourly files at the end of each hour (except at hour 00)
  • Fixed bug that made to always compute the 95 percentile in the summaries independently of the user provided value.

Future updates:

  • Measurement selection for cycle-slip detection and in the processing (in progress).
  • Multiconstellation (in progress). 
DateFile nameTypeDescription
2018/06/08 dataHandling.c added Added data table with EGM96 grid with 1x1 degree resolution. This is the geoid model used in Google Earth.
changed Removed 'satIs' function. The function has been replaced by a index lookup  in a matrix array. All the function calls to 'satIs' in other files have also been replaced. This change reduces computation time around 10% in all processing modes except for SBAS plots.
In function 'getMeasModelValue', the search for a satellite position is done using a dictionary instead of a for loop (faster search).
Changed the default marker name from an empty string to "----". If the marker name in the RINEX observation file was empty or not present, the marker name was an empty string, thus making all the output SBAS messages and the last line of the summary (in all modes) to have the marker name (or receiver name) to be an empty string, which, in practice, made the mesages have one column less, which changed the column number for all items after the marker name (and in consequence, breaking all programs and scripts looking for a specific column).
filter.c fixed Fixed a bug when quantizing Stanford-ESA values due to an unsigned integer overflow when very large values of error or protection level occurred. This made that in the Stanford-ESA output plot file MIs with very large error did not appear.
Fixed incorrect INFO message generated when DOP threshold was exceeded and gLAB tried to do a GEO or mode switch. gLAB wrote in the info message "Trying to switch GEO or to NPA mode" even if one of the options (GEO switching or mode switching) was not enabled, instead of writing just "Trying to switch GEO" or "Trying to switch to NPA mode". Nevertheless, the bug affected only when writing the INFO message, not at processing level.
gLAB.c added Added validity check for user provided inclusion area coordinates in SBAS plots mode.
Added parameters '-filter:maxhdop' and '-filter:maxpdop' for setting a maximum HDOP or PDOP.
Added parameter '-filter:hdoporpdop' for setting a combined threshold of HDOP or PDOP. When setting this parameter and HDOP and PDOP thresholds are set, a valid epoch will be any that is under any of the two thresholds (HDOP or PDOP) instead of both.
Added parameters '-sbasplots:hdopplot', '-sbasplots:pdopplot', '-sbasplots:gdopplot' and '-output:sbascombdopplots' for computing SBAS HDOP, PDOP and GDOP plots or all of them in the DOP combined file.
Added parameter '-sbasplots:doppercentile' for enabling computation of DOP percentiles in DOP maps.
Added parameters '-output:sbashdopplots', '-output:sbaspdopplots', '-output:sbasgdopplots' and for setting output filenames for HDOP, PDOP and GDOP maps.
Added parameter '-summary:windowsizemar' for setting the fixed window size for SBAS maritime continuity risk.
Added parameter '-summary:stationnetworkname' for setting a station network name in the summary. This is useful for doing station network maps.
Added parameter '-sbasplots:windowsizemar' for setting the window size for computing continuity risk using the SBAS maritime formula.
Added parameter '-sbasplots:noriskmarplot' for not computing continuity risk using the formula from SBAS maritime.
Added parameter '-output:sbasriskmarplots' for setting the output filename for continuity risk mask with SBAS maritime formula.
Added parameter '-output:kml:egm96geoid' for adding the height from the EGM96 geoid model to the output coordinates in the KML file.
Added progress message 'RINEX data processing finished. Computing Summary...' when epochs processing is finished and the summary values are being computed.
Added INFO message in SBAS plots mode for Continuity risk window size (for both sliding and fixed).
Added INFO message in SBAS plots mode when the hourly maps are disabled.
changed Changed parameter name from '-model:satellitehealth' to '-model:sathealth', although the old format is still accepted.
Klobuchar ionosphere model is now allowed in SBAS plots mode.
fixed Fixed a crash when user forced NPA mode in SBAS plots mode.
Fixed a crash when converting RTCM3 files to RINEX.
Fixed deprecated warning messages being printed in the standard output instead of the output file.
gLAB_GUI added Added link "ftp://icvficheros.icv.gva.es/Datos/", "ftp://rgapa.cartografia.asturias.es/RINEX/" and "ftp://ftp.geodesia.ign.es/ERGNSS/" in the menu "RINEX files from Institutions->Spain"
Added menu "Coastal Services" inside the "RINEX files from Institutions" menu.
Added link "ftp://ftp.sonel.org/gps/data/" in the "Coastal Services" menu.
Added a second text box in the "Window Size" line in the "Print Summary" groupbox in the OUTPUT section. This second text box is for setting the window size for maritime continuity risk computation.
Added button "Geoid Height" in the KML options for applying EGM96 geoid model when writing the coordinates to the KML file.
Added new groupbox "DOP Filters" in the FILTER tab in order to put all DOP filter options.
Added buttons "Max. HDOP", "Max.PDOP" and "HDOP OR PDOP" in the "DOP Filters" groupbox.
Added new text box for the window size in the "Summary" options. This box is for setting the value of the fixed window.
changed Changed "Max. GDOP" options from the "Other Options" groupbox to the "DOP Filters" groupbox.
Changed "Sliding Window Size" label to "Window Size (Sliding/Fixed)" in order to the account for the new method for computing the continuity risk.
Changed link from "ftp://geofons.icc.cat/rinex/horari_1s/" to "ftp://geofons.icc.cat/rinex/" in the menu "RINEX files from Institutions->Spain"
Changed label name from "Sliding Window Size" to "Window Size" in the "Print Summary" groupbox in the OUTPUT section. This is due there are two text boxes, one for each mode of computing the continuity risk. The new mode, the maritime mode, does not use a sliding window.
Reduced size of "SBAS messages" and "DGNSS messages" groupbox in the OUTPUT tab in order to leave more space to the "Summary" groupbox.
Changed SBAS maritime default options. Now, in addition to disabling MT10, MT 28 and MT28, it will also enable GEO switching, HDOP filter, PDOP filter, "HDOP OR PDOP" option and also set both alarm limits to 100Km and the window sizes to 900.
Disabled check for non-ASCII characters in filenames. If your system terminal can handle the non-ASCII characters, gLAB will also handle them, and viceversa.
In Windows, the option "Expand figure to Margin" in the Analysis page has been hidden, as the python version used in Windows does not support this option.
In Linux and Mac, if Stanford-ESA, KML output, "TimeStamp" and "Range" options are all enabled, the checkbox "Geoid Height" and the label "Decimation" will change to "Geoid H" and "Dec" respectively for fitting in the screen.
Updated/corrected several tooltips.
fixed Fixed bug that made not to set KML timestamp options when running gLAB, showing the command line instruction or creating the configuration file.
Fixed bug that made not check the "Range" button inside the KML timestamps when loading a configuration file.
Fixed bug that made not to unhide the text box with the number of epochs to reach steady state in the FILTER tab when the DGNSS template was set.
graph.py added Added option '--stanetwithnames' to enable showing station names in the station map (in previous version, station map only showed station names. Now it can show the station name, a marker or both).
Added options '--stanetdefaultnamesize', '--stanetdefaultnamecolor' and '--stanetdefaultnamealign' for setting the station name default size, colour and alignment respectively.
Added option '--stanetwithmarkers' for adding a marker in the station map.
Added options '--stanetdefaultmarkertype', '--stanetdefaultmarkersize' and '--stanetdefaultmarkercolor' for setting the station marker default type, size and colour respectively.
Added option '--stanet' for setting the input file column number for reading the station network name.
Added option '--stanetautolabel' for enabling a label for each station network in the station map.
Added option '--stanetdefaultlabel' for setting the default label for the station network.
Added option '--stanetlabel' for setting a label on a specific station network in the station map.
Added options '--stanetmarkertype', '--stanetmarkercolor', '--stanetmarkersize' for setting a marker type, marker colour or marker size (respectively) on a specific station network in the station map.
Added options '--stanetnamecolor', '--stanetnamesize', '--stanetnamealign' for setting a name colour, name size or name alignment (respectively) on a specific station network in the station map.
Added new plots for SBAS plots: Maritime Continuity Risk, HDOP, PDOP and GDOP.
Added option '--bineqcond' for setting the bin threshold to be "greater equal" or "less equal" instead of "greater" or "less" in SBAS plots.
Added options '--availmapbins', '--contriskmapbins', '--contriskmarmapbins', '--ionoavailmapbins', '--hdopmapbins', '--pdopmapbins', '--gdopmapbins' for manually setting the number of bins and its thresholds values for SBAS Availability, Continuity Risk, Maritime Continuity Risk, Iono Availability, HDOP, PDOP and GDOP maps respectively.
Added options '--availcontourlevels', '--contriskcontourlevels', '--contriskmarcontourlevels' for setting the contour levels for SBAS Availability, Continuity Risk and Maritime Continuity Risk respectively.
Added options '--availbincolors', '--contriskbincolors', '--contriskmarbincolors', '--ionoavailbincolors', '--hdopbincolors', '--pdopbincolors' and --gdopbincolors'  for changing the colourbar bin colours for SBAS Availability, Continuity Risk, Maritime Continuity Risk, Iono Availability, HDOP, PDOP and GDOP maps respectively.
Added option '--doppercentileplot' for making the percentile HDOP, PDOP and GDOP plots (in addition to the HDOP, PDOP and GDOP median plots).
Added option '--fireu' in order to draw the European FIR area in World Maps/Station Maps/SBAS plots.
Added option '--firuser' in order to draw a user defined FIR area (though a text file with the coordinates) in World Maps/Station Maps/SBAS plots.
Added options '--firlinetype', '--firlinewidth', '--firlinecolor' and '--firmarkersize' for setting the line type, line width, line colour and marker size of the FIR line delimeter.
Added option '--firdegradation' for computing and showing the availability degradation inside the FIR area.
Added option '--firdegtext', '--firdegtextsize', '--firdegtextcolor' and '--firdegtextposition' for setting the text to be written, the text size, the text colour and the text position for the FIR degradation.
input.c added Added an INFO message when a data gap in the observation RINEX file is found. It includes the number of epochs missing and the epoch where the data gap was detected.
Added check for SBAS messages that are not from L1 when reading a RINEX-B file. Now, if a message from L5 is found, it will be ignored, instead of decoding it an mixing its data with the L1 messages (which disrupted L1 data if messages from L5 had the same message types as in L1).
Added capatibility to use RTKlib's output file with geodetic coordinates (in the file, they appear as 'lat/lon/height=WGS84/geodetic') as a reference position file. In this output file format, the coordinates have the EGM96 geoid model added to the height coordinate.
changed When mixed GEO is not enabled (which nearly always occur), the update of SBAS messages for the mixed GEO is disabled in the 'updateSBASdata' function. This reduces around 20% the processing time in SBAS mode.
In function 'converterRTCM3', some checks and progress bar percentage update now are done every time a start of message is detected, instead of every time a byte of data is read from the RTCM3 file (when searching for a new message). This reduces processing time when using a RTCM3 file around 40%.
Removed "dictionaryUpdate' function. The dictionary is now updated when a satellite is read.
fixed Fixed an infinite loop when processing in DGNSS mode with RTCM2 and the RTCM2 file ended before the rover observation file. It ocurred after the current epoch was ahead of the last RTCM2 correction, thus making gLAB infinitely trying to read the next correction even though the file had ended.
model.c fixed Fixed bug in computation of RRC corrections under alarm conditions that made RRC corrections always timeout under alarm conditions.
output.c added Added INFO message for HDOP, PDOP and HDOPorPDOP thresholds options.
Added INFO message for KML files EGM96 geoid model option.
Added in SPP/PPP/SBAS/DGNSS summaries the number of epochs with data gap. The data gap count is breakdown in different messages. If no epochs were decimated, it will show the number of data gaps in during the summary period all data gaps in the whole file. If data was decimated, it will show the number of data gaps not decimated in the summary period (i.e. the data gap had en epoch in the summary period which would have been processed), the number of data gaps in the summary period which only had epochs that would have been decimated and the total number of data gaps in the whole file.
Added in SPP/PPP/SBAS/DGNSS summaries the percentile and maximum values of of HDOP, VDOP, PDOP, GDOP and TDOP. This values have also been added to the last line of the summary.
Added in SBAS summary the continuity risk for maritime. It has also been added in the last line of the summary.
Added computation of EGM96 geoid height when writing to the KML file.
changed Changed in SBAS summary the line "Continuity Risk" to "Continuity Risk Airborne".
fixed Fixed bug when checking for discontinuity at the end of the hour in hourly SBAS continuity risk maps. This bug made that a false discontinuity was always added at all hourly maps except at hour 0.
Fixed bug in SBAS summary that made the percentage of line "Total epochs skipped (any reason)" not being 0 when no epoch had been included in the summary.
Fixed bug in SPP/PPP/SBAS/DGNSS summaries that made to always compute the 95 percentile instead of the user defined percentile.

 

gLAB v5.2.0

New highlighted features:

  • Statistical summary is now available in all modes (SPP/PPP/SBAS/DGNSS).
  • Statistical summary now will also be printed even if receiver position is not fixed, but error, MIs and percentiles will not be computed.
  • Statistical summary now also works with reference files.
  • Added new weights modes (only in command line). These are: Inverse of sinus of the elevation (1/sin(elevation)^2), SNR (10^(-SNR/10)) and SNR with inverse of sinus of the elevation (10^(-SNR/10)/sin(elevation)^2). These option also accept to usa the URA from the broadcast navigation message as a constant term in the weight (except in PPP, as no broadcast is used).
  • Added option to select how to compute the SNR for combinations -use the highest SNR, the lowest, from one of the frequencies or a user defined factor- (Only in command line).
  • Added option in SBAS and DGNSS to select if user wants to override SBAS/DGNSS sigma with the user selected weight or to add the user selected weight to the computed SBAS/DGNSS sigma (only in command line).
  • All the weight options for shown above for weights are configurable independently for each measurement and satellite in the filter (only in command line).
  • Added option to unselect satellites over a certain UDREI threshold in SBAS.
  • Added option to change the offset added to the fast correction sigma when message type 10 is not used.
  • Added option to unselect satellites over a certain UDRE threshold (only in command line).
  • Added support for comments in a data line in configuration files, user added error files, reference files and sigma multipath files.

Modifications and bug fixes:

  • Fixed incorrect computation of IONEX TEC values when the IONEX file did not start at 0h and the time interval was not 0.
  • Fixed bug that made not to add a hash ('#') in the first line of a sigma multipath file, a reference file and a user defined error file (the line with the gLAB version).

Future updates:

  • Measurement selection for cycle-slip detection and in the processing (in progress).
  • Multiconstellation (in progress). 
DateFile nameTypeDescription
2018/03/09 dataHandling.c added Added functions 'InitRangeList', 'freeRangeList', 'AddRangeList' and 'ExtendRangeList' for computing ranges of satellites grouped by a property (e.g. weight type).
Added function 'SatRangeList2String' for transforming a range list to a string.
Added function 'WeightType2String' to transform from weight type to string.
Added function 'SNRCombModeNum2String' to transform from SNR combination type to string.
filter.c added Added discard reason "URA value (<value>) is equal or greater than the threshold (<threshold>)" in SATSEL message.
Added functions 'DGNSSSummaryDataUpdate' and 'SummaryDataUpdate' for computing summary statistics in SPP, PPP and DGNSS modes.
gLAB.c added Added option '-model:maxurabrdc' for setting a maximum value for URA in the broadcast message.
Added option '-model:udreithreshold' for setting a maximum value for UDREI in SBAS fast correction messages.
Added option '-model:sigfltnomt10offset' for changing the offset added to fast and slow corrections sigma when SBAS message type 10 is not used.
Added option '-filter:fixedweightsat' for setting a custom fixed weight for each satellite.
Added option '-filter:sinelevweightsat' for setting a weight dependent on the inverse of the elevation.
Added option '-filter:sinelevweightsat' for setting a weight dependent on the inverse of the elevation for each satellite.
Added option '-filter:snrweight' for setting a weight dependent on the SNR.
Added option '-filter:snrweightsat' for setting a weight dependent on the SNR for each satellite.
Added option '-filter:snrelevweight' for setting a weight dependent on the inverse of the elevation and the SNR.
Added option '-filter:snrelevweightsat' for setting a weight dependent on the inverse of the elevation and the SNR for each satellite.
Added the option to set the constant value of all filter weight to the URA value provided in the brodcast navigation message. To set, instead of providing a fixed value, provide the text 'URA'.
Added option '-filter:snrweight:comb' for setting how to compute the SNR value for combinations
Added option '-filter:snrweight:combsat' for setting how to compute the SNR value for combinations for each satellite.
Added option '-filter:sbasdgnssweightmode' for setting how to compute the weight in SBAS and DGNSS modes.
Added option '-filter:sbasdgnssweightmodesat' for setting how to compute the weight in SBAS and DGNSS modes for each satellite.
Added option '-print:summary'. This make the summary no more being tied to '-print:info' option. Furthermore, the summary will be also printed even if receiver position is not fixed (but error percentiles values will not be computed).
Added messages (in command line only) at the start of the processing indicating which file is reading.
changed Options '-pre:sat' and  -pre:snrsel' now accepts a range of satellites.
Option '-pre:sat' now accepts an optional '+' or '-' sign to indicate whether to select or unselect the listed satellite.
All options for setting the filter weights now accept measurement number '0'. This value sets the given weight to all measurements in the filter.
Changed exit code of gLAB after correct execution from '1' to '0' in order to match linux standards.
User defined SNR threshold now accepts decimal values.
gLAB can now read configuration files with comments (starting with '#' symbol) next to the parameters.
Removed units in GDOP parameter (GDOP is adimensional).
Updated help messages.
fixed If gLAB finishes processing and no epochs were processed, but no error will occur, gLAB will reenable the cursor before exiting if progress is being printed.
Fixed bug that made not to add a hash ('#') in the first line of a sigma multipath file, a reference file and to a user defined error
    file (the line with the gLAB version).
gLAB_GUI added Added link "ftp://cddis.gsfc.nasa.gov/pub/gps/products/mgex/" in the "Other files" download data menu referred as "SINEX BIAS OSB files (multiconstellation absolute DCBs):".
Added link "https://www.enri.go.jp/cnspub/sat/data/geonav/" in the "RINEX Navigation version 2" download data menu for QZSS GEO navigation files.
Added link "https://www.enri.go.jp/cnspub/sat/data/rinex/" in the "RINEX Observation version 2" download data menu for QZSS 1Hz observation files (it is an unofficial RINEX 2 version).
Added link  "ftp://cddis.gsfc.nasa.gov/gnss/data/campaign/mgex/daily/rinex3/2014/cnav/"
in "RINEX Navigation files version 3" download data menu for navigation files  with CNAV and LNAV messages.
Added links "ftp://igs.bkg.bund.de/IGS/BRDC/" and  "ftp://igs.bkg.bund.de/EUREF/BRDC/" in the "RINEX Navigation version 3" download data menu in "All or Mixed constellation RINEX Navigation files:" section.
Added link "ftp://igs.bkg.bund.de/MGEX/BRDC/" in the "RINEX Navigation version 3" download data menu in "Mixed constellation RINEX Navigation files:" section.
Added ".YYx" extension to "RINEX file extension types" help menu.
Added "*n.rnx" and ".??p" extensions when selecting RINEX navigation files in the file explorer.
Added "*o.rnx"extension when selecting RINEX observation files in the file explorer.
Added option "Discard Satellites with a given UDREI" in SBAS advanced option.
Added option "Sigma offset if MT10 is not used:" in SBAS advanced option.
Added Summary option in "OUTPUT" tab.
changed Changed link from "ftp://cddis.gsfc.nasa.gov/gnss/data/campaign/mgex/daily/rinex3/2014/brdm/" to "ftp://cddis.gsfc.nasa.gov/gnss/data/campaign/mgex/daily/rinex3/2013/brdm/". The link points to the same URL, except for the year, which is 2013 instead of 2014. This is done in order to point to the oldest data available, which is from year 2013.
Changed ".*GPS_Receiver_Types" to ""*GPS_Receiver_Types*" regular expression in file explorer in order to show files named as "GPS_Receiver_Types" (with no extension).
Changed link name in the "Other files" download data menu from "Multiconstellation DCB files:" to "SINEX BIAS DSB files (multiconstellation DCBs for converting measurements):" in order to show an accurate description of the file content.
Changed description of ".YYq" extension in "RINEX file extension types" help menu in order to reflect that there are also QZSS navigation file in an unofficial 2.12 RINEX format.
Changed "All files (*.*)" extensions in all file explorers to "All files (*)" in order to
be able to select files without extension.
User can now introduce decimal number in the user defined SNR threshold.
If gLAB core is executed in any mode in the GUI, and it exits with an ERROR message before creating the output file (that is, the ERROR is written to standard output, the GUI will now be able to read the ERROR message and show it to the user.
Removed units of GDOP option in "Filter" tab and in the Analysis mode (Dilution of Precision template). The previous unit was meters, when this measurement is adimensional.
Removed SBAS summary groupbox in SBAS option in the "MODELLING" tab.
Start gLAB image now covers the full extent of the "INPUT" tab instead of leaving some white space on the bottom.
Updated/corrected several tooltips.
fixed Fixed groupboxes in the right column not being aligned to the top in Windows and Mac.
Fixed bad layout of satellite selection button in Linux.
Fixed labels and textboxes in the "Ionosphere Source" in the "Input" tab sometimes showing with a smaller size than the rest of the elements or not being correctly centered.
Fixed incorrect unchecking of radioButtons "StdDev from SBAS messages" and StdDev from DGNSS "Filter" tab after being clicked. This radioButtons have to be always checked (is the only option for the standard deviaton in SBAS and DGNSS modes).
graph.py added Added option '--no-lock-file' for not creating the ".plot.lock" file.
Added option '--SBASSystemname' (or '--sbassystemname') for changing the "SBAS" word in the SBAS maps default title for any user defined SBAS system name.
Added option '--PRNtext' (or '--prntext') for changing the text "PRN #" in the SBAS maps default title. This is useful when multiple GEO were used and the PRN in the file header is 0.
Added option '--PRNtextnewline' (or '--prntextnewline') for moving the the text "PRN #" in the SBAS maps default title to the line below. Useful when many GEO were used.
Added option '--wmc' (or '--watermarkcolor') for changing the colour of the watermark.
Added option '--wms' (or '--watermarksize') for changing the size of the watermark.
Added option '--wmp' (or '--watermarkposition') for changing the position of the watermark.
changed Changed default position of the watermark in SBAS maps. Now it will situated in the top right side of the image (outside the plot and over the colourbar) instead of the bottom right side of the plot.
Changed default size of the watermark in SBAS maps. The size has been changed from 8 to 15.
fixed The "os.remove(LockFile)" instruction is now inside a try/catch. This is to avoid a
rare race condition that occurs when multiple instances of "graph.py" are executed
in parallel and one of them erases the "LockFile" (.plot.lock) after the check that
the "LockFile" exists but before the "os.remove(LockFile)" instruction is executed.
When this race condition ocurred, the program crashed before creating the plot.
input.c  changed Sigma multipath files now accepts comments (starting with '#' symbol) next to the data.
User added error files now accepts comments (starting with '#' symbol) next to the data.
Reference position files now accepts comments (starting with '#' symbol) next to the data.
model.c added Added option for discarding satellites under an UDREI threshold.
Added option to set the user defined sigma for each satellite and measurement.
Added functions to compute the several weight modes added in gLAB.
fixed Fixed bug that made gLAB use incorrect data from IONEX file when the IONEX file did not start at 0h and the time interval was not 0.
output.c added Added a INFO message with the URA threshold for discarding satellites.
Added a INFO message with the UDREI threshold for discarding satellites.
Added discard reason "Satellite has an UDREI value of <value> (user threshold is <threshold>)" in SBASUNSEL message.
Added SPP, PPP and DGNSS summary.
Added start and end epoch to summary.
changed Changed print order of SBAS summary line "Total epochs skipped due to GDOP exceeding ...". Now it will be printed just below the other lines containing "Total epochs skipped due to ...".
Changed all lines in the SBAS summary containing "Total samples" to "Total geometries".

gLAB v5.1.3

New highlighted features:

  • Concatenated IONEX files (with headers) are now supported.

Modifications and bug fixes:

  • Fixed crash when reading RINEX precise clock files and there was a line entry of a station whose name started with 'G' or 'R' or 'E' or 'S' or 'C' or 'J' or 'I' and the remaining three letters of the station name where all numbers (for example 'AR S011 2008 05 12 00 10  0.000000  2    0.764667861953E-03').
  • Fixed wrong ARP correction applied to reference station in DGNSS mode
  • Changed some OpenMP multithread directives for slightly improving multithread performance.
  • Several bug fixes and improvements. See full list below.

Future updates:

  • Measurement selection for cycle-slip detection and in the processing.
  • Multiconstellation!!! 
DateFile nameTypeDescription
2018/01/19 gLAB.c added Added a INFO message with the list of SBAS GEO satellites excluded (for SBAS plots mode).
Concatenated IONEX files are now supported, for both ionsphere data and DCB data.
changed Improved handling of concatenated files for Klobuchar/BeiDou ionosphere parameters. Now it will only read new parameters from next day when the observation file changes day. Before it could read them when the observation file changed day or when the broadcast orbits had expired.
Changed OpenMP directives "#pragma omp critical" to "#pragma omp atomic". Atomic statements are faster as they require less overhead, they don't block other threads operations (except for the current atomic one) and do not require to be named in order to distinguish between the atomic sections (unnamed critical sections block all threads accessing any unnamed critical section).
fixed Fixed bug that made gLAB show an error message and exit in positioning mode when a concatenated RINEX navigation file was read.
gLAB_GUI changed Removed links "ftp://serenad-public.cnes.fr/SERENAD0/FROM_NTMF/" in  RINEX navigation and SBAS files links list. The new links are with "ftp://serenad-public.cnes.fr/SERENAD0/FROM_NTMFV2/", which were already in gLAB.
Updated/corrected several tooltips.
graph.py changed Removed text "PRN 0" in default ionosphere availability maps title when GEO PRN was 0 (PRN 0 means data was read from several GEOs).
input.c  added 'readIONEX' function can now read concatenated IONEX files.
changed Removed 'readIONEXFile' function because it is no longer used.
Removed 'readRinexNavFile' function because it is no longer used.
All input files are now opened "rb" options instead of just "r" (to avoid problems with Linux end of line in Windows).
fixed Fixed crash when reading RINEX precise clock files and there was a line entry of a station whose name started with 'G' or 'R' or 'E' or 'S' or 'C' or 'J' or 'I' and the remaining three letters of the station name where all numbers (for example 'AR S011 2008 05 12 00 10  0.000000  2    0.764667861953E-03'). This made gLAB believe that it was a satellite data entry instead of station data entry.
model.c fixed Fixed applying wrong ARP correction in reference station in DGNSS mode.
output.c added Added a INFO message with the list of SBAS GEO satellites excluded (for SPP, PPP, SBAS and DGNSS modes).
preprocessing.c changed Optimised function 'checkPseudorangeJumps'. If total value to be added to measurements is 0, gLAB will not loop throught the satellite measurements adding 0 to measurements. Also, prints distinguishing between reference station and rover now have the if as a parameter for the printf, instead of an external 'if' statement.

 

gLAB v5.1.2

New highlighted features:

  • Added multithread compatibility with OpenMP library. Multithread has to be enabled at compile time, and will be disabled by default. In Windows, the multithread enabled binary will be named "gLAB_Multithread.exe" (the user must explicitly call this binary or change its name to gLAB.exe to use with the GUI). In Linux and Mac, user will to rebuild the core with multithread enabled. There is a "multithread" folder inside the "source/Core" directory with the Makefile for easy compiling. The reason to leave multithread disabled by default is because it may interfere with some tutorials (due to printing order is changed) and because in SPP and DGNSS modes it may run slower.
    • In order to get noticeable improvements with multithread, it should be used with 1Hz or higher data files.
    • For SBAS maps, the improvement is quite big. Using 4 CPUs SBAS maps computation time is halved.
    • If multithread is enabled, a new parameter, '-numthreads' will be available for forcing the number of threads. If not set, by default it will use as much threads as CPUs available.

Modifications and bug fixes:

  • Added support for new DCB file header ('CODE'S 30-DAY GPS P1-C1 DCB SOLUTION, ENDING DAY 306, 2017')
  • Added check when reading DCB files. If header is not recognized, it will show an error instead of producing undefined behaviour.
  • Updated ANTEX and DCB files in the GUI (the URL had been moved).
  • Several bug fixes and improvements. See full list below.

Future updates:

  • Measurement selection for cycle-slip detection and in the processing.
  • Multiconstellation!!! 
DateFile nameTypeDescription
2018/01/10 gLAB.c added Added OpenMP preprocessor directives for multithread processing for the modelling section and for SBAS maps mode (gLAB needs to be rebuild with '-fopenmp' in order to enable multithreading).
Added parameter '-numthreads' in order to set the maximum number of threads in multithread processing. If this parameter is not set, it will use as many threads as available CPU (gLAB needs to be rebuild with '-fopenmp' in order to enable multithreading).
changed If gLAB is build with multithreading, the INFO message with the gLAB version will show that multithreading is enabled.
Changed progress bar in SBAS plots mode. Now it will also show the current epoch and epochs left in HH:MM:SS format.
Progress bar in SBAS plots mode will now appear with 0.0% progress when the process starts. Before it didn't appear until progress had advanced to 0.1%, which could take some long time and therefore make the user think that the gLAB was not working.
Updated help messages.
gLAB_GUI changed Changed ANTEX ftp link from "ftp://igscb.jpl.nasa.gov/igscb/station/general/pcv_archive/" to "ftp://ftp.igs.org/pub/station/general/pcv_archive/" (the URL of the link had moved).
Changed DCB ftp link from "ftp://ftp.unibe.ch/aiub/CODE" to "ftp://ftp.aiub.unibe.ch/CODE/ (the URL of the link had moved).
If P1-C1 correction is disabled or set to flexible in the MODELLING, it will now allow to leave the P1-C1 DCB file blank (previously it was only allowed to be empty if GPS Receiver Type was manually set to type 2).
Updated/corrected several tooltips.
fixed
Fixed parameter '-pre:setrectype' appearing in the INPUT section instead of the preprocess section when creating a configuration file.
Fixed parameter '-pre:setrectype' not appearing in configuration file when the GUI option "Generate minimum configuration" was disabled and this option had the default value (therefore it did not affect the processing).
input.c  changed
 
gLAB can now read DCB files with the new header format (for example: 'CODE'S 30-DAY GPS P1-C1 DCB SOLUTION, ENDING DAY 306, 2017').
If header format is not recognized when reading a DCB file, gLAB will show an error and exit instead of continuing and producing undefined behaviour (incorrect results or crashing).
output.c added Added a INFO message with number of threads used during the processing (gLAB needs to be rebuild with '-fopenmp' in order to enable multithreading).
preprocessing.c added Added a OpenMP preprocessor directive for multithread cycle-slip processing (gLAB needs to be rebuild with '-fopenmp' in order to enable multithreading).
changed 'checkCycleSlips' function now does not return any value (before it returned if the last satellite processed had had a cycle-slip, which was useless).

 

gLAB v5.1.1

New highlighted features:

  • Added "Add user error to RINEX". In this mode, gLAB reads an observation file, an user error file and creates a new RINEX observation with the same data with the user defined error added to measurements (in this version it can only add error to GPS, Galileo and SBAS constellations. Other constellations will be left unmodified).

Modifications and bug fixes:

  • Changed receiver ARP correction default option in SBAS and DGNSS. Now it will be enabled by default in SBAS and DGNSS modes (before it was disabled).
  • In DGNSS mode, ARP correction will now be applied to rover and reference station if ARP correction is enabled (reference station ARP correction will be read from RINEX or RTCM reference file).
  • Fixed KML timestamps not being written to file when observation file timestamps where inconsistent (for example 1.000304, 2.000304, ...).
  • Several bug fixes and improvements. See full list below.

Future updates:

  • Measurement selection for cycle-slip detection and in the processing.
  • Multiconstellation!!! 
DateFile nameTypeDescription
2017/12/22 gLAB.c added Added "Add User to RINEX" mode. In this mode, gLAB reads an observation file, an user added error file and writes the a RINEX observation file with the same data but with the user added error in the measurements.
changed Changed receiver ARP correction default option in SBAS and DGNSS. Now it will be enabled by default in SBAS and DGNSS modes (before it was disabled).
Changed detection method for detecting if standard output is piped. This method works in Windows, Linux and Mac. This allows gLAB to behave the same way in Linux and Mac when detecting if standard output is piped or if process is in background (in order to hide the progress bar). In Windows, it cannot detect if process is run in background, so if output is a pipe or is not a terminal by default it will hide the progress bar.
Updated help messages.
fixed Fixed DGNSS corrections not being updated during one epoch when a new header was found in the rover observation file (only when rover file is concatenated). This ocurred only in the first epoch after the new header.
gLAB_GUI added Added link to GPS Constellation Status file "http://www2.unb.ca/gge/Resources/GPSConstellationStatus.txt"
 Added "Add User to RINEX" mode. In this mode, gLAB reads an observation file, an user added error file and writes the a RINEX observation file with the same data but with the user added error in the measurements.
changed ARP correction is now enabled by default in SBAS and DGNSS modes.
"Satellite Options" groupbox in Preprocess tab will now keep all elements aligned to top (instead of centering them in height) when the "Discard Unhealthy Satellites (Brodcast only)" option is hidden.
Updated/corrected several tooltips.
input.c  changed gLAB can now read backwards RINEX observation files with multiple headers.
fixed Fixed rare bug when reading backwards a file searching for the start of an epoch (the line with the timestamp), some measurements with many 0's (for example 20010008.523) could make gLAB confuse a line with measurements with the line of start of epoch.
Fixed rare bug not showing progress with some observation files. It ocurred when searching for the start of an epoch (the line with the timestamp) for computing the number of epochs in file for computing the current progress.
model.c changed In DGNSS mode, receiver ARP correction was disabled independently of user options. If user now enables this option, reference station ARP will be read from reference RINEX or RTCM file and corrected, and rover ARP will be read from rover RINEX or user input (depending on user options).
output.c added Added function 'writeObsRinexEpochUserAddedError' for writing RINEX observation file with user added error.
fixed Fixed KML timestamps not being written to file when observation file timestamps where inconsistent (for example 1.000304, 2.000304, ...).
preprocessing.c fixed Fixed crash (due to division by zero) when observation file timestamps where inconsistent (for example 1.000304, 2.000304, ...), file interval was equal or greater than 1 second and user had set a decimate value smaller than 1.
Fixed crash (due to division by zero) when observation file timestamps where inconsistent (for example 1.000304, 2.000304, ...), file interval was smaller than 1 second and user had set a decimate value of an order of magnitude smaller (or more) than the file interval.


gLAB v5.1.0

Big update!! But it will be the last update in about a year (except if any critical bug appears) in order to focus in the Multiconstellation and measurement management feature.

New highlighted features:

  • Added Mac support!! The GUI layout is not as nice as in Windows and Linux, but has full functionality. The differences of the layout in the GUI in Mac are due to Qt libraries.
  • Added progress bar in the GUI for all modes (except Analysis mode). In command line, the current epoch and percentage completed is displayed. In command line, in Windows and Mac, the progress bar will automatically be disabled if output is redirected to file with the ">" symbol or output is piped. This is because in Windows and Mac it is not possible to differenciate between redirection and a pipe. In Linux, progress bar will only auto disable if output is piped.
  • Added abort button in the GUI.
  • Added the capability to read and write reference position files. Input reference files can be a columnar text file,a SP3 file or a RTKlib output file. gLAB can now read a reference position file, and compare the difference between gLAB solution and the reference position file automatically, showing the results in the differencial fields of the OUTPUT message (dXYZ, dNEU). Some example of the applications are: Compare gLAB solution with another software solution, or process in PPP mode and then compare PPP vs SPP. 
  • Added options to set "Start time" and "End time" to make gLAB only process a given range of epochs.
  • Added a "SBAS summary Start Time" in order to allow the user to set the first epoch of the SBAS summary.
  • Added a date converter (in the GUI and in command line). The date converter accepts these formats: calendar format, Year/DoY/SoD, GPSWeek/Sow and MJDN/SoD.
  • Added a coordinate converter (in the GUI and in command line). The coordinate converter accepts these systems: cartesian, geodetic (ellipsoidal) and spherical.
  • User input coordinates can now be also be given in geodetic (ellipsoidal) format.
  • SNR can also be read from S1, S2 measurements in the RINEX observation file (before only read the flag next to the measurement).

Modifications and bug fixes:

  • SNR filtering is now done before the cycle-slip detection and smoothing (in previous versions is was done after smoothing). If a sample is below the SNR threshold, the sample is discarded and counts towards data gap (this changes the results noticeably!).
  • Changed SBAS and DGNSS defaults for Data Gap, SNR and N-consecutive. In both modes, SNR mask is set to 33 dbHz, Data Gap to 10 seconds and N-consecutive is disabled (this changes the results noticeably!).
  • Improved SBAS messages data gap detection and processing. Now it will also print message with the number of message missing at each epoch (if there are any).
  • When converting RTCM files, gLAB will automatically replace files instead of asking of quitting.
  • Lots of bug fixes and improvements. See full list below.

Future updates:

  • Measurement selection for cycle-slip detection and in the processing.
  • Multiconstellation!!! 
DateFile nameTypeDescription
2017/11/24 dataHandling.c added Added functions 'ConvertCalendarDate', 'ConvertDoYDate', 'ConvertGPSWeekDate' and 'ConvertMJDNDate' for date conversion.
Added 'ConvertCartesianCoord', 'ConvertGeodeticCoord' and 'ConvertSphericalCoord' for coordinate conversion.
changed When 4 or more consecutive messages are wrong, UDREI data will timeout (for PA mode only) instead of erasing all fast correction data.
dataHandling.h added Added functions 'ConvertCalendarDate', 'ConvertDoYDate', 'ConvertGPSWeekDate' and 'ConvertMJDNDate' for date conversion.
Added 'ConvertCartesianCoord', 'ConvertGeodeticCoord' and 'ConvertSphericalCoord' for coordinate conversion.
changed Changed MAXSWITCHPEREPOCH from 2 to 50 to allow more GEO changes in one epoch.
filter.c fixed Fixed bug not computing Stanford-ESA when SBAS summary was not enabled.
gLAB.c added Added MAC support.
Added progress bar in command line. In Linux, it will automatically disable if process is started in the background or moved to background or standard output is piped or standard input is not a terminal. In Windows, it will automatically disabled if standard input or output is not a terminal (In Windows and Mac it is not possible to distinguish between output redirection to file or piped), but it is possible to force the appearance of the progress bar with the parameter '-print:progress'.
It can also be disabled by the user with parameter '--print:progress'.
Added '-pre:starttime' and '-pre:endtime' for setting first and last epoch to be processed of the observation file respectively. Four date formats supported: 'YYYYMMDD HH:MM:SS', 'YYYY/MM/DD HH:MM:SS', 'YYYY/DoY SoD' and 'GPSWeek SoW'.
Added hidden parameter '-pre:guiprogress'. This parameter is given by the GUI to the gLAB core in order to make the latter print the progress in a suitable format to be read by the GUI.
Added parameters '-dateconv:calendar', '-dateconv:doy', '-dateconv:gpsweek' and '-dateconv:mjdn' for date conversion mode.
Added parameters '-coordconv:cartesian', '-coordconv:geodetic' and 
'-coordconv:spherical' for coordinate conversion mode.
Added parameter '-sbassummary:starttime' to allow a user defined start time of the SBAS summary (if user also wants to set an end time, set the last epoch to be processed with parameter '-pre:endtime').
Added parameters '-output:sp3:dgnssonly' and '--output:sp3:dgnssonly' to enable or disable writing SPP solution to output SP3 file in DGNSS mode.
Added parameter '-input:refpos' for reading an input reference position file. Input reference file can be a columnar text file, a SP3 file or a RTKlib
output file.
Added parameter '-referenceposfile' for a description of the input reference file.
Added parameter '-output:refpos' for writing an output reference position file.
Added parameters '-output:refpos:doy', '-output:refpos:gpsweek' and
'-output:refpos:caltime' to write the timestamps in "Year DoY SoD", or
"GPSWeek/SoW" or "YYYY/MM/DD HH:MM:SS.zzz" formats respectively.
Added parameters '-output:refpos:geodetic' and '--output:refpos:geodetic' to set or unset to write the coordinates in geodetic system instead of cartesian mode.
Added parameters '-output:refpos:dgnssonly' and '--output:refpos:dgnssonly' to enable or disable writing SPP solution to output reference position file in DGNSS mode.
Added parameter '--print:none'. It has the same effect as '-print:none'.
Added parameter '-model:tropo'. It has the same effect as '-model:trop'.
Added 'SetRef', 'calculateRef', 'calculateRINEXRef', 'calculateUSERRef', 'DGNSSRoverUSERRef' and 'DGNSSUserRoverRef' receiver positioning modes. This modes are for using a reference file with the rover position.
Added 'DGNSSRoverUSERGeod', 'DGNSSUserRoverRefGeod', 'DGNSSUserGeodbaseline', 'DGNSSUserGeodRinexRover', 'DGNSSRefGeodRoverUSERGeod', 'DGNSSRefCarRoverUSERGeod'
and 'DGNSSRefGeodRoverUSERCar' receiver positioning modes for supporting geodetic coordinates. Internally, it will convert the coordinates to cartesian and switch to the equivalent cartesian mode.
Added compilation date and time next to the "gLAB version" line.
Added INFO message when SNR mask is disabled.
Added INFO message about KML Timestamp options.
Added INFO message for selected KML timestamp regions.
Added INFO message for selected inclusion and exclusion areas in SBAS plots mode.
Added INFO message with user defined geodetic coordinates (when provided).
changed
Changed SBAS and DGNSS defaults for Data Gap, SNR and N-consecutive. In both modes, SNR mask is set to 33 dbHz, Data Gap to 10 seconds and N-consecutive is disabled.
Changed parameters name from 'RTCMbaseline', 'RTCMRinexRover', 'RTCMRoverUSER', 'RTCMUserbaseline', 'RTCMUserRinexRover' and 'RTCMRefRoverUSER' to 'DGNSSbaseline', 'DGNSSRinexRover', 'DGNSSRoverUSER', 'DGNSSUserbaseline', 'DGNSSUserRinexRover'
and 'DGNSSRefRoverUSER' respectively. The old names can still be used in order to maintain compatibility with older versions.
Changed default standard deviation from 1 to 5 metres for single frequency code, from 1 to 3 metres for PC and from 0.01 to 0.03 metres for LC.
If troposphere model is disabled, gLAB will automatically disable computation of wet troposhere residual in the filter.
In RTCM conversion mode, gLAB will automatically replace output files instead of exiting.
Improved gLAB detection of executable directory detection for Mac compatibility.
If receiver antenna phase center is set by user, then receiver antenna phase center variation correction will be automatically disabled (previously it appeared as enabled in the INFO messages, but during the modelled it was skipped).
In orbit comparison or orbit show mode, gLAB will not always show the end time of the comparison regardless of the number of concatenations of the input files (previously it was not shown if file had more than three days concatenated).
Tweaked the code to remove the different compiler warnings when compiling with flags '-pedantic', '-Wall' and '-std=gnu99' (without using the '-O' flag). In each platform, the compiler issued different warnings.
Updated help messages.
fixed
Fixed bug that made gLAB discard all satellites with reason "Arc too short" even though the arc was very large.
Fixed crash in SBAS plot mode when hourly maps were enabled and continuity risk maps were disabled.
Fixed bug incorrectly reading values for parameter '-output:kml:tstamprange' when it was provided through a configuration file.
Fixed bug that made the KML time ranges to be duplicated or triplicated in memory due to user options are read several times.
Fixed bug that made inclusion and exclusion areas for SBAS maps to be duplicated or triplicated in memory due to user options are read several times (in order to override defaults) This will slightly reduce SBAS maps computation time with maps including inclusion or exclusion areas.
Fixed solution not converging in receiver positioning modes 'calculateRINEX' and 'calculateUser' when the initial position was very far from the real position. This was due to gLAB believed initial coordinates were always close to the real ones, therefore, satellite elevation filtering was enabled since the beginning instead of waiting for the solution to converge for enabling this filter.
Fixed bug not computing Stanford-ESA when SBAS summary was not enabled.
gLAB_GUI added Added Mac compatibility.
Added links "ftp://lox.ucsd.edu/pub/rinex/" and "ftp://ftp.gfz-potsdam.de/GNSS".
Added "UNAVCO'S Database RINEX Searcher" in the "Download data files" menu.
Added "GFZRNX RINEX version converter" in the "File conversion tools" menu.
Added progress bar when gLAB processing is launched (for all modes except Analysis).
Added abort button when gLAB processing is launched (in all modes).
Added "Start Time" and "End Time" options in the INPUT section.
Added "Set start time of SBAS summary" option in the "SBAS Summary Options" groupbox.
Added used MOPS in the SBAS options.
Added options for allowing the user to enter user defined coordinates in Geodetic system.
Added a new input for reference position file in "A Priori Receiver Position From".
Added output reference file in the "Output" tab.
Added contextual menu to all input files for opening them with a text editor. In Windows, input files are opened with WordPad due to this program supports Linux end of file format.
Added Date and coordinate converter in the Help menu.
Added "File Standards" in the Help menu with links to several GNSS file standards.
Added "Reference Position File Manual" in the "User manuals" section.
Added option 'Write only DGNSS solutions' in output SP3 files in DGNSS mode.
changed In the "Condition" combo box with the output message list (in the Analysis mode), now each item has the tooltip of its correspondent message.
Tooltip for OUTPUT message has been adjusted to fit in typical laptop screen (without modifying the content).
All date boxes in the GUI now have a button to display a calendar for date selection.
SNR deselection is now named "SNR Mask", and allows to set a user defined threshold.
Changed SBAS and DGNSS defaults for Data Gap, SNR and N-consecutive. In both modes, SNR mask is set to 33 dbHz, Data Gap to 10 seconds and N-consecutive is disabled.
Changed default standard deviation from 1 to 5 metres for single frequency code, from 1 to 3 metres for PC and from 0.01 to 0.03 metres for LC.
Changed option name from 'Calculate - Specify' to 'Calculate - User defined'.
Option "Estimate wet troposhere residual" in filter will automatically disable if troposphere model is disabled.
In RTCM conversion mode, gLAB will automatically replace output files instead of asking.
When opening a user manual, gLAB will overwrite any previous manual instead of using the old version (if it existed).
Size of "A Priori Receiver Position From" has been fixed in order to avoid resizing when changing between options.
The template "Orbit and Clock Comparison" will now set the "Source File" path to the processing mode output file path (plus "diff.out" filename) instead of the application directory when the comparison mode output file is empty.
Updated/corrected several tooltips.
fixed Fixed bug that showed an error of "GPS Receiver Type file" not found when user had selected "GPS Receiver Manual Selection".
Fixed bug that showed a wrong error regarding to P1-P2 DCB correction selection.
Fixed bug showing an error message twice when gLAB ended with an error and no data was written to the output file.
Fixed bug passing wrong parameters to gLAB core when receiver antenna phase center correction was set to "Specify Offset".
Fixed bug when loading cycle-slip detectors options from configuration file.
Fixed bug reading configuration files when options had more than one space between them or line started with a space.
graph.py changed In Mac and Linux, if the ".plot.lock" cannot be created in the current directory, then this file will be created in the home directory. This is to make graph work in Mac when gLAB is opened by double clicking in the gLAB logo after opening the ".dmg" file (i.e. without installing gLAB). In this case, gLAB files were mounted on a read-only filesystem.
Changed title name in Stanford-ESA plots from '# samples' to '# geometries'.
Disabled warning deprecated messages in windows and Mac.
Removed the "Qt: Untested Windows version 6.2 detected!" warning message in Windows 10 from the Qt4 library used by python.
fixed Fixed watermark being printed over the colorbarlabels in SBAS plots mode.
Fixed error in Stanford plots mode which made the image title get erased
when the user provided a title which had a newline in the middle of the text.
input.c  added Added functions 'readReferenceFile' and 'readPosFile' for reading a reference position file.
changed User defined error files and sigma multipath error files now also accept
commas (',') and semicolons (';') as column separators.
In function 'readRinexObsHeader', gLAB will now estimate the file interval
(if it is not in the header) by substracting the second epoch minus the
first epoch. This will be used for computing the total number of epochs
for the progress bar and for having a rough interval value in the first
epoch.
When reading the observation header for the first time, gLAB will now estimate the file interval, so file interval is available for the decimation funtion in the first epoch.
Detection of consecutive missing messages or consecutive is now done for all GEO available in the SBAS file, even if they are not used.
An INFO message is printed when a missing or wrong messages is detected for any GEO. If consecutive missing or wrong messages are detected, the number of consecutive missing or wrong messages will be printed.
SNR can now also be read from S1, S2,... measurements instead of just the flag next to the measurements. If both measurements are available, gLAB will prefer the S1,S2... measurements (the non quantizied values).
fixed Fixed crash when reading non standard RINEX-B files which do not contain
the any of these fields in every first line of data: frequency, datalength,
receiverindex and source identifier.
Fixed getLback function (backwards line reading) not working when a RINEX-3 observation line was very long.
input.h added Added functions 'readReferenceFile' and 'readPosFile' for reading a reference position file.
model.c added Added functions for 'XYZ2Spherical' and 'Spherical2XYZ' for coordinate conversion.
changed Taken out broadcast message age check in DGNSS. This made sometimes to incorrectly discard navigation messages (and therefore, the satellite).
If GEO switching is enabled, gLAB will make a GEO switch if the current GEO has 4 consecutive messages missing or 4 consecutive wrong messages (in both PA and NPA modes).
During a GEO switch, gLAB will not switch to a GEO which has 4 or more
consecutive messages missing.
In NPA mode, if half of the satellites do not have fast or slow corrections,
gLAB will try to switch GEO if GEO switching is enabled.
When gLAB switches back to previous GEO (option '-model:geofallback' enabled), the INFO message showing the change of GEO will be printed after the OUTPUT or SBASOUT message, instead of before, to avoid user confusion.
fixed Fixed infinite loop when minimum switch time for SBAS was set to 0.
Fixed incorrect computation of BeiDou satellite coordinates and clocks with
broadcast products.
model.h added
Added functions for 'XYZ2Spherical' and 'Spherical2XYZ' for coordinate conversion.
output.c added Added INFO messages with the KML ranges selected.
Added 'printDates' and 'printCoordinates' functions for printing the results
of date or coordinates conversion (for conversion mode only).
Added 'writeReffile' function for writing a reference position file.
changed Data Gap INFO message will now appear as OFF when all cycle-slip detectors are disabled instead of showing the data gap size (this correspons to the internal logical of gLAB).
Changed N-consecutive INFO message from "INFO PREPROCESSING Cycle-slip N-Con:" to "INFO PREPROCESSING N-consecutive:", as the N-consecutive function is a blind measurement filter, not a cycle-slip detector.
In DGNSS mode, epochs in SPP will be shown in red in the output KML instead of being empty.
In SBAS mode, epochs in NPA will be shown in red in the output KML instead of being empty.
SBASUNSEL message will now print the number of missing or wrong
consecutive messages instead of always writing "4 or more consecutive...".
fixed Fixed problem with carriage returns when writing SBAS converted files and
SBAS conversion log when sbas source file has a different line ending
than the current operative system.
Fixed bug that applied a wrong DCB when printing P1 and P2 GPS measurements in MEAS message when receiver was set to type 1 or type 2.
Fixed bug in MEAS message that made to apply wrong DCBs to GPS P1 measurements when DCB P1-C1 was set to strict.
Fixed bug with wrong decimation in KML timestamps due to an integer overflow. This bug was introduced in version 4.2.0 when decimal decimation was added.
output.h added
Added 'printDates' and 'printCoordinates' functions for printing the results
of date or coordinates conversion (for conversion mode only).
Added 'writeReffile' function for writing a reference position file.
preprocessing.c changed SNR is now checked in the cycle-slip detector function. If a satellite does not have the minimum SNR, the sample is discarded and counts as a data gap.
During the computation of the file interval ('look4interval' function), in the first epoch it will set the rough estimation of the interval (second epoch minus the first one). This ensures that first epoch is not wrongly decimated due to missing file interval.
fixed Fixed data gap cycle-slip detector not triggering when L1-C1 cycle slip detector had detected an unconsistency in measurements.
Fixed wrong decimation for observation files with interval below 1Hz and inconsistent timestamps (for example, a file with 0.2 second interval and timestamps such as 1.203, 1.204, etc). For decimation on these files, gLAB will now only take into account as much decimals as the file interval (for example, a file with 0.2 second interval will only take into consideration the first decimal of the timestamp).

 

gLAB v5.0.0

New highlighted features:

  • New GUI!!!! The new GUI has been built from scratch using Qt 5. 
    The GUI is compatible with windows XP, Vista, 7, 8 and 10 (both 32 and 64 bit versions) and with Ubuntu 10.04 and above (both 32 and 64 bit versions). Other Linux distributions should work, although it has not been tested.
    It includes all the new features for gLAB except for the SBAS maps (both processing and plotting) and the world maps and worst integrity ratio plots. 
  • SBAS Availabilty maps:
    • gLAB can now do worldwide SBAS Availabilty Maps, plotting availability for all SBAS providers in a world map within a single run (see plot example in the SBAS manual) 
    • SBAS Availability maps can now also be written each hour, therefore the user can make a plot for the availability for each hour of the day
    • Added options for giving inclusion and exclusion areas in the processing. For worldwide SBAS maps, creating exclusion areas where there are no SBAS coverage can save a lot of computation time.
    • Several improvements in the plotting tool for the SBAS. The colourbar now has the same size has the plot, the user can set label for the colourbar and X and Y axes and also manually set the ticks.
  • In Windows, the installator has now the gLAB core compiled in both 32 and 64 bit, and it will automatically deploy only the version matching the user's Windows installed architecture.
  • Added outlier detection in Melbourne-WÜbbena cycle-slip detector.
  • Added a field with the number of satellites used in the OUTPUT message.
  • Added a field with the SNR value of the satellite at the end of the MODEL message.
  • Added the troposphere wet mapping and arc number at the end of the FILTER message.

Modifications and bug fixes:

  • Fixed side effect from the new decimation mode (the new mode was done to allow decimation under 1 second) that made gLAB skip epochs when the RINEX observation file was at a data rate of 1 second (or above), but the timestamps had decimals instead of being integer seconds.
  • Fixed several bug with the processing with mixed GEO data.
  • Several changes and bug fixed (see details in the table below).

Future updates:

  • Measurement selection for cycle-slip detection and in the processing.
  • Multiconstellation!!! 
DateFile nameTypeDescription
2017/06/30 dataHandling.c fixed Fixed bug that made gLAB try to create an empty folder in Linux when the output path was absolute.
filter.c changed Changed "Outlier" SATSEL message to "Outlier in Bw detector" and "Outlier in LI detector" in order to show which cycle-slip detector detected an outlier.
gLAB.c added Added parameter '-pre:cs:l1c1:unconcheck:th' for L1C1 consistency check threshold.
Added GEO switching in SBAS Availability maps (therefore, now it can do SBAS availability maps with different SBAS providers in the same run).
Added parameter '-sbasplots:hourlymaps' for writing hourly SBAS availability maps.
Added parameter '-sbasplots:plotarea'. This parameter is a shorter way to provide the same values as in '-sbasplots:minlon' '-sbasplots:maxlon', '-sbasplots:minlat' and '-sbasplots:maxlat' parameters.
Added parameter '-sbasplots:exclusionarea' for excluding areas in the SBAS availability maps processing. 
This parameter can be passed as many times as exclusion areas needed to be defined.
This parameter will exclude all points which are inside any area defined with this parameter.
Added parameter '-sbasplots:inclusionarea' for including areas in the SBAS availability maps processing.
This parameter can be passed as many times as exclusion areas needed to be defined.
This parameter will exclude all coordinates that are not inside any area defined with this parameter.
If parameter '-sbasplots:exclusionarea' is also provided, for a coordinate to be processed, it must be inside any inclusion area and outside of all exclusion areas.
Added parameter '-rtcmv2conversioninfo', which shows detailed info of the output files generated when converting a RTCM v2.x file.
Added parameter '-pre:cs:bw:siginit' for setting the initial sigma in the Melbourne-Wubbenna cycle-slip detector.
changed Changed parameter name from '-model:geoadqtime' to '-model:geoacqtime' (but the old name is  still accepted).
Decimation can be now a decimal number, with a maximum resolution of 0.0001 seconds (10000 Hz).
Help parameters ('-help', '-examples', '-config', '-messages',  '-usererrorfile', '-sigmamultipathfile' and '-rtcmv2conversioninfo') now also work with a double slash '--'.
Updated help messages.
gLAB_GUI.py Defunct (obsolete) This file has been replaced by the source code in the new GUI, which is splitted in several files (see the source->GUI for the source files of the new GUI).
graph.py added Added two new modes for setting ticks in the plots:
With parameters '--XticksStep' and '--YticksStep', the ticks are set at the rate given by the user.
With parameters '--XticksList' and '--YticksList', the user set the ticks by giving a list of ticks.
Added options '--percentileX' and '--percentileY' in Stanford Plots mode for setting ticks when the 68%, 95% and 99.9% of the values are reached in each axe.
Added option '--CbarLabel' in SBAS Availability map plots for setting a label next to the colorbar.
Added option '--NoCbarPercent' in SBAS Availability map plots for not printing the '%' on top of the colorbar.
changed Setting ticks manually now work in all plot modes.
Colorbar in SBAS Availability plots now has the same height as the plot.
input.c  added Added check for incorrect header when reading an IONEX file. If all necessary header records are not in the
fixed Fixed a bug when reading a EMS file in SBAS Availability plots mode that made gLAB show an error message saying that there were no GEO available for processing.
model.c changed Improved GEO switching when there are many SBAS GEO available. Now gLAB will skip all previously used SBAS GEOs when doing multiple switches in the same epoch (for example, when doing SBAS availability maps with several SBAS providers).
fixed Fixed bug that made not to unselect GPS satellites when data from mixed GEOs was used and alarms from more than one GEO had been received.
Fixed bug that prevented from changing GEO when an alarm was received and data from multiple GEOs were used.
Fixed incorrect GEO PRN number printed in INFO message stating that the GEO had changed when the initial GEO was the one with mixed data.
output.c added Added INFO print for L1C1 consistency check.
Added SNR field at the end of the MODEL message. gLAB will search first for the "S" measurement in the observation file.
If it is not present, it will search for the SNR flag in the current measurement. 
If no SNR is available, 999 will be printed in this field.
Added troposhere wet mapping and arc number at the end of the PREFIT message.
Added number of satellites used in the solution computation in the penultimate field of the OUTPUT message.
preprocessing.c added Added outlier detection in Melbourne-Wubbena cycle-slip detector.
changed In RINEX observation files with a data rate equal or higher than 1 second, when checking if an epoch has to be decimated, gLAB will not take into account the decimals in the timestamp in order to avoid wrong decimation of epochs with decimals (for example, a file with 1.01, 2.01, etc. timestamps).
fixed Fixed bug in the computation of the Melbourne-Wubbena sigma.
 


gLAB v4.2.0

New highlighted features:

  • Added 'Maritime' mode for SBAS (command line only). At the current moment, its effect is to disable messages type 10 (degradation terms), 27 and 28 (δUDRE) in both PA and NPA modes. This may change in the future.
  • Added option that allows to choose whether to add or not the reference station(s) used in DGNSS processing in the generated KML file.
  • Decimation can now be a decimal number with a maximum resolution of 0.0001 seconds (10000 Hz).
  • Added field "Vertical positioning error" in SBASOUT message. This field is the absolute value of the north error. With this field it is easier to do VPE/VPL plots.
  • gLAB is now able to create directories recursively for the output files.
  • Added warning message when computing SBAS availability maps in order to advise user for the long computation time needed (with default options it is around 2 hours).
  • Added documentation for SBAS output conversion log in the SBAS manual (it was missing).

Modifications and bug fixes:

  • Fixed all bugs produced by the N-consecutive filter.
  • Fixed several bugs with SBAS processing (see details in the table below).

Future updates:

  • The new GUI is almost finished!

 

DateFile nameTypeDescription
2017/05/22 dataHandling.c added Added function 'mkdir_recursive' for creating directories recursively.
changed Changed default SNR threshold from 35dbHz to 30dbHz.
filter.c added Added SATSEL message 'Satellite phase center corrections unavailable'.
changed Changed SATSEL message from 'Steady-state operation not reached. X epochs passed, still Y epochs to go' to 'Steady-state operation not reached. X epochs passed, still Y epochs to achieve X+Y'.
gLAB.c added Added option '-output:kml:refsta' for adding (or not) the reference station(s) used in DGNSS mode in the output KML files (default on).
Added options '-model:nomt10' and '-model:nomt2728' to disable messages type 10, 27 and 28 for SBAS.
Added option '-model:sbasmaritime' for SBAS maritime mode (which is a shortcut for providing parameters '-model:nomt10' and '-model:nomt2728'.
Added warning message when computing SBAS availability maps in order to advise user for the long computation time needed (with default options it is around 2 hours).
Added warning message when computing SBAS availability maps in order to advise user for the long computation time needed (with default options it is around 2 hours).
Added check of initial coordinates when receiver positioning is set to 'calculateRINEX' or 'calculateUSER'. If coordinates are (0,0,0), in the case of 'calculateRINEX' a warning will be shown informing that these coordinates are invalid and that (6378137,0,0) will be used instead. In the case of 'calculateUSER', an error will be shown.
changed gLAB will now create all directories recursively (if needed) when opening an output file for writing.
Decimation can be now a decimal number, with a maximum resolution of 0.0001 seconds (10000 Hz).
Use of Klobuchar iono when SBAS iono is not available during the solution convergence is now also permitted in receiver position modes 'calculateRINEX' or 'calculateUSER'.
Updated help messages.
fixed Fixed crash when SBAS iono was selected, Klobuchar iono was allowed during receiver convergence and no navigation or Klobuchar file had been provided.
graph.py added Added unicode text transformation in WaterMark text input when running under Python 2.
changed Changed default title of SBAS iono map from 'SBAS Iono Correction Map' to 'SBAS Iono Correction Availability Map'.
input.c  changed RTCM3 epoch read from binary file is now rouded up to 4th decimal (minimum decimation of gLAB). Differences at the 11th decimal were making to discard all reference measurements if N-consecutive filter was enabled.
fixed Fixed a bug that made sometimes gLAB crash when an invalid message was read.
model.c changed SBAS processing now supports disabling message type 10 in PA mode.
If SBAS iono is used but SBAS processing is not enabled, gLAB will allow to use Klobuchar during the solution convergence if the receiver position is set to 'calculate', 'calculateRINEX' or 'calculateUSER'.
Changed behaviour of SBAS processing when 4 conescutive messages were incorrect. Instead of setting all satellites to "Do not use", now it will only change the current GEO to "Do not use" only for ranging purposes.
fixed Fixed a bug handling SBAS alarm messages when two GEO are under alarm. This made sometimes to discard satellites due to an alarm message even if the alarm was from GEO not in use.
Fixed bug that made to print "Ephemerides unavailable" in the SATSEL message when the condition to unselect a satellite was met before reaching the function where ephemerides were checked.
output.c added Added field "Vertical positioning error" in SBASOUT message. This field is the absolute value of the north error. With this field it is easier to do VPE/VPL plots.
changed If current GEO is under alarm and there are other GEO also under alarm, the remaining alarm in the SBASUNSEL will be of the selected GEO, instead of the last GEO under alarm processed.
When an incorrect message is read, now it will be written to RINEX-B or EMS file (before it was not written), due to the effect of reading an incorrect message or not reading any message is not equivalent.
preprocessing.c fixed Fixed arclength not increasing when N-consecutive filter was enabled, no cycle-slip detectors were active and data rate of the observation file was 15 seconds or lower.
Fixed data rate interval of RTCM3 file not being computed. This made discard all reference station measurements if N-consecutive filter was enabled.

 

gLAB v4.1.0

New highlighted features:

  • Added N-consecutive check in cycle-slip detectors. This forces N consecutive samples of a satellite before it can be used. This check only applies to files with sampling rate below 15 seconds (data rate is detected automatically). It is a very simple yet very effective way to discard outliers in RINEX measurements (command line only).
  • Added function for prefit outlier detection. It computes the prefit median and discards satellites which have the difference between the prefit median and its prefit higher than a configurable threshold. By default it is disabled, as it may interfere with the gLAB tutorials (see gLAB command line help for a full description of the method for detecting prefit outliers)
  • Added 'RTCMRinexRover', 'RTCMUSER', 'RTCMUserbaseline', 'RTCMUserRinexRover' and 'RTCMRefRoverUSER' receiver position modes. This modes allows the user to manually set the reference station coordinates (only when reference station data is from a RINEX file) or to set a user location for computing the error.

Modifications and bug fixes:

  • If user forces NPA mode in SBAS, now SBAS summary statistics for NPA will be computed, instead of just showing zero values.
  • The last line of the SBAS summary now has new columns for MIs in Stanford-ESA (even if Stanford-ESA is not enabled).
  • Fixed reference station time synchronization bug when the Rover had a data rate of 1 second and its timestamps were not integer seconds.
  • Bug fixes and other small improvements, see full list in table below.

Future updates:

  • A new GUI written from scratch is under construction! The new GUI is written in Qt, and it will include the new features of gLAB. Therefore, the current GUI will only have bugs fixed, but not updated.
DateFile nameTypeDescription
2017/04/07 filter.c added Added functions PrefitOutlierDetectorMedian and PrefitOutlierDetectorAbsolute for prefit outlier detection.
gLAB.c added Added parameters for prefit outlier detectors.

Added 'RTCMRinexRover', 'RTCMUSER', 'RTCMUserbaseline', 'RTCMUserRinexRover' and 'RTCMRefRoverUSER' receiver position modes.

'RTCMRinexRover' is for computing the solution error with respect to the coordinates from Rover RINEX file.

'RTCMUSER' is for computing the solution error with respect to the user defined coordinates.

'RTCMUserbaseline', 'RTCMUserRinexRover' and 'RTCMRefRoverUSER' are equivalent to 'RTCMbaseline', 'RTCMRinexRover' and 'RTCMUSER' but reference station coordinates are user defined. These last three modes only work when reference station data is from a RINEX file.

Added check for valid receiver position user setting. In SPP/PPP/SBAS it will show an error instead of continuing in 'calculate' mode, and in DGNSS it will show an error instead of continuing in SPP mode.
changed When comparing orbits with two SP3 or SP3+CLK files, gLAB will compute the max data gap for each precise product file instead of using the value computed from the first precise product file read in both files.
If user forced NPA processing mode in parameters, gLAB will now enter the function to update values for SBAS summary, but all the values will be referred to NPA solution instead of PA.
Updated help messages with new parameters and info about prefit outlier detection.
fixed Fixed bug where sometimes gLAB would crash or show an incorrect error message (depending if it were  in comparison or navigation mode) when an invalid RTCM file was given.
gLAB_GUI.py added Added field 32 to OUTPUT message tooltip.
graph.py added Added option to set user defined ticks (for both X and Y) in standard plots.
Added option to adjust figure to margin, so there is the minimum white space margin left. This option applies to all modes except for world maps or integrity ratio maps.
fixed Fixed all errors when executing graph.py with python3.
input.c  fixed Fixed rare bug that made gLAB crash when handling end of file with SBAS files. It ocurred sometimes when the SBAS data file ended before the observation file.
Fixed incorrect SBAS message time handling when the RINEX-B file did not have the 0.1 second (signal travel time) in the timestamp. This made gLAB use SBAS messages from the future.
Fixed false detection of missing SBAS messages when reading SBAS files with more than one GEO.
output.c added Added INFO line for prefit outlier detectors.
Added INFO line for N-consecutive check.
Added fields to last line of SBAS summary for Stanford-ESA values (this fields will appear even if Stanford-ESA has not been enabled).
Added line "Total epochs processed with NPA solution" in SBAS summary. It will only appear if mode switching has been enabled.
changed Fields 'MIs', 'Hor_MIs' and 'Ver_MIs' in SBAS summary now will always show the MIs for all in view satellites combination, as there are now new fields for Stanford-ESA MIs values.
Changed measurement name in converted RINEX files from RTCM v3 from 'C1W', 'L1W', 'S1W', 'C2W', 'L2W', 'S2W' to 'C1P', 'L1P', 'S1P', 'C2P', 'L2P', 'S2P' respectively.
If user forced NPA processing mode in parameters, all values in SBAS summary will be referred to NPA.
fixed Fixed incorrect year formatting in writing a EMS file when SBAS messages were read from a RINEX-B file.
preprocessing.c added Added function look4interval to compute the file sampling rate.
Added N-consecutive check in cycle-slip detectors. This forces N consecutive samples of a satellite before it can be used. This check only applies to files with sampling rate below 15 seconds (data rate is detected automatically). It is a very simple yet very effective way to discard outliers in RINEX measurements.
fixed Fixed bug in function checkPseudorangeJumps which was mixing Rover measurements with reference station measurements in DGNSS mode, thus detecting false code/carrier phase inconsistencies.

 

 

gLAB v4.0.0

New highlighted features:

  • Added DGNSS processing with code  (command line only).
  • Added DGNSS binary RTCM v2 and v3 binaries conversion to text and RINEX file respectively (command line only).
  • Added SBAS availability maps (command line only). gLAB computes and plots three maps: SBAS Corrections availability, SBAS Ionosphere availability and SBAS Continuity Risk. This plots take around two hours to compute with the default options.
  • Added SBAS summary. It is printed automatically at the end of the output file if INFO messages are enabled and the receiver station is fixed).
  • Added option to not include the last two hours from previous day in the SBAS summary in order to avoid convergence time (command line only).
  • Added generation of KML files. Optionally, timestamps can be written to files. Timestamps can be decimated or only written in user defined regions in order to avoid making the file too big due to timestamps. NOTE: KML generated in DGNSS mode will also mark all reference stations used and also the epoch where the reference station changes -only if there is a change in the reference station- (command line only). 
  • Added generation of SP3 files using the solution coordinates (command line only).
  • If there are concatenated SP3 and CLK files, gLAB will read three days from these file, and will keep reading having three days in memories. These avoid the Runge-Kutta effect when interpolating orbits. This applies for navigation and orbit comparison modes.
  • Comparsion of a non concatenated file and a concatenated file can be done now. For example, comparing two SP3 files, being only one concatenated) will show the Runge-Kutta effect in the computed difference.
  • Added a configurable DOP (Dilution of Precision) threshold. If the current epoch is over threshold, gLAB wil switch to another navigation mode or skip the epoch (command line only).
  • Added option to set a maximum number of gaps in orbit and clock samples when interpolating precise orbits or clocks. This avoid using samples too much separated in time due to data gaps in the SP3/CLK files (command line only).
  • Added an INFO message when the solution cannot be computed. The message explaining the reason why the solution could not be computed.
  • Added option to write to a separate file the data from samples in Stanford-ESA computation. A integrity ratio threshold can be set (for both vertical and horizontal), so only samples above any of these thresholds will be written to file (command line only).
  • INPUT message will now print P1 and P2 with P1-C1 DCBs applied (if P1-C1 file and GPS Receiver type file are given, DCBs treatment is set to strict and it is necessary to apply this DCBs).
  • Windows compiled gLAB executable is now optimized (built with '-O3' gcc option) and has the gAGE icon embedded.

Modifications and bug fixes:

  • Rewritten the handling of concatenated SP3 and CLK. After reading the data, gLAB will internally clean all data gaps and invalid values. It is also much faster, as it does this opration after reading from an SP3/CLK file, instead of every time an interpolation is done.
  • IONEX files without 'END OF FILE' now only produces an warning message, instead of giving an error and exiting.
  • IONEX/SP3 files with wrong number of entries in the header will make gLAB show an error message and exit. This is to avoid crashes or undefined behaviour as in previous versions.
  • When executing gLAB in command line, if number of epochs for smoothing were set but not the measurement to smooth with (or viceversa), gLAB will show an error message and exit instead of silently continuing without smoothing.
  • LLI cycle-slip detector will now not trigger if there is data gap.
  • All input options are now case insensitive.
  • A lot of bug fixes and other small improvements, see full list in table below.

Future updates:

  • A new GUI written from scratch is under construction! The new GUI is written in Qt, and it will include the new features of gLAB. Therefore, the current GUI will only have bugs fixed, but not updated.
DateFile nameTypeDescription
2017/03/03 dataHandling.c added Added functions to initialise the RTCM structures.
Added functions to initialise SBASplots structures.
Added function date2doy.
Added function doy2date.
Added function SolutionModeNum2SolutionModeChar.
Added ConcatenateSP3 function.
Added comparison functions for qsort function.
changed When searching a station in the SINEX file, it will only use the first four letters of the marker name in the RINEX observation file instead of the complete name.
fixed Fixed initialization of tropMapping variable (it was intialized to 'SimpleMominal' instead of SimpleMapping') in initOptions function (it didn't affect the code as both have the same integer value).
Fixed incorrect memcpy call in t2tm function.
dataHandling.h added Added DGNSS structure.
Added several structures for RTCM converter.
Added several options for DGNSS.
Added functions to initialise the RTCM structures.
Added functions to initialise SBASplots structures.
Added function date2doy.
Added function doy2date.
Added function SolutionModeNum2SolutionModeChar.
Added parameters for SBAS summary.
Added ConcatenateSP3 function.
Added comparison functions for qsort function.
changed Changed constant name MAX_SATELLITES_IN_VIEW to MAX_SATELLITES_VIEWED.
Changed constant name c to c0. Single letter constants made compilation fail in Windows.
fixed Fixed p1p2dcbModel variable definition in TTGDdata structure. It was defined as 'enum P1C1DCBModel' when the correct type is 'enum P1P2DCBModel' (it didn't affect the code as all enum types behave as integer values when compiled).
filter.c added Added DGNSS checks within function fillUsableSatellites.
Added an INFO message when a solution could not be computed due to lack of available satellites.
Added an INFO message when a solution could not be computed due to geometry matrix is singular.
Added an INFO message when a solution could not be computed due to GDOP is over the threshold.
Stanford-ESA computation now writes to files all combinations that produce an integrity ratio higher than a threshold.
Added a quantization check to avoid the generation of false MIs in Stanford-ESA output file. This ocurred due to the process of quantizing (for saving the data in memory) and de-quantizing (for writing data in output file). This tipically ocurred when protection level and error values had very similar values.
changed Compution of DOP is now done before entering the computeSolution function, and checks if geometry matrix is singular. This allows to skip the epoch due to singular matrix or bad GDOP without affecting the filter.
INFO message in StdESA of a singular matrix now prints epoch and the list of satellites.
INFO message in step detector now prints current epoch and threshold.
Stanford-ESA computation can be done now outside of SBAS mode.
fixed Fixed a bug which made the filter reset some of the satellite carrier ambiguitys at each epoch. This ocurred when the observation file was multiconstellation and affected only the GPS satellites that were at the end of the list of satellites available.
Fixed a bug when checking if SBAS mode or GEO switch should be tried in Kalman function that provoked an infinite loop of tries to change mode or GEO.
gLAB.c added Added DGNSS processing.
Added DGNSS converter.
Added SBAS plots mode.
Added computation of SBAS summary when navigating with SBAS corrections, INFO message is active and receiver position is fixed.
Added option to start computing SBAS summary and Stanford-ESA values at the beginning of the next day.
Added option to generate a KML file from the output.
Added option to generate a KML file from the output with height 0 (KML with the ground projection).
Added options for adding timestamps in KML file. The timestamps can be decimated and also write at certain time regions (defined by the user).
Added options to generate a SP3 file from the output.
Added check for smoothing options. If number of smoothing options is given but not the carrier phase measurement to smooth with (or viceversa), it will show an error instead of continuing without any smoothing.
Added option to disable check for pseudorange jumps.
Added options for Stanford-ESA LOI (Loss of Integrity) data file (for its filename and the thresholds).
Added parameter '-model:maintaingeo' for SBAS GEO switching.
Added options for setting to zero SBAS corrections, sigmas and degradation terms.
Added check for number of entries in SP3 header. If it is incorrect, it will print an error instead of crashing or showing incorrect values.
Added check for number of entries in IONEX header. If it is incorrect, it will print an error instead of crashing or showing incorrect values.
Added option to skip epoch or change processing mode when GDOP is over a given threshold.
Added check for the number of measurements entered for the filter, to ensure they are not greater than the maximum.
Added check for options '-input:sp3', '-input:orb' and '-input:clk'. When 'input:sp3' parameter is given along with 'input:orb' or '-input:clk', it will show an ERROR message instead of just using the sp3 file for orbits and clocks.
Added options for maximum data gap check between samples when using precise orbits and clocks.
Added option to allow adding the user defined error after the preprocessing.
changed When a SINEX file is given, the receiver position will automatically switch to SINEX mode (no need to put the '-pre:setrecpos SINEX' parameter like in previous versions).
When a ionosphere file is given (with '-input:klb' or '-input:bds' or '-input:neq' or '-input:inx' or '-input:fppp' or '-input:sbasiono' it will automatically use the corresponding ionosphere model (no need to put the 'model:iono' parameter as in previous versions).
Show products and compare orbit mode have been greatly improved. Now it is possible show or compare concatenated products files, and
also to compare a concatenated file with a non concatenated file for a single day (this is useful to see the Runge interpolation effect with precise orbits).
In navigation, show or compare orbits modes, if there is a SP3 concatenated file, gLAB will always try to have in memory orbits and clocks from the three days (the previous day, the current day and the following day) in order to avoid Runge interpolation effect.
Changed extension of generated Stanford-ESA files. Now by default they will have a ".txt" extension.
Changed inital aproxPositionError for SINEX coordinates from 1 decimeter to 1 centimeter.
When IONEX or F-PPP DCB source is selected, if no dcb file is given, it will use DCB data from the IONEX/F-PPP file for ionosphere data respectively (if DCB data is available from these files).
When receiver position is set to 'calculateUSER' or 'calculateRINEX', initial coordinates no longer need to be over the Earth Surface.
MEAS message will be printed by default in 'SHOWINPUT' mode (when only an observation file is given).
In SHOWINPUT mode (print only observation data), RINEX station coordinates will not be checked for consistency (as they are not used).
Stanford-ESA initialization is now done outside of SBAS, so it can be used in normal SPP mode (only one measurement used by the filter).
Transmission time of message check in broadcast ephemerides selection is disabled by default in PPP mode.
Taken out degree sign from output messages to avoid text encoding problems.
All input options are now case insensitive.
Updated help messages.
Windows compiled gLAB executable is now optimized (built with '-O3' gcc option) and has the gAGE icon embebbed.
fixed Fixed a bug which made not to save DCB data when it was read from RINEX file with the option '-input:dcb'.
Fixed MEAS message not being printed in the right order in SBAS mode.
Fixed messages for deprecated options not being printed to output file when '-output:file' option was used.
Fixed a bug reading user defined receiver coordinates when receiver position was set to 'calculateUSER'.
Fixed a bug reading SNR threshold from parameters.
gLAB_GUI.py added Added check for X and Y plot ranges in Analysis tab.
fixed Fixed error when checking for a new version. When the current version was greater than the one in the website, it showed the current one as the old one instead of the new one.
notice This will be the last update for this GUI. A new GUI based in Qt will replace this one.
graph.py added Added SBAS plots.
Added option to make a map with the station names in WIR maps mode.
Added many checks to prevent errors from user input.
Added check of X Display in Linux when not saving picture to file.
Added option to change the number of points shown in the label.
Added option to show number of MIs in worst integrity plot with coloured rings, using parameters '--mih' and --miv'.
Added new plot: World maps. Worst Integrity Plots are now a special case for world maps.
Added option for plotting user defined watermark in all plots.
changed Changed Worst Integrity Ratio colourbar and scale to a fixed one.
Parameter '-z' from worst integrity ratio plot has changes to '--rh' and '--rv', so in one call to the program both horizontal and vertical ratio plots can be shown.
Changed default alarm limit in Stanford plots from 35 to 40 metres.
Changed default both X and Y axis maximum to 60 metres in Stanford plots.
Changed default horizontal label in Stanford-ESA plots from "HPE","VPE" to "Horizontal Positioning Error (metres)","Vertical Positioning Error (metres)" respectively.
Changed default vertical label in Stanford-ESA plots from "HPL","VPL" to "Horizontal Protection Level (metres)","Vertical Protection Level (metres)" respectively.
Changed default title in Stanford-ESA plots from "StanfordESA" to "Stanford-ESA".
Changed reading of Stanford-ESA files in order to skip comment headers.
Updated help messages.
fixed Fixed Stanford plots bug that always set maximum values to 50 metres.
input.c added Added functions to decode RTCM binary files.
Added check for number of entries in SP3 header.
If a IONEX file has no 'END OF FILE' line, a warning will be printed instead of showing an error.
changed Fixed GLONASS phase conversion factor to 1 to all frquencys instead of 0, to avoid division by zero after cheking for pseudorange jumps in checkPseudorangeJumps function.
Clocks from all constellations are now read in RINEX clock files.
Orbits and clock event flags are now read from SP3 and precise clock files (precise clock files from MGEX have event flags, even though it is not in the RINEX clocks standard).
Start time of SP3 files is now set to the first epoch read, instead of the value given in the header.
fixed Fixed GLONASS phase conversion factor to 1 to all frquencys instead of 0, to avoid division by zero after cheking for pseudorange jumps in checkPseudorangeJumps function.
Fixed incorrect memory allocation in readAntex function.
Fixed unnecessary memory freeing in readAntex (this made gLAB crash when applying phase center zenital variations).
Fixed bug that made gLAB skip the next line of the observation file after reading a header line with 'SYS / # / OBS TYPES' or '# / TYPES OF OBSERV' which had a number of observation types equal to 13 or 9 respectively.
Fixed bug which made gLAB leave a measurement as still available when it had dissapeared in the following RINEX observation header (concatenated file).
Fixed bug in addUserError function that made not to remove a finished user added error measurement in the last satellite when all used adder error of all satellites ended in the same epoch.
input.h added Added functions to decode RTCM binary files.
model.c added Added DGNSS processing.
Added function NEU2XYZ.
Added check for maximum data gap when using precise orbits and clocks.
Added option to use the last sample from previous day or the first sample from the current day when both samples were repeated in concatenated files.
changed Modified getPositionBRDC and getVelocityBRDC parameters to prepare them for GLONASS coordinate computation.
When searching for antenna type in getReceiverType function, now it is not case sensitive.
When doing standalone navigation using SBAS ionosphere, the ionosphere sigma will be used if 'useSigmaIono' is enabled.
Switching back to previous GEO in SBAS mode will not be done if previous GEO is still in data adquisition time.
In SBAS mode, now by default gLAB will try to keep the current GEO, unless '-model:maintaingeo' option is disabled.
Modified TGDCorrection in order to unselect a satellite when there is no DCB available (independently if DCB is read from broadcast RINEX navigation file, a IONEX file or a F-PPP file) when using precise orbits.
fixed Orbit and clock interpolation now skip correctly samples with invalid values.
Fixed bugs when computing orbits and clocks with concatened SP3 files.
Improved and fixed several bugs in SwitchSBASGEOMode function.
model.h added Added DGNSS processing.
Added function NEU2XYZ.
output.c added Added functions to convert RTCM binary files.
Added printDGNSS message.
Added functions for SBAS plots mode.
Added function to print KML file.
Added function to print SP3 file.
Added INFO messages for transmission time of message check in navigation files and for the Step detector.
Added flag at the end of the OUTPUT message to indicate the type of processing used in each epoch.
Added spaces in EPOCHSAT and OUTPUT messages after the label to align columns with other gLAB messages.
Added header and format to Stanford-ESA output file.
Added INFO messages for Stanford-ESA output file and its parameters.
Added INFO message for use of sigma of the ionosphere when IONEX, F-PPP or SBAS iono model are used.
Added INFO message for the GDOP threshold when there is a threshold set.
Added INFO message for satellite and receiver phase center variation corrections.
Added SBASUNSEL messages number 46 and 47.
Added function to print SBAS summary.
changed Modified printCS to distinguish between Rover and Reference Station when DGNSS is activated.
SBAS messages are now printed sorted by message type (SBASIONO, SBASCORR,...) instead of PRN.
Taken out degree sign from output messages to avoid text encoding problems.
INPUT and MEAS messages will now print GPS P1 and P2 corrected with P1-C1 DCB if P1-C1 DCB treatment is set to strict and GPS receiver is known.
fixed Fixed MODEL/SBASCORR/SBASVAR messages not being printed with an '*' when gLAB changed from PA to NPA mode due to discarded satellites from non SBAS criteria (such as low elevation).
output.h  added Added functions to convert RTCM binary files.
Added printDGNSS message.
Added functions for SBAS plots mode.
Added function to print KML file.
Added function to print SP3 file.
Added function to print SBAS summary
preprocessing.c added Added sigmaInflation function, to inflate the sigma during the convergence of the smoother.
changed INFO message in checkPseudorangeJump now prints current epoch.
Changed LLI cycle-slip detector to not trigger if there is a data gap for any other active cycle-slip detector.
If LI prediction cannot be computed, declare cycle-slip instead of exiting the program.
fixed Fixed minor bug, now satellite availability is only modified in the filter.c file.
Fixed bug when handling arc length when an outlier was detected.
preprocessing.h added Added sigmaInflation function, to inflate the sigma during the convergence of the smoother.

 

gLAB v3.1.1

Modifications and bug fixes:

  • Transmission time of broadcast navigation messages check is now disabled by default in SBAS processing.
  • Changed default options in the GUI
  • Fixed problems with quantization when generating Stanford and Stanford-ESA plots.
DateFile nameTypeDescription
2016/10/21 dataHandling.c fixed Fixed rare problem when computing IONEX pierce point at high elevation.
filter.c changed 'Elevation too low' SATSEL message is not shown if ephemerides are not available.
added Added quantization check in Stanford-ESA plots generation for points greater than the maximum X and Y. For example, (60,100) and (100,60) with a max X and Y of 50, would both result in the plot in the point (50,50) or (Xmax,Ymax), which made it impossible to distinguish the MI from the non-MI. Now, MI points will result in (Xmax,Ymax) while non MI will result in (Xmax-1,Ymax).
gLAB.c changed LLI cycle-slip detector is now enabled by default in PPP.
L1C1 cycle-slip detector is now disabled by default in SPP.
Transmission time of broadcast navigation messages check is now disabled by default in SBAS processing.
Parameter '-pre:cs:l1c1:init' is now shown in the help message.
fixed Fixed wrong order of MEAS prints in SBAS mode.
gLAB_GUI.py added Added LLI cycle-slip detector is activated/deactivated when activating/deactivating carrier phase or smoothing in the filter.
changed Changed SPP template now has all cycle-slip deactivated.
Changed LLI cycle-slip detector is activated by default in PPP template.
Updated Melbourne-Wübbena cycle-slip detector help message and thresholds.
graph.py changed Changed title name in Stanford-ESA plots from '# epochs' to '# samples'.
added Added quantization check in Stanford plots generation for points greater than the maximum X and Y. For example, (60,100) and (100,60) with a max X and Y of 50, would both result in the plot in the point (50,50) or (Xmax,Ymax), which made it impossible to distinguish the MI from the non-MI. Now, MI points will result in (Xmax,Ymax) while non MI will result in (Xmax-1,Ymax).
fixed Fixed Stanford-ESA plots, which was horizontal protection levels from vertical plots and viceversa.
output.c added Added Number of samples to L1C1 and BW cycle-slip info messages.
changed The '[NPA only]' tag from SBASUNSEL message number 36 has been erased.
fixed Fixed a '*' that was in incorrect position in MODEL messages in SBAS mode.


gLAB v3.1.0

New highlighted features:

  • New option to enable/disable (by default enabled) to allow the use of Klobuchar in SBAS PA mode when computing trajectories until the solution has converged. This is to avoid the problem of not having available SBAS corrections due to ionosphere pierce point fall out the SBAS region during the convergence. This option only has effect when gLAB has to compute the user position without any inital coordinate (RINEX or user input).
  • New options to set the initial coordinate for the user trajectory computation, from the RINEX observation file or by parameter, instead of using the harcoded value of (6378137,0,0).
  • RINEX v2 GLONASS and GEO navigation files are now supported.
  • New option for ignoring transmission time of a broadcast product. This option will make gLAB not to check if the transmission time is before or equal to the current time. This option is useful when comparing broadcast with SP3 orbits. By default it is disabled.
  • Slight computation speed improvement, specially when computing trajectories.
  • Satellite phase center corrections for all constellations are now read and processed.

Modifications and bug fixes:

  • Improved GLONASS and GEO transmission time handling.
  • Fixed a bug that crashed graph.py (the plotting tool), which had appeared in gLAB v3.0.0.
  • Fixed incorrect broadcast block selection when a block with a fixed IODE was requested, and there was more than one block for the same satellite with the same IODE in the navigation file.
  • Fixed a bug that made gLAB search for C1P instead of C1C when detecting cycle-slips in SBAS mode.
DateFile nameTypeDescription
2016/09/26 dataHandling.c changed gpsws2ttime function now accepts negative seconds of week.
Changed selectBRDCblock function to enable/disable the check of the transmission time of message.
fixed Fixed incorrect broadcast block selection when a block with a determined IODE was requested, and there was more than one block for the same satellite with the same IODE in the navigation file.
dataHandling.h deleted Erased some unncessary variables for GLONASS broadcast ephemerides.
filter.c changed Modified Kalman function to allow model recomputation in NPA mode if after calling fillUsableSatellites and we were in PA mode, there were not enough satellites for computing navigation solution (only in SBAS).
erased Eliminated "preauxEpoch" struct from Kalman function, improving performance (specially when computing trajectories).
gLAB.c added Added '-model:brdctranstime' input parameter.
Added 'calculateRINEX' and 'calculateUSER' options for '-pre:setrecpos' input parameter.
Added '-model:initcoordnpa' input parameter for SBAS.
changed Slightly modified main loop to enable model recomputation after entering Kalman function.
Updated 'MESSAGES FORMAT' help.
graph.py fixed Fixed a bug with input parameters due to bad space indendation.

input.c

added Added lecture of RINEX v2 GLONASS and GEO navigation files.
changed Improved data handling for GEO and GLONASS navigation files in RINEX v2 and v3.
Satellite phase center corrections for all constellations are now processed.
model.c added When computing SBAS model, if we are in PA, receiver position is set to 'calculate', SBAS iono is not available and solution has not converged, Klobuchar model will be used until the solution has converged (it can disabled with '--model:initcoordnpa').
changed GLONASS coordinates and velocity from broadcast products are set now to 0, as they cannot be computed.
fixed Fixed incorrect broadcast block selection when a block with a fixed IODE was requested, and there was more than one block for the same satellite with the same IODE in the navigation file.
output.c changed SATSEL messages may have an '*' if the model will be recalculated before computing the navigation solution (only in SBAS mode).
Modified "Receiver apriori position" INFO message for parameters 'calculateRINEX' and 'calculateUSER'.
preprocessing.c fixed In SBAS mode, gLAB was using C1P instead of C1C when computing cycle-slips.


gLAB v3.0.0

New highlighted features:

  • SBAS data processing (only in command line).
  • Cycle-slip detectors have been completely rewritten, with new features such as data gap handling.
  • Stanford plots, Stanford-ESA Integrity Diagrams and Worst Integrity Ratio plots.
  • Computation of Galileo, BeiDou and GEO satellite coordinates with broadcast products.
  • Concatenated RINEX, SP3 and CLK files can be read now.
DateFile nameTypeDescription
2016/09/05 dataHandling.c
dataHandling.h
added Added SBAS processing.
Added user-defined error struct.
Added satIs function. It returns the index of the satellite in its dictionary.
Added tsec function. It returns the MJDN + SoD in seconds.
Added QZSS and IRNSS constellations.
changed Modified structure definitions for handling Cycle Slip variables.
deleted Deleted satWas function.
filter.c
filter.h
added Added step detector function.
Added Stanford-ESA Integrity Diagram computation.
filter.c changed Modified structure definitions for handling Cycle Slip variables.
Modified printSatSel calls.
gLAB.c added Added SBAS processing.
Added functions to add user-defined error to raw measurements.
Added check for time span in compareOrbits and showProduct functions (in some cases the broadcast files has data from many different days ago).
changed Configuration file now accepts paths and filenames with spaces.
Modified structure definitions for handling cycle-slip and large SP3 files variables.
gLAB_GUI.py changed Redesign of Preprocess panel for handling new features of new Cycle Slip detectors.
fixed Fixed parameter given to gLAB core that did not allow to use dual frequency cycle-slip detector when "Single-Frequency" processing was selected in the "Filter" panel.
Fixed error when running gLAB processing or plots when paths or filenames contained special characters (e.g. accents).
Fixed "Run gLAB" button keeping disabled when there was an error when executing gLAB.
graph.py added Added stanford plots and stanford-ESA plots.
Added worst integrity ratio plots.
changed Display environment in linux is not necessary when plot is saved to a file.
NOTE: The new plots (stanford and worst integrity ratio) need additional python libraries (numpy and basemap), but they are not mandatory if these plots are not used (for compatibility with previous versions).
It is now compatible with python 3.
input.c
input.h
added Added SBAS processing.
Added addUserError function for reading user-defined error from text file.
Added function dictionaryUpdate.
deleted Deleted function beforeReadEpochUpdate.
Deleted function afterReadEpochUpdate.
input.c added Concatenated RINEX, SP3 and CLK files can be read now.
QZSS and IRNSS constellation data is now recognized and properly skipped.
model.c
model.h
added Added SBAS processing.
Concatenated RINEX and SP3 files can be read now.
model.c added Added computation of Galileo, Beidou and GEO satellite coordinates from broadcast files.
output.c
output.h
added Added SBAS processing.
Added printUserError function for printing user-defined error.
changed Modified printSatSel function (now prints epoch and constellation).
output.c changed Modifications regarding PRINT INFO (PREPROCESSING) and PRINT CS.
preprocessing.c
preprocessing.h
added Added polyfit function. It fits a polynomial and estimates the geometry-free (LI) prediction.
preprocessing.c changed Completely rewritten checkPseudorangeJumps function.
Completely rewritten L1C1, Melbourne-Wubbena and Geometry-free Cycle Slip Detectors.


gLAB v2.2.8

DateFile nameTypeDescription
2016/04/12 model.c fixed Fixed computation of Galileo elevation and azimuth.
gLAB_GUI.py fixed Fixed bug that prevented the user from selecting Klobuchar, BeiDou or NeQuick ionosphere models when IONEX or FPPP models had been selected in the Modelling panel.


gLAB v2.2.7

DateFile nameTypeDescription
2016/03/01 dataHandling.c fixed Fixed "printError" function call, which failed to compile in some compilers.
gLAB_GUI.py fixed SATDIFF condition not being set when applying "Orbit and Clock comparison" template.
changed "Source File" value to "dif.out" in "Orbit and Clock comparison" template.
input.c changed Disabled "END OF FILE" line check in IONEX files.
model.c fixed Fixed iono sigma not being transformed from TECUs to meters of the frequency of the measurement in the filter.

gLAB v2.2.6

DateFile nameTypeDescription
2015/11/25 gLAB_GUI.py changed GUI's size (in height) slighty higher in order to perfectly fit all objects under Windows.
Now the ESA/gAGE logo in the top part is resizable in order to avoid issues in Windows.


gLAB v2.2.5

DateFile nameTypeDescription
2015/10/20 gLAB.c fixed Fixed an incorrect backward processing when reading an observation file with Linux file ending in Windows.
added Added protection against buffer overflow in input parameters.
gLAB_GUI.py fixed Fixed wx.Color error that crashed the GUI at start time in Linux.
Fixed empty plots in Windows. It ocurred when the plot number selected was not the first one, had a condition and the previous plots were not used.
After pressing the button "Clear", the selected plot was changed to number one, but the new plot parameters entered were saved in the plot number that was selected before pressing the "Clear" button. Now they are saved in the correct position.
When a plot failed, the "Plot" button was not active again after 60 seconds due to a bug in 'graph.py'. Now the button is active again when 'graph.py' ends.
graph.py fixed When plot fails due to non-decimal values, the file .plot.lock is erased, so 'gLAB_GUI.py' "Plot" button doesn't get locked during 60 seconds. Also, the error message has been clarified.
In the Windows version (.exe binary), stdout has been redirected to stderr so the help message is not lost.
input.c added Added protection against buffer overflow in getL function.
model.c fixed Fixed iono sigma not being added to the total sigma weight.

gLAB v2.2.4

DateFile nameTypeDescription
2015/07/01 gLAB.c added gLAB version is now printed at the beginning of the INFO field.
input.c fixed Fixed bug in getLback function when the current line was the first line in file.
model.c fixed Fixed iono sigma not being converted to meters.
Corrected bug in troposphericCorrectionMOPS function where seconds of day were added twice.


gLAB v2.2.3

DateFile nameTypeDescription
2015/05/28 dataHandling.c added Added initialisation values in initConstellationElement, initAntenna and initOptions functions for phase variation corrections.
dataHandling.h added Added variables in TConstellationElement, TAntenna and TOptions structures for processing phase variation in satellites and receivers.
gLAB.c added Added parameter to select the correction of satellite phase variations.
Added parameter to select the correction of receiver phase variations.
changed Modified storage of antenna structure (before only saved antenna phase centre values).
input.c changed Modified readAntex function in order to read satellite and receiver phase centre variations.
Modified readDCB function in order to be able to read the new header.
model.c
model.h
added Added satellitePhaseCenterVarCorrection and receiverPhaseCenterVarCorrection functions for phase variation correction.

gLAB v2.2.2

DateFile nameTypeDescription
2015/03/02 gLAB.c changed Locale selection eliminated in order to avoid problems with numbers (depending on the locale, printf may use a comma instead of a dot for decimal separator).
gLAB_GUI.py changed Uncommented option to force selection of one frequency (so when we process with one frequency only one frequency cycle slip detector can be used, instead of using both for cycle slip detection).
input.c fixed Fixed gLAB not skipping data when event appeared when reading an epoch in an observation file.


gLAB v2.2.1

DateFile nameTypeDescription
2014/12/23 filter.c fixed Fixed initialisation to given value per parameter of covariance of coordinates Y and Z (before only coordinate X was initialised, Y and Z were o)..
gLAB_GUI.py added Added tooltip for the "Use Sigma Iono" button.
fixed Fixed "file not found" error window infinite loop when plotting a file with a name with spaces or when showing the output file and this file has been erased.
input.c added Added initalisation value to 9999 to IONEX input data, so in case the IONEX file is empty, it will not compute ionospheric values, instead of using a VTEC of 0.
fixed Fixed the disappearance of satellite when interpollating clocks with precise clock file. This ocurred when there were data gap for one satellite, where in that case time stamps were not correctly processed.
Fixed problem where GPS measurements didn't appear when reading observation files. It only happened when the header line SYS / # / OBS TYPES with GPS data was not the first one.
Fixed problem reading RINEX 2.11 Navigation files in the case where the values were positive and with no leading zero.


gLAB v2.2.0

DateFile nameTypeDescription
2014/09/22 dataHandling.c
dataHandling.h
added Added functions for initialising IONEX and F-PPP structures (both for ionosphere and DCB data).
Added functions for handling IONEX and F-PPP structures (both for ionosphere and DCB data).
Added function for computing the ionosphere mapping value.
Added function for computing the pierce point value.
Added functions for handling ESA's troposphere model structures.
dataHandling.c changed Modified some initialiase functions for handling RINEX 3.02 files.
dataHandling.h added Added new constants.
Added new structures for handling IONEX and F-PPP data.
changes Modified structure definitions (by adding new variables) for handling RINEX 3.02 files.
filter.c changed Modified fillUsableSatellites function in order to discard satellites without IONEX or F-PPP model data (in case those models are used).
gLAB.c added Added input parameters and options for BeiDou, IONEX, Fast-PPP and NeQuick ionosphere models (NeQuick model not available in this version due to ESA's restrictions).
Added input parameters and options for ESA's troposphere model (not available in this version due to ESA's restrictions).
Added input parameters and options for IONEX and Fast-PPP DCBs.
Added input parameters and options for using standard deviation data from IONEX or F-PPP.
Added the capability to gather the full path of gLAB's executable (platform dependent). This is necessary because ESA's models require data files, and these files will be searched in the folders ./model_files/TropoESA or ./model_files/NeQuick, where ./ is the directory of gLAB's executable (which may be different from the current user's directory).
Added code for displaying correctly spanish characters.
changed Help message has been updated with the new parameters.
gLAB_GUI.py added Added buttons and options for BeiDou, IONEX and Fast-PPP ionosphere models.
Added buttons and options for IONEX and Fast-PPP DCBs.
Added buttons and options for using standard deviation data from IONEX or FPPP.
fixed Fixed window clipping bug when scrollbars were activated (the bug was only on Windows).
Workaround for python bug, which made that when a file was selected with double click, the button which was on the window underneath and on the same position where it had been clicked was activated (the bug was only on Windows).
 input.c  added Added capability to read RINEX 3.02 observation and navigation files.
Added capability to read Fast-PPP columnar files.
Added functions to read files for ESA's tropospheric model (not available in this version due to ESA's restrictions).
changed Modified IONEX read function in order to save all information in header (even though it is not used later on).
input.h added Added function for reading Fast-PPP columnar files.
Added function for reading files for ESA's tropospheric model (not available in this version due to ESA's restrictions).
model.c
model.h
added Added functions for BeiDou, IONEX, Fast-PPP and NeQuick ionosphere models (NeQuick not available in this version due to ESA's restrictions).
Added functions for using Fast-PPP and IONEX DCBs.
Added functions for ESA's troposphere model (not available in this version due to ESA's restrictions).
model.c changed Modified Klobuchar model function.
output.c added Added cycle slip L1C1 initial value in message "INFO PREPROCESSING CycleSlip L1C1".
Added the following INFO message "INFO MODELING Satellite mass centre to Antenna Phase Centre (APC) correction: ON/OFF".
Added text messages when using BeiDou, NeQuick, F-PPP for ionospheric models, or ESA's tropospheric model or IONEX, F-PPP DCB values.
preprocessing.c changed Modified checkCycleSlips function in order to weight current sigma with an initial value.


gLAB v2.0.0

DateFile nameTypeDescription
2012/12/31 output.c added SATSEL debugging message included in the output messages.

Note: gLAB v2.0.0 released together with the Educational Book: "Global Navigation Satellite Systems: Fundamentals, Algorithms and Laboratory Exercises". Authors: J. Sanz, JM. Juan and M. Hernandez-Pajares. December 2012.

ISBN: 978-92-9221-885-0 (two-volumes).

ISSN: 1013-7076.


gLAB v1.4.5

DateFile nameTypeDescription
2010/10/31 dataHandling.c
dataHandling.h
added Tropospheric correction option is extended to select independently the nominal and mapping used.
Dilution Of Precision extension: (GDOP, PDOP, TDOP, VDOP, HDOP) new variables.
changed

Default precise orbit interpolation degree changed from 9 to 10.

SIGMA_INF split into different SIGMA_INF_DR and SIGMA_INF_DT: receiver coordinates and clock.
filter.c
filter.h
added Dilution Of Precision extension (GDOP, PDOP, TDOP, VDOP, HDOP).
gLAB.c added Tropospheric correction '-model:trop' option is extended to '-model:trop' to activate/deactivate '-model:trop:nominal <nominal>' to select which mapping is used. This permits cross combinations among mappings and nominals.
changed Default precise orbit interpolation degree changed from 9 to 10.
Filter 'inf' value for clock and coordinates noise process and initial covariance substituted to real floating quantities.
SIGMA_INF split into different SIGMA_INF_DR and SIGMA_INF_DT.
gLAB_GUI.py added Tropospheric correction option is extended to select independently the nominal and mapping used.
Dilution Of Precision extension: (GDOP, PDOP, TDOP, VDOP, HDOP) new variables.
Third row of Analysis tab templates implemented: Prefit residuals, Measurements Multipath/Noise, Dilution of Precision and Orbit and Clocks comparison.
GUI now is able to be executed from different folder, not only from where it is placed.
changed SIGMA_INF split into different SIGMA_INF_DR and SIGMA_INF_DT.
.dat files are searched in addition to .out in the analysis section.
graph.c changed Minor changes in help.
output.c added Tropospheric correction option is extended to select independently the nominal and mapping used.
Dilution Of Precision extension (GDOP, PDOP, TDOP, VDOP, HDOP).
fixed Some minor floating length adjustments.
changed Filter 'inf' value for clock and coordinates noise process and initial covariance substituted to real floating quantities.


gLAB v1.4.4

DateFile nameTypeDescription
2010/09/22 dataHandling.c
dataHandling.h
added Included new DCB management.
filter.c added Improved DCB management.
gLAB.c added Included new DCB management parsing options.
gLAB_GUI.py added Sanity check added to the Save Configuration to File function.
changed Further improvement of the (P1-C1) & (P1-P2) DCB/TGD configurations, display and tooltips.
Some general positioning and sizing adjustments.
input.c
model.c
output.c
added Included new DCB management.


gLAB v1.4.3

DateFile nameTypeDescription
2010/08/31 dataHandling.c
dataHandling.h
added Maximum number of filter iterations added.
dataHandling.c added Increased robustness to non sequencialy transmitted ephemerides present in RINEX navigation message files.
dataHandling.h added Improved DCB management.
filter.c added Improved DCB management.
gLAB.c added Maximum number of filter iterations added.
gLAB_GUI.py added Satellite elevation and azimuth addition in the Model message, which also are included in the analysis part to be plotted.
changed Improvement of the DCB / TGD Management.
model.c added Improved DCB management.
output.c
output.h
added Satellite elevation and azimuth addition in the print MODEL message.


gLAB v1.4.2

DateFile nameTypeDescription
2010/08/31 gLAB_GUI.py added Optional scroll-bars added to permit gLAB work in small screens.
.eph files are searched in addition to .sp3 in the input tab.


gLAB v1.4.1

DateFile nameTypeDescription
2010/07/09 gLAB_GUI.py added Further redesign of input tab.


gLAB v1.4.0

DateFile nameTypeDescription
2010/06/21 dataHandling.c
dataHandling.h
added C1/P1 flexibility option is added to allow flexible handling of C1 and P1.
Included usable measurement index in TMeasOrder structure to select/deselect individual measurements.
Included prealignCP option to set/unset carrier-phase pre-alignment.
dataHandling.c fixed Corrected a bug in t2doy function.
filter.c added Included usable measurement index to select/deselect individual measurements.
gLAB.c added '-pre:flexibleC1P1' option is added to allow flexible handling of C1 and P1.
'-pre:prealign' option to set/unset carrier-phase pre-alignment.
Added a check to see if the RINEX observation file has times inside the products file provided.
changed Cycle-slip detector changed to specify when it does not have enough measurements.
gLAB_GUI.py added Redesign of Input tab: addition of DCB source and Receiver Type, and SINEX source files.
Show config button added.
New preprocess option: Flexible C1-P1 handling for better treatment of C1 and P1 measurements.
Filter's combo boxes of measurement configuration made available.
changed Processing Templates moved to a general position between the other buttons.
graph.c added Save figure function added.
input.c added Included usable measurement index in TMeasOrder structure to select/deselect individual measurements.
fixed Corrected a bug when reading Galileo observations in a RINEX v2.11 file.
Corrected a bug in elevation/azimuth initialisation, which appeared when new satellite without ephemeris data appeared.
model.c changed Changed the way rotation during signal flight time is done, it is now possible to set/unset this rotation, and the reception/transmission time separately.
preprocessing.c added Included prealignCP option to set/unset carrier-phase pre-alignment.
changed Cycle-slip detector changed to specify when it does not have enough measurements.


gLAB v1.3.2

DateFile nameTypeDescription
2010/02/23 dataHandling.c added Inertial/Non-inertial velocity switch included.
Included DCB data sources.
Included SINEX, DCBs and GPS_Receiver_Type data files.
Included strict radome option to enable/disable a relaxed matching on ANTEX files.
When the receiver is of type 2 (no P1), the C1 will be provided instead.
Forward/Backward processing included.
changed changeBase modified to be consistent with orientation matrix.
minArcLength changed from 3 to 4.
fixed Corrected problem when processing with PCC (PC computed with C1).
Corrected a bug when using PCC combination.
Corrected bug in t2doy function affecting the 31st of December and 1st of January.
dataHandling.h added Inertial/Non-inertial velocity switch included.
Included DCB data sources.
Included SINEX, DCBs and GPS_Receiver_Type data files.
Included strict radome option to enable/disable a relaxed matching on ANTEX files.
Forward/Backward processing included.
filter.c added PREFIT message now prints the weight to be applied in the filter.
FILTER message now prints the total ZTD and the estimated ZTD (subtracting the modelled value)
PREFIT message now prints non-GPS satellites.
gLAB.c added
 
 
 
Included SHOWPRODUCT mode.
Added --output parameter.
Included show product mode.
'-input:SP3' parameter can now be provided as '-input:sp3'.
Included the '--output:file' option to redirect to stdout.
Included DCB data sources.
Forward/Backward processing included.
SATSTAT message will now provide the GNSS system it refers to.
'-pre:setrectype' option is added to force a specific receiver type.
changed Exported SATDIFF, SATSTAT and SATSTATTOT printing to output module.
For orbit comparison mode, it can now disconnect the satellite phase centre.
For orbit comparison mode, when satellite phase centre correction is active, it will now require an ANTEX or Constellation file.
Enhanced parsing of antenna in ANTEX file.
Changed '-output' to '-output:file'.
Changed the message help to be consistent with the new updates.
minArcLength changed from 3 to 4 to be sure that the Li cycle-slip detector has properly worked.
fixed Corrected problem with the Orbit comparison.
Corrected some typos in the help.
gLAB_GUI.py changed General changes.
input.c added Fine-tune in automatically detecting file types.
Security check to better read RINEX clock files not following the standard.
Included input files: SINEX, DCB and GPS_Receiver_Type.
Forward/Backward processing included.
changed Changed whatFileTypeIs to improve detection of SP3 files.
fixed Corrected problem of not properly reading years below 2000.
input.h added Included input files: SINEX, DCB and GPS_Receiver_Type.
Forward/Backward processing included.
model.c added Inertial/non-inertial velocity switch included.
changed Enhanced parsing of antenna in ANTEX file, it is now able to separate the name from the dome.
model.h added Inertial/non-inertial velocity switch included.
TGDs from DCB files.
output.c added Added satellite SATPVT message.
It is now possible to print in the MODEL and SATDIFF message the inertial velocity of the satellite.
PREFIT message now includes the weight that will be applied to the filter.
ZTD and estimated residual tropospheric delay is now printed in the FILTER message.
Forward/Backward processing included.
SATSTAT message will now provide the GNSS system it refers to.
changed Imported SATDIFF, SATSTAT and SATSTATTOT printing from gLAB.c.
Change in SATDIFF and CS messages to show the GNSS system that the satellite belongs to.
output.h added Added satellite SATPVT message.
PREFIT message now includes the weight that will be applied to the filter.
ZTD and estimated residual tropospheric delay is now printed in the FILTER message.
SATSTAT message will now provide the GNSS system it refers to.
changed Imported SATDIFF, SATSTAT and SATSTATTOT printing from gLAB.c.
Change in SATDIFF and CS messages to show the GNSS system that the satellite belongs to.
preprocessing.c changed Changed the time to start of the Li and L1-C1 from the 3rd epoch of the arch to the forth.