Utilizzo del servizio di bike sharing BikeMi in relazione a eventi significativi sul territorio - Corso di Laurea in Informatica per la ...

Pagina creata da Fabio Bruno
 
CONTINUA A LEGGERE
Utilizzo del servizio di bike sharing BikeMi in relazione a eventi significativi sul territorio - Corso di Laurea in Informatica per la ...
Corso di Laurea in Informatica per la Comunicazione
                      Digitale

  Utilizzo del servizio di bike
 sharing BikeMi in relazione a
eventi significativi sul territorio

Relatore: Andrea Mario Trentini

                        Tesi di Laurea di: Lorenzo Ceo
                                       Matr. 910319

            Anno Accademico 2019/2020
Utilizzo del servizio di bike sharing BikeMi in relazione a eventi significativi sul territorio - Corso di Laurea in Informatica per la ...
Ringraziamenti

Vorrei ringraziare il Professor Andrea Mario Trentini, relatore di questa tesi,
per avermi proposto questo interessante progetto e per il supporto dedicatomi
per la sua realizzazione. Senza la sua guida e gli innumerevoli consigli, non
sarei stato in grado di completarlo in modo soddisfacente in ogni sua parte.
   Desidero esprimere un ringraziamento particolare anche alla mia famiglia,
che mi ha continuamente supportato anche nei momenti piu      ̀ difficili, senza
mai tirarsi indietro.
   L’ultimo, ma non meno importante, ringraziamento ̀e dedicato ai miei
compagni di corso: senza di loro questi tre anni non sarebbero stati gli stessi.

                                       1
Utilizzo del servizio di bike sharing BikeMi in relazione a eventi significativi sul territorio - Corso di Laurea in Informatica per la ...
Indice

1 Introduzione                                                                                                      4
  1.1 Cos’è il bike sharing . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    5
       1.1.1 Storia del bike sharing       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    5
       1.1.2 Vantaggi . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    7
       1.1.3 Tipologie di servizi . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    7
  1.2 Bike sharing a Milano . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    8
       1.2.1 BikeMi . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    8
       1.2.2 Servizi alternativi . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   14

2 Acquisizione ed elaborazione dei dati                                                                            18
  2.1 Open Data . . . . . . . . . . . . . . . . . . . . . . . . .                                  .   .   .   .   18
  2.2 Software utilizzati . . . . . . . . . . . . . . . . . . . . .                                .   .   .   .   20
  2.3 Panoramica sui dati utilizzati . . . . . . . . . . . . . .                                   .   .   .   .   21
  2.4 Elaborazione dei dati BikeMi . . . . . . . . . . . . . .                                     .   .   .   .   22
      2.4.1 Preparazione dei file grezzi . . . . . . . . . . . .                                   .   .   .   .   23
      2.4.2 Parsing . . . . . . . . . . . . . . . . . . . . . .                                    .   .   .   .   24
      2.4.3 Verifica d’insieme dei dati . . . . . . . . . . . .                                    .   .   .   .   25
      2.4.4 Verifica dei dati mancanti . . . . . . . . . . . .                                     .   .   .   .   26
      2.4.5 Calcolo dei valori di utilizzo del servizio . . . .                                    .   .   .   .   26
      2.4.6 Rimozione delle ore di non operatività . . . . .                                      .   .   .   .   27
      2.4.7 Ricampionamento . . . . . . . . . . . . . . . . .                                      .   .   .   .   29
  2.5 Elaborazione degli altri dataset . . . . . . . . . . . . .                                   .   .   .   .   29
      2.5.1 Dataset ufficiale sulle stazioni BikeMi . . . . . .                                    .   .   .   .   29
      2.5.2 Dataset relativi alle informazioni atmosferiche .                                      .   .   .   .   30
      2.5.3 Dataset ufficiali relativi all’apertura dell’Area C                                    .   .   .   .   32
      2.5.4 Informazioni di eventi sul territorio . . . . . . .                                    .   .   .   .   33

3 Analisi dei dati BikeMi                                                                                          34
  3.1 Crescita del servizio . . . . . . . . . . . . . . . . . . . . . . . .                                        34
      3.1.1 Utilizzi annuali . . . . . . . . . . . . . . . . . . . . . .                                           34
      3.1.2 Numero di veicoli . . . . . . . . . . . . . . . . . . . . .                                            35

                                       2
Utilizzo del servizio di bike sharing BikeMi in relazione a eventi significativi sul territorio - Corso di Laurea in Informatica per la ...
3.1.3 Resa del servizio . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   37
   3.2   Andamento in relazione al periodo .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   38
         3.2.1 Utilizzi stagionali . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   38
         3.2.2 Utilizzi mensili . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   40
         3.2.3 Utilizzi giornalieri . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   43
         3.2.4 Utilizzi in base all’orario . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   43
   3.3   Andamento in relazione al luogo . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   44
         3.3.1 Numero di utilizzi . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   44
         3.3.2 Frequenza degli utilizzi . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   53
         3.3.3 Pendolarismo . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   57
   3.4   Andamento in relazione a eventi . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   60
         3.4.1 Eventi meteorologici . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   60
         3.4.2 Area C . . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   66
         3.4.3 Eventi sul territorio . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   69
         3.4.4 Coronavirus . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   70

4 Conclusioni e spunti futuri                                             82
  4.1 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
  4.2 Spunti futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

                                       3
Utilizzo del servizio di bike sharing BikeMi in relazione a eventi significativi sul territorio - Corso di Laurea in Informatica per la ...
Capitolo 1

Introduzione

Con la crescente densificazione delle città, che si stima porterà la popolazione
urbana al 68% entro il 2050[11], si ̀e reso sempre piu    ̀ necessario pensare a
nuovi sistemi di mobilità all’interno delle metropoli. Inoltre le recenti diret-
tive in termini di riduzione dell’inquinamento, che promettono di diminuire
almeno del 40% le emissioni di gas serra rispetto ai livelli del 1990 e aumenta-
re al 32% la quota di energia rinnovabile[3], hanno fatto sı̀ che in pochi anni
il business della mobilità sostenibile diventasse di fondamentale importanza
[2].
     Grazie all’enorme e pervasiva crescita tecnologica sono nati numerosissimi
servizi che, in contrapposizione al paradigma della proprietà individuale del
mezzo da sempre utilizzato dall’invenzione delle automobili, prevedono un
sistema di noleggio dei veicoli. La mobilità sostenibile ha interessato ogni
settore dei trasporti: bike sharing, car sharing, car pooling, scooter sharing
e via dicendo sono termini ormai di utilizzo comune, nati per rispondere a
queste nuove necessità.
     Questo progetto ha lo scopo di fornire una quanto piu     ̀ completa analisi
del servizio di bike sharing BikeMi, il servizio pubblico di condivisione di
biciclette a Milano, partendo dalla scoperta di periodicità e pattern nell’an-
damento dell’utilizzo dei veicoli e cercando possibili correlazioni con eventi
significativi verificatisi sul territorio milanese. Obiettivo secondario ̀e inoltre
mostrare come tale analisi sia stata effettuata su dati non resi pubblici nella
loro interezza, ma raccolti nell’arco di anni.
     Il documento ̀e diviso in quattro capitoli:

   ˆ il primo capitolo introduce l’argomento dei servizi di bike sharing, dan-
     done un panorama storico e passando poi al dettaglio della realtà mi-
     lanese, in modo da presentare al lettore le conoscenze necessarie alla
     corretta comprensione dell’analisi;

                                        4
Utilizzo del servizio di bike sharing BikeMi in relazione a eventi significativi sul territorio - Corso di Laurea in Informatica per la ...
ˆ il secondo capitolo, dopo aver fornito una breve introduzione al concetto
        di Open Data, descrive tutti i procedimenti e le modalità utilizzate per
        ottenere ed elaborarare i dati grezzi, processo decisivo per estrarne
        informazioni significative e procederne all’analisi;
      ˆ il terzo capito ha lo scopo di mostrare, tramite visualizzazioni e metri-
        che statistiche, tutte le analisi effettuate sui dati del servizio, illustran-
        done i pattern emersi e le significative correlazioni trovate, passando
        poi alla scoperta delle stazioni piu  ̀ performanti sotto diversi punti di
        vista e concludendo con la ricerca della correlazione con diversi eventi
        avvenuti sul territorio milanese;
      ˆ il quarto capitolo presenta in modo sintetico le conclusioni più rilevanti
        ricavate dall’analisi precedente e diversi spunti per la continuazione del
        progetto.

