Provided by: gpsd-clients_3.22-4ubuntu2_amd64 bug

NAME

       gpscsv - dump the JSON output from gpsd as CSV

SYNOPSIS

       gpscsv [-?] [--class MCLASS] [--count COUNT] [--cvt-isotime] [--debug LVL]
              [--device DEVICE] [--fields FIELDS] [--file FILE] [--header HEADER] [--help]
              [--host HOST] [--port PORT] [--seconds FIELDS] [--separator SEPARATOR] [--version]
              [-c MCLASS] [-D  LVL] [-f  FIELDS] [-h] [-n COUNT] [-V] [-x FIELDS]
              [host[:port[:device]]]

DESCRIPTION

       gpscsv is a simple Python program for reading a gpsd JSON data streams and outputting them
       in Comma Separated Values (CSV) format. It takes input from a specified gpsd and reports
       to standard output. The program runs until the gpsd dies, "-n COUNT" messages are
       processed, "-x SECONDS" have passed, or it is interrupted by ^C or other means.

       One good use of gpscsv is to create CSV files for use with the gnuplot program.

OPTIONS

       The program accepts the following options:

       -?, -h, --help
           Show help information and exit.

       -c MCLASS, --class MCLASS
           Select the JSON class messages of type MCLASS. Default is TPV. .

       --cvt-isotime
           Convert fields named "time" from ISO time to UNIX time.

       -D LVL, --debug LVL
           Set debug level to LVL. Default 0. Higher arguments than 0 produce more debug output.

       --device DEVICE
           The DEVICE on the gpsd to connect to. Defaults to all.

       -f FIELDS, -fields FIELDS
           The FIELDS from the JSON message to dump to the output. Set FIELD to empty ('') for
           all fields Default varies by CLASS.

       --file FILE
           Read JSON from FILE instead of from gpsd..

       --header HEADER
           Set header style to HEADER. 0 for no header, 1 output fields as header, 2 send fields
           as a comment ('#'). Defaults to 1.

       --host HOST
           Connect to the gpsd on HOST. Defaults to localhost.

       -n COUNT, --count COUNT
           Exit after outputting COUNT records. Set COUNT to 0 to disable. Default is 0

       --port PORT
           Use PORT to connect to gpsd. Defaults to 2947.

       --separator SEPARATOR
           Use SEPARATOR as the field separator. Default separator is a comma (',').

       -V, --version
           Show gpscsv version, and exit.

       -x SECONDS, --seconds SECONDS
           Exit after SECONDS number of seconds have passed. Set SECONDS to 0 to disable. Default
           is 0

EXAMPLES

       Some basic examples, do them in exact order shown:

       Grab 100 samples of time,lat,lon,altHAE:

             $ gpscsv -n 100 --cvt-isotime  > tpv.dat

       Grab 100 samples of time,epx,epy,epv,eph,sep

             $ gpscsv -n 100 --cvt-isotime -f time,epx,epy,epv,eph,sep > ep.dat

       Grab 100 samples of time,xdop,ydop,vdop,tdop,hdop,gdop,pdop

             $ gpscsv -n 100 --cvt-isotime -c SKY  > sky.dat

       Grab 100 samples of time,nSat,uSat

             $ gpscsv -n 100 --cvt-isotime -c SKY -f time,nSat,uSat  > sat.dat

       start gnuplot in interactive mode:

             $ gnuplot

       Some gnuplot housekeeping:

             # this are csv files
             gnuplot> set datafile separator ','
             # use the first line as title
             gnuplot> set key autotitle columnhead
             # X axis is UNIT time in seconds.
             gnuplot> set xdata time
             gnuplot> set timefmt "%s"

       Now to plot time vs latitude:

             gnuplot> plot 'tpv.dat' using 1:2

       Then to plot longitude and altHAE, in separate plots:

             gnuplot> plot 'tpv.dat' using 1:3
             gnuplot> plot 'tpv.dat' using 1:4

       Put both latitude and longitude on one plot:

             gnuplot> set y2tics
             gnuplot> plot 'tpv.dat' using 1:2, '' using 1:3 axes x1y2

       Plot epx, epy, epv, eph, and sep in one plot:

             gnuplot> plot 'ep.dat' using 1:2, '' using 1:3, \
                      '' using 1:4, '' using 1:5, '' using 1:6

       Plot all the DOPs on one plot:

             gnuplot> plot 'sky.dat' using 1:2, '' using 1:3, '' using 1:4, \
                      '' using 1:5, '' using 1:6, '' using 1:7, '' using 1:8

       Plot nSat and uSat together:

             gnuplot> plot 'sat.dat' using 1:2, '' using 1:3

       Lat/lon scatter plot:

             # x is no longer time
             gnuplot> set xdata
             gnuplot> plot 'tpv.dat' using 3:2 title 'fix'

SEE ALSO

       gpsd(8),

AUTHOR

       Gary E. Miller <gem@rellim.com>.