Intro
I'm doing first steps to create high precision GNSS tracks with a u-blox ZED-F9P multiband receiver. Currently I use gpspipe
(from gpsd
). Here is an example of real NMEA track:
{"class":"VERSION","release":"3.20","rev":"3.20","proto_major":3,"proto_minor":14}
{"class":"DEVICES","devices":[{"class":"DEVICE","path":"/dev/ttyACM0","driver":"u-blox","subtype":"SW EXT CORE 1.00 (f10c36),HW 00190000","subtype1":",ROM BASE 0x118B2060,FWVER=HPG 1.13,PROTVER=27.12,MOD=ZED-F9P,GPS;GLO;GAL;BDS,SBAS;QZSS","activated":"2021-04-01T11:50:12.016Z","flags":1,"native":1,"bps":9600,"parity":"N","stopbits":1,"cycle":1.00,"mincycle":0.25}]}
{"class":"WATCH","enable":true,"json":false,"nmea":true,"raw":0,"scaled":false,"timing":false,"split24":false,"pps":false}
$GPZDA,115012.00,01,04,2021,00,00*64
$GPGGA,115012.00,5103.5795,N,01703.3372,E,2,25,0.55,126.10,M,17.230,M,,*64
$GPRMC,115012.00,A,5103.5795,N,01703.3372,E,13.6069,164.911,010421,-4.8,W*63
$GPGSA,A,3,2,6,12,24,25,29,32,,,,,,1.0,0.6,0.9*30
$GPGBS,115012.00,25.105,44.195,0.968,,,,*4E
$GPZDA,115013.00,01,04,2021,00,00*65
$GPGGA,115013.00,5103.5760,N,01703.3387,E,2,25,0.55,126.08,M,17.230,M,,*6C
$GPRMC,115013.00,A,5103.5760,N,01703.3387,E,13.1715,164.703,010421,-4.8,W*64
$GPGSA,A,3,2,6,12,24,25,29,32,,,,,,1.0,0.6,0.9*30
$GPGBS,115013.00,25.105,44.195,0.967,,,,*40
$GPZDA,115014.00,01,04,2021,00,00*62
$GPGGA,115014.00,5103.5725,N,01703.3402,E,2,25,0.51,126.04,M,17.230,M,,*68
$GPRMC,115014.00,A,5103.5725,N,01703.3402,E,12.8877,165.760,010421,-4.8,W*6F
Then I filter points by minimal HDOP and by number of satellites and save file in GPX format:
gpsbabel -t -i nmea -f gpspipe_2021-04-01.nmea -x discard,hdop=2 -x discard,sat=12 -o gpx -F gpspipe_2021-04-01_hdop2_sat12.gpx
Task
I want to remove some "noise" in the radius of 100 meters from my start point. I tried such command:
gpsbabel -t -i gpx -f gpspipe_2021-04-01_hdop2_sat12.gpx -x radius,distance=0.1K,lat=51.XXXX,lon=17.XXXX,nosort,exclude -o gpx -F gpspipe_2021-04-01_filtered.gpx
Problem
But this command doesn't filter anything.
As I understand, I have to use this chain of filters:
gpsbabel -i gpx -f in.gpx \
-x transform,wpt=trk,del \
-x radius,distance=1.1K,lat=40.01,lon=10.001,nosort,exclude \
-x transform,trk=wpt,del \
-o gpx -F out.gpx
But this creates a lot of useless information for almost every trackpoint:
<name>WPT612</name>
<cmt>WPT612</cmt>
<desc>WPT612</desc>
Of course I can remove them by sed
or some other tools.
Question
Maybe there is a better way to filter out trackpoints and do not lose information and do not generate useless tags?
No solution with current GPSBabel code: https://github.com/gpsbabel/gpsbabel/issues/378