Piccolo servizio per ottimizzare GPX online

classic Classic list List threaded Threaded
6 messages Options
z4k
Reply | Threaded
Open this post in threaded view
|

Piccolo servizio per ottimizzare GPX online

z4k
Ciao a tutti
ho appena realizzato un semplice servizio per ottimizzare tracce GPX riducendo il numero di punti senza perdere qualita della traccia.

Utilizza questo algoritmo che mi sembra buono:
http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm anche se probabilmente la scrollbar per regolare la precisione potrebbe essere migliore con scala logaritmica o esponenziale.

Funziona offline senza bisogno di upload o download.. semplice javascript e Leaflet.


L'ho fatto in pochi minuti senza fare troppi test.. se qualcuno vuole partecipare a breve pubblico la repo su github..

saluti
Stefano Cudini

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013
Reply | Threaded
Open this post in threaded view
|

Re: Piccolo servizio per ottimizzare GPX online

Giuliano Curti
Il giorno Sat, 24 May 2014 02:19:04 +0200
Stefano Cudini <[hidden email]> ha scritto:

> Ciao a tutti

ciao Stefano,


> ho appena realizzato un semplice servizio per ottimizzare tracce GPX
> riducendo il numero di punti senza perdere qualita della traccia.

ottimo, spero quanto prima di poter provare il tuo plugin :-)

 
> Utilizza questo algoritmo che mi sembra buono:
> http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm
> ......

ti segnalo una curiosità, ininfuente per i tuoi obiettivi, ma un
particolare forse interessante da conoscere: in una occasione del tutto
fortuita mi sono accorto che l'algoritmo RDP non è ottimo, cioè lascia
dei vertici della polilinea non necessari; avevo segnalato la
circostanza anche sulla lista dev, ma poi la cosa non aveva avuto
seguito (probabilmente per la mia scarsa comprensione dell'inglese e
forse perchè la lista non era il posto più adatto per l'argomento);

si può pensare ad un algoritmo diverso che sembrerebbe migliore;

niente, una piccola inezia nello splendido lavoro che hai fatto: usala
a tua discrezione :-)

 
> saluti
> Stefano Cudini

ciao,
giuliano

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013
z4k
Reply | Threaded
Open this post in threaded view
|

Re: Piccolo servizio per ottimizzare GPX online

z4k
Il giorno 24 maggio 2014 16:50, giulianc51 <[hidden email]> ha scritto:
...
> ho appena realizzato un semplice servizio per ottimizzare tracce GPX
> riducendo il numero di punti senza perdere qualita della traccia.

ottimo, spero quanto prima di poter provare il tuo plugin :-)

Be non è proprio un plugin... è una web app che utilizza svariati plugins Leaflet e altro.
Io in pratica ho solo messo insieme i pezzi...
 

> Utilizza questo algoritmo che mi sembra buono:
> http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm
> ......

ti segnalo una curiosità, ininfuente per i tuoi obiettivi, ma un
particolare forse interessante da conoscere: in una occasione del tutto
fortuita mi sono accorto che l'algoritmo RDP non è ottimo, cioè lascia
dei vertici della polilinea non necessari;

Questa cosa l'avevo notata anche su JOSM quindi suppongo che utilizzi lo stesso identico algoritmo.
 
avevo segnalato la
circostanza anche sulla lista dev, ma poi la cosa non aveva avuto
seguito (probabilmente per la mia scarsa comprensione dell'inglese e
forse perchè la lista non era il posto più adatto per l'argomento);

si può pensare ad un algoritmo diverso che sembrerebbe migliore;

niente, una piccola inezia nello splendido lavoro che hai fatto: usala
a tua discrezione :-)

Anche per cercare ti ottimizzare quell'algoritmo o vedere se ce ne sono altri.

In effetti ho notato che a volte lascia dei nodi strani... ma in generale mi sembra che funzioni molto bene su tracce molto ridondanti.
Lo scopo dell'app piu che altro è allegerire i file GPX poi per migliorare la precisione stavo pensando di aggiungere anche
la possibilita di editare il percorso dopo l'ottimizzazione automatica.



_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013
Reply | Threaded
Open this post in threaded view
|

Re: Piccolo servizio per ottimizzare GPX online

Giuliano Curti
Il giorno Sat, 24 May 2014 22:54:56 +0200
Stefano Cudini <[hidden email]> ha scritto:

> Il giorno 24 maggio 2014 16:50, giulianc51 <[hidden email]> ha
> scritto:
>
> > .....
>
> Be non è proprio un plugin... è una web app che utilizza svariati
> plugins Leaflet e altro.
> Io in pratica ho solo messo insieme i pezzi...

