BKG Ntrip Server (BNS) Version 1.0

The BKG Ntrip Server (BNS) is a program for transforming GNSS satellite clocks and orbits into corrections to Broadcast Ephemeris. These corrections are then encode in RTCM Version 3.x format and uploaded to NTRIP broadcasters like http://www.euref-ip.net/home or http://www.igs-ip.net/home. BNS is meant as a tool for service providers with real-time access to a network of continentally or globally distributet GNSS reference stations.

BNS has been developed for the Federal Agency for Cartography and Geodesy (BKG) within the framework of EUREF's Real-time GNSS Project (EUREF-IP, IP for Internet Protocol) and the Real-Time IGS Pilot Project (RTIGS).

BNS has been written under GNU General Public License (GPL). Binaries for BNS are available for Windows, 32-bit Linux, 64-bit Linux (compiled using option -m32), Solaris, and Mac systems. We used the MinGW Version 5.3.1 compiler to create the Windows binary. It is likely that BNS can be compiled on other systems where a GNU compiler and Qt Version 4.3.2 are installed.

Please ensure that you have installed the latest version of BNS available from http://igs.bkg.bund.de/index_ntrip_down.htm. We are continuously working on the program and would appreciate if you could send any comments, suggestions, or bug reports to [euref-ip@bkg.bund.de] or [igs-ip@bkg.bund.de].

Contents

1. Purpose
2. Functioning
3. Resources
4. Options
5. Limitations
6. Authors
7. Annex

1. Purpose

The purpose of BNS is to

Note that BNS so far only generates the tentative RTCM Version 3.x message types 4056 for Combined GPS and GLONASS orbit corrections and 4057 for Combined GPS and GLONASS clock corrections to Broadcast Ephemeris.

2. Functioning

The BNS procedure for generating RTCM Version 3.x clock and orbit corrections to Broadcast ephemeris in radial, along-track and cross-track components is the following:

Then, epoch by epoch:

Because BNS is quite demanding concerning stable communication links, it is recommended to run the three software components BNS, the Broadcast Ephemeris server (i.e. BNC), and the server providing orbits and clocks (i.e. RTNet) on the same host. However, this is not a must.

3. Resources

BNS requires access to the Internet with a minimum of about 2 to 3 kbits/sec for stream upload to an Ntrip Broadcaster depending on the number of visible satellites. You need to make sure that the connection can sustain the required bandwidth.

Running BNS requires the clock of the host computer to be properly synchronized.

4. Options

4.1. File
4.2. Help
4.3. Proxy
4.4. General
      4.4.1. Logfile
      4.4.2. Append Files
      4.4.3. Reference System
4.5. Input
      4.5.1. Ephemeris
      4.5.2. Clocks & Orbits
      4.5.3. Save Clocks & Orbits
4.6. NTRIP Caster
      4.6.1. Host
      4.6.2. Port
      4.6.3. Mountpoint
      4.6.4. Password
      4.6.5. Use Proxy
      4.6.6. Save Stream
4.7. RINEX Clocks
      4.7.1. Directory
      4.7.2. Interval
      4.7.3. Sampling
4.8. SP3 Orbits
      4.8.1. Directory
      4.8.2. Interval
      4.8.3. Sampling
4.9 Start
4.10. Stop
4.11. No Window

4.1. File

The 'File' button lets you

4.2. Help

The 'Help' button provides access to

BNS comes with a help system providing online information about its functionality and usage. Short descriptions are available for any widget. Focus to the relevant widget and press Shift+F1 to request help information. A help text appears immediately; it disappears as soon as the user does something else. The dialogs on some operating systems may provide a "?" button that users can click; they then click the relevant widget to pop up the help text.

4.3. Proxy - for usage in a protected LAN

If you are running BNS within a protected Local Area Network (LAN), you might need to use a proxy server to access the Internet. Enter your proxy server IP and port number in case one is operated in front of BNC. If you don't know the IP and port of your proxy server, check the proxy server settings in your Internet browser or ask your network administrator.

Note that IP streaming is often not allowed in a LAN. In this case you need to ask your network administrator for an appropriate modification of the local security policy or for the installation of a TCP relay to the NTRIP broadcasters. If these are not possible, you might need to run BNS outside your LAN on a host that has unobstructed connection to the Internet.