1.1        Cos’e
               ̀ il bike sharing
Il bike sharing ̀e uno degli strumenti di mobilità piu  ̀ utilizzati nelle grandi
metropoli dalla popolazione locale e dai turisti 1 . Bike sharing significa “bici
condivisa” ed ̀e uno dei tanti servizi di mobilità sostenibile di cui si avvalgono
le amministrazioni pubbliche allo scopo di fornire una soluzione valida per
gli spostamenti a breve distanza, tramite l’uso di biciclette condivise anche
laddove i mezzi di trasporto comunali non arrivano o non possono arrivare.
Diversamente dal classico noleggio, i servizi di bike sharing prevedono una
flotta di veicoli utilizzabili per brevi periodi in diversi luoghi del territorio,
dietro un compenso stabilito all’attivazione del servizio.

1.1.1       Storia del bike sharing
La prima idea di bike sharing venne piu   ̀ di mezzo secolo fa a un gruppo di
anarchici di Amsterdam, che il 28 luglio 1965 verniciarono di bianco alcune
biciclette nere e le lasciarono poi in giro per la città a disposizione di tutti.
L’esperimento fallı̀, non si sa se a causa di una vecchia legge che imponeva
che tutte le biciclette fossero dotate di un lucchetto, oppure perché la mag-
gior parte di esse venne rubata o danneggiata. Dopo questo primo fallimento
per quasi trent’anni nessuno ci riprovò, fino a quando, nel 1995, la città di
Copenhagen lanciò Bycykler, un servizio di bike sharing che funzionò, nono-
stante alcuni problemi iniziali come il furto, la vandalizzazione e la difficoltà
di rintracciare i mezzi per la manutenzione.
  1
      https://www.coopvoce.it/web/mag/blog/Bike_Sharing_nel_futuro

                                           5
Utilizzo del servizio di bike sharing BikeMi in relazione a eventi significativi sul territorio - Corso di Laurea in Informatica per la ...
Figura 1.1: Veicoli del rivoluzionario servizio Vélib di Parigi

    Negli anni seguenti questi servizi si diffusero poco a poco anche nel Re-
gno Unito, grazie all’invenzione di una sistema che prevedeva l’uso di tessere
magnetiche in appositi parcheggi e in Francia, nelle città di Rennes e Lione,
che ispirarono quello che oggi ̀e considerato uno dei servizi di bike sharing
piu
  ̀ ambiziosi mai realizzati: il Vélib di Parigi, lanciato nel 2007. Il Velib
introduceva alcune caratteristiche fondamentali dei servizi odierni: la trac-
ciabilità delle bici e l’iscrizione tramite carta di credito. Nonostante il primo
periodo caratterizzato da numerosi furti, il servizio possiede ad oggi circa
18mila bici. Un’immagine dei veicoli del servizio ̀e visibile alla figura 1.1.
    Il 2007 ̀e stato un anno decisivo per il bike sharing in quanto nei dieci
anni successivi sono stati lanciati quasi 1.600 servizi contro i soli 75 degli anni
antecedenti. Fra i piu   ̀ ambiziosi troviamo quelli attivi a Londra, New York,
Barcellona, ma soprattutto in Cina, che ha recentemente iniziato a esportare
i propri brand in occidente. La crescita dei servizi di bike sharing può essere
osservata nella figura 1.2. In Italia il bike sharing ha avuto negli ultimi
anni una notevole diffusione, specie al Nord, in cui il territorio e la cultura
cittadina meglio si ̀e approcciata all’uso delle bici in un sistema condiviso.
Particolarmente positive sono le esperienze di Milano, Alessandria, Parma,
Torino, Caserta 23 .
  2
      https://www.ilpost.it/2017/12/25/bike-sharing-storia/
  3
      https://www.halaesainbici.info/la-storia-del-bs/

                                          6
Utilizzo del servizio di bike sharing BikeMi in relazione a eventi significativi sul territorio - Corso di Laurea in Informatica per la ...
Figura 1.2: Crescita dei servizi di bike sharing nel mondo

1.1.2     Vantaggi
L’adozione di servizi di bike sharing, pur costando molto alla collettività,
fa sı̀ che gli utenti non siano vincolati ad acquistare un veicolo personale
e a portarlo con loro, eliminando anche la necessità di catene e lucchetti.
Per la pubblica amministrazione l’adozione del bike sharing si traduce in un
alleggerimento dell’uso dei mezzi pubblici nonché in un ulteriore passo verso
la mobilità sostenibile 4 .

1.1.3     Tipologie di servizi
I servizi di bike sharing si sviluppano secondo due filosofie: station-based
e free floating. La prima prevede il noleggio e la riconsegna dei veicoli in
apposite stazioni situate sul territorio locale, a seconda dell’utilizzo posso-
no esserci piani di riposizionamento dei veicoli, spesso negli orari in cui il
servizio non ̀e attivo. La seconda tipologia ̀e nata piu   ̀ di recente grazie al-
lo sviluppo tecnologico, che permette di localizzare le biciclette tramite dei
dispositivi GNSS integrati e prevede il noleggio del mezzo tramite una map-
pa visualizzabile in mobilità tramite un’applicazione sul proprio smartphone.
La particolarità di questo tipo di servizio ̀e la possibilità di lasciare il mezzo
in qualsiasi punto del territorio, rendendo non piu  ̀ necessaria la consegna in
un’apposita stazione.
  4
   https://www.focus.it/ambiente/ecologia/bike-sharing-traffico-
biciclette-e-salute-in-citta

                                         7
Utilizzo del servizio di bike sharing BikeMi in relazione a eventi significativi sul territorio - Corso di Laurea in Informatica per la ...
1.2      Bike sharing a Milano
Milano, grazie ai numerosi servizi offerti, si classifica tra le città pioniere nel
settore del bike sharing e, insieme al car sharing e allo scooter sharing, offre
un ampio servizio di mobilità sostenibile e complementare al trasporto pub-
blico. Sebbene nel capoluogo lombardo la mobilità privata ricopra ancora un
ruolo maggioritario, le proiezioni che ci portano al 2040 indicano un ribalta-
mento con il trasporto pubblico, che prende il sopravvento e in particolare
un raddoppio degli utilizzi del bike sharing 5 .
     Sono entrate in vigore anche delle diverse regolamentazioni per quanto
riguarda le biciclette destinate al bike sharing: le bici si differenziano a se-
conda dell’operatore, ma in ogni caso devono per regolamento avere un peso
contenuto, essere resistenti alle intemperie e riconoscibili avendo ben visibile
il logo del Comune di Milano. Devono inoltre essere dotate di faro anteriore
e posteriore che si accende in automatico all’avvio del noleggio ed un siste-
ma di segnalazione acustica sul manubrio dove deve trovare posto anche un
cestino porta oggetti. In tema di sicurezza i cavi ed i componenti devono
essere incorporati nel telaio anche per minimizzare le manomissioni. I vei-
coli possono prevedere anche sistemi di pedalata assistita o a batteria con
la possibilità per l’utente di attivare e disattivare il motore elettrico quando
non lo desidera. La ricarica della batteria, a cura del gestore, deve avvenire
in luoghi predefiniti e le batterie devono essere al litio di alta qualità e senza
piombo 6 .

1.2.1     BikeMi
Il primo dei servizi di bike sharing presentato a Milano ̀e stato BikeMi, che,
attivo dal 2008 7 , ha avuto un rapido sviluppo. Nei primi dieci anni di vita
conta più di 650.000 iscritti e 23 milioni di utilizzi, per oltre 46 milioni di
chilometri percorsi 8 , che hanno permesso di risparmiare oltre 9,3 milioni di
chili di anidride carbonica in termini di mancate emissioni 9 , alle quali si
aggiunge il contributo di una centrale di ricarica elettrica con energia (75
khW/annui) prodotta da pannelli fotovoltaici 10 .
  5
     https://www.ilgiorno.it/milano/cronaca/bike-mi-1.4321609
  6
     https://www.primosito.it/blog/bike-sharing-milano/
   7
     https://bikemi.com/chi-siamo
   8
     https://www.ilgiorno.it/milano/cronaca/bike-mi-1.4321609
   9
     https://www.ansa.it/lombardia/notizie/2019/06/28/a-milano-in-arrivo-
