Ricerca di percorsi mappa simili


9

Sto cercando un algoritmo che, quando viene assegnato un percorso particolare su una mappa con attributi come inclinazione / distanza / forma / ecc., Può trovare un percorso simile (in termini di attributi) ma inizia in un punto diverso o in un'altra regione del globo.

Ovviamente sarà impossibile in quasi tutti i casi trovare una soluzione perfetta, ma sto cercando un tipo di sistema "best match" con un metodo di misurazione della somiglianza anche idealmente.

Ho provato a cercare, ma la maggior parte delle mie domande presenta problemi di corrispondenza della mappa o similitudine di percorso per i punti GPS lungo lo stesso percorso. Potrei non conoscere la terminologia corretta! C'è un nome per questo problema? Quale algoritmo posso usare per risolvere questo?


1
Le "rotte" sono vincolate a una rete di linea (strada / percorso / ecc.)? Come si impedisce all'algoritmo di decidere che il percorso più vicino è il percorso di origine ma solo un po 'più breve / più lungo?
Spacedman,

1
"Simile in termini di attributi" ha senso ma è così vago da consentire un'ampia gamma di possibili soluzioni. Potresti essere più specifico?
whuber

@Spacedman Sì, i percorsi sono vincolati a una rete stradale. L'intenzione è quella di prendere una strada dalla Cina, per esempio, e trovare un percorso molto simile che è vicino, diciamo, a casa mia. Non sono sicuro del modo migliore per implementare effettivamente quel vincolo.
Chris Foster,

@whuber Siamo spiacenti. Per chiarire, avere pendenze simili (in aree simili del percorso) e distanza totale simile sono le più importanti.
Chris Foster,

Risposte:


6

La corrispondenza della mappa è diversa da quella che stai cercando. Il mapmatching è il modo corretto di abbinare un'osservazione gps errata alla rete stradale lineare. La tua domanda non ha nulla a che fare con i punti GPS. Perché vuoi confrontare il modello delle rotte statiche (non temporali) e trovare quelle simili. Quello che state cercando è funzione lineare (nel senso di non GIS cioè machine learning) corrispondente . La letteratura relativa alla traccia GPS è la corrispondenza di modelli spazio-temporali che rientra nella rubrica della "Traiettoria (modello spaziale temporale) di estrazione".

Per ulteriori informazioni, dai un'occhiata al capitolo (Trajectory Pattern Mining) del libro " calcolo con traiettoria spaziale ". Otterrai molte idee su come confrontare e contrastare (cioè via azimut, lunghezza dei segmenti, sinuosità, beeline, ecc.) Vari percorsi o traiettoria.


4

La tua domanda si basa su dati vettoriali. Tuttavia, penso che tu sia meglio servito a convertire la domanda in un'analisi raster. In tal modo generalizzerai anche in qualche modo la tua domanda.

Un algoritmo per risolvere la tua domanda sarebbe il seguente:

  1. Rasterizza il percorso originale e fai trasportare ogni cella in base ai tuoi parametri (inclinazione / distanza / forma / ecc.). Anche il fatto che sia presente una strada è un parametro. Questo diventa un elenco monodimensionale con n oggetti -> elenco di routine (n)

inserisci qui la descrizione dell'immagine

  1. Trova un'area di prova in cui sai che esiste almeno una replica del percorso originale. Rasterizza quest'area con gli stessi parametri del percorso originale. Questo è raster a.

inserisci qui la descrizione dell'immagine

  1. Inizia con la cella 1,1 nel raster a e muovi tutto il raster in modo ordinato.
  2. Per ogni cella viene chiamata una funzione. Questa funzione controlla se la cella corrisponde alla routelist (0), in tal caso viene eseguito lo stesso controllo sulle celle circostanti. Con successo la funzione continua a controllare la cella per la lista di routine (1) e così via. In caso di successo fino alla routelist (n) le coordinate vengono memorizzate come percorso alternativo nella routelistcopy (n)
  3. Ripeti fino a raggiungere l'ultimo pixel nel raster.

inserisci qui la descrizione dell'immagine

Sopra vedrai tre opzioni per i percorsi in base ai parametri nella routelist.

Futhermore:

  • I raster di campionamento sopra sono misurati in base a un solo parametro. Nella tua sfida del mondo reale, un pixel sarà una combinazione di diversi parametri.
  • Se avessi questo compito, proverei a scrivere la funzione sopra menzionata in modo ricorsivo. Ciò sarebbe più efficiente e risolverebbe il problema delle "tracce divergenti", in cui si hanno diverse tracce alternative con lo stesso punto di partenza.
  • Le svolte del percorso non sono considerate un problema. Ciò significa che le risposte sono un elenco di pixel collegati nello stesso ordine del percorso originale. I colpi di scena non sono un problema. Potrebbe essere necessario scrivere l'algoritmo in modo che i percorsi autointersecanti non facciano parte della soluzione.
  • Progetta l'algoritmo in modo da poter impostare diversi livelli di tolleranza per i criteri in gioco. Questo ti darà più flessibilità.
  • In un ambiente operativo l'intero processo può essere reso più efficiente schermando l'area per la presenza di pixel in base alle proprie specifiche. Se non ci sono, l'area del sondaggio è negativa, quindi non c'è motivo di usare il tempo per analizzare l'area.
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.