Introduzione all'analisi delle reti sociali #datajournalism
Soluzioni open source per la mobilità
1. Soluzioni open source per la mobilità
Maurizio Napolitano
Fondazione Bruno Kessler
napolitano@fbk.eu
una review dei software che fanno uso dei dati
di OpenStreetMap
2. Couple of mature tourist on a vacation by Jacob Lund Photography from NounProject.com
12. Riassunto caratteristiche
Gestione profili di più mezzi di trasporto
a piedi, auto, biciclette, mezzi pesanti, multimodale, cavalli, sedia a rotelle ….
API
Routing
Isocrone / Isodistanze
Matrici
Map Matching
Extra
restrizioni di svolta
evitare aree
percorsi alternativi
percorsi circolari
gestione del tempo (es. traffico)
pendenze
VRP
13. Profili
piedi, auto e biciclette
(possono essere configurati
altri con LUA)
API
Routing
Matrici
Map Matching
Extra
restrizioni di svolta
percorsi alternativi
(può gestire informazioni
di traffico)
nato in ambito accademico
(Karlsruher Institut für Technologie)
Il main developer venne assunto da
Mapbox*
Il più performante in assoluto
Non si possono assegnare pesi al
volo
Comunità molto attiva
https://github.com/Project-OSRM/
Licenza BSD-2
*nel 2019 Mapbox ha rallentato lo sviluppo in
favore di Valhalla
14. Profili
piedi, auto e biciclette
(possono essere configurati
altri con LUA)
API
Routing
Matrici
Map Matching
Extra
restrizioni di svolta
percorsi alternativi
(può gestire informazioni
di traffico)
nato in ambito accademico
(Karlsruher Institut für Technologie)
Il main developer venne assunto da
Mapbox*
Il più performante in assoluto
Non si possono assegnare pesi al
volo
Comunità molto attiva
https://github.com/Project-OSRM/
Licenza BSD-2
*nel 2019 Mapbox ha rallentato lo sviluppo in
favore di Valhalla
15. Profili
piedi, auto, biciclette (diverse),
multimodale (GTFS)
moto, escursionismo,
sedia a rotelle
API
Routing
Isocrone/Isodistanze
Matrici
Map Matching
Extra
restrizioni di svolta
evitare aree
percorsi alternativi
percorsi circolari
attributi dinamici ai veicoli
pendenze
VRP
Nato come progetto personale da
uno dei fondatori, si è rapidamente
evoluto in un servizio commerciale
open source con l'obiettivo
principale di risolvere problemi di
routing dei veicoli altamente
complessi.
Ottime performance
personalizzazione dei tipi di mezzi
da codice sorgente
versione community (open) ed
enterprise (closed)
Sviluppo decisamente attivo
https://github.com/graphhopper/gra
phhopper
Licenza Apache-2
16. Profili
piedi, auto, biciclette (diverse),
multimodale (GTFS)
moto, escursionismo,
sedia a rotelle
API
Routing
Isocrone/Isodistanze
Matrici
Map Matching
Extra
restrizioni di svolta
evitare aree
percorsi alternativi
percorsi circolari
attributi dinamici ai veicoli
pendenze
VRP
Nato come progetto personale da
uno dei fondatori, si è rapidamente
evoluto in un servizio commerciale
open source con l'obiettivo
principale di risolvere problemi di
routing dei veicoli altamente
complessi.
Ottime performance
personalizzazione dei tipi di mezzi
da codice sorgente
versione community (open) ed
enterprise (closed)
Sviluppo decisamente attivo
https://github.com/graphhopper/gra
phhopper
Licenza Apache-2
17. Profili
piedi, auto, biciclette,
multimodale (GTFS),
camion, taxi, moto,
autobus, scooter
API
Routing
Isocrone/Isodistanze
Matrici
Map Matching
Extra
restrizioni di svolta
evitare aree
percorsi alternativi
attributi dinamici ai veicoli
pendenze
gestione del tempo (es. traffico)
TSP
Progetto creato dall'azienda Mapzen
(ora chiusa) e portato avanti da
Mapbox.
Rumors dicono che sia utilizzato
sulle auto Tesla.
È in grado di adattare il routing in
relazione ad informazioni temporali
statiche (es. orario apertura strada)
o dinamiche (es. traffico).
Gestisce un unico grafo stradale
invece che uno per profilo.
Lento nel calcolo delle matrici.
Pessima documentazione
Sviluppo decisamente attivo
https://github.com/valhalla
Licenza MIT
18. Profili
piedi, auto, biciclette,
multimodale (GTFS),
camion, taxi, moto,
autobus, scooter
API
Routing
Isocrone/Isodistanze
Matrici
Map Matching
Extra
restrizioni di svolta
evitare aree
percorsi alternativi
attributi dinamici ai veicoli
pendenze
gestione del tempo (es. traffico)
TSP
Progetto creato dall'azienda Mapzen
(ora chiusa) e portato avanti da
Mapbox.
Rumors dicono che sia utilizzato
sulle auto Tesla.
È in grado di adattare il routing in
relazione ad informazioni temporali
statiche (es. orario apertura strada)
o dinamiche (es. traffico).
Gestisce un unico grafo stradale
invece che uno per profilo.
Lento nel calcolo delle matrici.
Pessima documentazione
Sviluppo decisamente attivo
https://github.com/valhalla
Licenza MIT
19. Profili
piedi, auto, biciclette (varie)
camion, escursionismo,
sedia a rotelle
API
Routing
Isocrone/Isodistanze
Matrici
Extra
evitare aree
percorsi alternativi
percorsi circolari
attributi dinamici ai veicoli
pendenze
VRP
Uno dei primi motori di routing open
source nato nel dipartimento
GIScience dell'Università di
Heidelberg, in Germania, nel 2008k
successivamente si è sviluppato
partendo dal codice di Graphhopper
(calcolo della matrice) per poi
proseguire da solo.
Molto veloce
Richiede molta RAM
Lo sviluppo di nuovi profili avviene
tramite scrittura codice java
Sviluppo molto attivo
https://github.com/GIScience/openr
outeservice
Licenza GPL3
20. Profili
piedi, auto, biciclette (varie)
camion, escursionismo,
sedia a rotelle
API
Routing
Isocrone/Isodistanze
Matrici
Extra
evitare aree
percorsi alternativi
percorsi circolari
attributi dinamici ai veicoli
pendenze
VRP
Uno dei primi motori di routing open
source nato nel dipartimento
GIScience dell'Università di
Heidelberg, in Germania, nel 2008k
successivamente si è sviluppato
partendo dal codice di Graphhopper
(calcolo della matrice) per poi
proseguire da solo.
Molto veloce
Richiede molta RAM
Lo sviluppo di nuovi profili avviene
tramite scrittura codice java
Sviluppo molto attivo
https://github.com/GIScience/openr
outeservice
Licenza GPL3
22. Fuori classifica ma da menzionare!
PG Routing
estensione di Postgresql / PostGIS per il routing.
Ottimo ma non si presenta come webservice
Routino
il migliore a livello di stato dell'arte per l'implementazione degli algoritmi di routing.
Non si propone come webservice, supporta tantissimi profili di mezzi (si configurano
con LUA)
OpenTripPlanner
nato nel 2009 per la gestione del trasporto multimodale (mezzi pubblici + bike
sharing).
supporta tutte le funzioni multimodali (es. isocrone su trasporto pubblico)
Il più utilizzato in assoluto dalle aziende di trasporto pubblico nel mondo (per questo
ha una grossa comunità dietro)
27. VROOM
jsprit
Optaplanner
Soluzioni software Open Source
libreria java rilasciata in Apache 2 che risolve il problema
VRP integrata nella versione proprietaria di Graphopper
Risolutore di vincoli con vari moduli. Risolve VRP a partire
da una matrice di costi (java - apache 2)
Libreria C++ con binding Python, C# e Java che risolve
vincoli di combinazioni fra cui VRP a partire da una
matrice dei costi (licenza apache 2)
Programma in C++ con suite client/server che si integra
con OSRM, ORS e Valhalla
28. VROOM
jsprit
Optaplanner
Soluzioni software Open Source
libreria java rilasciata in Apache 2 che risolve il problema
VRP integrata nella versione proprietaria di Grapphoper
Risolutore di vincoli con vari moduli. Risolve VRP a partire
da una matrice di costi (java - apache 2)
Libreria C++ con binding Python, C# e Java che risolve
vincoli di combinazioni fra cui VRP a partire da una
matrice dei costi (licenza apache 2)
Programma in C++ con suite client/server che si integra
con OSRM, ORS e Valhalla
SUITE
COMPLETA!!!
webservice
proprietario
oppure sviluppo
necessità di
sviluppare
matrice dei costi
necessità di
sviluppare
webservice
29. VROOM
Integrazione con OSRM, Open Route Service e Valhalla
=> richiesta matrice dei costi per qualsiasi profilo di mezzo disponibile
VROOM EXPRESS
=> software in nodejs per gestire vroom come webservice
JSON in INPUT
=> modellazione dei mezzi con ogni loro caratteristica: profilo mezzo, capienza,
fascia oraria lavorativa, tipologia mezzo, punto partenza/ritorno, pause, ecc…
=> modellazione dei "jobs": punti di ritiro/consegna, dimensioni oggetti
ritiro/consegna, fascia oraria consegna/ritiro, coordinate del luogo….
JSON in OUTPUT
=> soluzioni individuate: tempi totali, tempi di spostamento punto a punto, percorsi
ecc…
=> eventuali punti non raggiungibili per questioni di tempo/spazio
30. Conclusioni
IN OUT
Se vogliamo evitare l'effetto "garbage
in = garbage out" dobbiamo avere più
cura sulla qualità dei dati di
OpenStreetMap.
Lavoriamo insieme per i beni comuni.