4.4. General Options

4.4.1 Logfile - optional

Records of BNC's activities are shown in the Log section on the bottom of the main window. These logs can be saved into a file when a valid path is specified in the 'Log (full path)' field. The message log covers the communication status between BNC and the NTRIP broadcaster as well as problems that may occur in the communication link, stream availability, stream delay, stream conversion etc. All times are given in UTC. The default value for 'Log (full path)' is an empty option field, meaning that BNC logs will not saved into a file.

4.4.2 Append Files

When BNS is started, new files are created by default and any existing files with the same name will be overwritten. However, users might want to append existing files following a restart of BNS, a system crash or when BNS crashed. Tick 'Append files' to continue with existing files and keep what has been recorded so far. Note that option 'Append files' affects all types of files created by BNS.

4.4.3 Reference System - mandatory

BNS refers its final clock and orbit corrections to a specific reference system. Available options are

As the clocks and orbits coming from real-time GNSS engin are expected in the 'IGS05' reference system (X,Y,Z ECEF), in fact no transformation is carried out if you select this option.

The implemented formulas for transformation from ITRS (IGS05) to ETRS89 are taken from 'Boucher and Altamimi 2007: Specifications for reference frame fixing in the analysis of EUREF GPS campaign', see http://etrs89.ensg.ign.fr/memo2007.pdf.

4.5. Input

BNS needs GNSS clocks and orbits in the IGS Earth-Centered-Earth-Fixed (ECEF) reference system and Broadcast Ephemeris in RINEX Navigation file format.

4.5.1 Ephemeris - mandatory

BNS reads GNSS Broadcast Ephemeris in RINEX Version 3 Navigation file format from an IP address and port. This information can be provided in real-time by the 'BKG Ntrip Client' (BNC) program through a persistent socket connection. Note that whenever a new set of Broadcast Ephemeris becomes availabe, it has to be transmitted immediately. Enter the respective servers IP address and port number. If BNS runs (advantageously) on the same host which provides the Broadcast Ephemeris, 127.0.0.1 has to be introduced as the servers IP address. Make sure that this server is up and running before you start BNS.

If a proxy server is operated between BNS and the server providing the Broadcast Ephemeris, you may need to use the proxy server settings you have specified. Tick 'Use proxy' to use it for stream download.

The following is an example for Broadcast Ephemeris records in RINEX Version 3 Navigation file format concerning GPS PRN32 and GLONASS PRN04:

G32 2008 07 22 12 00 00  3.08818183839e-04  2.72848410532e-12  0.00000000000e+00
     1.10000000000e+01 -4.00312500000e+01  4.63269297026e-09  9.74027926504e-01
    -2.19419598579e-06  1.39143558918e-02  8.25151801109e-06  5.15381674576e+03
     2.16000000000e+05 -8.56816768646e-08 -3.26801342873e-02 -2.94297933578e-07
     9.68688494953e-01  2.30468750000e+02 -1.30607654294e+00 -8.26105839196e-09
    -3.62872257943e-10  1.00000000000e+00  1.48900000000e+03  0.00000000000e+00
     2.00000000000e+00  0.00000000000e+00 -2.79396772385e-09  1.10000000000e+01
     0.00000000000e+00  0.00000000000e+00
R04 2008 07 22 08 15 14  4.76110726595e-05  0.00000000000e+00  2.88600000000e+04
    -1.76267827148e+04 -4.64202880859e-01  1.86264514923e-09  0.00000000000e+00
    -1.79631489258e+04 -3.41343879700e-01 -2.79396772385e-09  6.00000000000e+00
    -4.20270556641e+03  3.50097942352e+00  0.00000000000e+00  0.00000000000e+00

4.5.2 Clocks & Orbits - mandatory

BNS reads GNSS clocks and orbits in a plain ASCII format from an IP address and port. They can be provided by a real-time GNSS engine like RTNet and are expected to refer to the IGS Earth-Centered-Earth-Fixed (ECEF) reference system. Enter the respective servers IP address and port number to establish a persistent socket connection. If BNS runs (advantageously) on the same host which provides the clocks and orbits, 127.0.0.1 has to be introduced as the servers IP address. Make sure that this server is up and running before you start BNS.

