goGPS Settings

The settings for running a project in goGPS are completely stored in a unique text file (.ini). This is fully mapped to an object instance of a class Main_Settings and always automatically exported with all the comments necessary to understand the meaning of the parameters. The .ini file can be edited using a normal text editor and passed to goGPS to run automatically. You can also modify 99% of the settings using the goGPS Edit GUI that will be automatically loaded on goGPS start, the remaining 1% of the settings can be found together with the plain text ini file in the Advanced TAB of the interface.

goGPS Advanced Tab

In the following sections, a description is provided of all the elements present in the current goGPS Edit Settings Interface and the corresponding parameter present in the setting file.

Index of contents

The goGPS Edit interface is structured with a Menu, a Main Sidebar, a series of Tabs and a Bar at the bottom:

  1. Menu
  2. Sidebar
  3. Tabs
    1. Tab Advanced
    2. Tab Resources
    3. Tab Data Sources
    4. Tab Receiver Info
    5. Tab Processing
      1. Tab Data Selection
      2. Tab Atmosphere
      3. Tab Pre-processing
      4. Tab Generic-Options
      5. Tab PPP Parameters
      6. Tab Network parameters
    6. Tab Commands
    7. Tab Output
  4. Bottom bar

Note: In the main window flags on the left of file or directory paths indicate if the file/directory exists or if it is missing

The goGPS menu allows performing simple operations and opening tools or other windows. It is still under development and will be expanded in the future.

At the moment it allows to do the following operations:

  • goGPS
    • About open the about window
  • Options contains a set of combo modifier of all the settings to perform basic processing
    • Set for PPP troposphere estimation
    • Set for NET solution (short baselines - ignore ionosphere - ignore troposphere)
    • Set for NET solution (medium baselines < 20km - ignore ionosphere)
    • Set for NET solution (long baselines - iono-free)
  • Project
    • New open a window to create a new project. The automatic procedure will guide the user to generate a project folder with its main structure and a new generic settings file.
    • Load load a .ini config file
    • Save save the current configuration on the current .ini file, the current file is displayed in the bar at the bottom of the interface.
    • Save As save the current configuration at the given location

Go back to the Index of contents

On the left side of goGPS Edit Interface, there is a side-bar containing basic information about the data that will be available for processing.

A section dedicated to the processing sessions is located at the top, it contains:

  • a Check button to update the Session limits in the case they are not automatically updated
  • First and Last epoch to be processed
  • Duration (length) of each single session
  • Buffer dimension in seconds of the data intervals to be used in addition to one of the sessions. (e.g. with a session of 86400 seconds - one day - and buffers of 10800 seconds - 3 hours - a total of 30 hours of data will be processed for each session, each session will overlap with the next, thus allowing a smoother estimation of tropospheric parameters and a better arc ambiguity estimation)

A section dedicated to the receiver list is at the bottom of the sidebar. There you can find 3 buttons:

  1. Check to refresh the list of receivers when is not automatically updated
  2. Plot to generate a plot showing the period covered by each RINEX file that will be used for the project
  3. Trackings to generate a table displaying all the code observation types tracked (works best on RINEX 3 files, this tool is still experimental)

Below there is a list of all the stations of the project. For each station, two columns are reporting how many requested files are present or missing (e.g. in the processing of 1 month of daily files some of the RINEX could be missing)

Go back to the Index of contents


At the right of the sidebar, some tabs are containing the various global settings that can be defined

Tab Advanced

This tab is used to change all the settings including the hidden ones. goGPS Advanced Tab In the editor a copy of the current ini config file is present and it can be modified directly. Two buttons are used to refresh the user interface when the ini file is changed.

Communication dir is the directory used by goGPS parallelism to communicate with the slave processors. This folder must be accessible from all the Slave processes and the Master (a.k.a. the MATLAB process running the main of goGPS)

Go back to the Index of contents

Tab Resources

