Skip to Content Site Navigation Tree Accessibility

System for REal TIme NAvigation (RETINA)

RETINA Overview

Starting in 2002, ESOC has embarked on a program to build a Real Time GNSS software infrastructure. RETINA (system for REal TIme NAvigation) has been modelled after ESOC’s experiences in Real Time satellite control systems and includes many of the elements for data processing, archiving and visualisation that are common to such systems.

The RETINA system has been developed for ESOC by UK-based Symban Ltd. It is a suite of algorithmic, infrastructure and visualisation elements to enable the processing, distribution and archiving of both Real Time and Near Real Time GNSS data and results. The GNSS data streams from the receivers are treated in much the same way as a control system handles spacecraft telemetry streams. In this way, RETINA provides a generic infrastructure for access to streaming data, allowing the development of applications that can operate seamlessly with both Real Time and historical data.

System Description and Capabilities

The RETINA subsystems belong to one of three functional categories:

Infrastructure: The main components are C++ applications and middleware elements for History Filing and Archiving, Event Logging and Job Scheduling. All middleware elements have C++, Java and FORTRAN interfaces.

Application: Software is written in FORTRAN 90 or C++. It incorporates ESOC’s NAPEOS application suite for Batch GNSS processing and new applications for Real Time estimation and for generation of products and comparison statistics between results sets.

Visualisation: Software is entirely written in Java for portability. It includes Real Time graphical and alphanumeric display applications and the RETINA Graphical User Interface

One of the most important Infrastructure subsystems is the Filing and Archiving subsystem, which provides the tools for streaming and archiving of Real Time data. The API is used by the RETINA applications for filing data to (time) key indexed circular History Files (HFs), update of existing HF records, and retrieving ‘live’ or archived data. Derived retrieval by parameter name e.g. phase bias between s/c x and receiver y is also possible. All applications support seamless processing of historical and live data, allowing the processing to start from the past and continue in Real Time mode.

The use of the Filing and Archiving infrastructure in RETINA is illustrated by the data flow diagram on the right, which shows the processing stages for estimating the GNSS Real Time clocks from the receiver measurement streams.

The Event Logging and Alarm Management subsystem allows applications to log error, warning and information messages. The messages are collected by a Logging server via TCP, allowing tasks to log messages even if running on different nodes. The server also detects abnormal process termination and generates an alarm, alerting the RETINA operator.

The RETINA Job Scheduler is used for automating and monitoring the execution of both Batch and Real Time tasks. It is used for scheduling Batch jobs and sequences and for monitoring and automatically restarting the Real Time Resident Tasks. Jobs are submitted on any machine on the network and all functions are configured and monitored centrally via a Java Job Scheduling display application. The User can intervene to cancel, abort, suspend or reschedule selected jobs and can also view messages and output from a selected job.

All application GUIs are integrated into a single RETINA desktop, the TDAF Operation GUI (see below). A scenario menu bar provides access to the individual application GUI panels and allows the display of Real Time graphical and alphanumeric displays. Additional scenarios can be launched in parallel, providing the capability of controlling multiple individually configured projects.

The Events and Alarms display, on the right, shows the log messages from the running processes and includes functionalities for message retrieval, filtering, alarm acknowledgement and export to text file.

The Job Scheduling display on the left shows the status of the RETINA scheduled applications, with the Batch jobs and sequences in the top window and the Real Time processes in the bottom.

A batch sequence (NAforRT) is executed automatically by the Scheduler every 2 hours. It runs a number of NAPEOS and RETINA applications in a specified order, in order to estimate precise GNSS orbits using a process similar to the generation of the ultra-rapids and using IGS RINEX observation files. The latest predicted orbit information is then made available to the Real Time estimation by updating an Orbit History File.

A number of Real Time applications are always running. RTES processes a global Measurement and a global Navigation HF and estimates the s/c and receiver clocks, TZDs and phase biases using a Kalman Filter. The results are streamed to a Results HF, containing the satellite and receiver clock solutions, the TZD solution and solution quality flags.

Two types of network infrastructure and protocols, RTIGS and NTRIP, are used for delivering data and results. For processing data from the RTIGS stations, task RTGS receives UDP receiver streams from a data broadcaster operated by Natural Resources Canada (NRCan) and writes out an individual Measurement and Navigation HF per receiver. For NTRIP data, tasks RTRO and RTNO relay and format TCP observation streams, while RTNE and RTNO relay and format TCP navigation streams from a number of broadcasters. RTDC combines the individual receiver HF records from the RTIGS and NTRIP stations and writes out the global Measurement HF and the global Navigation HF.

For processing the clock and orbit streams, RTRC decodes and stores orbit and clock State Space Representation (SSR) correction streams. These are used by RTCO, which is the Real Time combination application, to generate the clock and orbit combination solution (two instances, for CoM and APC spacecraft coordinates). RTWC encodes the ESA solutions and combination orbit and clock streams and sends them to a broadcaster for dissemination via Internet.

BKG’s NTRIP client application (BNC) is used to receive and decode NTRIP observation and clock streams while the server application (BNS) encodes the output clock streams and sends them to a broadcaster for dissemination to users.

RETINA Visualisation Examples

RETINA allows visualisation of Real Time data and results with a range of easily configurable graphical and alphanumeric displays. The status of the network is monitored using the World Map Display below. Stations receiving data are shown as green markers, while data drops are indicated in yellow. Red markers imply complete loss of data over a monitoring interval. The user can activate links for individual stations or satellites. Actual data links are shown in colour, while links with geometric visibility but no data are indicated in grey. It is also possible to launch real time plots for any station or satellite, to display the history of tracked satellites or tracking receivers, as well as horizon plots.

Configurable alphanumeric displays can be easily created to monitor any parameter stored in a HF. The example below shows the raw measurements from Algo. The display can be set to update in Real Time or it can be used to play back Historical data.

Similarly, graphical displays can be used to plot any HF variable. The plots below show Real Time Estimation results: Phase and pseudo-range residuals and the phase bias and Tropospheric Zenith Delay solutions. Dedicated configuration GUIs allow the user to easily configure new plots, selecting HF variables by name and without the need to know how the data are stored.

The example plot below shows the effect on ESA’s New Norcia receiver clock between switching from internal clock steering to the external maser (decrease in the noise of the clock corrections) and back.