If a proxy server is operated between BNS and the server providing the clocks and orbits, you may need to use the proxy server settings you have specified. Tick 'Use proxy' to use them for stream download.

Below you find an example for precise clocks and orbits coming in plain ASCII format from a real-time GNSS engine. Each epoch starts with an asterisk character followed by GPS Week, Second in GPS Week and Number of satellites. Subsequent records provide the following set of parameters for each satellite:

*  1489  218527.000000 13
G08    -76413.307  24866966.637   8527190.979     -162.790607     0.375
G09  13547198.314 -14993483.355  16521052.798        6.462891    -0.335
G12  23546505.279 -11419650.825  -4126405.941     -356.488306    -0.103
G15  20671877.676   1926153.017  16592944.847     -147.015776    -0.216
G17  14584397.556  20610108.909   8557082.997       38.709284    -0.081
G18   8169428.184 -16862693.369  18872507.835     -153.553965    -0.149
G22  -6624646.069 -14262545.420  21565075.194      211.479778    -0.089
G26  21424721.760   7905958.802  13511083.183      296.893434     0.413
G28   5220247.539  14404808.121  22087340.167      -21.263655     0.184
R04  14087836.321 -12766880.844  16904727.671       47.601404    -0.302
R13   9968458.843   4774687.770  22964489.920     -205.604626     0.526
R14  11765674.558 -13533158.122  18154217.335     -142.409508     0.093
R23  15142315.506  19152857.044   7329580.240     -111.465205    -0.316
*  1489  218528.000000 13
G08    -76893.521  24867989.053   8524186.937     -162.790606     0.376
G09  13547066.674 -14991254.946  16523118.186        6.462896    -0.334
G12  23547101.712 -11419571.961  -4123272.866     -356.488305    -0.102
G15  20673380.091   1927636.846  16590899.052     -147.015776    -0.215
G17  14583421.795  20609591.381   8559990.870       38.709276    -0.083
G18   8171742.449 -16863250.285  18870956.178     -153.553959    -0.148
G22  -6622069.142 -14263374.211  21565314.170      211.479771    -0.091
G26  21425938.906   7907253.545  13508540.885      296.893448     0.415
G28   5217668.842  14405642.686  22087373.519      -21.263659     0.183
R04  14090047.809 -12767642.452  16902327.088       47.601401    -0.303
R13   9967725.004   4777752.821  22964170.268     -205.604617     0.529
R14  11764988.257 -13530761.727  18156438.374     -142.409512     0.091
R23  15141704.650  19152042.802   7332976.247     -111.465201    -0.316

4.5.3 Save Clocks & Orbits - optional

Specify the full path to a file where incoming clocks and orbits are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved.

4.6. NTRIP Caster

BNS can upload the resulting stream of cock and orbit corrections to Broadcast Ephemeris to an Ntrip Broadcaster. For that EUREF and IGS operate NTRIP broadcasters at http://www.euref-ip.net/home and http://www.igs-ip.net/home which might be used for stream upload. The stream's format is RTCM Version 3.x. Note that it only carries the thentative message types 4056 and 4057 for combined GPS and GLONASS clock and orbit corrections.

4.6.1 Host - optional

Enter the NTRIP broadcaster 'Host' IP name or number for stream upload.

4.6.2 Port - mandatory if 'Host' is set

Enter the NTRIP broadcaster IP 'Port' number for stream upload. Note that NTRIP Broadcaster installations often provide access through more than one port, usually ports 80 and 2101. In case you experience communication problems on port 80, you may like to use the alternative port(s).

4.6.3 Mountpoint - mandatory if 'Host' is set

Each stream on an NTRIP broadcaster is defined using a unique source ID called mountpoint. An NTRIP server like BNS can upload its stream to the broadcaster by referring to a dedicated mountpoint established by the broadcaster operator. Specify the mountpoint you receive from the operator for your stream. Note that it usually is a four character ID (capital letters) plus an integer number.

4.6.4 Password - mandatory if 'Host' is set

In NTRIP Version 1.0 stream upload is only protected through a generic upload 'Password'. Enter the password you received from the broadcaster operator along with the mounpoint.

4.6.5 Use Proxy - optional if 'Host' and 'Proxy' is set