The Resource tab contains all the settings defining the kind of orbits that need to be used, and the location of all the downloadable resources. Note: the Antenna file, the Geoid, and the Geomagnetic reference field are provided together with the code of goGPS, and updated constantly on the GitHub repository, while all the other resources are automatically downloaded and saved into the specified folders by goGPS (if the download flag is checked). goGPS Resources In this tab many commands and fields are present, the first information that can be seen here is the location of the remote_resources.ini file that can be found at the top of the tab. This resource file contains all the information needed to find and download a goGPS resource (e.g. orbits, clock errors, Vienna Mapping Functions), together with their names. Generally, this file must never be changed, a more detailed guide on about file will be added to this wiki. To use orbits or other resources from a center not available in the list of goGPS centers the remote_resource.ini file must be modified manually (if you have a center to suggest and want it to be added to the remote_resource file open a ticket in GitHub and we will add it as soon as we can).

List of commands/fields:

  • "Allow automatic download [...]" - this command is a flag, if enabled it allows goGPS to search for the resources it needs online (always recommended)
  • Center pop-up list - this control allows to select the kind of resources/provider to be used, the main centers are already available in goGPS: IGS, EMR, ESOC, JAXA, CODE,... Note that the BNC real-time orbit cannot be downloaded automatically by the software they are saved with the BNC software from the IGS stream, and they need to be already present on the disk. At the left of the command, the list of supported constellations is reported for the active choice. E.g. selecting JAXA the supported constellations are "GRJ", each letter represents a constellation:
    • G GPS (US)
    • R GLONASS (Russia)
    • E Galileo (EU)
    • J QZSS (Japan)
    • C Beidou (China)
    • I IRNSS (India)
  • "Center orbit type preference" - contains a set of flags to specify the kind of orbit to be used. If more choices are selected the leftmost resource is the primary choice, when a type of resource (e.g. final orbits) is not present (even on a remote server) the next best solution is the one that will be used (e.g. rapid orbits)
  • "Center iono type preference" - similarly to the orbits different types of ionospheric models are available with descending quality from left to right
  • "Resource tree inspector" - this field cannot be modified, it just shows the remote location of all the resources that are required. All the information it displays are built on run-time from the remote_resource.ini file
  • "Reset all resources path" - this button comes in handy when importing a project from another computer, in the settings file the location of the resources may be expressed as a full path and it might be no longer existing in the importing computer. Pressing this button all the resources paths will be reset to their default values. The green/red flags shown in this tab are useful to understand if a file/folder is missing.

