gnss-inspect

command
v0.26.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 27, 2025 License: Apache-2.0 Imports: 21 Imported by: 0

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: Metadata
  • 0x01: Ephemeris data
  • 0x05: Position data
  • 0x7d: Receiver state
  • 0x7e: Ancillary site data
  • 0x7f: 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: DOP
  • 4002: GALNav
  • 4006: PVTCartesian
  • 4007: PVTGeodetic
  • 4027: 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 7
  • 1087: GLONASS MSM 7
  • 1097: Galileo MSM 7
  • 1107: SBAS MSM 7
  • 1117: QZSS MSM 7
  • 1127: 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:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

This tool is part of the GNSS Tools project and is licensed under the Apache License, Version 2.0.

  • 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

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL