README
¶
gnss-inspect: GNSS Data Inspection Tool
gnss-inspect is a powerful, unified command-line tool for inspecting and analyzing GNSS (Global Navigation Satellite System) data in various formats. It provides detailed JSON output of parsed GNSS data structures, making it ideal for data analysis, debugging, and understanding GNSS data formats. This tool replaces the previous collection of individual dump_* utilities with a single, comprehensive solution.
Features
- Unified Interface: Single tool for all GNSS format inspection (replaces multiple
dump_*utilities) - Multi-Format Support: Inspect data from 12+ different GNSS formats
- JSON Output: All data is output as formatted JSON for easy parsing and analysis
- Streaming Support: Some formats support real-time streaming from network sources
- File Analysis: Detailed inspection of file headers, metadata, and data records
- Cross-Platform: Works on Linux, macOS, and Windows
Supported Formats
| Format | Command | Description | Network Support |
|---|---|---|---|
| BINEX | binex |
Binary Exchange format (UNAVCO) | ✅ TCP streaming |
| RINEX | rnx |
Receiver Independent Exchange format | ❌ |
| SBF | sbf |
Septentrio Binary Format | ❌ |
| RTCM3 | rtcm3 |
Radio Technical Commission for Maritime Services | ❌ |
| U-blox | ublox |
U-blox binary format | ❌ |
| U-blox Serial | ublox-serial |
U-blox serial format | ❌ |
| NovAtel ASCII | novatel-ascii |
NovAtel ASCII format | ❌ |
| NovAtel Binary | novatel-binary |
NovAtel binary format | ❌ |
| SP3 | sp3 |
Precise ephemeris format | ❌ |
| Bottle | bottle |
Bottle format (UNAVCO) | ❌ |
| FCN | fcn |
GLONASS Frequency Channel Numbers | ❌ |
Installation
From Source
# Clone the repository
git clone https://gitlab.com/earthscope/gnsstools.git
cd gnsstools
# Build the tool
go build -o gnss-inspect ./cmd/gnss-inspect
# Install globally (optional)
go install ./cmd/gnss-inspect
Prerequisites
- Go 1.19 or later
- Git
Usage
Basic Syntax
gnss-inspect <format> --file <path-to-file>
Examples
Inspect RINEX Observation File
gnss-inspect rnx --file SITE0010.25o
Inspect BINEX File with Decomposition
gnss-inspect binex --file data.bnx --decompose
Inspect BINEX Stream from Network
gnss-inspect binex --host localhost:2101
Inspect SBF File
gnss-inspect sbf --file data.sbf
Inspect RTCM3 File
gnss-inspect rtcm3 --file data.rtcm3
Output Format
All commands output JSON data to stdout, making it easy to pipe to other tools:
# Save output to file
gnss-inspect rnx --file data.25o > output.json
# Pipe to jq for filtering
gnss-inspect rnx --file data.25o | jq '.System'
# Count records
gnss-inspect rnx --file data.25o | jq -s length
Command Reference
binex
Inspect BINEX (Binary Exchange) format files and streams.
Options:
--file <path>: Path to BINEX file--host <address>: Network address for streaming (e.g.,localhost:2101)--offset <bytes>: Start reading from specific byte offset--decompose: Decompose frames into individual files
Supported Record Types:
0x00: Metadata0x01: Ephemeris data0x05: Position data0x7d: Receiver state0x7e: Ancillary site data0x7f: Observable data
rnx
Inspect RINEX (Receiver Independent Exchange) format files.
Options:
--file <path>: Path to RINEX file
Supported RINEX Types:
- O: Observation files (
.obs,.25o, etc.) - N: Navigation files (
.nav,.25n, etc.) - M: Meteorological files (
.met,.25m, etc.)
Supported Versions:
- RINEX 2.11
- RINEX 3.05
- RINEX 4.02
sbf
Inspect Septentrio Binary Format (SBF) files.
Options:
--file <path>: Path to SBF file
Supported Block Types:
4001: DOP4002: GALNav4006: PVTCartesian4007: PVTGeodetic4027: MeasEpoch- And many more...
rtcm3
Inspect RTCM3 (Radio Technical Commission for Maritime Services) files.
Options:
--file <path>: Path to RTCM3 file
Supported Message Types:
1077: GPS MSM 71087: GLONASS MSM 71097: Galileo MSM 71107: SBAS MSM 71117: QZSS MSM 71127: Beidou MSM 7
ublox / ublox-serial
Inspect U-blox binary and serial format files.
Options:
--file <path>: Path to U-blox file
Supported Message Types:
ubx-rxm-rawx: GNSS Raw Observation Data
novatel-ascii / novatel-binary
Inspect NovAtel ASCII and binary format files.
Options:
--file <path>: Path to NovAtel file
Supported Message Types:
140: RANGECMP (binary)
sp3
Inspect SP3 (Precise Ephemeris) format files.
Options:
--file <path>: Path to SP3 file
bottle
Inspect Bottle format files (UNAVCO).
Options:
--file <path>: Path to Bottle file
fcn
Inspect GLONASS Frequency Channel Numbers.
Options:
--file <path>: Path to FCN file
Advanced Usage
Piping and Redirection
# Filter GPS observations only
gnss-inspect rnx --file data.25o | jq 'select(.System == "GPS")'
# Extract specific fields
gnss-inspect rnx --file data.25o | jq '{System, SvID, ToC, Values}'
# Count observations by satellite
gnss-inspect rnx --file data.25o | jq '.SvID' | sort | uniq -c
# Save specific record types
gnss-inspect binex --file data.bnx | jq 'select(.RecordType == "0x7f")' > observations.json
Network Streaming
# Stream BINEX data from NTRIP caster
gnss-inspect binex --host caster.example.com:2101
# Stream with offset (skip first 1000 bytes)
gnss-inspect binex --file data.bnx --offset 1000
Data Analysis
# Analyze observation statistics
gnss-inspect rnx --file data.25o | jq -s '
group_by(.System) |
map({System: .[0].System, Count: length, Satellites: [.[].SvID] | unique | length})
'
# Extract time ranges
gnss-inspect rnx --file data.25o | jq -s '
{start: .[0].ToC, end: .[-1].ToC, duration: ((.[-1].ToC | fromdateiso8601) - (.[0].ToC | fromdateiso8601))}
'
Troubleshooting
Common Issues
"No such file or directory"
- Ensure the file path is correct
- Check file permissions
"Invalid format"
- Verify the file is in the expected format
- Check file integrity
"Network connection failed"
- Verify the host address and port
- Check firewall settings
- Ensure the service is running
Debug Mode
For detailed error information, check the stderr output:
gnss-inspect rnx --file data.25o 2> errors.log
Contributing
To contribute to gnss-inspect:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
This tool is part of the GNSS Tools project and is licensed under the Apache License, Version 2.0.
Related Tools
- gnss-convert: Convert GNSS data between formats
- gnss-inspect: Inspect and analyze GNSS data (this tool)
- Other tools: See the main project README for a complete list
Support
For issues and questions:
- Check the main project documentation
- Review existing issues on GitLab
- Create a new issue with detailed information about your problem
Documentation
¶
There is no documentation for this package.