Below the button follows the list of all the local paths of the resources.

  • Special time keywords can be used in the paths, they will automatically take all the values they can assume in the sessions span:

    • ${WWWW} 4 char GPS week
    • ${WWWWD} 4+1 char GPS week + day of the week
    • ${D} 1 char day of the week
    • ${3H} 2 char GPS hour (00, 03, 06, 09, 12, 15, 18, 21)
    • ${6H} 2 char GPS hour (00, 06, 12, 18)
    • ${HH} 2 char GPS hour
    • ${QQ} 2 char GPS quarter of hour (00, 15, 30, 45)
    • ${5M} 2 char GPS five minutes (05, 10, ... , 55)
    • ${YYDOY} 2+3 char GPS year + day of year
    • ${YYYY} 4 char GPS year
    • ${YY} 2 char GPS year
    • ${MM} 2 char GPS month
    • ${DD} 2 char GPS day
    • ${DOY} 3 char GPS day of the year
    • ${S} 1 char session
  • "Antenna (ATX) filename" - here the user has to set the path that points to the antenna file (usually the last IGS file available). This file contains information about Phase Center Offsets (PCOs) and Phase Center Variations (PCVs) of the antennas of the satellites and the receivers. It is a mandatory file, without it, the error in computing a solution can be extremely high. When the antenna for a certain receiver is not found with the proper radome the "NONE" radome is used instead. If no information about a frequency is found the data corresponding to the closest frequency will be used. If no information about a constellation is found the data corresponding to GPS with the closest frequency will be used. Note: additional antenna files (in ANTEX format) with custom values can be passed to goGPS, to load them they must be saved into a folder contained in the home of the project you are running, this folder is <prj_home>/station/ATX/custom/, the file can have any name but its extension must be .ATX.

  • "Geoid local path" - in this line the user has to set the location of the geoid grid file (in MATLAB .mat format) used to compute orthometric heights, note that passing a grid of a quasigeoid in here will lead to use normal heights (look at Vanicek et al 2012 for more info). For 99.9% of the processing, the included goGPS grid of EGM2008 is more than enough; when a point does not fall on the exact knot of the grid a bilinear (or cubic) interpolation is performed.
  • "CRX path" - this is the path to the folder containing CRX files (satellite problem file), these are automatically downloaded from the CODE FTP server, they contain useful information on the status of the satellites (maneuvers, outage, and other unusual behaviors).
  • "Eph local dir" - orbits ephemerides are loaded from their standard exchange format SP3, this is the location of storage of them, the name of the orbit is automatically generated depending on the selected "center orbit type". The orbits are automatically downloaded in the right location by goGPS but it is possible to put them manually in their local location.
  • "Clk local dir" - similar to the ephemeris path this is the path of the corresponding clock file of the orbits. Some orbits have different clock files (e.g. @30 seconds, @5 seconds) they are chosen with the priority sequence listed into the remote_resource file. Generally, also this path must not be changed, goGPS will try to download the resources it needs by itself.
  • "ERP local dir" - this is the folder containing the Earth Rotation Parameter files to be used together with their corresponding orbits.
  • "IONO local path" - this points to the local folder where ionospheric models will be downloaded by goGPS. They can be used to reduce the ionospheric delay to allow a better single-frequency positioning or to just help convergence and improve interpolation techniques.
  • "IGRF local path" - this is the folder pointing to the International Geomagnetic Reference Field Schmidt semi-normalized spherical harmonic coefficients, usually the user does not need to change this files or folder cause they are provided together with the goGPS code.
  • "DCB local path" - this points to the local folder where the Differential Code Biases will be downloaded by goGPS. Differential Code Biases are automatically used by goGPS when available.
  • "VMF local path" - this points to the local folder where the Vienna Mapping Function files are automatically downloaded by goGPS.
  • "ATM local path" points to the local folder where the Atmospheric Loading files are automatically downloaded by goGPS.

Go back to the Index of contents

Tab Data Sources

In this tab, the user defines the location of the observation files, the period of processing, and the size of the sessions. goGPS Data Sources

  • "Project home directory" - this field points to the . The project home is the folder containing all the folders of the project. It is very important to notice that all the relative paths that can be used in the configuration start from this folder, this allows having a portable project as long as into the .ini file all the other resources paths are written as relative paths and everything is moved together. The GUI automatically translates full paths to relative paths.

