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.
-d option tells the program to decode
packets presented on standard input to standard output. This is the
-j explicitly sets the output dump format
to JSON (the default behavior).
-m option, dump minimum lengths for
each packet type in the input (ignoring comment packets). This is
probably of interest only to GSD developers.
-n enables dumping in generated
-e option option tells the program to
encode JSON on standard input to JSON on standard output. This option
is only useful for regression-testing of the JSON dumping and parsing
-s option option tells the program to report
AIS Type 24 sentence halves separately rather than attempting to
-t accepts 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 suppresses scaling of AIS data to float
quantities and text expansion of numeric codes. A dump with this
option is lossless.
-v enables dumping of textual packets
to output as they are received on input, immediately preceding
-c 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
-V option directs the program to emit its
version number, then exit.
-D option sets a debug verbosity level. It is
mainly of interest to developers.
-c 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
Eric S. Raymond