Configuration (TOML)¶
Since v0.5.0, MRTKLIB uses TOML for all configuration files, replacing the legacy RTKLIB key=value .conf format.
File Structure¶
A TOML configuration file is organized into sections:
[positioning]
mode = "ppp-rtk"
elevation_mask = 15.0
systems = ["GPS", "Galileo", "QZSS"]
[positioning.corrections]
satellite_antenna = false
receiver_antenna = true
phase_windup = "on"
tidal_correction = "solid+otl-clasgrid+pole"
[positioning.atmosphere]
ionosphere = "est-adaptive"
troposphere = "off"
[ambiguity_resolution]
mode = "fix-and-hold"
[kalman_filter]
# ...
[output]
format = "llh"
# ...
Key Sections¶
| Section | Description |
|---|---|
[positioning] | Mode, frequency, elevation mask, constellations |
[positioning.corrections] | Antenna models, phase windup, tidal corrections |
[positioning.atmosphere] | Ionosphere and troposphere models |
[positioning.snr_mask] | SNR mask thresholds per frequency |
[positioning.clas] | CLAS-specific settings (grid, receiver type) |
[ambiguity_resolution] | AR mode, thresholds, GLONASS/BDS AR |
[kalman_filter] | Process noise, measurement noise |
[output] | Solution format, time format, output paths |
[streams] | Real-time stream configuration (rtkrcv only) |
[files] | Antenna, DCB, geoid, ionosphere files |
[server] / [console] | Server and console options (rtkrcv) |
Constellation Selection¶
Use the systems string list for human-readable constellation selection:
Supported constellation names (case-insensitive):
| Name | Aliases | Bitmask |
|---|---|---|
| GPS | G | 0x01 |
| SBAS | S | 0x02 |
| GLONASS | GLO, R | 0x04 |
| Galileo | GAL, E | 0x08 |
| QZSS | QZS, J | 0x10 |
| BeiDou | BDS, CMP, C | 0x20 |
| NavIC | IRNSS, IRN, I | 0x40 |
Backward Compatibility
The legacy numeric constellations key is still supported:
When both systems and constellations are present, systems takes priority.
Satellite Exclusion¶
Exclude specific satellites using a string list:
A + prefix means "include only this satellite" (whitelist mode).
Bundled Configuration Files¶
MRTKLIB ships with ready-to-use configuration files for common use cases:
MADOCALIB (PPP / PPP-AR)¶
| File | Mode |
|---|---|
conf/madocalib/rnx2rtkp.toml | PPP (post-processing) |
conf/madocalib/rnx2rtkp_pppar.toml | PPP-AR (post-processing) |
conf/madocalib/rnx2rtkp_pppar_iono.toml | PPP-AR + Ionosphere (post-processing) |
CLASLIB (PPP-RTK / VRS-RTK)¶
| File | Mode |
|---|---|
conf/claslib/rnx2rtkp.toml | PPP-RTK single-channel (post-processing) |
conf/claslib/rnx2rtkp_vrs.toml | VRS-RTK (post-processing) |
conf/claslib/rtkrcv.toml | PPP-RTK single-channel (real-time) |
conf/claslib/rtkrcv_2ch.toml | PPP-RTK dual-channel (real-time) |
MALIB (General)¶
| File | Mode |
|---|---|
conf/malib/rnx2rtkp.toml | General post-processing |
conf/malib/rtkrcv.toml | General real-time |
IGS Products (correction = "igs" / "igs-rts")¶
| File | Mode |
|---|---|
conf/igs/rnx2rtkp_ppp.toml | Float PPP, precise SP3/CLK files |
conf/igs/rnx2rtkp_igspppar.toml | Integer PPP-AR, GPS+Galileo |
conf/igs/rnx2rtkp_igspppar_gps.toml | Integer PPP-AR, GPS-only |
conf/igs/rnx2rtkp_igsrts.toml | Float PPP, real-time RTCM-SSR stream |
Integer PPP-AR with IGS products¶
Resolving integer ambiguities from IGS precise products needs a satellite phase-bias product and the uncombined measurement model:
[positioning]
correction = "igs"
[positioning.atmosphere]
ionosphere = "est-stec" # uncombined -- per-frequency ambiguity states
[ambiguity_resolution]
mode = "continuous"
[files]
# COD MGEX IAR Bias-SINEX (carries L* phase + C* code OSB). Use bias_sinex=,
# NOT dcb= (the legacy CODE-DCB parser ignores Bias-SINEX files).
bias_sinex = "COD0MGXFIN_<yyyyddd>0000_01D_01D_OSB.BIA"
The float iono-free config (ionosphere = "dual-freq") cannot resolve integers — it carries a single ambiguity per satellite, not per frequency, so ambiguity_resolution is a no-op there. Galileo (or more constellations) is recommended: GPS-only often has too few satellites for reliable narrow-lane fixing on short sessions, though the wide-lane still fixes.
The float solution itself is cross-validated against RTKLIB 2.4.3: on the GEONET FUJISAWA dataset both reach ≈8.4 cm 3D (1σ) versus the GSI F5 coordinate — i.e. MRTKLIB's IGS float PPP shows no meaningful degradation relative to RTKLIB. (RTKLIB has no integer PPP-AR, so the fixed solution has no upstream counterpart to compare against.)
Constellations. Ambiguity resolution covers GPS, Galileo, QZSS and BeiDou (BDS-2/BDS-3), selected with the [ambiguity_resolution].systems bitmask (GPS=1, Galileo=8, QZSS=16, BeiDou=32). GLONASS is float-only (FDMA has no integer AR). Whether a constellation actually fixes also depends on the OSB product carrying phase biases for the signals you process: the COD MGEX OSB provides GPS and Galileo phase biases on the nominal l1+2 pair, but its QZSS phase biases are L1/L5 only (no L2) and it carries no BeiDou phase biases — so GPS+Galileo is the dependable combination with that product today.
Migration from .conf¶
Use the included conversion script to migrate legacy .conf files:
The script maps legacy key=value pairs to their TOML equivalents. After conversion, format the output with taplo:
Legacy Format Support
While loadopts() still accepts .conf files at runtime, all bundled configurations and tests use TOML exclusively since v0.5.0. For legacy .conf files, use the support/v0.4.x branch.
Full Reference¶
See Configuration Options for a complete list of all available options.