altre-400-bikemi_55254097-b6ad-4b7a-8ffd-c0ede73cf389.html
  10
     https://www.clearchannel.it/clear-channel-italia-sponsor-della-3-
conferenza-nazionale-sulla-sharing-mobility/

                                         8
Utilizzo del servizio di bike sharing BikeMi in relazione a eventi significativi sul territorio - Corso di Laurea in Informatica per la ...
Figura 1.3: La stazione BikeMi numero 1: Duomo

    Nel 2008 il servizio di tipo station-based ̀e iniziato con sole 66 stazioni per
la sosta di 850 mezzi 11 , per poi arrivare a fine 2020 con 317 postazioni attive
sull’intero territorio milanese e dintorni [10], con un numero di veicoli pari a
3.650 biciclette tradizionali e 1.150 elettriche a pedalata assistita, di cui 150
provviste di seggiolino per bambini 12 . La stazione numero 1, in prossimità
del Duomo di Milano, ̀e visibile alla figura 1.3. Il servizio ̀e operativo dalle 7
del mattino all’1 di notte. Durante il periodo estivo il servizio ̀e prolungato:
da domenica a giovedı̀ dalle 7:00 alle 2:00; nei giorni di venerdı̀ e sabato ̀e
disponibile 24 ore su 24 13 .

L’utilizzo di BikeMi
Le biciclette sono bloccate e sono prelevabili dalle stazioni sbloccandole con
un’apposita tessera contactless (tramite tecnologia RFID 14 ), tramite la tesse-
ra dell’abbonamento ATM oppure, grazie al recentissimo aggiornamento del
servizio di marzo 2021, tramite l’applicazione disponibile per smartphone.
  11
     https://milano.corriere.it/cronaca/cards/record-bikemi/nel-2008-
debutto.shtml
  12
     https://milano.corriere.it/19_maggio_16/flotta-nuove-stazioni-
ricambio-bike-sharing-bando-sostituire-ofo-ec40faae-77a8-11e9-bbe0-
f6f4647a7d08.shtml
  13
     https://www.comune.milano.it/servizi/bike-sharing
  14
     https://rfid.it/cos-e-la-tecnologia-rfid/

                                        9
Al termine della corsa la bicicletta deve essere obbligatoriamente riportata
in una stazione con almeno uno stallo disponibile.
    Le tariffe sono a tempo: con le bici tradizionali la prima mezz’ora ̀e gratis,
ogni mezz’ora successiva costa 50 centesimi, dopo la quarta mezz’ora ogni ora
o frazione costa 2 euro. Con le bici a pedalata assistita la prima mezz’ora
costa 25 centesimi, la seconda 50 centesimi, la terza 1 euro, la quarta 2 euro.
Successivamente, ogni ora o frazione costa 4 euro. Il servizio prevede anche
degli abbonamenti: 4,5 euro per il giornaliero, 9 per il settimanale, 36 per
l’annuale 1516 . Da luglio 2019 l’abbonamento al servizio ̀e caricabile sulla
tessera ATM, la scheda relativa ai servizi offerti dall’azienda che gestisce i
trasporti pubblici milanesi, cosı̀ da consentire agli utenti di utilizzare un’unica
tessera per i mezzi pubblici e le bici in condivisione di BikeMi, con relativi
sconti per chi usufruisce dei diversi servizi. In alcune stazioni selezionate del
centro cittadino inoltre ̀e possibile usare l’abbonamento per prelevare anche
le biciclette da bambini del BikeMi Junior (1 euro per le prime due ore, 1
euro per ogni ora successiva o frazione) 17 .

Stazioni
Fin dalla sua nascita il servizio BikeMi ha vissuto una costante e uniforme
crescita, suddivisa in diverse fasi, a seconda dell’aumento del numero delle
stazioni, che si sono espanse lentamente nella periferia del capoluogo lom-
bardo. Nel dicembre 2008 BikeMi ha presentato 66 stazioni nel centro della
metropoli lombarda, scegliendo punti strategici per quanto riguarda il turi-
smo, i trasporti, le università e i parchi, tra cui Cadorna, Duomo, Centrale,
Garibaldi e Lambrate 18 . La maggior parte delle stazioni aperte al lancio
comprendeva 24 stalli, ma, in seguito, con l’introduzione delle bici elettriche
nel 2015, mostrate nella figura 1.6, il numero degli stalli ̀e aumentato a 36
[10].
    Con la fase 1, terminata nel 2009, si ̀e raggiunto l’obiettivo di 100 stazioni
e 1.400 biciclette ed ̀e stato superato il record di 1milione e 500.000 bici
prelevate 1920 . Alla fine del 2010 sono stati registrati oltre 10.000 abbonati
  15
     https://bikemi.com/come-funziona
  16
     https://www.dueruote.it/news/attualita/2020/06/04/bike-sharing-
milano.html
  17
     https://www.atm.it/it/ViaggiaConNoi/Bici/Pagine/BikeMi.aspx
  18
     https://milano.corriere.it/cronaca/cards/record-bikemi/nel-2008-
debutto.shtml
  19
     https://www.atm.it/it/AtmNews/Comunicati/Pagine/
giornatanazionaledellabicicletta.aspx
  20
     https://www.atm.it/it/AtmNews/Comunicati/Pagine/BikeMi,
partelasecondafase.aspx

                                        10
Figura 1.4: Le originali 66 stazioni (a sinistra) contro le 317 disponibili a fine
2020 (a destra) mostrano l’espansione del servizio verso la periferia milanese.
L’area delimitata dal confine blu ̀e denominata “Area C”

annuali e 30.000 occasionali 21 . Nello stesso anno ̀e stata inaugurata la fase
2 del progetto di espansione del servizio, che si conclude con l’aumento delle
stazioni fino ad un totale di 200 e 3.650 biciclette 22 , confermando Milano al
primo posto in Italia e al quinto in Europa per il servizio di Bike Sharing 23 .
    Il servizio ̀e scelto dai turisti, ma soprattutto dai lavoratori 24 : fin dalla
sua partenza, la stazione piu   ̀ utilizzata ̀e quella di Cadorna, snodo centrale
di metropolitane e ferrovie e le fasce orarie di utilizzo mostrano il picco degli
spostamenti tra le ore 8.00 e le 9.00 e tra le ore 18.00 e le 19.00 25 .
    “BikeMi - dichiara Elio Catania, presidente di ATM - ̀e a tutti gli effetti
un nuovo e importante tassello della piattaforma integrata di mobilità mila-
nese. Una rete d’eccezione per l’alta sostenibilità ambientale, oltre il 70% del
trasporto pubblico a energia elettrica e la pluralità di modalità di trasporto
offerte dalla metropolitana al tram, dal bus al filobus, al Radiobus di Quar-
tiere, fino al bike sharing e car sharing che si inseriscono e si integrano alla
  21
     https://www.atm.it/it/AtmNews/Comunicati/Pagine/autostradeperl%
27italia.aspx
  22
     http://www.officinadellambiente.com/it/articolo.php?idl1=1&idl2=21&id=
2416
  23
     http://bikesharing.gazzetta.it/2010/11/28/bikemi-fase-2-e-secondo-
compleanno-alle-porte/
  24
     https://www.bikeitalia.it/2011/11/10/bikemi-i-buoni-risultati-del-
bike-sharing-di-milano/
  25
     https://www.atm.it/it/AtmNews/Comunicati/Pagine/BikeMi,
partelasecondafase.aspx

                                        11
Figura 1.5: La crescita del numero di stazioni BikeMi

 rete ‘tradizionale’ per rispondere sempre meglio alle esigenze di chi si muove”
 26
    .
      Le prime due fasi dell’espansione del servizio hanno quindi visto la cresci-
 ta delle stazioni fino a un totale di 200 postazioni nel capoluogo lombardo,
 la maggior parte delle quali all’interno dell’area milanese denominata “Area
 C”, che si estende per tutta la “Zona a traffico limitato (ZTL) Cerchia dei
 Bastioni” e prevede il pagamento di un pedaggio nelle fasce in cui ̀e attiva
 27
    . In preparazione dell’Expo 2015, svoltosi dal 1 maggio al 31 ottobre 2015,