In case BNS is operated in a protected LAN, you may need to communicate through a proxy server protecting your network. Once you have specified your proxies host and port, you can tick 'Use proxy' to use it for stream upload.

4.6.6 Save Stream - optional

The clock and orbit corrections streamed by BNS to an NTRIP broadcaster can be recorded. Specify a full 'Save stream' path here to save this information in a local file. Default value for 'Save stream' is an empty option field, meaning that the upload stream contents will not be saved locally.

The file contents will be plain ASCII comprising records carrying the following set of parameters:

The following is an example file contents based on combined GPS and GLONASS clock and orbit corrections carried in RTCM Version 3.x message types 4056 and 4057:

1487 547554.0 G27    57     12.219      1.241    0.495    0.002
1487 547554.0 G29   101     -0.086      0.008   -0.429    0.675
1487 461154.0 R06    18      5.192      2.390   -1.915   -6.734
1487 461154.0 R07    18     -1.619      2.827    0.901    0.280
1487 547554.0 G27    57     12.218      1.242    0.496    0.003
1487 547554.0 G29   101     -0.087      0.007   -0.427    0.673
1487 461154.0 R06    18      5.191      2.389   -1.914   -6.735
1487 461154.0 R07    18     -1.618      2.826    0.900    0.281

4.7. RINEX Clocks

The clock corrections generated by BNS can be saved in Clock RINEX files. The file names follow the RINEX convention.

4.7.1 Directory - optional

Here you can specify the path to where the Clock RINEX files will be stored. If the specified directory does not exist, BNS will not create Clock RINEX files. Default value for 'Directory' is an empty option field, meaning that no Clock RINEX files will be written.

4.7.2 Interval - mandatory if 'Directory' is set

Select the length of the Clock RINEX file generated. The default value is 1 day.

4.7.3 Sampling - mandatory if 'Directory' is set

Select the Clock RINEX sampling interval in seconds. A value of zero '0' tells BNS to store all received epochs into Clock RINEX. This is the default value.

4.8. SP3 Orbits

The orbit corrections generated by BNS can be saved in SP3 Orbit files. The file names follow the RINEX convention.

4.8.1 Directory - optional

Here you can specify the path to where the SP3 Orbit files will be stored. If the specified directory does not exist, BNS will not create SP3 Orbit files. Default value for 'Directory' is an empty option field, meaning that no SP3 Orbit files will be written.

4.8.2 Interval - mandatory if 'Directory' is set

Select the length of the SP3 Orbit file generated. The default value is 1 day.

4.8.3 Sampling - mandatory if 'Directory' is set

Select the SP3 Orbit file sampling interval in seconds. A value of zero '0' tells BNS to store all received epochs into SP3 Orbit files. This is the default value.

4.9. Start

Hit 'Start' to start receiving IGS orbits and clocks and convert them into corrections to Broadcast Ephemeris. Note that 'Start' generally forces BNS to begin with fresh files which might overwrite existing files when necessary unless the option 'Append files' is ticked.

4.10. Stop

Hit the 'Stop' button in order to stop BNS.

4.11. No Window - optional

On all systems BNS can be started in batch mode with the command line option '-nw'. BNS will then run in 'no window' mode, using options from the configuration file ${HOME}/.config/BKG/BNC_NTRIP_Server.conf (Unix/Linux, see Config File example in the Annex) or from the register BKG_NTRIP_Server (Windows).

Note that the self-explaining contents of the configuration file or the Windows register can easily be edited. Terminate BNS using Windows Task Manager when running it in 'no window' mode on Windows systems.

5. Limitations

6. Authors

The BKG Ntrip Server (BNS) Qt Graphic User Interface (GUI) has been developed for the Federal Agency for Cartography and Geodesy (BKG) by Leos Mervart, Czech Technical University Prague, Department of Geodesy. BNS includes a GNU GPL open source RTCM 3.x encoder, written for BKG by Dirk Stoecker, Alberding GmbH, Schoenefeld.

Georg Weber
Federal Agency for Cartography and Geodesy (BKG)
Frankfurt, Germany
[euref-ip@bkg.bund.de] or [igs-ip@bkg.bund.de]

7. Annex

7.1. History
7.2. RTCM
      7.2.1 RTCM NTRIP
      7.2.2 RTCM Version 3.x
