Calcolare statisticamente la strada reale dal set di tracce GPS?


18

Partecipo a un club di ciclismo a lunga distanza e abbiamo iniziato a raccogliere regolarmente i dati GPS dai nostri ciclisti.

Il mio interesse è calcolare "la vera traiettoria" per eventi futuri in base ai dati GPS accumulati sulle stesse strade. Fondamentalmente, ciò significherebbe passare alcune tracce preselezionate a un algoritmo e l'algoritmo genererebbe punti con una frequenza di campionamento appropriata (una distanza appropriata l'una dall'altra a seconda delle curve stradali). Scarto i timestamp, tenendo conto solo delle informazioni sulla traccia spaziale.

Quali algoritmi / metodi statistici posso usare? Non uso alcun pacchetto GIS e ho intenzione di implementarlo in Python.

Di seguito, alcuni set di traiettorie di esempio:

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Progetto interessante - abbastanza simile a un algoritmo di ispezione che ho scritto anni fa. Dal momento che sono pigro, posso offrire solo alcuni suggerimenti. I fattori più importanti sono la direzione del viaggio, la qualità del segnale e la velocità (ad es. Se stai solo in piedi, non è una strada). È meglio prima eliminare i punti che sono troppo lontani in quel modo. A parte questo, applicherei un algoritmo di smoothing (prova DP), quindi media le linee.
nagytech,

DP = Programmazione dinamica giusto? Wikipedia mi ha dato una lunga lettura dei compiti su questo per stasera ... Grazie per ora!
heltonbiker,

Una domanda interessante e correlata è questa: gis.stackexchange.com/questions/42224/…
heltonbiker

Qualcosa di veramente, DAVVERO degno di nota sono le tue impostazioni GPS - alcune unità GPS "agganciano" la tua posizione alla strada più vicina nel database GPS, anche se la strada reale è 10 + m sul lato.
Simbamangu,

@Simbamangu sarebbe davvero una bella cosa. Credo che il software che sto usando oggi in un telefono Android non lo abbia. Comunque, la maggior parte delle mie tracce sono state raccolte da altre persone negli ultimi mesi. Grazie per il consiglio!
Heltonbiker,

Risposte:


11

Chris Brunsdon ha fornito un articolo su questo problema alla conferenza GeoComputation del 2008 - vedi http://www.geocomputation.org/2007/1B-Algorithms_and_Architecture1/1B2.pdf

Nel documento discute come applicare l'analisi delle curve principali (Hastie e Stuetzle 1989) e fornisce alcuni suggerimenti su come aumentare la solidità del metodo. Ulteriore ricerca porta a una discussione su uno strumento OSM chiamato osm-makeroads che potrebbe benissimo risolvere il tuo problema (o almeno iniziare).


Dare un'occhiata e dare presto un feedback! Grazie per ora!
Heltonbiker,

4
+1 riferimento piacevole. Tuttavia ha bisogno di lavoro, perché trascura un problema fondamentale con le tracce GPS: gli errori non sono indipendenti da un punto all'altro. Invece, l'errore GPS commesso in un punto tenderà ad essere molto simile all'errore commesso nel punto successivo sulla stessa traccia. Lo si può vedere nelle illustrazioni di Brunsdon: i punti problematici (periferici) si trovano chiaramente su una o due tracce eccezionali; non sono né sporadici né casuali. Pertanto, esiste un grande potenziale di miglioramento modellando questa autocorrelazione e adattandola all'algoritmo.
whuber

2
@whuber concordato. Qualcosa che la maggior parte degli algoritmi non considera (le Curve principali sono una di queste, come ho già scoperto), è che i set di tracce GPS non sono nuvole di punti, ma piuttosto "nuvole di linestring". Sono davvero vettori collegati o qualcosa del genere. Prendere in considerazione solo i punti genera una propensione per le tracce con una frequenza di campionamento più elevata, invece delle regioni in cui le LINEE da tracce distinte sono più dense ...
heltonbiker

2
Questa conversazione è continuata in un thread correlato su stats.stackexchange.com/questions/69329 .
whuber

@whuber In questa risposta ho scritto un'idea, che mi è venuta in mente, di farlo con l'aiuto di una mappa di calore. Apprezzo qualsiasi suggerimento.
Stefan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.