̀e iniziata la fase 3 di crescita del servizio, che prevedeva, per la prima volta
 nel mondo, l’introduzione di veicoli a pedalata assistita. Questa nuova ti-
 pologia di mezzi ̀e stata ospitata in ottanta-cento stazioni leggere, che in un
 primo tempo sono state posizionate sulla via ciclabile per Expo, tra i Ba-
 stioni e i padiglioni, e poi ricollocate sulla corona esterna della città alla fine
 dell’evento, vicino a Bicocca, Città Studi e Bovisa 28 . La figura 1.4 mostra
 su mappa l’aumento delle stazioni dalla nascita del servizio fino a fine 2020,
 mentre la figura 1.5 mostra l’incremento del numero di stazioni negli anni.
 Attualmente la stazione piu   ̀ grande ̀e quella di S. Gioachimo, in via Galileo
 Galilei, con 39 stalli, mentre quella piu ̀ piccola ̀e la Dante - San Tomaso con
 sole 15 postazioni. La capacità media di tutte le stazioni ̀e di 29 bici [10].
  26
     https://www.atm.it/it/AtmNews/Comunicati/Pagine/BikeMi,
partelasecondafase.aspx
  27
     https://www.milanotoday.it/green/mobilita/bike-sharing-stazione-via-
pacini.html
  28
     https://www.blogo.it/post/47087/al-via-la-fase-3-del-bikemi-con-il-
primo-esperimento-al-mondo-di-bike-sharing-elettrico

                                         12
Figura 1.6: Le biciclette elettriche BikeMi

    L’utente che vuole usufruire del servizio può conoscere lo stato di ogni
stazione, che comprende il numero di biciclette disponibili per ogni tipo e il
numero di stalli liberi per restituire un mezzo, sia dal sito web che dall’appli-
cazione per smartphone. Una volta scelta la stazione, l’utente può richiedere
lo sblocco del mezzo scelto tramite l’apposita colonnina oppure, grazie all’ag-
giornamento dell’applicazione di marzo 2021, dal proprio smartphone. Dopo
aver completato la corsa, il mezzo deve essere restituito alla stazione attiva
piu
  ̀ vicina con almeno uno stallo libero. Dato il costante utilizzo dei mezzi da
parte degli utenti, che riflette le dinamiche degli spostamenti cittadini, ̀e ne-
cessario riposizionare regolarmente i veicoli per andare incontro alle esigenze
degli utilizzatori.

Ribilanciamento
Ogni sistema di bike sharing di tipo location based deve affrontare il proble-
ma del ribilanciamento dei veicoli, in quanto gli utenti, una volta ritirato il
mezzo desiderato dall’apposita stazione, spesso lo riposizionano in un punto
di raccolta diverso. La disparità di veicoli disponibili in ogni stazione di-
venta un problema critico in quanto, nei casi estremi, potrebbe portare ad
una insoddisfacente risposta alla domanda di biciclette da parte degli utenti,
cosı̀ come l’impossibilità di riposizionare il mezzo nella stazione piu
                                                                       ̀ vicina,
con conseguente insoddisfazione da parte dell’utente, che potrebbe essere ri-
direzionato verso altri servizi di trasporto [12]. Per questo ogni servizio di
bike sharing location-based ha l’obbligo di effettuare un riposizionamento si-

                                       13
stematico dei veicoli in ogni stazione coperta, secondo le dinamiche rilevate
dall’attività dei mezzi.
    La necessità di veicoli nelle diverse stazioni inoltre può essere prevista
sfruttando algoritmi di Machine Learning che, secondo studi recenti, eviden-
ziano risultati positivi, portando a un aumento degli abbonamenti. In ag-
giunta, lo spostamento delle biciclette diventa uno dei maggiori costi che un
servizio di bike sharing deve sostenere, oltre all’elettricità e alla manutenzione
dei mezzi. Ciò rende necessaria un’ottimizzazione del ribilanciamento, spes-
so denominato “Problema del Riposizionamento del Bike Sharing (BRP)”,
secondo due metodiche: ribilanciamento statico e ribilanciamento dinamico
[6, 5, 24].
    La prima prevede, solitamente, un processo di riposizionamento durante
gli orari in cui il servizio non ̀e attivo, quando la domanda di veicoli ̀e molto
bassa. Questo, nel caso del serivio BikeMi, avviene di notte. La seconda,
invece, prevede un riposizionamento dei veicoli anche durante gli orari in cui
il servizio ̀e attivo. BikeMi prevede un riposizionamento dinamico, con 32
furgoni [1] attivi sia durante le ore di servizio che durante le ore notturne, in
cui il servizio non ̀e in funzione.

1.2.2       Servizi alternativi
Il 2017 ha visto due ulteriori servizi di bike sharing affiancarsi al quasi decen-
nale BikeMi, entrambi sono di tipologia free floating e provengono da aziende
cinesi: sono Mobike e Ofo [23].

Mobike
Mobike ̀e un’azienda fondata a Pechino nel 2015 operante nel settore del bike
sharing. Grazie ai numerosi paesi coperti dalla sua rete, Mobike ̀e diventata
il piu
     ̀ grande operatore al mondo in questo settore. Dal 2017 il servizio
ha raggiunto alcune città europee, tra cui, in Italia, Milano, Bologna Firenze
Torino e Venezia 29 . Mobike offre un servizio di free floating contrapponendosi
a quello offerto da BikeMi, in quanto i veicoli possono essere depositati, dopo
aver concluso il viaggio in qualunque luogo dell’area coperta, segnalando la
fine della corsa tramite l’apposita applicazione per smartphone.
    A Milano Mobike ̀e arrivato nell’agosto del 2017 con 8.000 biciclette e
propone due modelli di veicoli tradizionali, entrambi riconoscibili per i loro
colori argento e arancione: il primo, denominato “Classic”, ha ruote piene
da 24”, trasmissione cardanica, cestino anteriore, campanello e luci, non
  29
       https://it.wikipedia.org/wiki/Mobike

                                        14
Figura 1.7: Il nuovo modello Mobike a pedalata assistita e il modello “Lite 3.0”,
prima revisione dell’originale

ha il cambio ed ̀e piuttosto pesante, la dimensione delle ruote e l’assenza
del cambio la rendono poco comoda e il secondo, denominato “Lite 3.0”,
arrivato a Milano nel 2018, ̀e dotato di ruote “classiche” da 26” e cambio
a 3 marce. Questo secondo modello ̀e stato concepito per risolvere alcune
problematiche sorte con l’utilizzo del primo, che risultava piuttosto pesante,
scomodo e non dotato di cambio. Inoltre per disincentivare possibili tentativi
di furti, il secondo modello ̀e stato dotato di componenti di materiali vari dal
magnesio all’alluminio costruiti non in serie 3031 . Nel settembre del 2020 ̀e
stato presentato a Milano il nuovo modello a pedalata assistita, caratterizzato
da una colorazione bianca, arancione e nera 32 . La figura 1.7 mostra gli ultimi
modelli resi disponibili al noleggio.
    Il servizio di Mobike ̀e interamente gestibile tramite applicazione dispo-
nibile per smartphone: al primo avvio dell’app viene registrato un metodo
di pagamento elettronico tramite il quale ricaricare il proprio portafoglio. Il
servizio prevede anche un sistema a punteggio, destinato ad aumentare con
le “buone pratiche” e a diminuire a causa di “pratiche scorrette” segnalate
nelle condizioni comprese nei termini di utilizzo del servizio. Il punteggio
prevede un massimo di 1.000 punti e un limite minimo di 81 sotto il quale
 30
     https://www.milanotoday.it/green/mobilita/bike-sharing-flusso-
libero.html
  31
     http://urban.bicilive.it/bike-sharing-milano/
  32
     https://www.comune.milano.it/-/mobilita-sostenibile.-sharing-oggi-
