Skip to content

Products & Tables

This page covers the [product] and [table] sections of pppx.ini and the files PPPx writes. For where to download the inputs, see Data Sources.

The [product] section selects a satellite-product source and the file paths.

[product]
src = precise ; opt: brdc/precise
nav = ./products/BRDC00IGS_R_-YEAR--DOY-0000_01D_MN.rnx ; broadcast ephemeris (brdc)
sp3 = ./products/COD0MGXFIN_20221000000_01D_05M_ORB.SP3 ; precise orbit (precise)
clk = ./products/COD0MGXFIN_20221000000_01D_30S_CLK.CLK ; precise clock (precise)
erp = ./products/COD0MGXFIN_20221000000_03D_12H_ERP.ERP ; earth rotation parameters (precise)
obx = ./products/COD0MGXFIN_20221000000_01D_15M_ATT.OBX ; satellite attitude (precise)
bia = ./products/COD0MGXFIN_20221000000_01D_01D_OSB.BIA ; satellite bias (precise)
ion = ./products/codg-DOY-0.-YR-i ; global ionospheric map (common)
vmf = ./products/VMFG_-YEAR--DOY- ; VMF1 grid (common)

The product section of pppx.ini

  • brdc — orbits and clocks come from the broadcast ephemeris (nav). The precise-only products are ignored.
  • precise — orbits and clocks come from IGS products. sp3 is required; the others are optional. If clk is missing, clocks are taken from the SP3. Using precise requires the igsatx table.
  • Only sp3 is mandatory for precise; broadcast ephemeris also works for PPP.
  • ion is required when [model] iono uses a GIM (IONEX/brdc), and vmf is required when [model] trop = VMF1.
  • Precise orbits/clocks can be used for SPP, but the DCB is not handled for single-frequency SPP — use [model] iono = IF in that case.
  • For PPP: a bia product is needed when ppp_ar = yes; nominal attitude is used if obx is missing; pole-tide corrections are skipped if erp is missing (fine for most applications).

Product paths may contain placeholders that PPPx fills from [session] date (or the first RINEX epoch), which makes multi-day processing easy:

PlaceholderMeaning
-YEAR-4-digit year
-YR-2-digit year
-DOY-day of year
-WEEK-GPS week
-DOW-day of GPS week

The [table] section points at the static model files PPPx needs.

[table]
igsatx = ../../table/igs14.atx
oceanload = ../../table/oceanload
channel = ../../table/glonass_chn
gpt2w = ../../table/gpt2_1wA.grd
orography = ../../table/orography_ell

The table section of pppx.ini

TablePurposeRequired when
channelGLONASS frequency-channel numbersGLONASS carrier phase is used (ppp/rtk/tdp)
gpt2wGPT2w tropospheric coefficients[model] trop = GPT2w
igsatxIGS ANTEX satellite/receiver antenna models[product] src = precise (PCO always; PCV for PPP/RTK)
oceanloadOcean-tide loading coefficients per stationoptional (skipped if missing for the station)
orographyEllipsoidal heights for VMF1 grid points[model] trop = VMF1

It is good practice to set all table paths so a change of model never trips over a missing file. See Data Sources for how to obtain oceanload and igsatx.

A run produces up to three files, all sharing the observation file’s base name.

FileContents
.posPer-epoch receiver position, GPS clock, and ZTD estimates.
.logDebug log: cycle slips, outliers, residuals, ambiguity resolution.
.statRTKLIB-format residuals/estimates for visualization.

The primary output: one record per processed epoch with the station coordinates (ECEF, metres), their standard deviations, the receiver clock error (GPS), and the zenith total delay (ZTD). The coordinate frame follows the orbit products used.

A sample pos file

Written whenever [output] level is not off. It records cycle-slip and outlier detection plus a priori and post-fit residuals. Each message is tagged with a severity level:

TagLevel
TTrace
DDebug
IInformation
WWarning
EError
CCritical

A sample log file

Always generated, in RTKLIB’s stat format, for visualization. PPPx writes the $POS, $CLK, and $SAT records. Unlike RTKLIB, $CLK values are in metres (not nanoseconds) and are absolute clock errors per GNSS system rather than inter-system biases.

A sample stat file

See Visualization for plotting these files.