• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

NMEA Daten in CSV Datei konvertieren

moelski

Geocacher
Moin !

Ok hat nich direkt was mit Cachen zu tun, aber man möge mir verzeien :eek:ps:

Kann mir jemand sagen wie ich eine NMEA Datei in eine CSV Datei konvertieren kann?
Und zwar brauche ich Langitude/Longitude/Altitude.

Also in etwa so: 50,12332; 8,32112; 200,5

Kann mir da jemand einen Tip geben?

Greetz Moelski
 
OP
M

moelski

Geocacher
Nuja, ich suche eher sowas wie GPSBabel. 2 Klicks und fertig.

Weil bevor ich mit SED oder AWK anfangen würde, könnte ich mir auch gleich ne Anwendung in Delphi proggen.

Dennoch danke
 
Also, wenn das NMEA-File so aufgebaut ist:
Code:
$GPRMC,191410,A,4735.5634,N,00739.3538,E,0.0,0.0,181102,0.4,E,A*19
$GPRMB,A,9.99,L,,Exit,4726.8323,N,00820.4822,E,29.212,107.2,,V,A*69
$GPGGA,191410,4735.5634,N,00739.3538,E,1,04,4.4,351.5,M,48.0,M,,*45
$GPGSA,A,3,,,,15,17,18,23,,,,,,4.7,4.4,1.5*3F
$GPGSV,2,1,08,02,59,282,00,03,42,287,00,06,16,094,00,15,80,090,48*79
$GPGLL,4735.5634,N,00739.3538,E,191410,A,A*4A
$GPBOD,221.9,T,221.5,M,Exit,*6B
$GPVTG,0.0,T,359.6,M,0.0,N,0.0,K*47
$PGRME,24.7,M,23.5,M,34.1,M*1D
$PGRMZ,1012,f*36
$PGRMM,WGS 84*06
$HCHDG,170.4,,,0.4,E*03
$GPRTE,1,1,c,*37
...
Die Zeilen mit $GPGGA heraussuchen und dann die Felder 3 und 4, 5 und 6 sowie 10 in neue Datei schreiben:

Code:
awk -F, '/GPGGA/ {print $3, $4, $5, $6, $10}' nmea.file > csv.file
Bin etwas eingerostet, aber so in etwa sollte es aussehen, oder? Es fehlt halt nur noch der Trenner zwischen Grad und Minuten, aber der ist auch schnell drin.
 
Ich sitze gerade an einem Dienstrechner ohne awk, kann es daher nicht testen. Eventuell kann das einer der Mitleser mit Linuxrechner mal schnell testen?

Das -F, stellt das Komma als Feldtrenner ein, Feld 3/5 enthält die Breite/Länge, Feld 4/6 die Hemisphäre (kannst du eventuell weglassen) und Feld 10 die Höhe. Die Zeile sollte also
4735.5634,00739.3538, 351.5
erzeugen. 47 und 007 musst du dann noch abtrennen, sollten aber immer 2 bzw 3 Stellen breit sein.

Viel Erfolg.
 
OP
M

moelski

Geocacher
Moin !

Also so geht es ganz gut:
gawk -F, "/GPGGA/ {print $3, $5, $10}" "xxxxx.NMEA" > test.csv

Ich frage mich nur gerade wie ich direkt ein | zwischen die Werte schreiben lassen kann.
Habe schon {print $3, "|", $5, "|", $10} probiert, aber das will nicht.

Hat da jemand noch ne Idee?
 
OP
M

moelski

Geocacher
Moin !

Nö mit \| gehts auch nicht. Es muss auch kein \ sein
Ich hätte nur gerne zwischen den drei werten direkt einen Trenner.

Aber irgendwie will es nicht. Man bedenke auch das ich das unter Windows mache.
Aber auch mit "," oder sonstwas kriege ich es nicht hin. :hilfe:
 
Ist
gawk -F, "/GPGGA/ { OFS="," ; print $3, $5, $10}" "xxxxx.NMEA" > test.csv
oder
gawk -F, "/GPGGA/ {print ($3,"|", $5,"|", $10)}" "xxxxx.NMEA" > test.csv
besser? :???:
 
OP
M

moelski

Geocacher
Moin !

Leider nein :???:

gawk -F, "/GPGGA/ {print ($3,"|", $5,"|", $10)}" "xxxxx.NMEA" > test.csv
gawk: cmd. line:1: /GPGGA/ {print ($3,
gawk: cmd. line:1: ^ unexpected newline or end of string
'", $5,"' is not recognized as an internal or external command,
operable program or batch file.

gawk -F, "/GPGGA/ {OFS="," ; print $3, $5, $10}" "xxxxx.NMEA" > test.csv
gawk: /GPGGA/ {OFS=, ; print $3, $5, $10}
gawk: ^ syntax error
 
OP
M

moelski

Geocacher
Moin !

Ich habe mir jetzt doch eine kleine eigene Anwendung mit Filter geschrieben.
Und dazu gleich die Darstellung in 3D :roll:
 

Anhänge

  • TChart GPS 02.jpg
    TChart GPS 02.jpg
    73,2 KB · Aufrufe: 106

maierkurt

Geowizard
Konnte man das Modell in 300m Höhe übeehaupt noch sehen?
Interessantes Programm, kann man das irgendwie bekommen?

Gruß, maierkurt
 
Oben