mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-01-06 07:20:34 +00:00
Wrap README text into 80 character-length lines, so they are easier to read from the terminal.
Formatted by https://prettier.io/, options: --parser markdown --print-width 80 --prose-wrap always
This commit is contained in:
parent
f275091ba4
commit
17a7044add
@ -8,36 +8,45 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-FileCopyrightText: 2011-2020 Carles Fernandez-Prades <carles.fernandez@cttc.es>
|
||||
)
|
||||
|
||||
GNSS-SDR can read assistance data from [Extensible Markup Language (XML)](https://www.w3.org/XML/) files for faster [Time-To-First-Fix](https://gnss-sdr.org/design-forces/availability/#time-to-first-fix-ttff), and can store navigation data decoded from GNSS signals in the same format. This folder provides XML Schemas which describe those XML files structure.
|
||||
GNSS-SDR can read assistance data from
|
||||
[Extensible Markup Language (XML)](https://www.w3.org/XML/) files for faster
|
||||
[Time-To-First-Fix](https://gnss-sdr.org/design-forces/availability/#time-to-first-fix-ttff),
|
||||
and can store navigation data decoded from GNSS signals in the same format. This
|
||||
folder provides XML Schemas which describe those XML files structure.
|
||||
|
||||
[XSD (XML Schema Definition)](https://www.w3.org/XML/Schema) is a World Wide Web Consortium (W3C) recommendation that specifies how to formally describe the elements in an XML document.
|
||||
[XSD (XML Schema Definition)](https://www.w3.org/XML/Schema) is a World Wide Web
|
||||
Consortium (W3C) recommendation that specifies how to formally describe the
|
||||
elements in an XML document.
|
||||
|
||||
## GPS L1 C/A
|
||||
|
||||
GPS L1 C/A
|
||||
----------
|
||||
- [ephemeris_map.xsd](./ephemeris_map.xsd) - GPS NAV message ephemeris
|
||||
parameters.
|
||||
- [iono_model.xsd](./iono_model.xsd) - GPS NAV message ionospheric model
|
||||
parameters.
|
||||
- [utc_model.xsd](./utc_model.xsd) - GPS NAV message UTC model parameters.
|
||||
- [gps_almanac_map.xsd](./gps_almanac_map.xsd) - GPS NAV message almanac.
|
||||
|
||||
- [ephemeris_map.xsd](./ephemeris_map.xsd) - GPS NAV message ephemeris parameters.
|
||||
- [iono_model.xsd](./iono_model.xsd) - GPS NAV message ionospheric model parameters.
|
||||
- [utc_model.xsd](./utc_model.xsd) - GPS NAV message UTC model parameters.
|
||||
- [gps_almanac_map.xsd](./gps_almanac_map.xsd) - GPS NAV message almanac.
|
||||
## GPS L2C and L5
|
||||
|
||||
- [cnav_ephemeris_map.xsd](./cnav_ephemeris_map.xsd) - GPS CNAV message
|
||||
ephemeris parameters.
|
||||
|
||||
GPS L2C and L5
|
||||
--------------
|
||||
## Galileo
|
||||
|
||||
- [cnav_ephemeris_map.xsd](./cnav_ephemeris_map.xsd) - GPS CNAV message ephemeris parameters.
|
||||
- [gal_ephemeris_map.xsd](./gal_ephemeris_map.xsd) - Galileo ephemeris
|
||||
parameters.
|
||||
- [gal_iono_model.xsd](./gal_iono_model.xsd) - Galileo ionospheric model
|
||||
parameters.
|
||||
- [gal_utc_model.xsd](./gal_utc_model.xsd) - Galileo UTC model parameters.
|
||||
- [gal_almanac_map.xsd](./gal_almanac_map.xsd) - Galileo almanac.
|
||||
|
||||
---
|
||||
|
||||
Galileo
|
||||
-------
|
||||
Please check https://gnss-sdr.org/docs/sp-blocks/global-parameters/ for more
|
||||
information about the usage of XML files in GNSS-SDR.
|
||||
|
||||
- [gal_ephemeris_map.xsd](./gal_ephemeris_map.xsd) - Galileo ephemeris parameters.
|
||||
- [gal_iono_model.xsd](./gal_iono_model.xsd) - Galileo ionospheric model parameters.
|
||||
- [gal_utc_model.xsd](./gal_utc_model.xsd) - Galileo UTC model parameters.
|
||||
- [gal_almanac_map.xsd](./gal_almanac_map.xsd) - Galileo almanac.
|
||||
|
||||
-------
|
||||
|
||||
Please check https://gnss-sdr.org/docs/sp-blocks/global-parameters/ for more information about the usage of XML files in GNSS-SDR.
|
||||
|
||||
You could find useful the utility program [rinex2assist](https://github.com/gnss-sdr/gnss-sdr/tree/next/src/utils/rinex2assist) for the generation of compatible XML files from recent, publicly available RINEX navigation data files.
|
||||
You could find useful the utility program
|
||||
[rinex2assist](https://github.com/gnss-sdr/gnss-sdr/tree/next/src/utils/rinex2assist)
|
||||
for the generation of compatible XML files from recent, publicly available RINEX
|
||||
navigation data files.
|
||||
|
@ -10,41 +10,39 @@ SPDX-FileCopyrightText: 2011-2020 Carles Fernandez-Prades <carles.fernandez@cttc
|
||||
|
||||
# Welcome to VOLK_GNSSSDR, the Vector-Optimized Library of Kernels for GNSS-SDR
|
||||
|
||||
VOLK_GNSSSDR is a sub-project of GNSS-SDR. This library provides a set
|
||||
of extra kernels that can be used stand-alone or in combination with
|
||||
VOLK's. Please see https://www.libvolk.org for documentation, source code,
|
||||
and contact information about the original VOLK library.
|
||||
VOLK_GNSSSDR is a sub-project of GNSS-SDR. This library provides a set of extra
|
||||
kernels that can be used stand-alone or in combination with VOLK's. Please see
|
||||
https://www.libvolk.org for documentation, source code, and contact information
|
||||
about the original VOLK library.
|
||||
|
||||
The boilerplate of this code was initially generated with
|
||||
`volk_modtool`, an application provided by VOLK that creates the
|
||||
skeleton that can then be filled with custom kernels. Some modifications
|
||||
were added to accommodate the specificities of Global Navigation
|
||||
Satellite Systems (GNSS) signal processing. Those changes are clearly
|
||||
indicated in the source code, and do not break compatibility.
|
||||
The boilerplate of this code was initially generated with `volk_modtool`, an
|
||||
application provided by VOLK that creates the skeleton that can then be filled
|
||||
with custom kernels. Some modifications were added to accommodate the
|
||||
specificities of Global Navigation Satellite Systems (GNSS) signal processing.
|
||||
Those changes are clearly indicated in the source code, and do not break
|
||||
compatibility.
|
||||
|
||||
This library contains kernels of hand-written SIMD code for different
|
||||
mathematical operations, mainly with 8-bit and 16-bit real and complex
|
||||
data types, offering a platform/architecture agnostic version that will
|
||||
run in all machines, plus other versions for different SIMD instruction
|
||||
sets. Then, the application `volk_gnsssdr_profile` runs some
|
||||
iterations of all versions that your machine can execute and annotates
|
||||
which is the fastest, which will then be selected at runtime when
|
||||
executing GNSS-SDR. In this way, we can address at the same time
|
||||
[portability](https://gnss-sdr.org/design-forces/portability/) (by
|
||||
creating executables that will run in nearly all processor
|
||||
architectures) and
|
||||
[efficiency](https://gnss-sdr.org/design-forces/efficiency/) (by
|
||||
providing custom implementations specially designed to take advantage of
|
||||
the specific processor that is running the code).
|
||||
mathematical operations, mainly with 8-bit and 16-bit real and complex data
|
||||
types, offering a platform/architecture agnostic version that will run in all
|
||||
machines, plus other versions for different SIMD instruction sets. Then, the
|
||||
application `volk_gnsssdr_profile` runs some iterations of all versions that
|
||||
your machine can execute and annotates which is the fastest, which will then be
|
||||
selected at runtime when executing GNSS-SDR. In this way, we can address at the
|
||||
same time [portability](https://gnss-sdr.org/design-forces/portability/) (by
|
||||
creating executables that will run in nearly all processor architectures) and
|
||||
[efficiency](https://gnss-sdr.org/design-forces/efficiency/) (by providing
|
||||
custom implementations specially designed to take advantage of the specific
|
||||
processor that is running the code).
|
||||
|
||||
These kernels have some specific features (*e.g.*, saturation arithmetics)
|
||||
that are aimed to GNSS signal processing, but could make them not
|
||||
suitable for its general use in other applications. Check out the
|
||||
documentation generated by Doxygen and the *generic* (that is, plain C)
|
||||
implementation to see what each kernel is actually doing.
|
||||
These kernels have some specific features (_e.g._, saturation arithmetics) that
|
||||
are aimed to GNSS signal processing, but could make them not suitable for its
|
||||
general use in other applications. Check out the documentation generated by
|
||||
Doxygen and the _generic_ (that is, plain C) implementation to see what each
|
||||
kernel is actually doing.
|
||||
|
||||
This figure shows the role of some VOLK_GNSSSDR kernels in the context
|
||||
of a GNSS baseband processor:
|
||||
This figure shows the role of some VOLK_GNSSSDR kernels in the context of a GNSS
|
||||
baseband processor:
|
||||
|
||||
![Example of VOLK_GNSSSDR
|
||||
usage.](./docs/images/VOLK_GNSSSDR_Usage_Example.png)
|
||||
@ -52,22 +50,21 @@ usage.](./docs/images/VOLK_GNSSSDR_Usage_Example.png)
|
||||
|
||||
## How to build VOLK_GNSSSDR:
|
||||
|
||||
This library is automatically built and installed along with GNSS-SDR if
|
||||
it is not found by CMake on your system at configure time.
|
||||
This library is automatically built and installed along with GNSS-SDR if it is
|
||||
not found by CMake on your system at configure time.
|
||||
|
||||
However, you can install and use VOLK_GNSSSDR kernels as you use VOLK's,
|
||||
independently of GNSS-SDR.
|
||||
|
||||
First, make sure that the required dependencies are installed in your
|
||||
machine:
|
||||
First, make sure that the required dependencies are installed in your machine:
|
||||
|
||||
~~~~~~
|
||||
```
|
||||
$ sudo apt-get install cmake python3-mako python3-six libboost-dev \
|
||||
libboost-filesystem-dev libboost-system-dev
|
||||
~~~~~~
|
||||
```
|
||||
|
||||
Please note that if you are using a compiler supporting the C++17 standard
|
||||
(for instance, gcc >= 8.0), specifically the std::filesystem library, packages
|
||||
Please note that if you are using a compiler supporting the C++17 standard (for
|
||||
instance, gcc >= 8.0), specifically the std::filesystem library, packages
|
||||
`libboost-dev`, `libboost-filesystem-dev` and `libboost-system-dev` are no
|
||||
longer required dependencies. The CMake script will detect that availability for
|
||||
you.
|
||||
@ -75,71 +72,70 @@ you.
|
||||
|
||||
### Building on most x86 (32-bit and 64-bit) platforms
|
||||
|
||||
In order to build and install the library, go to the base folder of the
|
||||
source code and do:
|
||||
In order to build and install the library, go to the base folder of the source
|
||||
code and do:
|
||||
|
||||
~~~~~~
|
||||
```
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ cmake ..
|
||||
$ make
|
||||
$ sudo make install
|
||||
~~~~~~
|
||||
```
|
||||
|
||||
That's it!
|
||||
|
||||
Before its first use, please execute `volk_gnsssdr_profile` to let
|
||||
your system know which is the fastest available implementation. This
|
||||
only has to be done once:
|
||||
Before its first use, please execute `volk_gnsssdr_profile` to let your system
|
||||
know which is the fastest available implementation. This only has to be done
|
||||
once:
|
||||
|
||||
~~~~~~
|
||||
```
|
||||
$ volk_gnsssdr_profile
|
||||
~~~~~~
|
||||
```
|
||||
|
||||
From now on, GNSS-SDR (and any other program of your own that makes use
|
||||
of VOLK_GNSSSDR) will benefit from the acceleration provided by SIMD
|
||||
instructions available in your processor.
|
||||
From now on, GNSS-SDR (and any other program of your own that makes use of
|
||||
VOLK_GNSSSDR) will benefit from the acceleration provided by SIMD instructions
|
||||
available in your processor.
|
||||
|
||||
The execution of `volk_gnsssdr_profile` can be set automatically
|
||||
after building, leaving your system ready to use:
|
||||
The execution of `volk_gnsssdr_profile` can be set automatically after building,
|
||||
leaving your system ready to use:
|
||||
|
||||
~~~~~~
|
||||
```
|
||||
$ cmake -DENABLE_PROFILING=ON ../
|
||||
$ make
|
||||
$ sudo make install
|
||||
~~~~~~
|
||||
|
||||
```
|
||||
|
||||
### Building on Raspberry Pi and other ARM boards
|
||||
|
||||
To build for these boards you need specify the correct CMake toolchain file for
|
||||
best performance.
|
||||
|
||||
* Raspberry Pi 4: `arm_cortex_a72_hardfp_native.cmake`
|
||||
* Raspberry Pi 3: `arm_cortex_a53_hardfp_native.cmake`
|
||||
- Raspberry Pi 4: `arm_cortex_a72_hardfp_native.cmake`
|
||||
- Raspberry Pi 3: `arm_cortex_a53_hardfp_native.cmake`
|
||||
|
||||
Example for Raspberry Pi 4:
|
||||
|
||||
~~~~~~
|
||||
```
|
||||
$ mkdir build && cd build
|
||||
$ cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/arm_cortex_a72_hardfp_native.cmake ..
|
||||
$ make
|
||||
$ make test
|
||||
$ sudo make install
|
||||
$ volk_gnsssdr_profile
|
||||
~~~~~~
|
||||
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
If you use VOLK_GNSSSDR in your research and/or software, please cite
|
||||
the following paper:
|
||||
If you use VOLK_GNSSSDR in your research and/or software, please cite the
|
||||
following paper:
|
||||
|
||||
* C. Fernández-Prades, J. Arribas, P. Closas, [*Accelerating
|
||||
GNSS Software Receivers*](https://zenodo.org/record/266493), in Proc. of the
|
||||
29th International Technical Meeting of the Satellite Division of The Institute
|
||||
of Navigation (ION GNSS+ 2016), pp. 44-61, Portland, Oregon, September 12-16, 2016.
|
||||
doi: [10.33012/2016.14576](https://doi.org/10.33012/2016.14576)
|
||||
- C. Fernández-Prades, J. Arribas, P. Closas,
|
||||
[_Accelerating GNSS Software Receivers_](https://zenodo.org/record/266493), in
|
||||
Proc. of the 29th International Technical Meeting of the Satellite Division of
|
||||
The Institute of Navigation (ION GNSS+ 2016), pp. 44-61, Portland, Oregon,
|
||||
September 12-16, 2016. doi:
|
||||
[10.33012/2016.14576](https://doi.org/10.33012/2016.14576)
|
||||
|
||||
BibTeX entry:
|
||||
|
||||
@ -156,20 +152,18 @@ note = {{doi}: 10.33012/2016.14576}
|
||||
}
|
||||
```
|
||||
|
||||
Citations are useful for the continued development and maintenance of
|
||||
the library.
|
||||
Citations are useful for the continued development and maintenance of the
|
||||
library.
|
||||
|
||||
---
|
||||
|
||||
VOLK_GNSSSDR was originally created by Andres Cecilia Luque in the framework of
|
||||
the
|
||||
[Summer Of Code In Space (SOCIS 2014)](https://socis.esa.int/about/ "SOCIS
|
||||
webpage")
|
||||
program organized by the European Space Agency, and then evolved and maintained
|
||||
by Carles Fernández-Prades and Javier Arribas. This software is released
|
||||
under the GNU General Public License version 3, see the file COPYING.
|
||||
|
||||
___
|
||||
|
||||
VOLK_GNSSSDR was originally created by Andres Cecilia Luque in the
|
||||
framework of the [Summer Of Code In Space (SOCIS
|
||||
2014)](https://socis.esa.int/about/ "SOCIS
|
||||
webpage") program organized by the European Space Agency, and then
|
||||
evolved and maintained by Carles Fernández-Prades and Javier
|
||||
Arribas. This software is released under the GNU General Public License
|
||||
version 3, see the file COPYING.
|
||||
|
||||
This project is managed by [Centre Tecnològic de Telecomunicacions de
|
||||
Catalunya](http://www.cttc.es "CTTC webpage").
|
||||
This project is managed by
|
||||
[Centre Tecnològic de Telecomunicacions de Catalunya](http://www.cttc.es "CTTC webpage").
|
||||
|
@ -18,8 +18,9 @@ modules. If you need to design or work with VOLK kernels away from
|
||||
the canonical VOLK library, this is the tool. If you need to tailor
|
||||
your own VOLK library for whatever reason, this is the tool.
|
||||
|
||||
The canonical VOLK library installs a volk_gnsssdr.h and a libvolk_gnsssdr.so. Your
|
||||
own library will install volk_gnsssdr_$name.h and libvolk_gnsssdr_$name.so. Ya Gronk?
|
||||
The canonical VOLK library installs a volk.h and a libvolk.so. Your own library
|
||||
will install volk_$name.h and libvolk_$name.so.
|
||||
Ya Gronk?
|
||||
Good.
|
||||
|
||||
There isn't a substantial difference between the canonical VOLK
|
||||
|
@ -1,5 +1,4 @@
|
||||
Continuous Reproducibility in GNSS Signal Processing
|
||||
----------------------------------------------------
|
||||
## Continuous Reproducibility in GNSS Signal Processing
|
||||
|
||||
[comment]: # (
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@ -9,25 +8,40 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-FileCopyrightText: 2011-2020 Carles Fernandez-Prades <carles.fernandez@cttc.es>
|
||||
)
|
||||
|
||||
This folder contains files required for the reproduction of the experiment proposed in:
|
||||
This folder contains files required for the reproduction of the experiment
|
||||
proposed in:
|
||||
|
||||
C. Fernández-Prades, J. Vilà-Valls, J. Arribas and A. Ramos, [*Continuous Reproducibility in GNSS Signal Processing*](https://ieeexplore.ieee.org/document/8331069/), IEEE Access, Vol. 6, No. 1, pp. 20451-20463, April 2018. DOI: [10.1109/ACCESS.2018.2822835](https://doi.org/10.1109/ACCESS.2018.2822835)
|
||||
C. Fernández-Prades, J. Vilà-Valls, J. Arribas and A. Ramos,
|
||||
[_Continuous Reproducibility in GNSS Signal Processing_](https://ieeexplore.ieee.org/document/8331069/),
|
||||
IEEE Access, Vol. 6, No. 1, pp. 20451-20463, April 2018. DOI:
|
||||
[10.1109/ACCESS.2018.2822835](https://doi.org/10.1109/ACCESS.2018.2822835)
|
||||
|
||||
The data set used in this paper is available at https://zenodo.org/record/1184601
|
||||
The data set used in this paper is available at
|
||||
https://zenodo.org/record/1184601
|
||||
|
||||
The sample format is `ibyte`: Interleaved (I&Q) stream of samples of type signed integer, 8-bit two’s complement number ranging from -128 to 127. The sampling rate is 3 MSps.
|
||||
The sample format is `ibyte`: Interleaved (I&Q) stream of samples of type signed
|
||||
integer, 8-bit two’s complement number ranging from -128 to 127. The sampling
|
||||
rate is 3 MSps.
|
||||
|
||||
The figure appearing in that paper can be automatically generated with the pipeline available at https://gitlab.com/gnss-sdr/gnss-sdr/pipelines
|
||||
The figure appearing in that paper can be automatically generated with the
|
||||
pipeline available at https://gitlab.com/gnss-sdr/gnss-sdr/pipelines
|
||||
|
||||
After the **Build** stage, which compiles the source code in several versions of the most popular GNU/Linux distributions, and the **Test** stage, which executes GNSS-SDR’s QA code, the **Deploy** stage creates and publishes an image of a software container ready to execute the experiment. This container is available by doing:
|
||||
After the **Build** stage, which compiles the source code in several versions of
|
||||
the most popular GNU/Linux distributions, and the **Test** stage, which executes
|
||||
GNSS-SDR’s QA code, the **Deploy** stage creates and publishes an image of a
|
||||
software container ready to execute the experiment. This container is available
|
||||
by doing:
|
||||
|
||||
```
|
||||
$ docker pull carlesfernandez/docker-gnsssdr:access18
|
||||
```
|
||||
|
||||
Then, in the **Experiment** stage, a job installs the image created in the previous step, grabs the data file, executes the experiment and produces a figure with the obtained results.
|
||||
Then, in the **Experiment** stage, a job installs the image created in the
|
||||
previous step, grabs the data file, executes the experiment and produces a
|
||||
figure with the obtained results.
|
||||
|
||||
The steps to reproduce the experiment in your own machine (with [Docker](https://www.docker.com) already installed and running) are:
|
||||
The steps to reproduce the experiment in your own machine (with
|
||||
[Docker](https://www.docker.com) already installed and running) are:
|
||||
|
||||
```
|
||||
$ docker pull carlesfernandez/docker-gnsssdr:access18
|
||||
@ -52,4 +66,5 @@ $ cp Figure2.pdf /home/access18/
|
||||
$ exit
|
||||
```
|
||||
|
||||
You will find the file `Figure2.pdf` in a newly created folder called `access18`.
|
||||
You will find the file `Figure2.pdf` in a newly created folder called
|
||||
`access18`.
|
||||
|
@ -1,5 +1,4 @@
|
||||
obsdiff
|
||||
-------
|
||||
## obsdiff
|
||||
|
||||
[comment]: # (
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@ -9,20 +8,34 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-FileCopyrightText: Javier Arribas, 2020. <jarribas@cttc.es>
|
||||
)
|
||||
|
||||
This program computes single-differences and double-differences from RINEX observation files.
|
||||
This program computes single-differences and double-differences from RINEX
|
||||
observation files.
|
||||
|
||||
### Building
|
||||
|
||||
Requirements:
|
||||
* [Armadillo](http://arma.sourceforge.net/): A C++ library for linear algebra and scientific computing. This program requires version 9.800 or higher. If your installed Armadillo version is older, see below.
|
||||
* [Gflags](https://github.com/gflags/gflags): A C++ library that implements command-line flags processing. If not found in your system, the latest version will be downloaded, built and linked for you at building time.
|
||||
* [GPSTK](https://github.com/SGL-UT/GPSTk): The GPS Toolkit, used for RINEX files reading. If not found in your system, the latest version will be downloaded, built and linked for you at building time.
|
||||
* [Matio](https://github.com/tbeu/matio): A MATLAB MAT File I/O Library, version >= 1.5.3. If it is not found, or an older version is found, CMake will download, build and link a recent version for you at building time.
|
||||
|
||||
- [Armadillo](http://arma.sourceforge.net/): A C++ library for linear algebra
|
||||
and scientific computing. This program requires version 9.800 or higher. If
|
||||
your installed Armadillo version is older, see below.
|
||||
- [Gflags](https://github.com/gflags/gflags): A C++ library that implements
|
||||
command-line flags processing. If not found in your system, the latest version
|
||||
will be downloaded, built and linked for you at building time.
|
||||
- [GPSTK](https://github.com/SGL-UT/GPSTk): The GPS Toolkit, used for RINEX
|
||||
files reading. If not found in your system, the latest version will be
|
||||
downloaded, built and linked for you at building time.
|
||||
- [Matio](https://github.com/tbeu/matio): A MATLAB MAT File I/O Library,
|
||||
version >= 1.5.3. If it is not found, or an older version is found, CMake will
|
||||
download, build and link a recent version for you at building time.
|
||||
|
||||
Optional:
|
||||
* [Gnuplot](http://www.gnuplot.info/): a portable command-line driven graphing utility.
|
||||
|
||||
This program is built along with GNSS-SDR if the options `ENABLE_UNIT_TESTING_EXTRA` or `ENABLE_SYSTEM_TESTING_EXTRA` are set to `ON` when calling CMake:
|
||||
- [Gnuplot](http://www.gnuplot.info/): a portable command-line driven graphing
|
||||
utility.
|
||||
|
||||
This program is built along with GNSS-SDR if the options
|
||||
`ENABLE_UNIT_TESTING_EXTRA` or `ENABLE_SYSTEM_TESTING_EXTRA` are set to `ON`
|
||||
when calling CMake:
|
||||
|
||||
```
|
||||
$ cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON ..
|
||||
@ -30,9 +43,13 @@ $ make obsdiff
|
||||
$ sudo make install
|
||||
```
|
||||
|
||||
The last step is optional. Without it, you still will get the executable at `../install/obsdiff`.
|
||||
The last step is optional. Without it, you still will get the executable at
|
||||
`../install/obsdiff`.
|
||||
|
||||
This program requires Armadillo 9.800 or higher. If the available Armadillo version is older, this program will not be built. If your local Armadillo installed version is older than 9.800, you can force CMake to download, build and link a recent one:
|
||||
This program requires Armadillo 9.800 or higher. If the available Armadillo
|
||||
version is older, this program will not be built. If your local Armadillo
|
||||
installed version is older than 9.800, you can force CMake to download, build
|
||||
and link a recent one:
|
||||
|
||||
```
|
||||
$ cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON -DENABLE_OWN_ARMADILLO=ON ..
|
||||
@ -40,7 +57,9 @@ $ make obsdiff
|
||||
$ sudo make install
|
||||
```
|
||||
|
||||
This later option requires [BLAS](http://www.netlib.org/blas/), [LAPACK](http://www.netlib.org/lapack/) and [GFortran](https://gcc.gnu.org/fortran/) already installed in your system.
|
||||
This later option requires [BLAS](http://www.netlib.org/blas/),
|
||||
[LAPACK](http://www.netlib.org/lapack/) and
|
||||
[GFortran](https://gcc.gnu.org/fortran/) already installed in your system.
|
||||
|
||||
### Usage
|
||||
|
||||
@ -48,7 +67,8 @@ This later option requires [BLAS](http://www.netlib.org/blas/), [LAPACK](http://
|
||||
$ obsdiff --ref_rinex_obs=reference.20o --test_rinex_obs=rover.20o
|
||||
```
|
||||
|
||||
There is some flexibility in how command-line flags may be specified. The following examples are equivalent:
|
||||
There is some flexibility in how command-line flags may be specified. The
|
||||
following examples are equivalent:
|
||||
|
||||
```
|
||||
$ obsdiff -ref_rinex_obs=reference.20o
|
||||
@ -58,6 +78,7 @@ $ obsdiff --ref_rinex_obs reference.20o
|
||||
```
|
||||
|
||||
For boolean flags, the possibilities are slightly different:
|
||||
|
||||
```
|
||||
$ obsdiff --single_diffs
|
||||
$ obsdiff --nosingle_diffs
|
||||
@ -67,7 +88,9 @@ $ obsdiff --single_diffs=false
|
||||
|
||||
(as well as the single-dash variant on all of these).
|
||||
|
||||
Despite this flexibility, we recommend using only a single form: `--variable=value` for non-boolean flags, and `--variable/--novariable` for boolean flags.
|
||||
Despite this flexibility, we recommend using only a single form:
|
||||
`--variable=value` for non-boolean flags, and `--variable/--novariable` for
|
||||
boolean flags.
|
||||
|
||||
Available command-line flags:
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
Rinex2assist
|
||||
------------
|
||||
## Rinex2assist
|
||||
|
||||
[comment]: # (
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@ -9,11 +8,14 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-FileCopyrightText: 2011-2020 Carles Fernandez-Prades <carles.fernandez@cttc.es>
|
||||
)
|
||||
|
||||
This program reads data from RINEX navigation files and generates XML files that can be read by GNSS-SDR as Assisted GNSS data.
|
||||
This program reads data from RINEX navigation files and generates XML files that
|
||||
can be read by GNSS-SDR as Assisted GNSS data.
|
||||
|
||||
### Building
|
||||
|
||||
This program is built along with GNSS-SDR if the options `ENABLE_UNIT_TESTING_EXTRA` or `ENABLE_SYSTEM_TESTING_EXTRA` are set to `ON` when calling CMake:
|
||||
This program is built along with GNSS-SDR if the options
|
||||
`ENABLE_UNIT_TESTING_EXTRA` or `ENABLE_SYSTEM_TESTING_EXTRA` are set to `ON`
|
||||
when calling CMake:
|
||||
|
||||
```
|
||||
$ cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON ..
|
||||
@ -21,19 +23,22 @@ $ make
|
||||
$ sudo make install
|
||||
```
|
||||
|
||||
The last step is optional. Without it, you will get the executable at `../install/rinex2assist`.
|
||||
The last step is optional. Without it, you will get the executable at
|
||||
`../install/rinex2assist`.
|
||||
|
||||
The building requires two extra dependencies: the Boost Iostreams library and the program `uncompress`:
|
||||
The building requires two extra dependencies: the Boost Iostreams library and
|
||||
the program `uncompress`:
|
||||
|
||||
* The Boost Iostreams library can be installed through a package:
|
||||
- In Debian / Ubuntu: `sudo apt-get install libboost-iostreams-dev`
|
||||
- In Fedora / CentOS: `sudo yum install boost-iostreams`
|
||||
- In OpenSUSE: `sudo zypper install libboost_iostreams-devel`
|
||||
- In Arch Linux: included in `boost-libs` package.
|
||||
- In macOS: included in Macports / Homebrew `boost` package.
|
||||
* The program `uncompress` is available by default in most UNIX and GNU/Linux systems.
|
||||
- In Fedora / CentOS: `sudo yum install ncompress`
|
||||
- In OpenSUSE: `sudo zypper install ncompress`
|
||||
- The Boost Iostreams library can be installed through a package:
|
||||
- In Debian / Ubuntu: `sudo apt-get install libboost-iostreams-dev`
|
||||
- In Fedora / CentOS: `sudo yum install boost-iostreams`
|
||||
- In OpenSUSE: `sudo zypper install libboost_iostreams-devel`
|
||||
- In Arch Linux: included in `boost-libs` package.
|
||||
- In macOS: included in Macports / Homebrew `boost` package.
|
||||
- The program `uncompress` is available by default in most UNIX and GNU/Linux
|
||||
systems.
|
||||
- In Fedora / CentOS: `sudo yum install ncompress`
|
||||
- In OpenSUSE: `sudo zypper install ncompress`
|
||||
|
||||
### Usage
|
||||
|
||||
@ -43,16 +48,28 @@ The usage is as follows:
|
||||
$ rinex2assist /path/to/RINEX_nav_file
|
||||
```
|
||||
|
||||
The argument is mandatory (the name of the RINEX navigation file). The name `gps_ephemeris.xml` is given to the output if GPS NAV data is fould. If the RINEX file contains Galileo data, the corresponding `gal_ephemeris.xml` file will be generated. The program is also able to extract parameters of the UTC and the Ionospheric models from the RINEX header, if available. They will be called `gps_utc_model.xml`, `gps_iono.xml`, `gal_utc_model.xml` and `gal_iono.xml`.
|
||||
The argument is mandatory (the name of the RINEX navigation file). The name
|
||||
`gps_ephemeris.xml` is given to the output if GPS NAV data is fould. If the
|
||||
RINEX file contains Galileo data, the corresponding `gal_ephemeris.xml` file
|
||||
will be generated. The program is also able to extract parameters of the UTC and
|
||||
the Ionospheric models from the RINEX header, if available. They will be called
|
||||
`gps_utc_model.xml`, `gps_iono.xml`, `gal_utc_model.xml` and `gal_iono.xml`.
|
||||
|
||||
There are some servers available for downloading recent RINEX navigation files. For instance:
|
||||
* NASA: [ftp://cddis.gsfc.nasa.gov/pub/gnss/data/hourly/](ftp://gssc.esa.int/gnss/data/hourly/)
|
||||
* ESA: [ftp://gssc.esa.int/gnss/data/hourly/](ftp://gssc.esa.int/gnss/data/hourly/)
|
||||
* UNAVCO: [ftp://data-out.unavco.org/pub/hourly/rinex/](ftp://data-out.unavco.org/pub/hourly/rinex/)
|
||||
There are some servers available for downloading recent RINEX navigation files.
|
||||
For instance:
|
||||
|
||||
Just make sure to pick up a recent file from a [station near you](http://www.igs.org/network).
|
||||
- NASA:
|
||||
[ftp://cddis.gsfc.nasa.gov/pub/gnss/data/hourly/](ftp://gssc.esa.int/gnss/data/hourly/)
|
||||
- ESA:
|
||||
[ftp://gssc.esa.int/gnss/data/hourly/](ftp://gssc.esa.int/gnss/data/hourly/)
|
||||
- UNAVCO:
|
||||
[ftp://data-out.unavco.org/pub/hourly/rinex/](ftp://data-out.unavco.org/pub/hourly/rinex/)
|
||||
|
||||
The program accepts either versions 2.xx or 3.xx for the RINEX navigation data file, as well as compressed files (ending in `.gz` or `.Z`).
|
||||
Just make sure to pick up a recent file from a
|
||||
[station near you](http://www.igs.org/network).
|
||||
|
||||
The program accepts either versions 2.xx or 3.xx for the RINEX navigation data
|
||||
file, as well as compressed files (ending in `.gz` or `.Z`).
|
||||
|
||||
Examples:
|
||||
|
||||
@ -72,8 +89,8 @@ Generated file: gal_utc_model.xml
|
||||
Generated file: gal_iono.xml
|
||||
```
|
||||
|
||||
|
||||
An example of GNSS-SDR configuration using ephemeris, UTC and ionospheric model parameters for GPS L1 and Galileo signals is shown below:
|
||||
An example of GNSS-SDR configuration using ephemeris, UTC and ionospheric model
|
||||
parameters for GPS L1 and Galileo signals is shown below:
|
||||
|
||||
```
|
||||
GNSS-SDR.AGNSS_XML_enabled=true
|
||||
@ -82,8 +99,9 @@ GNSS-SDR.AGNSS_gps_ephemeris_xml=gps_ephemeris.xml
|
||||
GNSS-SDR.AGNSS_gps_iono_xml=gps_iono.xml
|
||||
GNSS-SDR.AGNSS_gps_utc_model_xml=gps_utc_model.xml
|
||||
GNSS-SDR.AGNSS_gal_ephemeris_xml=gal_ephemeris.xml
|
||||
GNSS-SDR.AGNSS_gal_iono_xml=gal_iono.xml
|
||||
GNSS-SDR.AGNSS_gal_iono_xml=gal_iono.xml
|
||||
GNSS-SDR.AGNSS_gal_utc_model_xml=gal_utc_model.xml
|
||||
```
|
||||
|
||||
More info about the usage of AGNSS data [here](https://gnss-sdr.org/docs/sp-blocks/global-parameters/#assisted-gnss-with-xml-files).
|
||||
More info about the usage of AGNSS data
|
||||
[here](https://gnss-sdr.org/docs/sp-blocks/global-parameters/#assisted-gnss-with-xml-files).
|
||||
|
Loading…
Reference in New Issue
Block a user