7.3. Config File
7.4. Links

7.1 History

August 2008  Version 1.0  [Add] Beta Binaries published.

7.2. RTCM

The Radio Technical Commission for Maritime Services (RTCM) is an international non-profit scientific, professional and educational organization. Special Committees provide a forum in which governmental and non-governmental members work together to develop technical standards and consensus recommendations in regard to issues of particular concern. RTCM is engaged in the development of international standards for maritime radionavigation and radiocommunication systems. The output documents and reports prepared by RTCM Committees are published as RTCM Recommended Standards. Topics concerning Differential Global Navigation Satellite Systems (DGNSS) are handled by the Special Committee SC 104.

Personal copies of RTCM Recommended Standards can be ordered through http://www.rtcm.org/orderinfo.php.

7.2.1 NTRIP

'Networked Transport of RTCM via Internet Protocol' Version 1.0 (NTRIP) stands for an application-level protocol streaming Global Navigation Satellite System (GNSS) data over the Internet. NTRIP is a generic, stateless protocol based on the Hypertext Transfer Protocol HTTP/1.1. The HTTP objects are enhanced to GNSS data streams.

NTRIP Version 1.0 is an RTCM standard designed for disseminating differential correction data (e.g. in the RTCM-104 format) or other kinds of GNSS streaming data to stationary or mobile users over the Internet, allowing simultaneous PC, Laptop, PDA, or receiver connections to a broadcasting host. NTRIP supports wireless Internet access through Mobile IP Networks like GSM, GPRS, EDGE, or UMTS.

NTRIP is implemented in three system software components: NTRIP clients, NTRIP servers and NTRIP broadcasters. The NTRIP broadcaster is the actual HTTP server program whereas NTRIP client and NTRIP server are acting as HTTP clients. The NTRIP broadcaster maintains a source-table containing information on available NTRIP streams, networks of NTRIP streams and NTRIP broadcasters. The source-table is sent to an NTRIP client on request.

NTRIP is an open none-proprietary protocol. Major characteristics of NTRIP's dissemination technique are:

7.2.2 RTCM Version 3.x

RTCM Version 3.x has been developed as a stream format alternative to RTCM Version 2.x. Service providers and vendors have asked for a standard that would be efficient, easy to use, and easily adaptable to new situations.

RTCM is in the process of developing new Version 3 message types to transport satellite clock and orbit corrections in real-time. Based on the latest available proposal, the following tentative messages currently under discussion are of interest here:

RTCM Version 3.x streams carrying these messages may be used i.e. to support real-time Precise Point Positioning (PPP) applications following the 'state space' approach.

7.3. Config File

The following is an example for the contents of a Unix/Linux configuration file ${HOME}/.config/BKG/BKG_NTRIP_Client.conf. It enables the upload of stream CLCK1 to www.euref-ip.net. Clock RINEX files and SP3 Orbit files are uploaded to a directory /home/weber/rinex :

[General]
clkFile=/home/weber/clocks.txt
clkHost=142.71.30.12
clkPort=2067
clkProxy=2
ephHost=141.71.30.13
ephPort=2066
ephProxy=2
fileAppend=0
font="Andale Sans,9,-1,5,75,0,0,0,0,0"
logFile=/home/weber/rinex/log.txt
mountpoint=CLCK1
outFile=/home/weber/rinex/CLCK1.txt
outHost=www.igs-ip.net
outPort=2101
outProxy=2
password=uploadPass
proxyHost=gate-f
proxyPort=8000
refSys=IGS05
rnxAppend=2
rnxIntr=1 day
rnxPath=/home/weber/rinex
rnxSampl=30
sp3Intr=1 hour
sp3Path=/home/weber/sp3
sp3Sampl=0

7.4 Links

NTRIP  http://igs.bkg.bund.de/index_ntrip.htm
EUREF-IP NTRIP broadcaster  http://www.euref-ip.net/home
IGS-IP NTRIP broadcaster  http://www.igs-ip.net/home
NTRIP broadcaster overview  http://www.rtcm-ntrip.org/home
EUREF-IP Project  http://www.epncb.oma.be/euref_IP
Real-time IGS Pilot Project  http://www.rtigs.net/pilot
Radio Technical Commission
for Maritime Services  
http://www.rtcm.org