6 December 2020
gpsdecode 1 The GPSD Project GPSD Documentation
gpsdecode decode GPS, RTCM or AIS streams into a readable format
`gpsdecode` -? --ais --decode --debug LVL --encode --help --json --minlength --nmea --split24 --types typelist --unscaled --verbose --version -c -d -D LVL -e -h -j -m -n -s -t typelist -u -v -V

## DESCRIPTION

This 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 in gpsd 8 ; 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 for applicable standards and known limitations of the decoding logic.

You can use this tool with nc 1 to examine AIS feeds from AIS pooling services, RTCM feeds from RTCM receivers or NTRIP broadcasters.

## 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

With the `-c, --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.

## SEE ALSO

gpsd 8 , gpsctl 1 , gpsdctl 8 , gps 1 , libgps 3 , libgpsmm 3 , gpsprof 1 , gpsfake 1 ,

## AUTHOR

Eric S. Raymond esr@thyrsus.com.