Using BKG Ntrip Client (BNC) and gnssrefl's rt_rinex3_snr module to access real-time SNR data.
The BNC compiled code is available at: https://igs.bkg.bund.de/ntrip/bnc
I tested Code Executable "v2.12.18 static" for OpenSUSE, Ubuntu, Debian and Raspbian. The compiled file bnc-2.12.18-suse42-64bit-static
and
bnc-2.12.18-debian8-64bit-static
are also available in ntrip2snr repository.
The following examples convert 1 min RTCM streams to RINEX 3 files and then to SNR-ready files to be used for GNSS-IR real-time processing.
Example 1: GNSS SNR real-time streaming for site AC67 from UNAVCO's caster: rtgpsout.unavco.org:2101
*Note: you need to reach out UNAVCO to set up an account with user and pass.
Navigate to example1 directory and open ntrip2snr.bnc
in a text editor and set the following configuration input parameters:
casterUrlList
is visited broadcasters [character string, comma separated list].
casterUrlList=http://user:[email protected]:2101
mountPoints
is mountpoints [character string, semicolon separated list].
mountPoints=//user:[email protected]:2101/AC67_RTCM3 RTCM_3.1 USA 57.79 -152.43 no 2
rnxScript
is file upload script, full path [character string].
rnxScript=./run_rinex2snr.sh
Note run_rinex2snr.sh
passes the RINEX 3 filename generated by BNC to gnssrefl's rt_rinex3_snr module.
rnxIntr
is File interval [character string: 1 min|2 min|5 min|10 min|15 min|30 min|1 hour|1 day].
rnxIntr=1 min
rnxV3
produces version 3 file content [integer number: 0=no,2=yes].
rnxV3=2
rnxSampl
is file sampling rate [integer number of seconds: 0,5|10|15|20|25|30|35|40|45|50|55|60].
rnxSampl=1 sec
rnxSkel
is RINEX skeleton file extension [character string].
rnxSkel=SKL
Default configuration is now set for an orbitray site AC67 from UNAVCO's caster server (rtgpsout.unavco.org:2101)
Set a directory to store RINEX 3 files via -key rnxPath $REFL_CODE/rinex/ssss/YYYY
where $REFL_CODE is an environmental variable to be used by gnssrefl's rt_rinex3_snr module, YYYY is the year and ssss is the four character station name, i.e., -key rnxPath $REFL_CODE/rinex/AC67/2023
Before running ntrip2snr.bnc
, BNC requires the RINEX header as a separate file with SKL extension stored in $REFL_CODE/rinex/ssss/YYYY
(rnxPath). For running the example configuration file, make sure you copy AC67_RTCM.SKL
to the mentioned directory. The RINEX header file is often missed in caster servers, thus this .SKL
file needs to be created in advance.
Now activate the virtual environment: source ~/env/bin/activate
You may need to mark the BNC compiled code, run_rinex2snr.sh
and run_rinex2snr.py
as executables:
chmod +x bnc-2.12.18-suse42-64bit-static
chmod +x run_rinex2snr.sh
chmod +x run_rinex2snr.py
To run ntrip2snr: ./bnc-2.12.18-suse42(debian8)-64bit-static -nw -conf ntrip2snr.bnc -key rnxPath $REFL_CODE/rinex/AC67/2023
Ignore QSslSocket SSL errors if you generally trust the caster server and do not want to be bothered with this.
SNR-ready files are overwritten every minute and stored in $REFL_CODE/YYYY/snr/ssss/
, i.e., $REFL_CODE/2023/snr/AC67/
Example 2: GNSS SNR real-time streaming for site WARN from EUREF's caster: euref-ip.net:2101
*Note: access to EUREF's caster is public and no user and pass are required.
The configuration input parameters for this example are available in ~/example2/ntrip2snr.bnc
and are summerized below:
casterUrlList=http://User:[email protected]:2101
mountPoints=//Example:[email protected]:2101/WARN00DEU0 RTCM_3.1 DEU 54.17 12.10 no 2
rnxScript=./run_rinex2snr.sh
rnxIntr=1 min
rnxV3=2
rnxSampl=1 sec
rnxSkel=SKL
Default configuration is now set for a GNSS-IR site WARN from EUREF's caster caster server (euref-ip.net:2101)
And run ntrip2snr: ./bnc-2.12.18-suse42(debian8)-64bit-static -nw -conf ntrip2snr.bnc -key rnxPath $REFL_CODE/rinex/WARN/2023
SNR-ready files are overwritten every minute and stored in $REFL_CODE/YYYY/snr/ssss/
, i.e., $REFL_CODE/2023/snr/WARN/