alle-17-presentazione-della-bici-elettrica-movi-by-mobike

                                       15
Figura 1.8: Due veicoli dell’azienda cinese vandalizzati

verranno applicate delle tariffe maggiorate 33 .
    Le quote vengono calcolate a tempo, ma esistono anche i “Mobike Pass”,
ovvero dei pacchetti di abbonamenti che permettono agli utenti di effettuare
un numero illimitato di corse gratuite durante periodi di: 30, 90, 180 e 360
giorni. La durata massima di una corsa gratuita effettuata con un Mobike
Pass ̀e di 2 ore, dopodiché verrà applicata la tariffa normale vigente nell’area
in questione 34 .

Ofo
Ofo ̀e un’azienda di bike sharing cinese fondata nel 2014 a Pechino da sei stu-
denti universitari. Pensata inizialmente come servizio interno al campus, in
pochi anni ̀e diventata una bici per tutti raggiungendo mercati internazionali
35
   . Nel 2017, grazie all’espansione del suo servizio in molti Paesi come gli
Stati Uniti, Singapore, Thailandia e numerose capitali europee, ha raggiunto
20 milioni di utenti registrati.
     A Milano il servizio ̀e rimasto attivo da settembre del 2017 fino a marzo
del 2019, quando, in seguito a diversi illeciti rispetto alle norme in materia
di bike sharing in vigore a Milano, il servizio ha cessato la sua attività 3637 .
  33
     https://www.milanotoday.it/cronaca/vandali-bike-sharing-floating.html
  34
     https://thebestrent.it/scopri-milano-citta/bike-sharing-milano/
  35
     ww.agi.it/economia/startup_ofo_bike_sharing_alibaba-3628566/news/2018-
03-15/
  36
     https://www.comune.milano.it/-/bike-sharing.-veicoli-abbandonati-
raccolte-372-bici-di-ofo
  37
     https://it.wikipedia.org/wiki/Ofo_(azienda)

                                       16
Hanno fatto scalpore le decine di veicoli che, ormai abbandonati dall’azienda,
sono stati rinvenuti nei luoghi piu
                                  ̀ disparati, come mostrato nella figura 1.8.
    Ofo, come Mobike, offriva un servizio di free-floating. Al suo arrivo nel
capoluogo lombardo il servizio contava 4.000 veicoli, riconoscibili dal carat-
teristico colore giallo, dotati di una tradizionale trasmissione con catena,
cambio a 3 velocità, ruote da 26” piene, luci e campanello 38 . Anche OFO
non prevedeva canone, costi di prenotazione o depositi cauzionali, si paga-
vano solo i minuti di utilizzo. La tariffazione era unica e non erano previsti
abbonamenti 39 .

 38
     https://www.dday.it/redazione/24236/le-bici-gialle-di-ofo-a-milano-la-
sblocchi-con-lapp-e-la-lasci-dove-vuoi
  39
     http://urban.bicilive.it/bike-sharing-milano/

                                     17
Capitolo 2

Acquisizione ed elaborazione
dei dati

Questo capitolo della tesi fornisce una panoramica sui dati utilizzati per
il progetto di analisi. All’inizio verrà fornita una descrizione degli “Open
Data”, il paradigma secondo cui sono resi disponibili molti dei dati utilizzati
per il progetto. Successivamente verranno introdotti gli strumenti software
usati per l’analisi. Infine si darà un’esaustiva spiegazione di tutto il processo
di elaborazione che ha permesso un’efficace analisi.

2.1        Open Data
“Gli Open Data sono dati che possono essere liberamente utilizzati, riutilizza-
ti e ridistribuiti da chiunque, soggetti eventualmente alla necessità di citarne
la fonte e di condividerli con lo stesso tipo di licenza con cui sono stati ori-
ginariamente rilasciati” - Open Definition 1

   Gli Open Data sono dati messi a disposizione da Pubbliche Amministra-
zioni o aziende private accessibili a tutti. Si ̀e iniziato a parlare di Open Data
a partire dal 2009, quando diversi governi, specialmente durante le elezioni
americane, si sono impegnati ad aumentare il grado di “openness” dell’in-
formazione pubblica. Nonostante gran parte dei dati prodotti da organismi
pubblici avrebbe dovuto essere già da allora pubblica per legge, molti non
erano disponibili al pubblico o, nel caso lo fossero, erano pubblicati in un
formato tale da non consentirne l’accesso.
   L’utilità di questi dati ̀e varia: permettono sia di verificare l’effettiva
correttezza delle attività delle amministrazioni pubbliche, ma anche di svi-
  1
      https://opendatahandbook.org/

                                       18
luppare nuove applicazioni o soluzioni utili alla collettività, con un grado
di possibilità pressochè immenso. Il concetto di Open Data si basa su tre
fondamentali principi, specificati nella “full Open Definition”:

      ˆ Disponibilità e accesso: i dati devono essere disponibili nel loro com-
        plesso, per un prezzo non superiore ad un ragionevole costo di riprodu-
        zione, preferibilmente mediante scaricamento da Internet. I dati devono
        essere disponibili in un formato utile e modificabile;

      ˆ Riutilizzo e ridistribuzione, i dati devono essere forniti a condizioni
        tali da permetterne il riutilizzo e la ridistribuzione. Ciò comprende la
        possibilità di combinarli con altre basi di dati;

      ˆ Partecipazione universale: tutti devono essere in grado di usare, riuti-
         lizzare e ridistribuire i dati. Non ci devono essere discriminazioni né di
         ambito di iniziativa né contro soggetti o gruppi. Ad esempio, la clau-
         sola “non commerciale”, che vieta l’uso a fini commerciali o restringe
         l’utilizzo solo per determinati scopi, ad esempio quello educativo, non
        ̀e ammessa.

    Particolare attenzione deve essere anche prestata al formato in cui verran-
no pubblicati i dati: le informazioni devono essere presentate in un formato
strutturato, cioè avente una struttura esplicitata e “machine-readable”, allo
scopo di essere letti ed elaborati in modo semplice da un computer. I for-
mati di file più utilizzati per questo scopo sono XML (eXtensible Markup
Language) e JSON (JavaScript Object Notation).
    Un altro aspetto fondamentale relativo agli Open Data ̀e dove essi ver-
ranno pubblicati: parallelamente alla diffusione delle informazioni su siti web
preesistenti, che ̀e il caso di molti enti pubblici, esistono numerosi servizi on-
line, denominati repository, che consentono la pubblicazione di Open Data in
modo semplice e accessibile a tutti. Questi ultimi diventano, con l’aumento
delle informazioni caricate, dei punti di raccolta dei dati, contribuendo alla
loro diffusione 2 .
    Gli Open Data sono inoltre classificabili con un punteggio che va da 1
a 5 stelle, dove ogni livello include anche le caratteristiche dei precedenti.
Questa catalogazione ̀e stata ideata da Tim Berners-Lee e richiede che un
dataset, per rientrare nella definizione di Open Data raggiunga il punteggio
di almeno 3 stelle 3 . I requisiti sono:
  2
   https://opendatahandbook.org/
  3
   https://docs.italia.it/italia/daf/lg-patrimonio-pubblico/it/stabile/
modellodati.html

                                         19
ˆ essere disponibili sul Web con una licenza aperta;

      ˆ essere disponibili in un formato strutturato, anche se proprietario;

      ˆ essere disponibili in un formato strutturato non proprietario;

      ˆ includere un Uniform Resource Identifier, in modo da poter essere
        indirizzabili sulla rete per una facile consultazione ed elaborazione;
      ˆ essere classificabili come Linked Open Data, cioè possedere dei col-
        legamenti che puntano ad altri dataset cosı̀ da incrociare quante piu
                                                                            ̀
        informazioni possibili.

2.2        Software utilizzati
L’intero progetto di analisi dei dati del servizio BikeMi, che comprende l’ot-
tenimento, l’elaborazione e lo studio delle informazioni, ̀e stato svolto uti-
lizzando il linguaggio Python 4 e alcune librerie aggiuntive nell’ambiente di
sviluppo Anaconda 5 , oltre che, in minima parte, con l’aiuto dell’editor di
testo libero Notepad++ 6 e l’editor grafico open source GIMP 7 , che ha
permesso di migliorare la comprensibilità di alcune visualizzazioni prodotte
appositamente per l’elaborato.
    Python ̀e un linguaggio di programmazione ad alto livello orientato agli
