OSRMDistance
Estrarre distanze tramite routing per QA ed analisi statistiche
Stefano Sabatini
Rovereto, OSMit 2013
Stefano Sabatini OSRMDistance
Le origini
Avrei la necessità di metter su una matrice delle distanze
stradali in km e tempi di percorrenza tra i comuni sardi
che son 377. Quindi vorrei sapere se c'è un metodo
veloce e facilmente replicabile per calcolare due matrice
377x377, una coi km una coi tempi di percorrenza.
(Andrea su Spaghetti Open Data, 16 Luglio)
How hard can it be?Due giorni dopo abbiamo OSRMDistance.
Stefano Sabatini OSRMDistance
Compilato è bello
Ci vuole la forza bruta: n2 richieste per n punti (anche perchèle distanze possono variare a seconda della direzione)
Fare le richieste ad un servizio online non è proponibile(377× 377 = 142129 richieste → ban dell'ip in 3...2...1...)
Compiliamo OSRM su una distro Ubuntu-likehttps://github.com/sabas/OSRMdistance/blob/master/
QUICKSTART.md
Stefano Sabatini OSRMDistance
Estrazione dei dati
Per ottenere i dati, preso l'estratto regionale della Sardegna
1
./osrm-extract sardegna.osm.pbf
(circa 30 secondi, Intel i5)
2
./osrm-prepare sardegna.osrm sardegna.osrm.restrictions
(circa 50 secondi, all your ram are belong to us)Dopo la con�gurazione si avvia in un terminale il server:
3
./osrm-routed
Stefano Sabatini OSRMDistance
Automatizzare OSRM
Gli script lavorano su �le csv e sono lanciabili sia da terminaleche da webserver: il formato base è �nodo;lat;lon� dove nodopuò essere una etichetta qualsiasi
osrmdistance avvia la computazione della distanza su tutte lecombinazioni
osrmsinglepoint data una lista ed una stringa nel formatobase calcola le distanze da quest'ultima a tutti gli elementidella lista
Stefano Sabatini OSRMDistance
Dati di partenza
Due script aiutano nella preparazione dell'input: extractData
estrae un csv da un �le osm, osrmnearest cerca le coordinatepiù vicine sul grafo stradale
I dati quindi possono essere composti da JOSM o daoverpass-turbo ad esempio
Stefano Sabatini OSRMDistance
Monitoraggio dei percorsi
Stefano Sabatini OSRMDistance
Overpass Turbo
Vogliamo individuare gli aeroporti della Sardegna
Stefano Sabatini OSRMDistance
Geojson.io
Filtriamo i risultati (sorry Oristano e Tortolì) e poi convertiamo nelformato richiesto (node;lat;lon)
Stefano Sabatini OSRMDistance
Test con OSRMDistance
Facciamo una ipotesi, ad esempio parto da Gavoi;40.1631;9.1961e voglio vedere quanto ci vuole per raggiungere i tre aeroporti(normalizzando le coordinate)Olbia;40.90336;9.51270Alghero;40.62843;8.29361Cagliari;39.25399;9.06374
Stefano Sabatini OSRMDistance
Risultati
L'esecuzione portafrom;to;status;distance;timeGavoi;Olbia;OK;131997;5956Gavoi;Alghero;OK;147357;7564Gavoi;Cagliari;OK;151236;7525Ovvero, in maniera più comprensibile:
Da A Distanza Tempo
Gavoi Olbia 131,997 km 1:39'16�
Gavoi Alghero 147,357 km 2:06'04�
Gavoi Cagliari 151,236 km 2:05'25�
Stefano Sabatini OSRMDistance
Conclusione
Queste sono giusto idee per mostrare le potenzialità del grafostradale di OSM.Cos'altro si può fare?
Convertirlo in un altro linguaggio
Monitorare i percorsi a lunga distanza
Proporre analisi di raggiungibilità
Stefano Sabatini OSRMDistance
Top Related