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.
gpsfake to stream the ubx log into a gpsd instancegpsfake -1 -b -t -P 3000 /path/to/gnss_log.ubxgpsd isn't in the user's path, you may need to run gpsfake as root. This is the case on debian.-1 flag is important to make sure it doesn't loop. A client will get a single shot of the data.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. gpspipe to export it to gpsd jsongpspipe –json -o /path/to/gnss_log.jsongpsprofcat gnss_log.json | gpsprof -f polarused -T pngcairo -r > gnss_log_polarused.plotgnuplot to create an image from the plot datagnuplot < gnss_log_polarused.plot > gnss_log_polarused.pnggpsfake to stream it into a gpsd instancegpsfake -1 -b -t -P 3000 /path/to/nmea_gnss.loggpspipe to connect and stream the gpsd-processed json into a new log filegpspipe -w -o /path/to/gpsd_out.json localhost:3000gpsprofcat gpsd_out.json | gpsprof -f polarused -S “2025-03-02 19:46EST, 12hr” -t “NovAtel ProPak-v3-HP Polar (Used)” -r > temp.plotgnuplotgunplot < temp.plot > image.png