Convertit un fichier de traces GPS au format NMEA 0183 en fichier GPX standard.
- Python 3.6+
- Aucune dépendance externe
python3 nmea2gpx.py <fichier_entree.txt> [fichier_sortie.gpx]Si le fichier de sortie est omis, il est créé dans le même répertoire que l'entrée avec l'extension .gpx.
python3 nmea2gpx.py GPS18.txt
# → génère GPS18.gpx
python3 nmea2gpx.py GPS18.txt ma_trace.gpx
# → génère ma_trace.gpxLe fichier d'entrée doit contenir des phrases NMEA 0183 (ASCII), une par ligne. Les lignes peuvent optionnellement être préfixées d'un numéro de ligne suivi d'une tabulation.
Les phrases exploitées sont :
| Phrase | Données extraites |
|---|---|
$GPGGA |
Latitude, longitude, altitude, qualité du fix, HDOP, nombre de satellites |
$GPRMC |
Date UTC (le GPGGA ne contient que l'heure) |
Les points sans fix valide (qualité 0) et sans coordonnées sont ignorés.
$GPGGA,072402.081,4929.9410,N,00546.9186,E,1,5,1.58,381.2,M,47.6,M,,*59
$GPRMC,072402.081,A,4929.9410,N,00546.9186,E,18.47,84.26,130626,,,A*64
Fichier GPX 1.1 contenant une piste (<trk>) avec un segment (<trkseg>). Chaque point inclut :
lat/lon: coordonnées en degrés décimaux (7 décimales)<ele>: altitude en mètres<time>: horodatage UTC au format ISO 8601<extensions>: nombre de satellites (<sat>) et HDOP (<hdop>)
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1" creator="nmea2gpx" ...>
<trk>
<name>GPS18</name>
<trkseg>
<trkpt lat="49.4990167" lon="5.7819767">
<ele>381.2</ele>
<time>2026-06-13T07:24:02.081Z</time>
<extensions>
<sat>5</sat>
<hdop>1.58</hdop>
</extensions>
</trkpt>
...
</trkseg>
</trk>
</gpx>| Fichier | Description |
|---|---|
nmea2gpx.py |
Script de conversion |
GPS18.txt |
Exemple de trace NMEA (source) |
GPS18.gpx |
Trace GPX générée |