mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2026-01-30 06:40:19 +00:00
Add reading of RINEX 4 navigation files More robust finding of RINEX obs files when --use-obs is set Add type hints to some functions for improved documentation and readability Improve reading of RINEX obs files Make labels more transparent and colorful Update documentation
3.9 KiB
3.9 KiB
GNSS Skyplot utility
A Python script that generates polar skyplots from RINEX navigation files, showing satellite visibility over time.
Features
- Processes RINEX navigation files.
- Calculates satellite positions using broadcast ephemeris.
- Plots satellite tracks in azimuth-elevation coordinates.
- Customizable observer location.
- Color-codes satellites by constellation (GPS, Galileo, GLONASS, BeiDou).
- Elevation mask set to 5°, configurable via the
--elev-maskoptional argument. - Outputs high-quality image in PDF format. EPS, PNG, and SVG formats are also
available via the
--formatoptional argument. - Non-interactive mode for CI jobs with the
--no-showoptional argument. - Constellations to plot can be configured via the
--systemoptional argument. - Optionally, it uses the corresponding RINEX observation file to limit the plot
to the receiver observation time via the
--use-obsoptional argument.- If this argument is set, the tool looks for a matching file following standard RINEX naming conventions, and uses it if found.
Requirements
- Python 3.6+
- Required packages:
numpymatplotlib
Usage
Basic Command
./skyplot.py <RINEX_FILE> [LATITUDE] [LONGITUDE] [ALTITUDE]
[--elev-mask ELEV_MASK]
[--format {pdf,eps,png,svg}]
[--no-show]
[--system SYSTEM [SYSTEM ...]]
[--use-obs]
Arguments
| Argument | Type | Units | Description | Default |
|---|---|---|---|---|
RINEX_NAV_FILE |
Required | - | RINEX nav file path | - |
LATITUDE |
Optional | degrees (°) | North/South position | 41.275°N |
LONGITUDE |
Optional | degrees (°) | East/West position | 1.9876°E |
ALTITUDE |
Optional | meters (m) | Height above sea level | 80.0 m |
--elev-mask |
Optional | degrees (°) | Elevation mask | 5° |
--format |
Optional | - | Output {pdf,eps,png,svg} | |
--no-show |
Optional | - | Do not show plot | - |
--system |
Optional | - | Systems to plot | All |
--use-obs |
Optional | - | Use RINEX obs data | - |
Examples
- Skyplot from default location (Castelldefels, Spain):
./skyplot.py brdc0010.22n - Skyplot from custom location (New York City, USA):
./skyplot.py brdc0010.22n 40.7128 -74.0060 10.0 - Skyplot from custom location (Santiago, Chile) using receiver observation
time:
./skyplot.py brdc0010.22n -33.4592 -70.6453 520.0 --use-obs - Non-interactive mode (for CI jobs):
./skyplot.py brdc0010.22n -33.4592 -70.6453 520.0 --no-show - Only plot GPS and Galileo satellites:
or
./skyplot.py brdc0010.22n -33.4592 -70.6453 520.0 --system GPS Galileo./skyplot.py brdc0010.22n -33.4592 -70.6453 520.0 --system G E - Get a PNG file:
./skyplot.py brdc0010.22n -33.4592 -70.6453 520.0 --format png
Output
The script generates a PDF file named skyplot_<RINEX_FILE>.pdf (with dots in
<RINEX_FILE> replaced by _) with:
- Satellite trajectories over all epochs in the file.
- NAV file - ephemeris time range (default).
- Receiver observation time if
--use-obsis specified and the RINEX OBS file is found.
- Color-coded by constellation.
- Observer location in title.
- Time range in footer.
- Embedded fonts that display consistently across all systems and generate publication-ready figures.
- EPS, PNG, and SVG output formats available via
--format eps,--format png, and--format svg.