Rilevamento degli schemi di viaggio nei dati geospaziali

2

Ho bisogno di analizzare i dati caricati dai dispositivi GPS del veicolo per rilevare i modelli di viaggio e quindi provare a conoscere i normali schemi di viaggio per quel veicolo in modo che possano essere fatte previsioni sulla manutenzione, il rifornimento di carburante ecc. Alcuni veicoli sono domestici - > work- > percorsi di viaggio domestici) e alcuni sono commerciali con il routing programmato.

Ho caricato i lat e il GPS GPS in un database, quindi ho creato una ST_LineString con i punti dati per ogni veicolo (circa 1k per veicolo al giorno).

I veicoli non avranno mai modelli di viaggio identici (precisione GPS, tempi di ping irregolari ecc.) e gli schemi saranno visibili come sottoinsiemi di ping - ad esempio un'ora di tragitto tra il punto A (casa) e il punto B (lavoro) tra le 8:00 e 9:30 ogni mattina, lun-ven.

Ora la parte difficile - sto considerando le opzioni. Devo scrivere questo in un linguaggio procedurale del database usando la solita cassetta degli attrezzi di procedure, cursori, iterazioni ecc. Potrei usare Python se è utile - Sono un tipo di database che cerca di pensare in modo laterale e spaziale.

Un modello di viaggio potrebbe essere identificato da

(i) una sequenza di punti simile che può differire di una tolleranza (ad esempio +/- 300 metri)

(ii) parcheggi - se un'auto è parcheggiata nello stesso luogo per 8 ore al giorno

(iii) temporale - il veicolo inizia in viaggio alle 08:30 ogni giorno, +/- 10 minuti.

Sto pensando di scrivere una procedura che controlli ciascuno di questi pattern per ogni punto (o insieme di n punti) confrontandolo con tutti gli altri punti (o set di punti) iterando attraverso i ping per ogni giorno in sequenza .

Il caso d'uso più semplice è trovare le ricorrenze di un veicolo parcheggiato nello stesso luogo ogni giorno. Rilevare modelli di movimento simili è più complesso. Quale potrebbe essere una tecnica per questo?

    
posta MarkTeehan 19.12.2013 - 06:03
fonte

1 risposta

1

Questa è una forma generale di riconoscimento dei pattern , e il riconoscimento dei pattern è difficile - è stato per anni sotto la ricerca scientifica.

Penso che la prima cosa che devi fare qui sia trovare definizioni formali per tutti i "modelli di viaggio" che vuoi identificare - immagino che quegli esempi siano solo la punta dell'iceberg. Le tue definizioni (2) e (3) sono casi facili, ma suppongo che non siano così interessanti.

Il caso (1) IMHO non è una definizione di pattern reale, ma suppongo che si voglia rilevare un pattern come "lo stesso percorso viene ripetuto ad intervalli di tempo regolari su base giornaliera o settimanale". Ma qui inizia il problema: che intervalli di tempo vuoi confrontare? Cosa succede se l'autista effettua una deviazione in alcuni giorni uscendo dal raggio di 300 metri? Vuoi identificare le 10 migliori tratte seguite da ogni auto nel corso dell'anno (e perché)? Le due rotte sono identiche indipendentemente dal loro timestamp o la timestamp? La direzione del percorso è importante o no?

Quindi il mio primo consiglio è: iniziare a porsi le domande giuste - analizzare il problema in modo più approfondito, non da un punto di vista tecnico ("quali sono le cose facili da confrontare"), ma da il punto di vista del dominio ("cosa voglio veramente sapere")?

Un punto che hai menzionato è "manutenzione e rifornimento". Per queste cose IMHO le rotte sono in genere irrilevanti. Le informazioni statistiche generali dovrebbero essere più interessanti (quante miglia / chilometri all'anno è stata la macchina sulla strada), le rotte esatte sono trascurabili.

Per il problema del confronto dei percorsi, senza la componente temporale: suggerirei di non confrontare "singoli punti". I tuoi punti descrivono un percorso 2D e hai bisogno di una metrica per confrontare quei percorsi, indipendentemente dal numero di punti su quei percorsi. Ci sono alcuni articoli scientifici su questo argomento, guardando Google per "confrontare due percorsi di distanza" mostrerà alcuni di loro.

L'aggiunta del componente temporale potrebbe essere vista come un'estensione 3D del problema 2D, ma suppongo che sarà più facile quando inizi con il caso 2D e quando puoi identificare percorsi simili sul piano, puoi aggiungere alcuni confronti temporali in seguito.

    
risposta data 21.12.2013 - 11:39
fonte

Leggi altre domande sui tag