This repository contains a Golang module with packages for working with data types related to GNSS (Global Navigation Satellite System). It includes support for serialization and deserialization of GNSS data in various formats (e.g., BINEX, RINEX, RTCM, ...), as well as utility functions for handling GNSS-specific computations. Additionally, the repository provides several command-line utilities for interacting with GNSS data.
├── LICENSE
├── README.md
├── cmd
├── go.mod
├── go.sum
└── pkg
Packages
Encoding
- binex: BINEX deserialization.
- bottle: Bottle deserialization.
- fcn: Functions for retreiving GLONASS Fequency Channel Numbers.
- gnss: Core GNSS data types and utilities.
- met: Meteorologic data serialization and deserialization.
- novatel: NovAtel receiver format deserialization.
- pos: EarthScope's daily integrated position solution format.
- rinex: RINEX format serialization and deserialization.
- rtcm: RTCM3 serialization and deserialization.
- sbf: Septentrio Binary Format (SBF) serialization and deserialization.
- sinex: SINEX deserialization (todo).
- sp3: SP3 deserialization.
- tdb: TileDB serialization and deserialization.
- ublox: U-Blox serialization and deserialization.
- vaisala: Vaisala weather data deserialization.
Supported RINEX Message Types
Message Type |
Description |
Deserialization |
Serialization |
RINEX 2.11 Obs |
GNSS Observations |
✅ Supported |
✅ Supported |
RINEX 2.11 Nav |
GNSS Observations |
✅ Supported |
📝 To Do |
RINEX 2.11 Met |
GNSS Observations |
✅ Supported |
📝 To Do |
RINEX 3.05 Obs |
GNSS Observations |
✅ Supported |
✅ Supported |
RINEX 3.05 Nav |
GNSS Observations |
✅ Supported |
📝 To Do |
RINEX 3.05 Met |
GNSS Observations |
✅ Supported |
📝 To Do |
RINEX 4.01 Obs |
GNSS Observations |
✅ Supported |
✅ Supported |
RINEX 4.01 Nav |
GNSS Observations |
✅ Supported |
✅ Supported |
RINEX 4.01 Met |
GNSS Observations |
✅ Supported |
📝 To Do |
Supported BINEX Message Types
Message Type |
Description |
Deserialization |
Serialization |
4001 |
DOP |
✅ Supported |
✅ Supported |
4002 |
GALNav |
✅ Supported |
✅ Supported |
4006 |
PVTCartesian |
✅ Supported |
✅ Supported |
4007 |
PVTGeodetic |
✅ Supported |
✅ Supported |
4008 |
PVTSatCartesian |
✅ Supported |
✅ Supported |
4011 |
RAIMStatistics |
✅ Supported |
✅ Supported |
4012 |
SatVisibility |
✅ Supported |
✅ Supported |
4013 |
ChannelStatus |
✅ Supported |
✅ Supported |
4014 |
ReceiverStatus |
✅ Supported |
✅ Supported |
4027 |
MeasEpoch |
✅ Supported |
✅ Supported |
4044 |
PosCart |
✅ Supported |
✅ Supported |
4075 |
ASCIIIn |
✅ Supported |
✅ Supported |
5891 |
GPSNav |
✅ Supported |
✅ Supported |
5914 |
ReceiverTime |
✅ Supported |
✅ Supported |
Supported RTCM 3 Message Types
Message Type |
Description |
Deserialization |
Serialization |
1077 |
GPS MSM 7 |
✅ Supported |
✅ Supported |
1087 |
GLONASS MSM 7 |
✅ Supported |
✅ Supported |
1097 |
Galileo MSM 7 |
✅ Supported |
✅ Supported |
1107 |
SBAS MSM 7 |
✅ Supported |
✅ Supported |
1117 |
QZSS MSM 7 |
✅ Supported |
✅ Supported |
1127 |
Beidou MSM 7 |
✅ Supported |
✅ Supported |
Supported Novatel Binary Message Types
Message Type |
Description |
Deserialization |
Serialization |
140 |
RANGECMP |
✅ Supported |
📝 To Do |
Supported U-blox Binary Message Types
Message Type |
Description |
Deserialization |
Serialization |
ubx-rxm-rawx |
GNSS Raw Observation Data |
✅ Supported |
✅ Supported |
NTRIP
| Package | Description | Support |
| 'client' | NTRIP 2.0 Client | ✅ Supported |
Position
Package |
Description |
Support |
ssp |
Single Point Positioning |
🚧 Under Construction |
PubSub
Package |
Description |
Support |
pubsub |
Implements publish-subscribe mechanisms for GNSS data. |
✅ Supported |
Velocity
Package |
Description |
Support |
tdcp |
Time-Differenced Carrier Phase (TDCP) velocity estimation |
✅ Supported |
The cmd
directory contains command-line tools for working with supported GNSS data formats. Each subdirectory under cmd
represents a different tool. For example:
Installation
go get gitlab.com/earthscope/gnsstools
License
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright (C) 2023 Henry Berglund, EarthScope Data Services