GPSDECODE(1) GPSD Documentation GPSDECODE(1)

# [NAME](#NAME)

gpsdecode - decode GPS, RTCM or AIS streams into a readable format

# [SYNOPSIS](#SYNOPSIS)

**gpsdecode** \[OPTIONS]

**gpsdecode** -h

**gpsdecode** -V

# [DESCRIPTION](#DESCRIPTION)

**gpsdecode** tool is a batch-mode decoder for NMEA and various binary packet formats associated with GPS, AIS, and differential-correction services. It produces a JSON dump on standard output from binary on standard input. The JSON is the same format documented by **gpsd**; this tool uses the same decoding logic as **gpsd**, but with a simpler interface intended for batch processing of data files.

All sensor-input formats known to the GPSD project can be decoded by this tool. These include: NMEA, AIVDM (the NMEA-derived sentence format used by AIS, the marine Automatic Identification System), RTCM2, and all supported GPS binary formats (notably including SiRF). See [**gpsd**(8)](/man/os/gpsd/gpsd.8) for applicable standards and known limitations of the decoding logic.

You can use this tool with [**nc**(1)](/man/os/gpsd/nc.1) to examine AIS feeds from AIS pooling services, RTCM feeds from RTCM receivers or NTRIP broadcasters.

# [OPTIONS](#OPTIONS)

**-?**, **-h**, **--help**

Output a usage mssage, then exit.

**-c**, **--json**

Sets the AIS dump format to separate fields with an ASCII pipe symbol. Fields are dumped in the order they occur in the AIS packet. Numerics are not scaled (**-u** is forced). Strings are unpacked from six-bit to full ASCII

**-d**, **--decode**

Decode packets presented on standard input to standard output. This is the default behavior.

**-D LVL**, **--debug LVL**

Set the debug verbosity level to LVL. It is mainly of interest to for troubleshooting.

**-e**, **--encode**

Encode JSON on standard input to JSON on standard output. This option is only useful for regression-testing of the JSON dumping and parsing code.

**-j**, **--json**

Sets the output dump format to JSON (the default behavior).

**-m**, **--minlength**

Dump minimum lengths for each packet type in the input (ignoring comment packets). This is probably of interest only to GSD developers.

**-n**, **--nmea**

Dump the generated pseudo-NME0183.

**-s**, **--split24**

Report AIS Type 24 sentence halves separately rather than attempting to aggregate them.

**-t TYPES**, **--types TYPES**

A comma-separated list of numeric types. Packets with a numeric AIS, RTCM2, or RTCM3 type are passed through and output only if they match a type in the list. Packets of other kinds (in particular GPS packets) are passed through unconditionally.

**-u**, **--unsscaled**

Suppress scaling of AIS data to float quantities and text expansion of numeric codes. A dump with this option is lossless.

**-v**, **--verbose**

Dump textual packets to output as they are received on input, immediately preceding corresponding output.

**-V**, **--version**

Print version number, then exit.

# [AIS DSV FORMAT](#AIS_DSV_FORMAT)

With the **-c** or **--ais** option, dump lines are values of AIS payload fields, pipe-separated, in the order that they occur in the payload. Spans of fields expressing a date are emitted as an ISO8601 timestamp (look for colons and the trailing Z indicating Zulu/UTC time), and the 19-bit group of TDMA status fields found at the end of message types 1-4 are are dumped as a single unsigned integer (in hex preceded by "0x"). Unused regional-authority fields are also dumped (in hex preceded by "0x"). Variable-length binary fields are dumped as an integer bit length, followed by a colon, followed by a hex dump.

# [RETURN VALUES](#RETURN_VALUES)

**0**

on success.

**1**

if the action was unknown or the write to the control socket failed,

# [SEE ALSO](#SEE_ALSO)

[**gpsd**(8)](/man/os/gpsd/gpsd.8), [**gps**(1)](/man/os/gpsd/gps.1)

# [RESOURCES](#RESOURCES)

**Project web site:** &lt;https://gpsd.io/&gt;

# [COPYING](#COPYING)

This file is Copyright 2013 by the GPSD project  
SPDX-License-Identifier: BSD-2-clause

# [AUTHOR](#AUTHOR)

Eric S. Raymond

2026-08-30 GPSD, Version 3.27.5

---

Document: gpsdecode(1) from gpsd 3.27.5-r4 (Chainguard OS)
Source: https://gitlab.com/gpsd/gpsd
