FocusPOD, the new POD SW used at CPOD Service
Authors: Fernández Martín Carlos , Berzosa Molina Javier , Bao Cheng Luning , Muñoz de la Torre Miguel Ángel , Fernández Usón Marc , Lara Espinosa Sonia , Terradillos Estévez Eva , Fernández Sánchez Jaime , Peter Heike , Féménias Pierre , Nogueira Loddo Carolina 
Published: February 2023

The Copernicus Precise Orbit Determination (CPOD) Service is a consortium led by GMV, responsible for providing precise orbital products and auxiliary data files from the Copernicus Sentinel-1, -2, -3, and -6 missions to the corresponding Payload Data Ground Segment (PDGS) processing chains at ESA and EUMETSAT.Since April 2014, the CPOD Service has been supporting the Copernicus program as soon as the different Sentinel satellites were launched. During the last 8 years, the CPOD Service has been using the ESA/ESOC SW NAPEOS, to compute the precise orbits. During these years, new algorithms and standards were implemented in NAPEOS, to improve the accuracy of the products. Currently, the accuracy of the orbital solutions computed by the CPOD Service is state-of the art, and similar to the solutions computed by other entities including AIUB, CNES, DLR, ESA, GFZ, JPL, TU Delft, and TUM, all of them members of the CPOD Quality Working Group (QWG).Starting on January 2021, GMV has been developing a new POD SW called FocusPOD, as an internal R&D activity. Following current trends (e.g., GIPSY-X, GODOT), FocusPOD has been written from scratch in C++ & Python, with a completely new design, with the goal of supporting future CPOD Services evolutions, among other projects.In terms of architecture, the core layers of the FocusPOD SW have been designed as a library, to support a flexible development of applications. For example, constructing multiple distributed programs is possible, as well as building a single binary that decodes the GNSS L0 data, reads the different input files (e.g., GNSS orbits and clocks), pre-processes the observations, propagates the initial state vector, performs the least-square adjustment, fixes ambiguities, and constructs the final product; all with a single execution that allows reducing the processing time and minimizes the usage of HW resources. The functionality of each binary may be constructed as needed.One of the key differences with respect to the previous SW is the decision to separate data and algorithms in the design of FocusPOD. This has triggered the development of a data model to keep in the processing memory all the data, organized following its physical meaning, and relating different elements. This will allow developing new algorithms independently of the data. Another relevant aspect is the use of advanced mechanisms to keep and search large amounts of data, a key element to exploit the SW in future use cases.The architecture of FocusPOD will be presented, as well as its performance. In terms of architecture, the benefits of the chosen design will be highlighted together with the lessons learnt from the implementation. In terms of performance, it will be shown that the new SW presents improvements in runtime with respect to the legacy system, reducing the product generation timeliness, while reaching the same levels of accuracy as other state-of-the-art SW packages. The achievable accuracy in LEO POD will be presented by showing the differences against external reference solutions and SLR residuals analysis of the Sentinel satellites.