Cookies für Statistik und Werbung
Wir setzen Cookies für Statistik und Werbung ein, beides geht an Google. Wenn du ablehnst, ändert sich für dich sichtbar nichts.Zur Datenschutzseite
GPX kannst du hier kostenlos und ohne Konto in CSV umwandeln: Datei oben ablegen, und ein, zwei Sekunden später steht das Ergebnis zum Herunterladen bereit. Die Umwandlung läuft in deinem eigenen Browser, die Datei wird also nie hochgeladen — das klappt unter Windows, macOS und Linux ebenso wie auf iPhone und Android, und es funktioniert selbst dann noch, wenn du das Netz abschaltest.
Bis zu 100 Dateien auf einmal. Gemischte Formate sind kein Problem.
Sie werden nacheinander umgewandelt und kommen zusammen als ZIP zurück.
GPX in CSV
Wer als Selbstständiger ein Fahrtenbuch führt, kennt das Muster: Die GPS-App auf dem Handy zeichnet jede Fahrt sauber als GPX auf, aber die Kanzlei oder die eigene Auswertung fürs Finanzamt will am Ende eine Tabelle mit Datum, Strecke und den Eckpunkten der Fahrt — keine verschachtelte XML-Datei, die kaum ein Buchhaltungsprogramm einliest.
Genau diese Lücke schließt diese Umwandlung. Jeder aufgezeichnete Punkt wird zu einer Zeile, mit denselben sechs Spalten für jede Fahrt, sodass ein Monat aus zwanzig Einzelfahrten am Ende eine einzige, durchsuchbare Tabelle ergibt statt zwanzig unterschiedlich strukturierter Dateien.
Eine GPX-Datei ist verschachteltes XML. Ein `<trk>`-Element enthält ein oder mehrere `<trkseg>`-Elemente, jedes davon eine lange Liste von `<trkpt>`-Elementen mit Breiten- und Längengrad als Attribute sowie Höhe und Zeit als Kindelemente. Eine Tabelle kennt diese Verschachtelung nicht, also wird sie aufgelöst: Jeder Trackpunkt wird eine Zeile, in der Reihenfolge, in der das Gerät sie aufgezeichnet hat, und die Struktur darüber überlebt nur als zwei Spalten, die sagen, um welche Art Punkt es sich handelt und wie er hieß.
Dieses Auflösen ist der ganze Tausch. Man gewinnt eine Tabelle, die sich sortieren, filtern und auswerten lässt; man verliert die Möglichkeit, aus ihr wieder die ursprüngliche GPX-Datei mit ihrer Gruppierung zusammenzusetzen. Wer die GPX-Datei ohnehin aufhebt, verliert dabei nichts — eine zweistündige Fahrt mit einem Punkt pro Sekunde sind 7.200 Zeilen, die jede Tabellenkalkulation ohne Murren öffnet.
Die Kopfzeile lautet `type,name,latitude,longitude,elevation,time`, und eine siebte Spalte gibt es nicht. `type` ist entweder `track` oder `waypoint`. `name` ist der Name des Tracks oder des Wegpunkts, dem die Zeile gehört, in jeder zugehörigen Zeile wiederholt, damit ein Filter auf eine Fahrt ohne Nachschlagen funktioniert. `latitude` und `longitude` stehen in Dezimalgrad, `elevation` ist die Höhe in Metern genau so, wie die GPX-Datei sie angab, und `time` ist der Zeitstempel exakt wie aufgezeichnet.
Geschwindigkeit, Distanz und Steigung fehlen bewusst, obwohl sich alle drei berechnen ließen. Jede dieser Größen braucht eine Glättungsentscheidung — über wie viele Punkte gemittelt wird, welche Ausreißer verworfen werden —, und ein aus dieser Entscheidung erfundener Wert sieht in einer Tabelle identisch aus wie ein gemessener. Die Distanz zwischen zwei aufeinanderfolgenden Zeilen ist eine Formelzeile, sobald die Tabelle vorliegt, und dann liegt die Entscheidung sichtbar bei einem selbst.
Eine GPX-Datei teilt einen Track an jeder Stelle, an der das Gerät kurz das Signal verlor, und diese Grenzen zwischen `<trkseg>`-Blöcken fallen weg: Die Punkte kommen als ein durchgehender Lauf von Zeilen heraus, sodass eine Durchfahrt durch einen Tunnel nicht in zwei getrennte Datensätze zerfällt. Wer diese Lücken trotzdem finden will, sieht sie als Sprung in der `time`-Spalte zwischen zwei aufeinanderfolgenden Zeilen.
Routen werden genauso behandelt. Ein `<rte>`-Element ist eine geplante statt einer aufgezeichneten Linie, und seine Punkte erscheinen als `track`, weil eine Tabelle ehrlicherweise keine dritte Kategorie dafür hat. Wegpunkte sind anders und stehen zuerst, als `waypoint` markiert, jeweils mit ihrem eigenen Namen. Eine Datei mit einer Fahrt und zwölf gespeicherten Punkten liefert also zwölf Wegpunktzeilen, gefolgt von den Trackpunkten, per Filter auf die erste Spalte trennbar.
Sportuhren zeichnen häufig mehr als nur die Position auf. Herzfrequenz, Trittfrequenz, Temperatur und Leistung stehen in einem `<extensions>`-Block innerhalb jedes `<trkpt>`, meist unter Garmins TrackPointExtension-Namensraum. Diese Umwandlung liest Breite, Länge, `<ele>` und `<time>` und hört dort auf, sodass keiner dieser Werte in der CSV auftaucht und auch keine Spalte dafür angelegt wird.
Das lohnt sich zu wissen, bevor eine Auswertung darauf aufbaut, denn das Ergebnis wirkt vollständig, ist es aber nicht. Wer Sensordaten tatsächlich braucht, bekommt sie über keine Umwandlung auf dieser Seite in Tabellenform — dieselbe Einschränkung gilt für das TCX-Ziel aus demselben Grund. Ehrlicherweise bleibt dann nur, den Extensions-Block selbst auszulesen oder das Training direkt aus der Plattform zu exportieren, die es aufgezeichnet hat, meist mit einer CSV, die diese Spalten bereits mitbringt.
Breite und Länge werden mit genau sechs Nachkommastellen geschrieben, das entspricht rund elf Zentimetern am Äquator. Das ist keine willkürliche runde Zahl. Ein gewöhnlicher GPS-Empfänger hat im Freien einen Positionsfehler von mehreren Metern, unter Bäumen oder zwischen Gebäuden deutlich mehr — eine siebte oder achte Nachkommastelle beschreibt also den Empfänger und nicht den tatsächlichen Standort.
Die Folge: Eine GPX-Datei, deren Punkte mit der vollen Genauigkeit einer Fließkommazahl gespeichert wurden, kommt gerundet zurück, und ein Vergleich mit der Quelle zeigt Abweichungen ab der achten Nachkommastelle. Für eine aufgezeichnete Alltagsfahrt ist das eine Rundung von Rauschen. Für eine Vermessungsaufnahme wäre es ein echter Verlust, aber für solche Daten ist diese Umwandlung ohnehin nicht gedacht.
Zwei Dinge gehen typischerweise schief, wenn eine Koordinatentabelle per Doppelklick geöffnet wird. In einer deutschen Ländereinstellung mit Komma als Dezimaltrennzeichen liest Excel `48.137154` als Text statt als Zahl, und die ganze Breitengrad-Spalte steht linksbündig und ist für ein Diagramm nutzlos. Und die `time`-Spalte wird oft in die lokale Zeitzone umgedeutet, was einen UTC-Track lautlos um eine oder mehrere Stunden verschiebt.
Beides umgeht man, indem man die Datei importiert statt sie zu öffnen: Excels Textimport-Assistent lässt sich auf englisches Zahlenformat für die beiden Koordinatenspalten stellen, während die `time`-Spalte am sichersten als Text bleibt. In Python mit pandas stellt sich das Problem gar nicht erst — `read_csv` liest die Datei direkt, und `parse_dates=["time"]` erzeugt zeitzonenbewusste Zeitstempel, weil der Zeitversatz bereits in der Zeichenkette steht.
XML bezahlt seine Struktur in Byte. Bei einem synthetischen Track mit 7.200 Punkten, Höhe und Zeitstempel an jedem Punkt — zwei Stunden bei einer Aufzeichnung je Sekunde — liegt die GPX-Datei bei rund 950 KB, etwa 132 Byte je Punkt, größtenteils wiederholte `<trkpt>`-, `<ele>`- und `<time>`-Tags. Dieselben Punkte als CSV liegen bei rund 500 KB, knapp 70 Byte je Punkt, und dabei geht nichts verloren.
Keine der beiden Zahlen ist groß genug, um für sich allein den Ausschlag zu geben, und genau das ist der Punkt: Größe ist kein Grund für diese Umwandlung. Die kostenlose Obergrenze liegt bei 100 MB, und bei 132 Byte je Punkt fasst eine 100-MB-GPX-Datei etwa dreiviertel Million Trackpunkte — neun Tage durchgehende Aufzeichnung im Sekundentakt. Solche Dateien kommen vor, etwa eine ganze Saison zusammengeführter Fahrten, und sie wandeln sich um, wenn auch der Browser-Tab dabei spürbar arbeitet.
Jede hier umgewandelte Datei hat dieselben sechs Spalten in derselben Reihenfolge, ein Ordner voller Fahrten lässt sich also zusammenführen, indem die wiederholten Kopfzeilen entfernt werden — ein `pd.concat` über einen Datei-Glob, oder ein Zusammenfügen in der Tabellenkalkulation. Was der zusammengeführten Tabelle fehlt, ist eine Spalte, die zeigt, aus welcher Datei eine Zeile stammt, denn die `name`-Spalte trägt den Tracknamen, und viele Exporte lassen den auf einer Gerätevorgabe stehen oder lassen ihn ganz weg.
Am besten wird die Dateibezeichnung schon beim Einlesen jeder Datei als zusätzliche Spalte ergänzt, in pandas eine Zeile innerhalb der Schleife. Das lohnt sich vor dem Zusammenführen zu erledigen statt danach: Sind erst zwanzig Fahrten in einer Tabelle, unterscheidet nur noch der Zeitstempel zwei Fahrten, und zwei am selben Vormittag aufgezeichnete Strecken verschränken sich, sobald nach Zeit sortiert wird.
Das Einlesen und das Schreiben laufen beide in diesem Browser-Tab. Keine Anfrage trägt die GPX-Datei irgendwohin — nachprüfbar im Netzwerk-Tab während einer Umwandlung, und die Umwandlung funktioniert auch bei ausgeschalteter Verbindung, sobald die Seite einmal geladen ist. Das zählt hier mehr als bei den meisten anderen Umwandlungen dieser Seite.
Eine GPX-Datei ist kein Dokument über ein Thema, sondern eine Liste der genauen Orte, an denen man war, und der genauen Minuten. Der erste und der letzte Punkt einer Fahrt sind sehr oft die eigene Haustür, und ein für ein Fahrtenbuch geführter Nachweis mit Startadresse ist genau die Art Datenspur, die niemand versehentlich irgendwohin hochladen möchte. Die CSV ist dabei sogar zugänglicher als die Quelle, weil sie sich mit jeder Tabellenkalkulation öffnen lässt — sie gehört dorthin, wo auch die GPX-Datei liegt.
| GPX | CSV | |
|---|---|---|
| Vollständiger Name | GPS Exchange Format | Comma-Separated Values |
| Dateiendung | .gpx | .csv |
| Medientyp | application/gpx+xml | text/csv |
| Erstmals veröffentlicht | 2002 | 1972 |
| Herausgegeben von | Topografix | — |
| Spezifikation | GPX 1.1 | RFC 4180 |
| Lizenzlage | Offener Standard | Offener Standard |
| Heutiger Stand | Aktuell | Aktuell |
| Öffnet im Browser | Kein Browser | Kein Browser |
| Stattdessen erwogen | KML, TCX | XLSX, JSON, Parquet |
Die üblichen Programme überschneiden sich nicht: GPX öffnest du in Garmin BaseCamp, Strava und QGIS, CSV in Microsoft Excel, LibreOffice Calc und pandas — wer das Ergebnis bekommt, braucht also eines aus der zweiten Reihe.
Die beiden zielen auf verschiedene Arbeit: GPX auf Karten und die Sportaufzeichnung, CSV auf den Austausch zwischen Programmen. Das lohnt sich vorher abzuwägen — der Grund, aus dem es das eine gibt, ist meist der Grund, aus dem das andere unpraktisch ist.
GPX stammt von Topografix und wurde 2002 veröffentlicht. Festgehalten ist das in GPX 1.1 — lohnt sich zu kennen, wenn die Datei das Programm überleben soll, das sie geschrieben hat.
CSV stammt aus 1972, festgehalten in RFC 4180. Microsoft Excel, LibreOffice Calc und pandas lesen das Format.
CSV wurde 1972 veröffentlicht, GPX 2002. Das ältere ist in der Regel die sicherere Datei zum Weitergeben, das jüngere erledigt dieselbe Aufgabe mit weniger Bytes.
Nein. Diese Umwandlung läuft vollständig in deinem Browser, die Datei verlässt dein Gerät also nicht. Du kannst das selbst nachprüfen: Öffne den Netzwerk-Tab der Entwicklerwerkzeuge und wandle etwas um. Zu sehen sind die Seite selbst und die Statistik- und Werbeanfragen, mit denen dieser Dienst bezahlt wird — und keine einzige, die deine Datei trägt.
Ja. Kein Konto, kein Wasserzeichen und kein Tageskontingent, das sich verbraucht — es läuft auf deinem eigenen Rechner, du darfst also so oft wiederkommen, wie du willst. Dateien bis 100 MB verarbeitet der Browser, 100 auf einmal.
GPX und CSV beschreiben Inhalte auf grundverschiedene Weise. Die Umwandlung ist deshalb ein Nachbau und keine Kopie: originalgetreu, aber nicht Byte für Byte dasselbe. Eine Zeile je aufgezeichnetem Punkt. Alles, was die Datei über Position, Höhe und Zeit hinaus enthielt, steht in einer Tabelle nicht mehr.
Für die Umwandlung selbst nicht — sie läuft in dem Browser, den du ohnehin offen hast. Zum Öffnen brauchst du danach das Programm, das auf deinem Gerät üblicherweise Comma-Separated Values anzeigt.