Geodetic observatory Pecný
|
|
G-Nut/Anubis is a command-line tool for a quality check of modern data from all available GNSS constellations providing full quantitative and qualitative control with and without support of GNSS navigation messages:
The application is implemented using the G-Nut core library developed at Geodetic Obsevatory Pecny (GOP) and released under GNU GPL.
Anubis configuration and outputs are described under sub-menu (see main menu left).
DOWNLOAD - area for the software download.
INSTALLATION - instructions for the software installation.
VISUALISATION - perl scripts for Anubis report plotting.
EXAMPLES - example configuration with input and output files.
RELEASE_NOTES - list of fixes, enhancements and updates.
FORMAT_CHANGES - Anubis extraction format modifications.
MGEX-MONITORING - IGS Multi-GNSS RINEX QC with Anubis.
EURv3-MONITORING - EUREF Multi-GNSS RINEX QC with Anubis.
SUPPORT - the lite version is provided "AS IS", without warranty of any kind and a support is given on a best-effort basis only. Other related questions could be sent to This email address is being protected from spambots. You need JavaScript enabled to view it. (J.Dousa/P.Vaclavovic).
REFERENCES
NEWS - in order to keep informed about news you can join the G-Nut mailman list.
Carrier-phase signal-to-noise statistics are extracted from GNSS observations and represents as mean and epoch-wise values [dbHz]. The configuration sec_snr="1" sets a low verbosity while sec_snr="2" provides time- or elevation-dependent estimates.
The first verbosity (list below right & figure below left) show mean SNR values for available signals and all satellites and elevations.
The second verbosity (list below left & figure below right) shows time-/elevation SNR dependency.
The development of the G-Nut library and specific user applications is primarily based on a scientific work with focus on the stimulating an inter-disciplinary exploitation of GNSS observations. The Precise Point Positioning, developed by Zumberge et al. (1997), provides a highly efficient and autonomous technique for various applications if relevant precise products are available (such as provided by the International GNSS Service). By developing in-house software packages, we would like to contribute to a deep expertize in multi-GNSS data use by updating/enhancing various GOP scientific products (contributing to EUREF, IGS, E-GVAP, etc.).
The current status of the G-Nut project can be identified as a "testing stage". The core library data members and functions has been implemented together with first applications. Stable functionality has been demonstrated for off-line and real-time processing (follow GOP web-pages). Providing public applications is a time-consuming task (for which we have not yet sufficient man-power), the release of end-user applications is done in step-by-step process. So in case of interest for further developments, track our web-pages occasionally or join the G-Nut mailing list.
The user applications and relevant parts of the G-Nut core library are provided 'AS IS'. There is no warranty of any kind and we do not take responsibility for any errors or omissions found in the implementation, documentation or distribution of application packages. Please understand that there may be bugs and errors and use packages at your own risk only.
The source code of user applications and relevant parts of the G-Nut core library is released under the GNU General Public License (GPL) and thus available for any further modifications and redistribution under given conditions. Only user applications are, however, available for download together with relevant parts of the G-Nut core library. The complete library code is not intended for the distribution under normal circumstances, but to a limited agreed partners or significant co-developers only.
Following third-party libraries were included in the G-Nut core library developments:
Dousa J, Vaclavovic P (2014) Real-time zenith tropospheric delays in support of numerical weather prediction applications. Advances in Space Research (2014), Vol 53, No 9, pp 1347-1358, doi:10.1016/j.asr.2014.02.021, PDF.
Vaclavovic P, Dousa J, Gyori G (2013), G-Nut software library - state of development and first results, Acta Geodynamica at Geomaterialia, pp 431-436, Vol. 10, No. 4 (172), doi:10.13168/AGG.2013.0042. PDF (or, alternatively, here).
Dousa J and Vaclavovic P (2013), Real-time ZTD estimates base on Precise Point Positioning and IGS real-time orbit and clock products, In: 4th International Colloquium Scientific and Fundamental Aspects of the Galileo Programme, 4-6 December 2013, Prague, Czech Republic. PDF.
Vaclavovic P and Dousa J (2013), Anubis – a tool for quality check of multi-GNSS observation and navigation data In: 4th International Colloquium Scientific and Fundamental Aspects of the Galileo Programme, 4-6 December 2013, Prague, Czech Republic. PDF.
The G-Nut project was initiated in 2011 at Geodetic Observatory Pecny, RIGTC
for implementing core software library in order to support developments of various end-user applications.
The motivations for the project could be summarized as follows:
The G-Nut library is written in C++ taking advantages of object-oriented design and multi-thread processing. It is designed primarily for Linux operating systems and providing command-line applications since it is usually well suitable for scientific purposes. Some other platforms including Windows will be supported in near future. The library implementation is independent of any large software framework needed for the developing Graphical User Interface (GUI). However, the G-Nut initially exploited the Boost library Boost for a platform independent multi-thread implementation, which dependence has been removed for specific applications. Matrix representation and factorization methods are handled using New-Mat 09 matrix library developed by Davis (2009) within the G-Nut library. The pugixml light-weight C++ XML processing library by Kapoulkine (2012) is used for parsing XML configurations. The XML mark-up language was selected for the library classes as well as for end-user application settings due to its high flexibility, ease extension and support by various other editing and viewing user-tools.
Main characteristics are summarized as follows:
First applications derived from the G-Nut library are based on the Precise Point Positioning technique. The post-processing as well as real-time processing has been implemented supporting static or kinematic positioning solutions. A real-time example is shown in the figure. The BKG Ntrip Client (BNC) is currently used as feeding engine for the raw real-time GNSS data and corrections streams (to be revised in future). In the offline mode, the RINEX data are processed with support of precise orbits in SP3 format, satellite clocks in RINEXC format, PCO+PCV models in ATX format and ocean tide loading in BLQ format.
|
|
The following applications were finished for a beta (lite-version) releases:
Other tools:
The development has been focused on a core library and the first PPP solution. In future, a network solution based on undifferenced observation processing for serving regional/global products are foreseen based on the G-Nut library as well as support of real-time/offline processing and supporting multi-GNSS constellations. The application currently available for download are available via left menu.
|
|
File and stream IO operations are represented using a virtual gio class which can be replaced in run time by an appropriate inherited class. In real-time this is represented by gtcp (TCP) implementation and gntrip (NTRIP) implementation (which is derived from the gtcp by re-implementing the initialization procedure for an authentication. Such implementation supports both real-time and post-processing approaches in a unique way for all user applications. The internal buffer of gio class supports the handling ASCII as well as BINARY data.
Additional special file classes - giof, glog and gxtr were implemented for additional IO operations providing time-specific file-masks, generic logging, summary extractions etc. The giof is also used internally in gio class for store/provide data between data streams and raw file. These are applied e.g. for logging stream content in ntrip-client or feeding data input in ntrip-client. The basic scheme of all IO classes is plotted in the figure (grey backgrounds).
If input data decoding (or output data encoding) is required, the gio object (or correctly its inherited object) is linked with any object derived from the generic gcoder class in order to provide specific decoder or encoder. All gcoders supports both stream and file IO operations while the main difference typically consists in handling of header and data parts. This is done separately in each decoder/encoder classes. The header operations are usually active only in the gfile class.
All encoders/decoders are derived from a single virtual gcoder representing various data, models or products formats and are plot in figure with a blue background. When gio instance is called with the decoder (encoder) capability, it needs an access to the relevant data structure which are plotted with a green background the figure left (bottom) and on the next page (figure 'data structure').
Figure left (bottom) shows the strategy to implement access to input data and products as well as output results. While post-processing solutions are based on files, real-time processing requires continuous data/products streams. In the first approach files could be read at once before the processing start up, but the second approach requires buffered input/output operations maintained during the whole run of the processing without disruptions of streams. Any operation on continuous streams could be handled using either with blocking or non-blocking access. The former is easier to implement, but requires a multi-thread application where each continuous stream is handled by an individual thread. The latter can be used also in a single thread application. By designing relevant classes as thread-safe objects within the G-Nut, both approaches are generally supported.
The main virtual base gdata class (dark grey background) represents any data, model or product classes either as self-contained data/product elements or their containers. This class provides a common mutex, glog pointer for common and multi-thread logging and data type or group identification, which is later defined in each derived class.
Self-contained data/products elements (pink backgrounds) provides independent data such as e.g. all observation for a single station, satellite navigation message, RTCM position corrections, polynomials of precise ephemeris valid over a specific time, etc.
The containers (green backgrounds) are usually apply maps defined in a way to easy find the relevant self-contained element (pink backgrounds). In some classes (e.g. gallnav, gallprec) the cache is implemented to speed up the searching procedure, which is always done through an internal (find) function returning a pointer to specific data/product element.
|
References
Dousa J, Vaclavovic P (2014) Real-time zenith tropospheric delays in support of numerical weather prediction applications. Advances in Space Research (2014), Vol 53, No 9, pp 1347-1358, doi:10.1016/j.asr.2014.02.021, PDF.
Vaclavovic P, Dousa J (2014), G-Nut/Anubis - open-source tool for multi-GNSS data monitoring, In: IAG Symposia Series, Springer, Vol. 143, (accepted), PDF.
Vaclavovic P, Dousa J, Gyori G (2013), G-Nut software library - state of development and first results, Acta Geodynamica at Geomaterialia, pp 431-436, Vol. 10, No. 4 (172), doi:10.13168/AGG.2013.0042. PDF (or, alternatively, here).
Dousa J and Vaclavovic P (2013), Real-time ZTD estimates base on Precise Point Positioning and IGS real-time orbit and clock products, In: 4th International Colloquium Scientific and Fundamental Aspects of the Galileo Programme, 4-6 December 2013, Prague, Czech Republic. PDF.
Vaclavovic P and Dousa J (2013), Anubis – a tool for quality check of multi-GNSS observation and navigation data In: 4th International Colloquium Scientific and Fundamental Aspects of the Galileo Programme, 4-6 December 2013, Prague, Czech Republic. PDF.
Dousa J, Vaclavovic P and Gyori G (2013), G-Nut software library and its applications within context of EPOS (European Plate Observing System), EGU 2013 General Assembly, 7-12 April 2013, Vienna, Austira. PDF.