oggetti che, fin dalla sua creazione nel 1991, ̀e cresciuto in maniera esponen-
ziale negli utilizzi e, grazie alle molte librerie rese disponibili gratuitamente
e al supporto moltipiattaforma, ̀e diventato uno dei linguaggi piu     ̀ utilizzati
per molti scopi, che spaziano dallo sviluppo web fino all’elaborazione di dati
e la loro analisi.
    Per questo progetto Python ̀e stato integrato con alcune librerie, descritte
qui di seguito:

      ˆ Pandas 8 : ̀e la libreria piu
                                    ̀ utilizzata in Python per l’analisi e l’ela-
        borazione di dati, grazie alla sua semplicità e flessibilità, nonché alla
        possibilità di supportare dataset di grandi dimensioni;
      ˆ Matplotlib 9 : ̀e la libreria di Python che integra diversi tool per visua-
        lizzare grafici, statici o animati, di diversi tipi;
  4
    https://www.python.org/
  5
    https://www.anaconda.com/
  6
    https://notepad-plus-plus.org/
  7
    https://www.gimp.org/
  8
    https://pandas.pydata.org/
  9
    https://matplotlib.org/

                                         20
ˆ Numpy 10 : ̀e una delle librerie piu
                                           ̀ utilizzate in Python, che fornisce
        al linguaggio di programmazione il supporto a matrici e vettori mul-
        tidimensionali, nonchè una serie esaustiva di tool per gestire queste
        strutture dati;

      ˆ Beautiful Soup 11 : ̀e una libreria disponibile per Python che consente
        il parsing e la facile navigazione in documenti formattati nei linguaggi
        di markup HTML (HyperText Markup Language) e XML;

      ˆ SciPy 12 : ̀e una libreria che integra in Python una serie di pacchetti
        utili per il calcolo scientifcio e l’elaborazione dei segnali;

      ˆ Datetime       13
                            : ̀e una libreria che consente la facile gestione delle date;

      ˆ Locale   14
                      : ̀e una libreria che integra la gestione dei fusi orari;

      ˆ Csv 15 : ̀e la libreria che consente la lettura e la scrittura di dataset in
        formato CSV (comma-separated values);

      ˆ Glob 16 : ̀e una libreria che consente la facile navigazione nel File
        System.

    L’intero codice sorgente utilizzato per effettuare l’elaborazione e l’analisi
dei dati per questo progetto ̀e disponibile nella repository su GitHub 17 .

2.3        Panoramica sui dati utilizzati
Per realizzare il progetto di analisi del servizio BikeMi sono stati utilizzati
diversi dataset e informazioni reperibili in rete:

      ˆ Collezione di file HTML riportanti informazioni sul servizio BikeMi:
        questi file, ordinati per data e ora di ottenimento, si riferiscono alla
        pagina del sito web del servizio BikeMi, che mostra lo stato di ogni
        stazione in tempo reale e sono stati accuratamente salvati con la stessa
        frequenza per un arco temporale che va dall’inizio del 2017 alla fine di
 10
    https://numpy.org/
 11
    https://www.crummy.com/software/BeautifulSoup/
 12
    https://www.scipy.org/
 13
    https://docs.python.org/3/library/datetime.html
 14
    https://docs.python.org/3/library/locale.html
 15
    https://docs.python.org/3/library/csv.html
 16
    https://docs.python.org/3/library/glob.html
 17
    https://github.com/SuppaMan150/BikeMI

                                                21
marzo 2021. Da essi sono state poi estratte le informazioni utili tramite
         un processo di parsing, in modo da consentire la facile analisi dei dati.
         I dataset divisi per anno sono inoltre già disponibili in formato CSV
         sulla repository Zenodo 18 [13, 14, 15, 16, 17, 18, 19, 20, 21, 22];

       ˆ Dataset ufficiale sulle stazioni del servizio BikeMi: questo dataset, reso
         disponibile e costantemente aggiornato dal Comune di Milano, reca in-
         formazioni per tutte le stazioni disponibili fin dall’apertura del servizio.
         Il dataset ̀e disponibile in formato CSV [10];

       ˆ Dataset relativi alle informazioni atmosferiche: un insieme di dataset
          reso disponibile gratuitamente dal sito web “ilmeteo.it” che, organizza-
          to per mese e con informazioni nell’arco della giornata, fornisce le in-
          dicazioni sulle condizioni atmosferiche della città di Milano. Il dataset
         ̀e disponibile in formato CSV [4];

       ˆ Dataset ufficiali relativi all’apertura dell’Area C: i dataset che, divisi
         per mese e con una frequenza di 30 minuti, forniscono informazioni sul-
         l’apertura dell’Area C di Milano, con relative indicazioni sul numero di
         veicoli transitati. I dati, resi disponibili dal comune di Milano, partono
         dalla fine del 2016 e sono disponibili in diversi formati, tra cui il CSV
         [9];

       ˆ Informazioni di eventi sul territorio: indicazioni riguardanti eventi svol-
         tisi sul territorio milanese. Le informazioni, non strutturate in origine,
         sono state recuperate da diverse fonti per poi essere organizzate tramite
         l’editor di testo Notepad++ nel formato strutturato CSV 19202122 .

2.4         Elaborazione dei dati BikeMi
I dati relativi all’utilizzo del servizio BikeMi, non disponibili apertamente,
sono stati immagazzinati per il periodo che va dall’inizio del 2017 a fine
marzo 2021 e sono stati estratti dalla pagina del servizio che mostra la mappa
interattiva delle varie stazioni e lo stato di ognuna di esse.
    L’estrazione di informazioni passa, per prima cosa, da un’iniziale analisi
dei file grezzi, per capire se ci sono file problematici o malformati. Successi-
vamente ̀e stata effettuata l’operazione di “parsing” dei file, cioè l’estrazione
  18
     https://zenodo.org/
  19
     https://www.ilgiornale.it/news/fiera-1343125.html
  20
     https://www.residencedesenzano.it/calendario-fiera-milano/
  21
     https://www.citydoormilano.it/calendario-fiere-milano-2018.html
  22
     https://www.fieramilano.it/calendario.html

                                          22
di informazioni utili partendo da file formattati in modo formale, in questo
caso in linguaggio HTML. Successivamente i dati strutturati sono stati ela-
borati principalmente tramite la libreria “Pandas” e visualizzati, sotto forma
di rappresentazioni grafiche, utilizzando la libreria “Matlibplot”, che ̀e anche
integrata in Pandas.

2.4.1     Preparazione dei file grezzi
Il primo passo per procedere all’analisi degli utilizzi del servizio ̀e stato quello
di ottenere le informazioni. Dato che il servizio non condivide dati utili allo
scopo, ̀e stato fondamentale aver avuto a disposizione una collezione di file
HTML memorizzati con la frequenza di 5 minuti l’uno dall’altro, relativi alla
pagina che mostra la mappa delle stazioni del servizio e il relativo stato, che
include il numero di biciclette disponibili dei tre tipi (tradizionale, elettriche
ed elettriche con seggiolino per bambini), nonchè il numero di stalli liberi
disponibili per restituire un veicolo. Nonostante la disponibilità dei dataset in
formato CSV sulla piattaforma Zenodo, si ̀e preferito ricavare le informazioni
direttamente dai file grezzi forniti dal Professor Andrea Mario Trentini per
estrarre le informazioni nella loro completezza.
    Grazie a queste informazioni si ̀e potuto poi ricostruire l’andamento degli
utilizzi del servizio. Una prima analisi dei file ha permesso l’individuazione
di errori nel salvataggio o momenti in cui il sito web era in disservizio. Data
l’alta frequenza di cattura dei file, quelli risultati problematici sono stati
ritenuti inutili e di conseguenza scartati. La tabella 2.1 mostra il numero
totale di file per ogni anno e i relativi file problematici scartati. Il 2021
riporta un numero molto minore di file rispetto agli altri anni: questo perchè
i dati sono stati raccolti solo fino al 5 marzo 2021, data in cui il servizio ̀e stato
sospeso per tre giorni, per il rinnovamento dei sito web e delle applicazioni
BikeMi 23 .

             Anno    Numero file totali       Numero file problematici
             2017          104.500                       8
             2018          104.061                      111
             2019          103.278                       8
             2020          104.892                       5
             2021          18.043                        0

            Tabella 2.1: Numero di file HTML considerati nell’analisi
  23
   https://milano.notizie.it/trasporti-milano/2021/03/05/bikemi-sospeso-
