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 12/10/2006, à 17:13

benjou

[relosu]faire des multiplications avec cat et sed!!

Bonjour,

je viens d'ecrire un script qui permet de montrer la vitesse d'un trace gps en fausse altitude dans google-earth. Plutot que de décrire de quoi il s'agit, voire cette capture.screenshot1tp4.th.png

le script est le suivant:

gpsbabel -t -i garmin -f usb: -x track,speed,title="%d-%m-%Y" -o gpx -F "`date +%d.%m.%y`""_""$title"".gpx"
cat "`date +%d.%m.%y`""_""$title"".gpx"|grep -v ele|sed 's/speed/ele/g'>/tmp/gpx
gpsbabel -t -i gpx -f /tmp/gpx -x track,speed,title="%d-%m-%Y" -o kml,points=0,floating=1 -F /tmp/kml
cat /tmp/kml|sed 's/<altitudeMode>absolute<\/altitudeMode>/<altitudeMode>relativeToGround<\/altitudeMode><extrude>1<\/extrude>/g'>"`date +%d.%m.%y`""_""$title""_speed"".kml"

Grosso modo, il prends un ficher gpx (du xml applique au GPS) généré par gpsbabel
-enleve línformation d'élevation <ele> avec grep,
-remplace les balises <speed> par des balises <ele> de sorte que la vitesse est considérée comme de l'altitude
-fabrique un fichier kml pour ouvrir avec google-earth

Le problème c'est que je fais du velo et donc mes vitesses sont faibles donc je ne m'éleve pas beaucoup au dessus du terrain.

Donc je voudrais que ma vitesse::fausse altitude soit multipliee par 10 donc dans mon fichier gpx,
je voudrais que

<ele>25.87</ele>

devienne

<ele>258.7</ele>

Y a tíl un moyen de faire cela?

Dernière modification par benjou (Le 12/10/2006, à 18:40)


écrasons l'infâme

Hors ligne

#2 Le 12/10/2006, à 18:39

benjou

Re : [relosu]faire des multiplications avec cat et sed!!

resolu avec sed.

La fonction

sed 's/\(\.\)\([0-9]\)\(.*ele>\)/\2\1\3/g'

prends la virgule et le premier chiffre apres la virgule et les inverse wink ce qui multiplie par 10 cool

le script est donc:

#!/bin/bash
title=$(zenity --entry --title "name" --text "Please name this track")

gpsbabel -t -i garmin -f usb: -x track,speed,title="%d-%m-%Y" -o gpx -F "`date +%d.%m.%y`""_""$title"".gpx"
cat "`date +%d.%m.%y`""_""$title"".gpx"|grep -v ele|sed 's/speed/ele/g'|sed 's/\(\.\)\([0-9]\)\(.*ele>\)/\2\1\3/g'>/tmp/gpx
gpsbabel -t -i gpx -f /tmp/gpx -x track,speed,title="%d-%m-%Y" -o kml,points=0,floating=1 -F /tmp/kml
cat /tmp/kml|sed 's/<altitudeMode>absolute<\/altitudeMode>/<altitudeMode>relativeToGround<\/altitudeMode><extrude>1<\/extrude>/g'>"`date +%d.%m.%y`""_""$title""_speed"".kml"

écrasons l'infâme

Hors ligne

#3 Le 12/10/2006, à 22:23

mrf

Re : [relosu]faire des multiplications avec cat et sed!!

j'ai pas vraiment testé, mais je crois que tu gagnerais en lisibilité en utilisant Awk wink

Hors ligne