====== raw GNSS to gpsprof ====== ''gpsprof'' is the best tool I have found so far to create skymaps from GNSS data streams. u-center has a nice sky map but it tends to crash out or get buggy after about 12 hours of data, and it's not possible to export the skymap to an image. ''gpsprof'' is designed to work with a live ''gpsd'' connection, but it will happily ingest historical data in the ''gpsd'' json format. Converting a ubx file captured from u-center, or raw from the GNSS device, to ''gpsd'' json is a trivial task with ''gpsfake''. ==== Resources ==== * [[https://gpsd.gitlab.io/gpsd/gpsprof.html|gpsprof man page]] * [[build_gpsd|build & install gpsd]] ==== Steps for ubx ==== - Capture a ubx log file with the necessary SV information (e.g. UBX-NAV-SAT) - Use ''gpsfake'' to stream the ubx log into a ''gpsd'' instance\\ ''gpsfake -1 -b -t -P 3000 /path/to/gnss_log.ubx'' - Note 1: if ''gpsd'' isn't in the user's ''path'', you may need to run ''gpsfake'' as root. This is the case on debian. - Note 2: the ''-1'' flag is important to make sure it doesn't loop. A client will get a single shot of the data. - Note 3: -P 3000 to run on port 3000 is necessary to deconflict other gpsd instances - Optional: run ''cgps'' to connect to the ''gpsd'' instance to verify that the data is working as expected. Since ''gpsfake'' was started in single shot mode, it will have to be restarted after ''cgps'' exists. - Run ''gpspipe'' to export it to ''gpsd'' json\\ ''gpspipe --json -o /path/to/gnss_log.json'' - Pipe the json file into ''gpsprof''\\ ''cat gnss_log.json | gpsprof -f polarused -T pngcairo -r > gnss_log_polarused.plot'' - Run ''gnuplot'' to create an image from the plot data\\ ''gnuplot < gnss_log_polarused.plot > gnss_log_polarused.png'' ==== Steps for nmea ==== - Capture a log file of an ASCII NMEA stream (see above notes if it's not working as expected) - Run ''gpsfake'' to stream it into a ''gpsd'' instance\\ ''gpsfake -1 -b -t -P 3000 /path/to/nmea_gnss.log'' - Run ''gpspipe'' to connect and stream the gpsd-processed json into a new log file\\ ''gpspipe -w -o /path/to/gpsd_out.json localhost:3000'' - Generate plots with ''gpsprof''\\ ''cat gpsd_out.json | gpsprof -f polarused -S "2025-03-02 19:46EST, 12hr" -t "NovAtel ProPak-v3-HP Polar (Used)" -r > temp.plot'' - -S - subtitle - -t - title - -r -replot (use json) - Generate images with ''gnuplot''\\ ''gunplot < temp.plot > image.png''