aggiornamento-sistema/

                                         23
Figura 2.1: I dati sullo stato di ogni stazione visibili sul sito ufficiale del servizio

    2.4.2     Parsing
    Una volta effettuata una prima scrematura dei dati, si ̀e potuto procedere al
    parsing, cioè all’estrazione di informazioni utili e strutturate a partire dai file
    formattati in HTML relativi al sito web del servizio BikeMi. Le informazioni
    utili visibili sul sito web sono evidenziate nella figura 2.1.
        La libreria BeautifulSoup si ̀e rivelata preziosa a questo scopo, perchè ha
    permesso di scorporare dalla formattazione HTML le informazioni rilevanti,
    in questo caso, il numero di stalli e di veicoli disponibili. I dati estratti sono
    stati poi salvati in formato CSV, il formato standard per la memorizzazione
    di tabelle di dati. Ciascuna riga del file, oltre a recare la data e l’ora in
    cui l’informazione ̀e stata salvata, descrive lo stato della singola stazione in
    quel momento. Di seguito ̀e presentata una parte del codice utilizzato per il
    parsing:
1   info = BeautifulSoup ( info , " html . parser " )
2   info . thead . decompose ()
3   # estrazione ulteriore nome della stazione
4   station_name = info . find ( " strong " ) . text
5   bike_row = []
6   # estrazione dati uso biciclette da sottotabella HTML
7   for row in info . find_all ( " tr " ) :
8     bici_disponibili = row . find_all ( " td " ) [1]. text
9     stal li _d is po ni bi li = row . find_all ( " td " ) [2]. text

                                              24
bici
                                                                                   bici
                                                                                              elettriche      stalli
         data ora                      nome stazione         bici disponibili   elettriche
                                                                                              seggiolino    disponibili
                                                                                disponibili
                                                                                              disponibili

         2021-01-01   00:00   1   -   Duomo                  9                  0             1             23
         2021-01-01   00:00   3   -   Cadorna 1              7                  5             2             7
         2021-01-01   00:00   4   -   Lanza                  19                 3             0             2
         2021-01-01   00:00   5   -   Universita
                                               ̀ Cattolica   5                  4             0             15
         2021-01-01   00:00   6   -   San Giorgio            2                  5             0             17
         2021-01-01   00:00   7   -   Santa Maria Beltrade   12                 1             0             8

     Tabella 2.2: Righe di esempio di un file CSV ottenuto dopo il parsing (le colonne
     meno rilevanti sono state omesse per ottenere una corretta visualizzazione)

10     bike_row . extend ([ bici_disponibili , s ta ll i_ dis po ni bi li ])
11
12   row = [ formatted_date , icon , latitude , longitude ,
         station_name ]
13   row . extend ( bike_row )
              Porzione di codice 2.1: Parte del codice utilizzato per il parsing

         Ogni anno ̀e stato cosı̀ organizzato in un file CSV separato, per una
     facile importazione ed elaborazione. Alcune colonne ottenute dal parsing
     sono state poi analizzate e successivamente scartate perchè contenevano in-
     formazioni ridondanti o non necessarie, riducendo le colonne finali a: “da-
     ta ora”, “stato stazione”, “latitudine”, “longitudine”, “nome stazione”, “bi-
     ci disponibili”, “bici elettriche disponibili” e “stalli disponibili”. A partire
     dagli ultimi mesi del 2018 ̀e stata inoltre aggiunta l’informazione relativa ai
     veicoli elettrici provvisti di seggiolino per bambini, memorizzata con il no-
     me “bici elettriche seggiolino disponibili”. Una piccola porzione dei dataset
     elaborati ̀e mostrata nella tabella 2.2.

     2.4.3      Verifica d’insieme dei dati
     Terminato il parsing, ̀e stato possibile analizzare i dati nella loro interezza.
     In questa fase si ̀e reso necessario scrivere del codice Python apposito per
     effettuare la ricerca e la sostituzione di determinati termini dai nomi delle
     stazioni salvate, in quanto, molto spesso, l’informazione sullo stato delle sta-
     zioni, che comprende ad esempio la loro temporanea rimozione dal servizio
     o l’apertura di una nuova postazione, veniva inserita nel campo relativo al
     nome. Un esempio dei nomi temporanei, con la loro correzione, ̀e visibile
     nella figura 2.3. Questa ricerca e sostituzione sono importanti, in quanto,
     successivamente, i dati relativi alla singola stazione saranno raggruppati e,
     avendo nomi diversi che identitificano la stessa postazione semplicemente in
     diverso stato, l’analisi sarebbe potuta risultare falsata.

                                                                  25
1 - Duomo -CHIUSA PROVVISORIAMENTE-
          1 - Duomo

          11 - Castello Acquario civico -CHIUSA PER OH BEJ OH BEJ
          11 - Castello Acquario civico

          19 - Italia - Santa Sofia - PROSSIMA APERTURA
          19 - Italia - Santa Sofia

    Tabella 2.3: Alcuni dei nomi temporanei utilizzati per descrivere lo stato delle
    stazioni e il relativo nome sostituito evidenziato

    2.4.4     Verifica dei dati mancanti
    Avendo raggruppato le informazioni in file CSV, ̀e stato possibile procedere
    all’importazione dei dataset tramite la libreria Pandas di Python. Ogni ana-
    lisi di un dataset inizia dalla verifica dei valori mancanti [7, 8]. L’analisi sui
    dataset non ha rilevato valori mancanti in nessuno dei file dei diversi anni,
    risultato probabilmente ottenuto grazie alla precedente rimozione di file cor-
    rotti che avrebbero potuto dare risultati non corretti in seguito al parsing.
    Parte del codice utilizzato per eseguire l’operazione ̀e presentato di seguito:
1   # totale valori mancanti per colonna per colonna
2   print ( df . isnull () . sum () )
    Porzione di codice 2.2: Parte del codice utilizzato per verificare la presenza di
    valori mancanti

    2.4.5     Calcolo dei valori di utilizzo del servizio
    Le informazioni ottenute dal parsing non forniscono direttamente il numero
    di utilizzi delle biciclette nelle varie stazioni. Tuttavia, data l’alta frequenza
    con cui sono state salvate le informazioni, ̀e possibile ottenere questo dato,
    con una buona affidabilità, sottraendo al numero di biciclette disponibili in
    un preciso istante il quantitativo di quelle disponibili in precedenza: se il
    numero di veicoli diminuisce si sarà verificato un numero di prelievi pari alla
    differenza tra i due istanti cambiata di segno. Nel caso il numero aumenti,
    segno della restituzione di almeno un veicolo, non verrà conteggiata nessuna
    operazione. Parte del codice relativo a questa operazione ̀e visibile di seguito:
1   # differenza nel tempo con la colonna precedente (
       invertendola di segno per avere l ’ utilizzo effettivo )

                                           26
2   df [ " bici_usate " ] = df . sort_values ([ ’ nome ’ , ’ data ’ ]) . groupby ( ’
         nome ’) [ ’ bici_disponibili ’ ]. diff () * -1
3   df [ " b i c i _ e l e t t r i c h e _ u s a t e " ] = df . sort_values ([ ’ nome ’ , ’ data ’ ])
         . groupby ( ’ nome ’) [ ’ b i c i _ e l e t t r i c h e _ d i s p o n i b i l i ’ ]. diff () * -1