Sessions In the sessions panel, it is possible to define the limits of epochs to process, time keywords (e.g. ${WWWW}, ${DOY}, ${YYYY}, ...) used for the definition of the paths will be substituted accordingly to the current session. goGPS manage the processing of a set of RINEX file in a relatively complicated but flexible way. The user defines the period that goGPS will be able to consider by selecting Start and Stop dates, this will be the maximum size of the project, whether or not it will be entirely processed. The number of epochs processed will depend on other parameters: the for loop on sessions and the duration of the session itself. If a period of two weeks is selected (Start Stop limits) the user can run 14 sessions each with a dimension of 86400s (daily). (Note that: it is possible to process daily sessions even if the observations are stored into hourly RINEX files, and vice-versa)

  • "Start" - marks the first epoch to processable.
  • "Stop" - marks the last epoch to processable.
  • "Session duration" - this is useful to limit the number of epochs to batch process, or to get solutions at higher rates. Pay attention that inserting here a too large number will cause the generation of a huge Normal matrix, the adjustment might use all the free RAM and takes forever to finish. The dimension of the final LS adjustment will depend on the number of observable used (constellations, trackings, ...) and the rate of the data. Frequent session durations are:
    1. 86400 seconds - will process 24 hours of data all together in a unique LS adjustment;
    2. 3600 seconds - will generate independent (if no buffer is selected) solutions every hour of data to have a series of hourly positions.
  • "Buffers" - buffers are an almost unique feature of goGPS, they can be very useful to limit border effects. The epoch in the buffer will concur to the joint LS solution but they will not affect the dimension of the sessions. Only the parameters estimated in the session will be exported in the output receiver object (buffers are never considered).
    1. e.g. [14400, 14400] seconds - means 3 hours for each buffer, if the session is of 86400 seconds this will make goGPS process a total of 30 hours of data in a unique solution, each session will overlap the next one for a total of 6 hours
  • "Smooth troposphere at boundaries" - this is a flag to be used only when buffers are set different from 0. When set, the tropospheric parameters estimated in the overlap with another session will be merged thus allowing a smoother solution at the change of session.
  • "Separate coordinates at boundaries" - when set, the buffer will be used for the estimation of the tropospheric parameters and the phase ambiguities, but not for the positions. A separate set of coordinates will be estimated for each one of the two buffers, this improves the ambiguity estimation and limits the border effect but should not influence (just minimally) the estimated position for the defined session.
  • "RINEX based session" - this flag forces the dimension of the session to be exactly the one of the RINEX observation files (this dimension should be homogeneous among all the files).
  • "Session character list" - RINEX2 standard naming convention uses a single character to define the session, in these fields it is possible to define the characters to be used. Usually, these are just ["0", "0", "0"] for daily files and ["abcdefghijklmnopqrstuvwx", "a", "x"] for hourly files.


  • "Observation directory" - this is the root folder containing all the observation files, relative paths in the next field start from here. When selecting a folder containing observation files goGPS try to add all the station present in there to the processing.
  • "Observation files" - contains the names and relative paths of the files of the stations (receivers) to be processed. Note that goGPS accept RINEX2 and RINEX3 observations files only.
  • "Recursive get marker names" - using this button is possible to add stations in a recursive way starting from a directory.

Go back to the Index of contents

Tab Receiver Info

This is a tab reserved for receiver specific parameters. In here in the future, it will be possible to set individual parameters for each station to override the generic ones (e.g. trackings to use, cut-off, etc...) but at the moment only coordinates can be provided. At the bottom of the tab, the user can set the path to the directory containing the multipath maps files and the location of the ocean loading file.

goGPS Receiver Info

  • "CRD filename" - points to the coordinate file of all the stations. This is the only field in this tab to have a corresponding matching in the .ini setting file, goGPS import the coordinate file before starting the computations, for this reason, any unsaved modification to the coordinates will be ignored during the processing.
  • "Coordinate table" - this is a table containing information loaded from the coordinate files, to modify them the user can directly manipulate the file with a text editor or through this interface. At the moment the data stored into the coordinate file are:
  • Earth Centered Earth Fixed (ECEF) XYZ coordinates
  • a flag explaining how to consider these coordinates
    • "0" use the coordinates as a rough a-priori position (>100 meters of error)
    • "1" use the coordinates as a good a-priori position
    • "2" consider the coordinates as fixed (they will not be estimated by goGPS)
    • "3" consider the coordinates as fixed only by the pre-processing (they will not be estimated by goGPS in the pre-processing step unless detected to be not good enough), this allows a faster and more homogeneous pre-processing and outlier detection.
  • Temporal validity limits of the coordinates
  • Speed of the coordinates as a linear trend. The reference epoch for computing coordinates at a different time is the "start" epoch.
  • "Clear All" - clear the coordinates table.
  • "Add a line" - adds an empty line to the coordinates table.
  • "Remove selected" - remove lines with selected cells from the coordinates table.
  • "Import from RINEX" - will try to fill the table of coordinates reading the XYZ values from the header of the RINEX files that will be read by goGPS during its execution.
  • "Save" - will save the current status of the coordinates as visualized in the table to the current coordinate file
  • "Save as" - will save the current status of the coordinates as visualized in the table asking for the path of the file
  • "Save (Default)" - will save the current status of the coordinates as visualized in the table to a file named stations.crd in the folder <prj_home>/station/CRD/
  • "Inspect Trackings" - generates a table displaying all the code observation types tracked (works best on RINEX 3 files, this tool is still experimental)
  • "ShowMap" - will display a map of the stations at the coordinates present into the table overlaying Google satellite images. This tool can be useful for a fast overview of the stations.

  • "Multipath mitigation dir" - this is the directory containing receiver specific multipath maps.

  • "Ocean loading filename" - this is a resource that cannot be downloaded automatically and is strictly related to the stations. The resources tab requires little modifications while this field is typically checked every time a station is added, for this reason, it is positioned just after the definition of the observation files. Ocean loading are stored into a file with .blq extension and they have to be generated by Chalmers website using the tide model FES2004. To help the user requests this file with the missing tides the button "Get missing BLQ" can be pressed, it will open a window containing the code to copy and paste in the Chalmers website. When they send the ocean tide coefficients via e-mail the user should manually create or append them to the file pointed in this field. goGPS Ocean Loading Helper

