Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/09/2023, à 19:09

Compte supprimé

[Résolu] Modifier l'altitude dans un fichier de trace GPS.

Bonsoir,
Sur un fichier .gpx qui contient la trace d'un parcours VTT, je voudrais modifier les altitudes selon une règle simple : altitude nouvelle = l'ancienne + un nombre fixe.

J'imagine qu'après avoir ouvert le fichier, il faut rechercher chaque ligne qui contient l'altitude et faire le calcul pour mettre la nouvelle valeur. Facile à faire avec un tableur. Seulement le fichier .gpx produit par le GPS est un xml organisé ainsi :
D'abord des données relatives à toute la trace et des statistiques, puis toujours la même séquence pour chaque point enregistré :

<trkpt lon="1." lat="2.">
    <ele>652</ele>
    <time>2023-01-01T08:30:41.000Z</time>
    <extensions>
     <ql:flags>0</ql:flags>
     <ql:activity>0</ql:activity>
    </extensions>
   </trkpt>
   <trkpt lon="3" lat="4">
    <ele>651</ele>
    <time>2023-01-01T08:30:44.000Z</time>
    <extensions>
     <ql:flags>0</ql:flags>
     <ql:activity>0</ql:activity>
    </extensions>
   </trkpt>

L'altitude est dans les lignes <ele>valeur_altitude</ele> Pouvez-vous me donner une piste pour lire ce fichier et y chercher les altitudes ? Quelle commande utiliser ?

Dernière modification par Compte supprimé (Le 30/09/2023, à 06:26)

#2 Le 29/09/2023, à 20:26

pingouinux

Re : [Résolu] Modifier l'altitude dans un fichier de trace GPS.

Bonjour,
Tu peux essayer ce script en python.

$ cat script.py
#!/usr/bin/env python3
import sys, re

delta=int(sys.argv[1])
rec=re.compile('(<ele>)(\d+)(</ele>)')

def repl(k): return k.group(1) + str(int(k.group(2))+delta) + k.group(3)

with open(sys.argv[2]) as f: s=f.read()
t=rec.sub(repl,s) 
with open(sys.argv[3],'w') as g: g.write(t)

À utiliser ainsi (les arguments sont : delta_altitude fichier_d_entree fichier_de_sortie) :

./script.py 10 i.gpx o.gpx

Hors ligne

#3 Le 30/09/2023, à 06:25

Compte supprimé

Re : [Résolu] Modifier l'altitude dans un fichier de trace GPS.

Merci beaucoup pingouinux,
Cela fonctionne très bien, maintenant je saurai comment corriger une trace quand l'altimètre est mal calé au départ.  Si je veux fignoler, il me reste juste à changer l'altitude max et mini dans les statistiques.