sì, scusa, avevo letto male :-(


> > ......
> Questa cosa l'avevo notata anche su JOSM
> <https://josm.openstreetmap.de/>quindi suppongo che utilizzi lo stesso
> identico algoritmo.
> .......
> In effetti ho notato che a volte lascia dei nodi strani... ma in
> generale mi sembra che funzioni molto bene su tracce molto ridondanti.
> Lo scopo dell'app piu che altro è allegerire i file GPX ......

beh, come avevo anticipato, la cosa è inessenziale rispetto al tuo
obiettivo: RDP fa un egregio lavoro di semplificazione, però, proprio
per l'approccio binomiale che adotta, va in crisi in alcune situazioni,
ad es. il percorso:
        1                     5
        |                     |
        2---------3-----------4
rimarrà tale, mentre potrebbe essere semplificato ulteriormente in
        1                     5
        |                     |
        2---------------------4

comunque probabilmente sto andando OT in questa lista, quindi chiudo; se
volessi però provare un altro algoritmo qualche idea ce l'avrei :-)


ciao,
giuliano
(matematico per diporto :-)

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013
z4k
Reply | Threaded
Open this post in threaded view
|

Re: Piccolo servizio per ottimizzare GPX online

z4k
Il giorno 24 maggio 2014 23:51, giulianc51 <[hidden email]> ha scritto:
> Questa cosa l'avevo notata anche su JOSM
> <https://josm.openstreetmap.de/>quindi suppongo che utilizzi lo stesso
> identico algoritmo.
> .......
> In effetti ho notato che a volte lascia dei nodi strani... ma in
> generale mi sembra che funzioni molto bene su tracce molto ridondanti.
> Lo scopo dell'app piu che altro è allegerire i file GPX ......

beh, come avevo anticipato, la cosa è inessenziale rispetto al tuo
obiettivo: RDP fa un egregio lavoro di semplificazione, però, proprio
per l'approccio binomiale che adotta, va in crisi in alcune situazioni,
ad es. il percorso:
        1                     5
        |                     |
        2---------3-----------4
rimarrà tale, mentre potrebbe essere semplificato ulteriormente in
        1                     5
        |                     |
        2---------------------4

comunque probabilmente sto andando OT in questa lista, quindi chiudo

Ma tanto non sta partecipando nessun altro quindi direi che non è un gran danno :)
 
; se
volessi però provare un altro algoritmo qualche idea ce l'avrei :-)

Allora prima di tutto vorrei sottolineare che la vera utilità della mia app sta nel fatto che tramite lo slider si puo regolare molto finemente il fattore di approssimazione dell'algoritmo, cosa che attualmente non si può fare neanche su JSOM... che non ho ancora capito che valore utilizza..

Poi devo dire che in realtà io l'algoritmo specifico prima di metterni a fare questa app non lo conoscevo... ma ora la cosa mi sta molto interessando.
Soprattutto ho notato una cosa, giocherellando con questa app.. che magari è una banalità, questo algoritmo è impreciso xke si occupa soltanto di TOGLIERE nodi e non fa nessuna altra operazione.. se invece di togliere soltanto potesse anche spostare i nodi rimanenti in posizioni piu "strategiche" credo che si avrebbe un netto miglioramento della qualità! mantenendo la stessa identica quantita di dati finali.
Questo non so se sia possibile aggiungerlo a livello di algoritmo matematico.. ora non ho dato una occhiata precisa al codice che lo implementa, ma a livello di programmazione non mi sembra una cosa poi cosi complessa.. probabilmente anzi ci ha gia pensato qualcuno.

L'implementazionde dell'RDP usato si trova qui:
 


ciao,
giuliano
(matematico per diporto :-)


_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013
Reply | Threaded
Open this post in threaded view
|

Re: Piccolo servizio per ottimizzare GPX online

Giuliano Curti
Il giorno Mon, 26 May 2014 18:59:43 +0200
Stefano Cudini <[hidden email]> ha scritto:

ciao Stefano,


> Il giorno 24 maggio 2014 23:51, giulianc51 <[hidden email]> ha
> scritto:
>
> > .....
> > comunque probabilmente sto andando OT in questa lista, quindi chiudo
>
>
> Ma tanto non sta partecipando nessun altro quindi direi che non è un
> gran danno :)

sì, però mi conosco, quindi è meglio sempre stare all'erta :-)
 
 
> > ....
> Allora prima di tutto vorrei sottolineare che la vera utilità della
> mia app sta nel fatto che tramite lo slider si puo regolare .....
>
> Poi devo dire che in realtà io l'algoritmo specifico prima di
> metterni a fare questa app non lo conoscevo... ma ora la cosa mi sta
> molto interessando.

beh, io avevo un pò forzato e mescolato due argomenti non proprio
sovrapposti, però, avendone l'occasione, e sempre con la pazienza degli
altri, mi piaceva scambiare qualche parola :-)


> ...... questo algoritmo è impreciso xke si occupa
> soltanto di TOGLIERE nodi e non fa nessuna altra operazione.. se
> invece di togliere soltanto potesse anche spostare i nodi rimanenti
> in posizioni piu "strategiche"

tema delicato: credo che gli Autori si sono preoccupati, riuscendoci, a
semplificare notevolmente una polilinea _eliminando_ i vertici
superflui; cosa alquanto diversa è quella che proponi: sostituire una
primitiva con altra;


> ....... Questo non so se sia possibile aggiungerlo a livello
> di algoritmo matematico.. ora non ho dato una occhiata precisa al
> codice che lo implementa, ma a livello di programmazione non mi
> sembra una cosa poi cosi complessa.. probabilmente anzi ci ha gia
> pensato qualcuno.

su _miglioramenti_ non saprei, ma sulla loro possibilità direi di sì,
rispettando le precedenze: prima costruisci l'algoritmo
logico-matematico, poi quello informatico (anche se può sembrare la
storia dell'uovo e la gallina :-)

se fai sapere in lista i tuoi progressi, sicuramente qualcuno
interessato ci sarà (ad es. io :-)


ciao,
giuliano


_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013