Download - OSRMdistance
![Page 1: OSRMdistance](https://reader035.vdocuments.site/reader035/viewer/2022062708/55870429d8b42a02668b4669/html5/thumbnails/1.jpg)
OSRMDistance
Estrarre distanze tramite routing per QA ed analisi statistiche
Stefano Sabatini
Rovereto, OSMit 2013
Stefano Sabatini OSRMDistance
![Page 2: OSRMdistance](https://reader035.vdocuments.site/reader035/viewer/2022062708/55870429d8b42a02668b4669/html5/thumbnails/2.jpg)
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
![Page 3: OSRMdistance](https://reader035.vdocuments.site/reader035/viewer/2022062708/55870429d8b42a02668b4669/html5/thumbnails/3.jpg)
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
![Page 4: OSRMdistance](https://reader035.vdocuments.site/reader035/viewer/2022062708/55870429d8b42a02668b4669/html5/thumbnails/4.jpg)
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
![Page 5: OSRMdistance](https://reader035.vdocuments.site/reader035/viewer/2022062708/55870429d8b42a02668b4669/html5/thumbnails/5.jpg)
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
![Page 6: OSRMdistance](https://reader035.vdocuments.site/reader035/viewer/2022062708/55870429d8b42a02668b4669/html5/thumbnails/6.jpg)
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
![Page 7: OSRMdistance](https://reader035.vdocuments.site/reader035/viewer/2022062708/55870429d8b42a02668b4669/html5/thumbnails/7.jpg)
Monitoraggio dei percorsi
Stefano Sabatini OSRMDistance
![Page 8: OSRMdistance](https://reader035.vdocuments.site/reader035/viewer/2022062708/55870429d8b42a02668b4669/html5/thumbnails/8.jpg)
Overpass Turbo
Vogliamo individuare gli aeroporti della Sardegna
Stefano Sabatini OSRMDistance
![Page 9: OSRMdistance](https://reader035.vdocuments.site/reader035/viewer/2022062708/55870429d8b42a02668b4669/html5/thumbnails/9.jpg)
Geojson.io
Filtriamo i risultati (sorry Oristano e Tortolì) e poi convertiamo nelformato richiesto (node;lat;lon)
Stefano Sabatini OSRMDistance
![Page 10: OSRMdistance](https://reader035.vdocuments.site/reader035/viewer/2022062708/55870429d8b42a02668b4669/html5/thumbnails/10.jpg)
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
![Page 11: OSRMdistance](https://reader035.vdocuments.site/reader035/viewer/2022062708/55870429d8b42a02668b4669/html5/thumbnails/11.jpg)
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
![Page 12: OSRMdistance](https://reader035.vdocuments.site/reader035/viewer/2022062708/55870429d8b42a02668b4669/html5/thumbnails/12.jpg)
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