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:
Carles Fernandez 2020-02-27 18:42:43 +01:00
parent f275091ba4
commit 17a7044add
7 changed files with 1347 additions and 676 deletions

1649
README.md

File diff suppressed because it is too large Load Diff

View File

@ -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.

View File

@ -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&aacute;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&aacute;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&aacute;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&aacute;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&ograve;gic de Telecomunicacions de
Catalunya](http://www.cttc.es "CTTC webpage").
This project is managed by
[Centre Tecnol&ograve;gic de Telecomunicacions de Catalunya](http://www.cttc.es "CTTC webpage").

View File

@ -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

View File

@ -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&aacute;ndez-Prades, J. Vil&agrave;-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&aacute;ndez-Prades, J. Vil&agrave;-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 twos 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 twos 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-SDRs 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-SDRs 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`.

View File

@ -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:

View File

@ -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).