mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-01-07 16:00:35 +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>
|
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.
|
## GPS L2C and L5
|
||||||
- [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.
|
|
||||||
|
|
||||||
|
- [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.
|
You could find useful the utility program
|
||||||
- [gal_iono_model.xsd](./gal_iono_model.xsd) - Galileo ionospheric model parameters.
|
[rinex2assist](https://github.com/gnss-sdr/gnss-sdr/tree/next/src/utils/rinex2assist)
|
||||||
- [gal_utc_model.xsd](./gal_utc_model.xsd) - Galileo UTC model parameters.
|
for the generation of compatible XML files from recent, publicly available RINEX
|
||||||
- [gal_almanac_map.xsd](./gal_almanac_map.xsd) - Galileo almanac.
|
navigation data files.
|
||||||
|
|
||||||
-------
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
@ -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
|
# 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
|
VOLK_GNSSSDR is a sub-project of GNSS-SDR. This library provides a set of extra
|
||||||
of extra kernels that can be used stand-alone or in combination with
|
kernels that can be used stand-alone or in combination with VOLK's. Please see
|
||||||
VOLK's. Please see https://www.libvolk.org for documentation, source code,
|
https://www.libvolk.org for documentation, source code, and contact information
|
||||||
and contact information about the original VOLK library.
|
about the original VOLK library.
|
||||||
|
|
||||||
The boilerplate of this code was initially generated with
|
The boilerplate of this code was initially generated with `volk_modtool`, an
|
||||||
`volk_modtool`, an application provided by VOLK that creates the
|
application provided by VOLK that creates the skeleton that can then be filled
|
||||||
skeleton that can then be filled with custom kernels. Some modifications
|
with custom kernels. Some modifications were added to accommodate the
|
||||||
were added to accommodate the specificities of Global Navigation
|
specificities of Global Navigation Satellite Systems (GNSS) signal processing.
|
||||||
Satellite Systems (GNSS) signal processing. Those changes are clearly
|
Those changes are clearly indicated in the source code, and do not break
|
||||||
indicated in the source code, and do not break compatibility.
|
compatibility.
|
||||||
|
|
||||||
This library contains kernels of hand-written SIMD code for different
|
This library contains kernels of hand-written SIMD code for different
|
||||||
mathematical operations, mainly with 8-bit and 16-bit real and complex
|
mathematical operations, mainly with 8-bit and 16-bit real and complex data
|
||||||
data types, offering a platform/architecture agnostic version that will
|
types, offering a platform/architecture agnostic version that will run in all
|
||||||
run in all machines, plus other versions for different SIMD instruction
|
machines, plus other versions for different SIMD instruction sets. Then, the
|
||||||
sets. Then, the application `volk_gnsssdr_profile` runs some
|
application `volk_gnsssdr_profile` runs some iterations of all versions that
|
||||||
iterations of all versions that your machine can execute and annotates
|
your machine can execute and annotates which is the fastest, which will then be
|
||||||
which is the fastest, which will then be selected at runtime when
|
selected at runtime when executing GNSS-SDR. In this way, we can address at the
|
||||||
executing GNSS-SDR. In this way, we can address at the same time
|
same time [portability](https://gnss-sdr.org/design-forces/portability/) (by
|
||||||
[portability](https://gnss-sdr.org/design-forces/portability/) (by
|
creating executables that will run in nearly all processor architectures) and
|
||||||
creating executables that will run in nearly all processor
|
[efficiency](https://gnss-sdr.org/design-forces/efficiency/) (by providing
|
||||||
architectures) and
|
custom implementations specially designed to take advantage of the specific
|
||||||
[efficiency](https://gnss-sdr.org/design-forces/efficiency/) (by
|
processor that is running the code).
|
||||||
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)
|
These kernels have some specific features (_e.g._, saturation arithmetics) that
|
||||||
that are aimed to GNSS signal processing, but could make them not
|
are aimed to GNSS signal processing, but could make them not suitable for its
|
||||||
suitable for its general use in other applications. Check out the
|
general use in other applications. Check out the documentation generated by
|
||||||
documentation generated by Doxygen and the *generic* (that is, plain C)
|
Doxygen and the _generic_ (that is, plain C) implementation to see what each
|
||||||
implementation to see what each kernel is actually doing.
|
kernel is actually doing.
|
||||||
|
|
||||||
This figure shows the role of some VOLK_GNSSSDR kernels in the context
|
This figure shows the role of some VOLK_GNSSSDR kernels in the context of a GNSS
|
||||||
of a GNSS baseband processor:
|
baseband processor:
|
||||||
|
|
||||||
![Example of VOLK_GNSSSDR
|
![Example of VOLK_GNSSSDR
|
||||||
usage.](./docs/images/VOLK_GNSSSDR_Usage_Example.png)
|
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:
|
## How to build VOLK_GNSSSDR:
|
||||||
|
|
||||||
This library is automatically built and installed along with GNSS-SDR if
|
This library is automatically built and installed along with GNSS-SDR if it is
|
||||||
it is not found by CMake on your system at configure time.
|
not found by CMake on your system at configure time.
|
||||||
|
|
||||||
However, you can install and use VOLK_GNSSSDR kernels as you use VOLK's,
|
However, you can install and use VOLK_GNSSSDR kernels as you use VOLK's,
|
||||||
independently of GNSS-SDR.
|
independently of GNSS-SDR.
|
||||||
|
|
||||||
First, make sure that the required dependencies are installed in your
|
First, make sure that the required dependencies are installed in your machine:
|
||||||
machine:
|
|
||||||
|
|
||||||
~~~~~~
|
```
|
||||||
$ sudo apt-get install cmake python3-mako python3-six libboost-dev \
|
$ sudo apt-get install cmake python3-mako python3-six libboost-dev \
|
||||||
libboost-filesystem-dev libboost-system-dev
|
libboost-filesystem-dev libboost-system-dev
|
||||||
~~~~~~
|
```
|
||||||
|
|
||||||
Please note that if you are using a compiler supporting the C++17 standard
|
Please note that if you are using a compiler supporting the C++17 standard (for
|
||||||
(for instance, gcc >= 8.0), specifically the std::filesystem library, packages
|
instance, gcc >= 8.0), specifically the std::filesystem library, packages
|
||||||
`libboost-dev`, `libboost-filesystem-dev` and `libboost-system-dev` are no
|
`libboost-dev`, `libboost-filesystem-dev` and `libboost-system-dev` are no
|
||||||
longer required dependencies. The CMake script will detect that availability for
|
longer required dependencies. The CMake script will detect that availability for
|
||||||
you.
|
you.
|
||||||
@ -75,71 +72,70 @@ you.
|
|||||||
|
|
||||||
### Building on most x86 (32-bit and 64-bit) platforms
|
### 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
|
In order to build and install the library, go to the base folder of the source
|
||||||
source code and do:
|
code and do:
|
||||||
|
|
||||||
~~~~~~
|
```
|
||||||
$ mkdir build
|
$ mkdir build
|
||||||
$ cd build
|
$ cd build
|
||||||
$ cmake ..
|
$ cmake ..
|
||||||
$ make
|
$ make
|
||||||
$ sudo make install
|
$ sudo make install
|
||||||
~~~~~~
|
```
|
||||||
|
|
||||||
That's it!
|
That's it!
|
||||||
|
|
||||||
Before its first use, please execute `volk_gnsssdr_profile` to let
|
Before its first use, please execute `volk_gnsssdr_profile` to let your system
|
||||||
your system know which is the fastest available implementation. This
|
know which is the fastest available implementation. This only has to be done
|
||||||
only has to be done once:
|
once:
|
||||||
|
|
||||||
~~~~~~
|
```
|
||||||
$ volk_gnsssdr_profile
|
$ volk_gnsssdr_profile
|
||||||
~~~~~~
|
```
|
||||||
|
|
||||||
From now on, GNSS-SDR (and any other program of your own that makes use
|
From now on, GNSS-SDR (and any other program of your own that makes use of
|
||||||
of VOLK_GNSSSDR) will benefit from the acceleration provided by SIMD
|
VOLK_GNSSSDR) will benefit from the acceleration provided by SIMD instructions
|
||||||
instructions available in your processor.
|
available in your processor.
|
||||||
|
|
||||||
The execution of `volk_gnsssdr_profile` can be set automatically
|
The execution of `volk_gnsssdr_profile` can be set automatically after building,
|
||||||
after building, leaving your system ready to use:
|
leaving your system ready to use:
|
||||||
|
|
||||||
~~~~~~
|
```
|
||||||
$ cmake -DENABLE_PROFILING=ON ../
|
$ cmake -DENABLE_PROFILING=ON ../
|
||||||
$ make
|
$ make
|
||||||
$ sudo make install
|
$ sudo make install
|
||||||
~~~~~~
|
```
|
||||||
|
|
||||||
|
|
||||||
### Building on Raspberry Pi and other ARM boards
|
### Building on Raspberry Pi and other ARM boards
|
||||||
|
|
||||||
To build for these boards you need specify the correct CMake toolchain file for
|
To build for these boards you need specify the correct CMake toolchain file for
|
||||||
best performance.
|
best performance.
|
||||||
|
|
||||||
* Raspberry Pi 4: `arm_cortex_a72_hardfp_native.cmake`
|
- Raspberry Pi 4: `arm_cortex_a72_hardfp_native.cmake`
|
||||||
* Raspberry Pi 3: `arm_cortex_a53_hardfp_native.cmake`
|
- Raspberry Pi 3: `arm_cortex_a53_hardfp_native.cmake`
|
||||||
|
|
||||||
Example for Raspberry Pi 4:
|
Example for Raspberry Pi 4:
|
||||||
|
|
||||||
~~~~~~
|
```
|
||||||
$ mkdir build && cd build
|
$ mkdir build && cd build
|
||||||
$ cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/arm_cortex_a72_hardfp_native.cmake ..
|
$ cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/arm_cortex_a72_hardfp_native.cmake ..
|
||||||
$ make
|
$ make
|
||||||
$ make test
|
$ make test
|
||||||
$ sudo make install
|
$ sudo make install
|
||||||
$ volk_gnsssdr_profile
|
$ volk_gnsssdr_profile
|
||||||
~~~~~~
|
```
|
||||||
|
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
If you use VOLK_GNSSSDR in your research and/or software, please cite
|
If you use VOLK_GNSSSDR in your research and/or software, please cite the
|
||||||
the following paper:
|
following paper:
|
||||||
|
|
||||||
* C. Fernández-Prades, J. Arribas, P. Closas, [*Accelerating
|
- C. Fernández-Prades, J. Arribas, P. Closas,
|
||||||
GNSS Software Receivers*](https://zenodo.org/record/266493), in Proc. of the
|
[_Accelerating GNSS Software Receivers_](https://zenodo.org/record/266493), in
|
||||||
29th International Technical Meeting of the Satellite Division of The Institute
|
Proc. of the 29th International Technical Meeting of the Satellite Division of
|
||||||
of Navigation (ION GNSS+ 2016), pp. 44-61, Portland, Oregon, September 12-16, 2016.
|
The Institute of Navigation (ION GNSS+ 2016), pp. 44-61, Portland, Oregon,
|
||||||
doi: [10.33012/2016.14576](https://doi.org/10.33012/2016.14576)
|
September 12-16, 2016. doi:
|
||||||
|
[10.33012/2016.14576](https://doi.org/10.33012/2016.14576)
|
||||||
|
|
||||||
BibTeX entry:
|
BibTeX entry:
|
||||||
|
|
||||||
@ -156,20 +152,18 @@ note = {{doi}: 10.33012/2016.14576}
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Citations are useful for the continued development and maintenance of
|
Citations are useful for the continued development and maintenance of the
|
||||||
the library.
|
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.
|
||||||
|
|
||||||
___
|
This project is managed by
|
||||||
|
[Centre Tecnològic de Telecomunicacions de Catalunya](http://www.cttc.es "CTTC webpage").
|
||||||
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").
|
|
||||||
|
@ -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
|
the canonical VOLK library, this is the tool. If you need to tailor
|
||||||
your own VOLK library for whatever reason, this is the tool.
|
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
|
The canonical VOLK library installs a volk.h and a libvolk.so. Your own library
|
||||||
own library will install volk_gnsssdr_$name.h and libvolk_gnsssdr_$name.so. Ya Gronk?
|
will install volk_$name.h and libvolk_$name.so.
|
||||||
|
Ya Gronk?
|
||||||
Good.
|
Good.
|
||||||
|
|
||||||
There isn't a substantial difference between the canonical VOLK
|
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]: # (
|
[comment]: # (
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
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>
|
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
|
$ 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
|
$ docker pull carlesfernandez/docker-gnsssdr:access18
|
||||||
@ -52,4 +66,5 @@ $ cp Figure2.pdf /home/access18/
|
|||||||
$ exit
|
$ 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]: # (
|
[comment]: # (
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
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>
|
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
|
### Building
|
||||||
|
|
||||||
Requirements:
|
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.
|
- [Armadillo](http://arma.sourceforge.net/): A C++ library for linear algebra
|
||||||
* [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.
|
and scientific computing. This program requires version 9.800 or higher. If
|
||||||
* [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.
|
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:
|
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 ..
|
$ cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON ..
|
||||||
@ -30,9 +43,13 @@ $ make obsdiff
|
|||||||
$ sudo make install
|
$ 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 ..
|
$ cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON -DENABLE_OWN_ARMADILLO=ON ..
|
||||||
@ -40,7 +57,9 @@ $ make obsdiff
|
|||||||
$ sudo make install
|
$ 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
|
### 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
|
$ 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
|
$ obsdiff -ref_rinex_obs=reference.20o
|
||||||
@ -58,6 +78,7 @@ $ obsdiff --ref_rinex_obs reference.20o
|
|||||||
```
|
```
|
||||||
|
|
||||||
For boolean flags, the possibilities are slightly different:
|
For boolean flags, the possibilities are slightly different:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ obsdiff --single_diffs
|
$ obsdiff --single_diffs
|
||||||
$ obsdiff --nosingle_diffs
|
$ obsdiff --nosingle_diffs
|
||||||
@ -67,7 +88,9 @@ $ obsdiff --single_diffs=false
|
|||||||
|
|
||||||
(as well as the single-dash variant on all of these).
|
(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:
|
Available command-line flags:
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
Rinex2assist
|
## Rinex2assist
|
||||||
------------
|
|
||||||
|
|
||||||
[comment]: # (
|
[comment]: # (
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
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>
|
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
|
### 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 ..
|
$ cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON ..
|
||||||
@ -21,19 +23,22 @@ $ make
|
|||||||
$ sudo make install
|
$ 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:
|
- The Boost Iostreams library can be installed through a package:
|
||||||
- In Debian / Ubuntu: `sudo apt-get install libboost-iostreams-dev`
|
- In Debian / Ubuntu: `sudo apt-get install libboost-iostreams-dev`
|
||||||
- In Fedora / CentOS: `sudo yum install boost-iostreams`
|
- In Fedora / CentOS: `sudo yum install boost-iostreams`
|
||||||
- In OpenSUSE: `sudo zypper install libboost_iostreams-devel`
|
- In OpenSUSE: `sudo zypper install libboost_iostreams-devel`
|
||||||
- In Arch Linux: included in `boost-libs` package.
|
- In Arch Linux: included in `boost-libs` package.
|
||||||
- In macOS: included in Macports / Homebrew `boost` package.
|
- In macOS: included in Macports / Homebrew `boost` package.
|
||||||
* The program `uncompress` is available by default in most UNIX and GNU/Linux systems.
|
- The program `uncompress` is available by default in most UNIX and GNU/Linux
|
||||||
- In Fedora / CentOS: `sudo yum install ncompress`
|
systems.
|
||||||
- In OpenSUSE: `sudo zypper install ncompress`
|
- In Fedora / CentOS: `sudo yum install ncompress`
|
||||||
|
- In OpenSUSE: `sudo zypper install ncompress`
|
||||||
|
|
||||||
### Usage
|
### Usage
|
||||||
|
|
||||||
@ -43,16 +48,28 @@ The usage is as follows:
|
|||||||
$ rinex2assist /path/to/RINEX_nav_file
|
$ 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:
|
There are some servers available for downloading recent RINEX navigation files.
|
||||||
* NASA: [ftp://cddis.gsfc.nasa.gov/pub/gnss/data/hourly/](ftp://gssc.esa.int/gnss/data/hourly/)
|
For instance:
|
||||||
* 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/)
|
|
||||||
|
|
||||||
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:
|
Examples:
|
||||||
|
|
||||||
@ -72,8 +89,8 @@ Generated file: gal_utc_model.xml
|
|||||||
Generated file: gal_iono.xml
|
Generated file: gal_iono.xml
|
||||||
```
|
```
|
||||||
|
|
||||||
|
An example of GNSS-SDR configuration using ephemeris, UTC and ionospheric model
|
||||||
An example of GNSS-SDR configuration using ephemeris, UTC and ionospheric model parameters for GPS L1 and Galileo signals is shown below:
|
parameters for GPS L1 and Galileo signals is shown below:
|
||||||
|
|
||||||
```
|
```
|
||||||
GNSS-SDR.AGNSS_XML_enabled=true
|
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_iono_xml=gps_iono.xml
|
||||||
GNSS-SDR.AGNSS_gps_utc_model_xml=gps_utc_model.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_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
|
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