Go back to the Index of contents

Tab Processing

The processing tab is the most complex tab of goGPS and for this reason, it requires its own description page. Here the user can manipulate everything from the data selection to the filtering of the observations to the definition of the full parametrization of the least-squares adjustment.

goGPS Processing

This tab is divided into 6 sub-tabs

  1. Tab Data Selection
  2. Tab Atmosphere
  3. Tab Pre-processing
  4. Tab Generic-Options
  5. Tab PPP Parameters
  6. Tab Network parameters

Go back to the Index of contents

Tab Commands

This is the main tab where the sequence of commands that goGPS will perform during his execution are defined. goGPS Commands The components that can be seen here are just 3:

  • On the right there is an editor containing some command list Execution examples for various kinds of processing. The user cannot interact with this, it can only copy parts of the code present here.
  • On the left there is another editor where the user can type to commands to be executed by goGPS. The commands must be written according to the goGPS command language
  • At the bottom of the editor, there is a button that will open a window that displays a simple command language help with the list of all the commands available and their corresponding parameters. goGPS Language Help

Go back to the Index of contents

Tab Output

This is the tab to modify the output options.

Output folder In this field, the folder of final storage of the results can be changed. Note that some results will be saved into sub-folders automatically created.

goGPS Output

goGPS is object-oriented, every receiver is considered a unique GNSS_Station, internally the software stores data in two objects: work, and out. Work is an object of class Receiver_Work_Space and contains the observations and everything is needed for the computation of the results of a single session, out is an object of class Receiver_Output and collects the output of a receiver for all the sessions. The results stored in the work object are pushed to out only when the PUSHOUT command is issued.

Output rate Changing the rate here changes the rate of which the data are copied from work to out during the PUSHOUT command.

Results to store The following flags select the output to be kept during the execution of PUSHOUT.

Note: the data stored in out can take a lot of RAM space, this is the reason for the possibility of selecting what must be kept.

  • "Dt (clock errors)" - Clock Errors
  • "PWV" - Precipitable Water Vapour
  • "ZWD" - Zenith Wet Delay
  • "ZTD" - Zenith Total Delay
  • "Tropo Gradients" - Tropospheric gradients (North, East)
  • "A-priori tropo" - A-priori tropospheric delay as computed from the model
  • "P / T / H" - Pressure / Temperature / Humidity
  • "Outliers / CS" - Outliers and Cycle slips (per satellite to keep them small)
  • "Quality (SNR)" - This is an index that might be improved in the future (per satellite to keep them small), at the moment it is storing just SNR
  • "Number of Sat. per Epoch" - Number of satellites used per epoch (and by constellation)
  • "Azimuth / Elevation" - Azimuth and Elevation of all the satellites in view
  • "Combined Residuals" - Residuals of the processing (one per satellite)
  • "Uncombined Code Res." - Residuals of the processing for pseudo-range observations (one per observables)
  • "Uncombined Phase Res." - Residuals of the processing for carrier-phase observations (one per observables)
  • "Mapping functions" - Mapping function of the troposphere (one per satellite)

Bottom Bar

In the bottom bar, the user can find buttons to load and save the current settings and the full path of the current .ini file in use. And the button "go!" to start execution.

Go back to the Index of contents