4
5   # azzeramento delle restituzioni
6   df [ " bici_usate " ] = df [ " bici_usate " ]. mask ( df [ " bici_usate " ]
pubblico. In queste ore, in cui i valori sugli utilizzi sono bassi ma non nulli,
      avviene parte del ribilanciamento dei veicoli nelle varie stazioni. Un’altra
      parte del ribilanciamento avviene durante le ore diurne, in cui il servizio
     ̀e attivo e, sebbene non si possa distinguere quali sono i ritiri reali dai ritiri
      dovuti al riposizionamento, durante la notte ̀e possibile azzerare il valore degli
      utilizzi in modo da non conteggiarli e ottenere un’analisi ancora piu    ̀ accurata.
      Il servizio BikeMi ̀e attivo tutti i giorni dalle 07:00 all’01:00 di notte, con delle
      eccezioni nel periodo estivo, in cui, nelle giornate di venerdı̀ e sabato, ̀e attivo
      24/24h. Il dataset ottenuto dal precedente passaggio, che riporta il numero
      degli utilizzi tra l’istante precedente e attuale, ̀e stato quindi filtrato in modo
      da riportare i soli valori compresi nelle ore di attività del servizio. Per fare ciò
     ̀e stato necessario estrarre i valori di ora e mese dall’informazione di istante
      di salvataggio, già presente nel dataset, per poi filtrarli secondo le necessità.
      Parte del codice scritto per questa elaborazione ̀e visibile di seguito:
 1   # conversione del valore di istante da stringa a data , in
          modo da poter eseguire le operazioni di estrazione di ora
          e mese in modo facile
 2   df [ ’ day_of_week ’] = pd . to_datetime ( df [ ’ data ’] , format = ’ \% Y -\%
          m -\% d \% H :\% M ’) . dt . strftime ( ’ \% A ’)
 3
 4   # salvataggio dei valori di ora e mese in colonne separate ,
          in modo da filtrare agilmente e in modo efficiente
 5   df [ ’ hour ’] = pd . to_datetime ( df [ ’ data ’ ]) . dt . strftime ( ’ \% H ’)
 6   df [ ’ month ’] = pd . to_datetime ( df [ ’ data ’ ]) . dt . strftime ( ’ \% m ’)
 7
 8   # conversione dei valori di ora e mese in tipo numerico , in
          modo da poter eseguire le operazioni di comparazione tra
          numeri
 9   df [ ’ hour ’] = pd . to_numeric ( df [ ’ hour ’ ])
10   df [ ’ month ’] = pd . to_numeric ( df [ ’ month ’ ])
11
12   # filtraggio secondo le condizioni necessarie
13   df = ( df [(( df [ ’ hour ’ ] >=7) | ( df [ ’ hour ’ ]
2.4.7     Ricampionamento
    La maggior parte delle analisi svolte di seguito vedranno fornire risultati cam-
    pionati diversamente dall’alta frequenza con cui sono stati catturati. L’ela-
    borazione dei dati ̀e stata tuttavia finora eseguita nell’ambito della frequenza
    con cui sono stati salvati in origine i file grezzi, cioè 5 minuti. Un primo
    ricampionamento, comune a tutte le successive operazioni di analisi, ̀e stato
    eseguito secondo il periodo di un’ora. I dati sono stati quindi raggruppati ad
    ore e sommati, in modo da riportare i valori di utilizzo nell’ambito di un’ora.
    Attraverso l’operazione di ricampionamento, disponibile nella libreria Pan-
    das, ̀e stato possibile effettuare questo calcolo: tutti gli utilizzi nell’ambito
    dei 5 minuti sono stati sommati e raggruppati per ogni ora. Questa opera-
    zione ha permesso inoltre di ridurre notevolmente le dimensioni dei dataset.
    Parte del codice utilizzato ̀e visibile di seguito:
1   # raggruppamento per stazione e ricampionamento con frequenza
        di un ’ ora
2   df = df . groupby ([ pd . Grouper ( key = ’ data ’ , freq = ’ 60 T ’) , ’ nome ’
       ]) . sum () [[ " bici_usate " , " b i c i _ e l e t t r i c h e _ u s a t e " ]]
    Porzione di codice 2.6: Parte del codice utilizzato per il ricampionamento ad ora

    2.5      Elaborazione degli altri dataset
    Gli altri dati utilizzati nell’analisi, cioè il dataset ufficiale sulle stazioni del
    servizio BikeMi, il dataset relativo alle informazioni atmosferiche, il dataset
    ufficiale relativo all’apertura dell’Area C e le informazioni riguardanti gli
    eventi sul territorio sono stati elaborati in modo da risultare compatibili con
    i dataset BikeMi e permettere l’incrocio dei dati.

    2.5.1     Dataset ufficiale sulle stazioni BikeMi
    Questo dataset, disponibile in formato CSV dal Comune di Milano secon-
    do il paradigma Open Data, mostra alcune informazioni utili relativamente
    alle singole stazioni del servizio BikeMi. Le informazioni contenute nel da-
    taset sono state particolarmente utili per verificare la crescita del servizio
    relativamente al numero totale di stazioni. Una volta scaricato il dataset,
    l’unica elaborazione necessaria, dopo un’attenta verifica semantica, oltre che
    alla detezione di dati mancanti, ̀e stata quella di sistemare i valori del campo
    “anno” di alcune stazioni, che indica l’anno in cui la stazione ̀e entrata in ser-
    vizio: determinate righe, infatti, presentavano un valore mancante per quel
    campo. Per altre righe, invece, il campo includeva un valore inesatto. Dopo

                                             29
un’attenta ricerca i valori sono stati corretti, in modo da attribuire un’alta
     affidabilità alle informazioni contenute nel dataset.

     2.5.2       Dataset relativi alle informazioni atmosferiche
     Si tratta di diversi dataset messi a disposizione dal sito web “ilmeteo.it”,
     che consente, per ogni città italiana, di scaricare le informazioni giornaliere,
     divise per mesi, sulle condizioni atmosferiche del luogo scelto. L’unica par-
     ticolare elaborazione degna di nota ̀e stata, ancora una volta, la verifica dei
     dati mancanti, che ha messo in luce l’assenza di informazioni per un periodo
     di circa tre mesi consecutivi, oltre che per pochi giorni distributi negli anni.
     Mentre l’analisi per il primo caso ̀e stata evitata, nel secondo si ̀e preferito
     procedere con l’imputazione dei dati mancanti, dove il valore sostituito ̀e l’in-
     terpolazione dei primi valori esterni non mancanti piu   ̀ vicini al dato assente.
     L’operazione di interpolazione ̀e inclusa nella libreria Pandas 2425 .
         I dataset, scaricabili divisi per mensilità, sono stati uniti in modo da
     racchiudere le informazioni per l’intero anno di interesse. Di seguito ̀e visibile
     una parte del codice utilizzato per effettuare l’unione dei dati mensili in un
     unico dataset annuale:
 1   # preparazione di due liste contenenti rispettivamente gli
        anni e i mesi presi in esame
 2   anni = [ " 2014 " , " 2015 " , " 2016 " , " 2017 " , " 2018 " , " 2019 " , " 2020
        "]
 3   mesi = [ " Gennaio " , " Febbraio " , " Marzo " , " Aprile " , " Maggio " , "
        Giugno " , " Luglio " , " Agosto " , " Settembre " , " Ottobre " , "
        Novembre " , " Dicembre " ]
 4
 5   # preparazione dell ’ header dei dataset uniti
 6   header = [ ’ data_formattata ’ , ’ LOCALITA ’ , ’ DATA ’ , ’ TMEDIA C ’ ,
        ’ TMIN C ’ , ’ TMAX C ’ , ’ PUNTORUGIADA C ’ , ’ UMIDITA \% ’ , ’
        VISIBILITA km ’ , ’ VENTOMEDIA km / h ’ , ’ VENTOMAX km / h ’ , ’
        RAFFICA km / h ’ , ’ PRESSIONESLM mb ’ , ’ PRESSIONEMEDIA mb ’ , ’
        PIOGGIA mm ’ , ’ FENOMENI ’]
 7
 8   # ciclo per tutti gli anni
 9   for anno in anni :
10
11           # preparazione di un file CSV per contenere le
            informazioni annuali
12           csv_f = open ( " meteo_elab / meteo_ " + anno + " . csv " , ’w ’ ,
            newline = ’ ’ , encoding = ’utf -8 ’)
       24
          https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.
     interpolate.html
       25
          https://www.geeksforgeeks.org/python-pandas-dataframe-interpolate/

                                            30
Puoi anche leggere