Fedora Online Forum

Il forum della comunità italiana di Fedora

#1 24-12-2018 15:55:31

rmx
Appena sbarcato sul forum
Da Collesalvetti (LI)
Registrato: 07-05-2007
Messaggi: 90

[Risolto] modificare un file avendo come input un altro file

Buonasera,
Sono un amante della mountain bike e registro le mie uscite con una app che al termine della sessione mi permette di scaricare il relativo file mtb_AAAAMMDD.gpx. Da qualche tempo - non sono ancora riuscito a capire perchè - la sezione che riguarda l'elevazione riportata nei tag <ele></ele> risulta sempre 0:

tail -25 mtb_AAAAMMDD.gpx
<trkpt lat="43.59051" lon="10.47274">
                <ele>0</ele>
                <time>2018-12-22T15:57:08Z</time>
                <extensions>
                    <gpxtpx:TrackPointExtension>
                        <gpxtpx:hr>118</gpxtpx:hr>
                    </gpxtpx:TrackPointExtension>
                </extensions>
            </trkpt>
            <trkpt lat="43.59053" lon="10.47250">
                <ele>0</ele>
                <time>2018-12-22T15:57:14Z</time>
                <extensions>
                    <gpxtpx:TrackPointExtension>
                        <gpxtpx:hr>118</gpxtpx:hr>
                    </gpxtpx:TrackPointExtension>
                </extensions>
            </trkpt>
            <trkpt lat="43.59054" lon="10.47247">
                <ele>0</ele>
                <time>2018-12-22T15:57:20Z</time>
            </trkpt>
        </trkseg>
    </trk>
</gpx>

Dando in pasto il file gpx a google-earth ho ottenuto un file kmz che caricato su gpsies.com mi consente di recuperare l'informazione a scapito dei tag <gpxtpx:hr>118</gpxtpx:hr> che fornisce l'informazione sulla frequenza cardiaca. Sono comunque riuscito ad estrapolare la corretta sequenza delle elevazioni che ho posto in un file di testo lista_altitudini.txt

tail -5 lista_altitudini.txt
17.676
17.061
16.142
16.0
15.898

con cui vorrei poter correggere il file di partenza. Naturalmente potrei farlo manualmente - sono solo 466 righe, sai che gioia! - ma nonostante mi sia scervellato (sed? awk? perl?) non mi è venuto in mente ancora in mente come risolvere il problema. Si tratta di scansionare il file mtb_AAAAMMDD.gpx ricercare la prima occorrenza di <ele>0</ele> e sostituirla con la prima occorrenza del file lista_altitudini.txt, per poi passare alla successiva... fino alla fine.
Qualcuno sa aiutarmi!

Grazie e auguri di buone feste a tutti.
MR

Ultima modifica di rmx (22-01-2019 13:22:05)

Non in linea

#2 27-12-2018 05:01:20

romulus
Pinguino avanzato
Da Roma
Registrato: 25-06-2010
Messaggi: 325

Re: [Risolto] modificare un file avendo come input un altro file

Potresti usare libreoffice calc

oppure

trasformare il file xml in csv
unire i due file con paste
trasformare il csv in xml

oppure

un programmino in perl/python/...


Assioma di R.: Ci sono più bit in un byte di quanti tu ne riesca a contare.
Avatar by manuoceane from Tux Factory

Non in linea

#3 30-12-2018 18:19:56

rmx
Appena sbarcato sul forum
Da Collesalvetti (LI)
Registrato: 07-05-2007
Messaggi: 90

Re: [Risolto] modificare un file avendo come input un altro file

Grazie Romulos per il suggerimento. Al momento ho provato la 1a soluzione ma a Calc riesce difficile digerire il tipo di file. Appena ho un pò di tempo da dedicare alla questione faccio un tentativo con la 2a soluzione e ti faccio sapere!

Cordiali saluti e auguri di buon 2019.
MR

Non in linea

#4 31-12-2018 19:09:24

recluta
Appena sbarcato sul forum
Da Pomezia (RM)
Registrato: 05-09-2007
Messaggi: 53

Re: [Risolto] modificare un file avendo come input un altro file

Mi aspetto che il problema possa avere una soluzione semplice ricorrendo a comandi di una bash. Io sono un po' "arrugginito" al riguardo e non posso fare prove sul coding fino alla fine di gennaio. Mi auguro che nel frattempo tu possa trovare un aiuto sul forum (esperti nei comandi bash ), altrimenti ci risentiamo. Ciao. Recluta

Non in linea

#5 19-01-2019 17:20:38

recluta
Appena sbarcato sul forum
Da Pomezia (RM)
Registrato: 05-09-2007
Messaggi: 53

Re: [Risolto] modificare un file avendo come input un altro file

Prova un po' questo script "ruspante" e fammi sapere.

[[email protected] 1_PROVA]$ cat rmx_script_verA
#!/usr/bin/bash
#Script Version A
#Usage sintax: $rmx_script_verA gpxfile altitudinefile gpxfilecorretto

gpx_filename="$1"
altit_filename="$2"
gpx_corrected="$3"
EOF=""

if [ -e "$gpx_corrected" ]
then
	echo "File "$gpx_corrected" già esistente. Cambiare il suo nome (o rinominare/cancellare il file già esistente)"
	exit
fi

altit_string="                <ele>0</ele>"
index=1
IFS=$'\n'
cat $gpx_filename | while read LINE; do
	if [ "$LINE" == "$altit_string" ]
	then
		ALTIT_VALUE=`sed -n ''$index'p' "$altit_filename"`
		
		if [ "$ALTIT_VALUE" == "$EOF" ]
			then
			echo "Errore: Numero dei valori di altitudine inferiori a quelli aspettati dal file gpx."
			if [ -e "$gpx_corrected" ]
				then
					rm "$gpx_corrected"			
			exit
			fi			
			exit
		fi
		
		LINE="                <ele>"$ALTIT_VALUE"</ele>"
		index=$((index+1))
	fi
	echo $LINE >> $gpx_corrected
done
exit

Ciao.
Recluta

Non in linea

#6 21-01-2019 19:22:20

rmx
Appena sbarcato sul forum
Da Collesalvetti (LI)
Registrato: 07-05-2007
Messaggi: 90

Re: [Risolto] modificare un file avendo come input un altro file

Visto solo ora il messaggio. Provo e ti faccio sapere ;-)

Per il momento grazie.

Non in linea

#7 21-01-2019 20:05:31

rmx
Appena sbarcato sul forum
Da Collesalvetti (LI)
Registrato: 07-05-2007
Messaggi: 90

Re: [Risolto] modificare un file avendo come input un altro file

E' perfetto grazie!
Qui trovi il risultato del tuo suggerimento.

Grazie 1000!

PS il link lo tengo attivo per 24 ore.

Non in linea

Piè di pagina