News at eleven: Helsinki palkkasi kooderin. ”Avoimen datan ammattilainen Juha Yrjölä pestattiin töihin uudenlaiseksi it-asiantuntijaksi. Hän katsoo Helsingin tietojärjestelmiä tiedonjanoisen kaupunkilaisen silmin.” sanoo tiedote. Kyse on Code for Europe hankkeen yhdestä sivujuonteesta.
Tapasin Yrjölän maanantaina. Hänen missionsa on avata julkishallinnon datoja, luoda niiden päälle kevyitä sovelluksia kaupunkilaisten ja virkamiesten hyödyksi ja innostaa muitakin samaan. OIkein kannatettavaa, ja kaikki tuki projektiin.
Varsinaisesti puhuimme kunnan päätöksentekojärjestelmän (Ahjo) avaamisesta. Palaan siihen myöhemmin, koska juuri nyt kiinnostavampi on Juhan ja kollegansa Tuukan suunnitteilla oleva tilastolliseen analyysiin perustuva reittiopas ja sitä sivuten HSL:n datat.
Kaupunginkooderit saivat näet reittiopastaan varten HSL:ltä datapaketin, jossa on bussien ja ratikoiden kaikki pysähtymiset pysäkeillä alku ja loppuaikoineen. Tarkoitus on työstää dataa, tilastoja ja applikaatioita perjantaina alkavassa OKF Conventionissa Tuusulassa.
OKF Convention on suomalaisen avoimen datan yhteisön kokoontuminen, jossa sata nörttiä, tilastotieteilijää, visualisoijaa ja ties ketä kokoontuu osoittamaan, mitä avoimella datalla voi tehdä. Ja yksi noista dataseteistä on siis joukkoliikenteen matka-aikoja.
Sillä datalla voi tehdä paljon muutakin kuin reittioppaan. Sillä voi vaikka seurata joukkoliikenteen luotettavuutta.
Nykyään luotettavuutta mitataan sillä, mikä osuus vuoroista jää lähtemättä päätepysäkeiltä, tai myöhästyy yli vuorovälin verran (tai yli 15min). Siis jos bussi lähtee päättäriltä 14min myöhässä ja juuttuu heti ruuhkaan, se on tilaston mukaan edelleen ajoissa. Sekä HSL että HKL ovatkin ymmärrettävästi kiinnostuneita paremmista metriikoista.
Vaan mikä olisi hyvä metriikka joukkoliikenteen (bussien ja ratikoiden) luotettavuudelle? Sitä voi nyt ehdotella. Juha lupaili, että jos ehdotan jotain metriikkaa, perjantaina, joku tilastoscriptaukseen tottunut saattaa sen hyvinkin toteuttaa. Sitten sen voisi järjestä ensin kokeiluun HKL:ssä/HSL:ssä ja ehkä myöhemmin sopimusten osaksikin.
Spesifisti siis kysyn mittaria jolla arvioida yksittäisen linjan, joukon linjoja tai koko joukkoliikennejärjestelmän luotettavuutta.
Hyvä metriikka on 1) eksakti, 2) mittaa oikeaa asiaa ja 3) on kommunikoitavissa helposti. Tässä pari hahmotelmaa:
- Ehdotus 1) Ajallaan lähtöjen osuus kaikilla pysäkeillä, eli niiden pysäkiltälähtöjen osuus, jotka ovat korkeintaan minuutin ennen aikataulua ja korkeintaan kolme minuuttia aikataulun jälkeen.
- Ehdotus 1b) Sama kuin edellinen, mutta suhteessa pysäkiltälähtöajan tilastolliseen odotusarvoon eikä aikatauluun.
- Ehdotus 2) vaihdon luotettavuus pysäkkikohtaisesti: Se osuus liikennevälineistä, joka lähtee tarkoitetussa järjestyksessä. Ideana, että kaksi minuuttia myöhässä saapuminen ei haittaa, jos ratikka johon on vaihtamassa on myös samat kaksi minuuttia myöhässä. Tarkoitettu järjestys saadaan aikatauluista.
Muita ideoita?
Melkoinen osa vaihdoista on varmaan esim. junan/metron ja bussin välillä vaihtamista, tai sellaisia vaihtoja että isommassa risteyksessä pitää kävellä bussipysäkiltä toiselle, jolloin tuosta aineistosta ei varmaan onnistu kaivamaan esiin, että oliko vaihtoon tarpeeksi aikaa vai ei.
Oikeastaan ei pitäisi mitata myöhästelyä, koska myöhästely on vain määrittelykysymys. Riippuu tietysti tarkoituksesta, mutta jos halutaan mittari joukkoliikenteen laadulle ja sen kehittämiselle, pitäisi tutkia vain keskihajontaa. Kun keskihajonta on kurissa, pysäkkiaikataulut määritetään niin, että bussi ei myöhästy (esim. saapuu 99 %:sti 3 min päässä painetusta ajasta eikä koskaan etuajassa).
Ja linjan keskihajontahan on aika triviaali laskea: pysäkkikohtaisen saapumisajan keskihajonnan keskiarvo.
Niin no tämä on kysymys siitä, että mitataanko suhteessa pysäkiltälähtöajan keskiarvoon vai suhteessa aikatauluun. Molemmilla on nähdäkseni arvonsa: epätäsmällisyys suhteessa keskiarvoon kertoo liikennöinnin ennakoitavuudesta parhaiten. Tässä saisi keskihajonnan myös eleganttina mittarina.
Arvot suhteessa aikatauluun taas kertovat siitä, ovatko aikataulut oikeassa ja mikä on liikennöinnin luotettavuus suhteessa käyttäjille annettuun lupaukseen. Tämä ei ole millään muotoa pieni asia, koska suurin osa käyttäjistä kuitenkin tulee pysäkille sen aikataulun mukaan.
Jos aikataulut ovat suunnilleen kohdillaan, noilla tavoin saatavien luotettavuuslukujen ei pitäisi juuri heittää. Sitten jos ne heittävät, aikatauluissa on korjattavaa. Se on tavallaan ”helppo korjaus” kun tarvitsee vain muuttaa numeroita paperissa. Mutta käyttäjille se voi olla iso asia.
Ja myöhästymismittarillehan voidaan tästä saman tien määrittää yksi tapa: kuinka monta prosenttia pysäkeistä bussi ohittaa 3 minuutin päästä siitä, kun nopeimmin sille tullut bussi on sen ohittanut. Siis niin, että esim. linjan X lähtö yy:zz ajaa pysäkille nopeimmillaan ajassa uu:vv. Mittari on, kuinka monta linjan X yy:zz lähtevää bussia saapuu sille ajassa uu:vv + 3. Tästä lasketaan sitten lähdölle ajassapysymisprosentti kaikkien pysäkkien keskiarvosta ja koko linjalle keskiarvo kaikista lähtöajoista.
Sillähän ei ole merkitystä, mikä kellonaika niihin paperiaikatauluihin on painettu. Jos matkustaja tietää, että bussi menee siitä usein etuajassa, tämä tulee pysäkillekin siihen aikaan. Siksi voidaan käyttää perusaikana sitä aikaa, jolloin se nopeimmillaan on ohitettu. Ja eri lähdöistä eri kellonaika, koska se ajoaika vaihtelee eri vuorokaudenaikoina.
Nykyisin yhtenä raitiovaunujen ongelmana on se, että aikatauluissa on liikaa löysää. Siis liikaa ajoaikaa. Sillä pyritään korkeaan luotettavuuteen, mutta väitän, että riittävän korkeaan ja hyväksyttävään luotettavuuteen päästäisiin myös, vaikka ajoajat olisivat ainakin joillain osuuksilla nykyistä hiukan tiukempia.
Osuuksien ajoaikojen määrittely perustuu aiempiin, toteutuneisiin ajoaikoihin, joita HSL:n aikataulusuunnittelu seuraa. Ne tallentuvat Helmi- tai matkakorttijärjestelmään, en muista, kumpaan.
Systeemi toimii yhteen suuntaan: jos vaunut tai huomattava osa niistä kulkee säännöllisesti hiukan myöhässä, lisätään seuraavalle aikataulukaudelle tuollaiselle osuudelle aikaa, jolloin täsmällisyys paranee ja myöhässä olo vähenee. Mutta toiseen suuntaan se ei toimi, sillä jos ajoaikaa on annettu erehdyksessä liikaa, mutta HKL:n työnjohto (sinänsä ihan oikein) kieltää kuljettajia ajamasta etuajassa, niin HSL ei saa datasta ulos tietoa siitä, että sitä ajoaikaa on liikaa. Ilman etuajassa ajamisen kieltoa sen saisi kyllä ulos, kun kuljettajat olisivat jatkuvasti etuajassa. Olisi peruste ottaa osuudelta vähän aikaa pois. Mutta kun etuajassa ajo on kielletty, kuljettajat hidastelevat tahallaan pysäkkien välillä, seisovat tarpeettoman pitkään pysäkillä tai lähestyvät vihreitä liikennevaloja tarkoituksellisen hitaasti odottaakseen valojen vaihtumista ja saadakseen aikaa kulutettua yhden valokierron verran. Tällaista tarkoituksellista hidastelua ei saada nyt mitenkään mitattua ainakaan kirjoituspöydän takaa, eikä virkamiesten ajankäyttö taida antaa myöten siihen, että suunnittelijat istuisivat päiväkausia vaunuissa liikennettä seuraamassa.
Ongelmaa ei ratkaista silläkään, että sallitaan etuajassa ajaminen, sillä luotettava joukkoliikenne ei koskaan kulje etuajassa.
Mutta jotenkin tämä pitäisi ratkaista, sillä nykytilanne on kallis ylläpitää ja matkustajalle turhauttava. Olisiko mahdollista käyttää tätä dataa jotenkin hyväksi tämän ongelman hoitamiseksi?
Vanhanaikainen konsti olisi tietysti se, että vähennetään sieltä sun täältä minuutteja ja katsotaan sen jälkeen, miten luotettavuus muuttuu – heikkeneekö se vai ei, ja jos, niin kuinka paljon. Olen kuitenkin ymmärtänyt, että HSL on haluton tällaista kokeilemaan.
Daniel, tuosta datasta periaatteessa pitäisi irrota myös se, mikä kyky ratikoilla on ajaa aikatauluja nopeammin. Joskus ne kuitenkin ovat nytkin myöhässä, joten tutkitaan kuinka nopeasti jo linjan alussa myöhästyneet ratikat voivat reitin ajaa. Tässä on tietysti se ongelma, että myöhässä oleva ratikka voi usein myöhästyä pysäkeille kasaantuneiden matkustajien takia, joten se ei välttämättä pysty aikatauluja nopeampaan ajoon kuitenkaan.
Tuo kuulostaa hyvältä. Tarkoitatko siis yksinkertaistaen niin, että jos linjan varrella on 22 pysäkkiä ja pysäkiltä 1 = päätepysäkiltä lähdetään aikataulussa, mutta pysäkillä 5 ollaan myöhässä 5 minuuttia ja silti pysäkillä 17 ollaan taas aikataulussa, niin tuollaiset keissit saa helposti poimittua ulos datasta?
Jos, niin tuosta voi päätellä, että pysäkkien 5 ja 17 välillä on kovin löysä ajoaika. Siitä ei voi sitä viittä minuuttia ottaa pois, mutta ehkä kuitenkin 2 tai 3 min.
Edelleen datasta saa varmasti ulos sen, kuinka iso osa vaunuista on myöhässä pysäkillä 5 ja kuinka paljon. Jos niitä on paljon, niin silloin ajoaika pysäkkien 1 ja 5 välillä on liian pieni.
Tällä hetkellä suuri hajonta on minusta vielä suurempi ongelma kuin matka-aika sinänsä. Mutta pelkkää dataa analysoimalla en tiedä, miten sen hajonnan saisi pienemmäksi. Datasta ehkä kuitenkin on hyötyä siinä, että nähdään, missä kohtaa verkkoa sitä hajontaa on paljon.
Nopeus-heatmap ja sen kaveriksi nopeuden hajonta-heatmap.
Ensinmainitun muistan jossain muodossa nähneenikin, joskaan en enää muista urlia.
Vilkaisin nyt dataa. Oletan, että se google_transit oli oikea paketti. Harmi vain, että kellonajat näyttävät olevan minuutin tarkkuudella. Minusta tämä vaatisi sekunnin tarkkuuden, jotta se olisi oikeasti käyttökelpoinen.
Oikea paketti lienee hastusgps-alkuinen. google_transit lienee vain aikatauludata Googlen formaatissa.
Olet oikeassa. Ja sieltä näyttää löytyvän data ihan sekunnilleen. Joo, google_transit-data on tosiaan vain aikatauludataa.
Datassa ilmeisesti pysäkkiajat ovat muodossa hhmm ja mitatut ajas hhmmss. Arvaisin että ensimmäinen saapumisaika on se kun kuljettaja päätepysäkillä valitsee reitin ja ensimmäinen lähtöaika lähtöaika reitille. Ohitetut pysäkit ilmeisesti näkyvät datassa samana saampumis- ja lähtöaikana.
Luotettavuuden sijasta ehdottaisin mitattavaksi vituttavuutta.
Vituttavuus mitattaisiin kyselytutkimuksella, jossa ihmiset saisivat pisteyttää myöhästymiset 1 min – puoli tuntia vituttavuuden mukaan, mutta veikkaisin että tulos olisi jotain tämänkaltaista:
1 minuuttia myöhässä – 1 vitutuspiste.
5 minuuttia myöhässä – 10 vitutuspistettä
25 minuuttia myöhässä – 100 vitutuspistettä.
Eli vitutus = 10 ^ (log 5 myöhästymisaika), ei kuitenkaan
enempää kuin 100 pistettä.
Kokonaisvituttavuudelle merkitystä ei pitäisi olla vaihtojen määrällä matkan aikana. Eli tarvitaan dataa ihmisten matkoista, alku- ja päättöpisteistä. Sen voi tietysti vain estimoida, mutta so what. Kokonaisvituttavuus ajanvälillä [T1, T2] on kaikkien tämän ajanvälin matkojen vitutuspisteiden summa. Keskivituttavuus
on tämä suure jaettuna matkojen määrillä. Samalla tavalla kokonaisvituttavuuden ja keskivituttavuuden voi laskea jollekin tietylle linjalle, joukkoliikennetyypille yms.
Tämähän on erinomainen juttu!
Minusta tärkeintä on lähestyä asiaa matkustajan eikä suunnittelijan näkökulmasta. Matkustaja haluaa perille mahdollisimman nopeasti. Se ei halua odotella pysäkillä, mutta sietää ja hyväksyy lyhyen ajan odottaa. Pysäkin aikataulun lupaus on siten tärkeä, sitä ei saa pettää. Mutta justeerausta ei pidä tehdä aikatauluun vaan ajamiseen, jos ajamisessa on hajontaa.
Tästä päästään siihen, mistä Daniel kirjoitti. Saadaanko datasta irti, paljonko aikatauluissa on löysää, jota voidaan käyttää sekä matkan nopeuttamiseen että luotettavuuden ja täsmällisyyden parantamiseen? Valitettavasti taitaa olla niin, että kun valo-ohjaus toimii vain jarruna estäen aikataulusta edellä ajamista, toteutuneista pysäkin tulo- ja lähtöajoista saadaan vain vähän tietoa siitä, miten palvelua voidaan parantaa. Kuten Daniel kirjoitti, tilastoon kertyvät lyhimmät ajoajat voivat syntyä vain siitä, että vaunu ottaa kiinni aikatauluaan – jos liikennevalot eivät jarruta sitäkin tilannetta.
Tuon datan ongelma on siinä, että siitä ei irtoa sitä, milloin poikkeama tavoiteajasta johtuu todellisesta syystä ja milloin sellaisesta syystä, joka voidaan ja pitää korjata. Pari esimerkkiä:
A: Kuljettaja ajaa hitaasti, koska tietää, että edessä on liikennevalo, joka päästää aina ensin autoja ja vasta sitten ratikan. Ajamalla hitaasti hän välttää joutumasta pysähtymään valoihin. Tilaston mielessä kaikki on OK, ei tullut turhaa valoihin pysähtymistä. Toinen kuljettaja ajaa sallittua nopeutta ja joutuu pysähtymään valoihin. Molempien lähtöaika valoista on sama, mutta jälkimmäisessä tapauksessa rekisteröityy turha pysähdys liikennevaloihin ja tulee viesti siitä, että välin voisi ajaa nopeammin, jos valo ei jarruttaisi.
B: Kuljettaja on saanut matkustajat sisään ja ulos, mutta jää seisomaan pysäkille, koska valot ovat punaisella. Rekisteröityy pitkä pysäkkiaika, mutta ei tietoa siitä, oliko se tarpeen vai vain valojen odottamiseksi. Pysäkkiaika voi tälläkin pysäkillä vaihdella, mutta vaihtelun syytä ei saada selville.
Datasta saa minusta ulos kaksi matkustajalle merkitsevää tietoa:
1. Paljonko poiketaan aikataulun palvelulupauksesta ja mihin suuntaan?
2. Miten usein onnistuvat aikataulujen palvelulupaukset vaihdoista?
Tulosten parantamiseksi on kyllä noustava monitorin takaa. Data ei kerro havaintojen syitä eikä sitä, miten palvelulupausta voidaan noudattaa paremmin. Siinä on kyllä lähdettävä tutkimaan sitä, mitä siellä linjalla käytännössä tapahtuu.
Antero
Tämä aikataulujen löysyyden irti saaminen ei tässä sinänsä ollut tavoitteenakaan. Uskon, että aikataulujen kiristysvara selviää parhaiten siten, että pikkuhiljaa kiristetään aikatauluja paikoissa joissa epäillään sen onnistuvan, ja seurataan tarkoin, alkaako luotettavuus heiketä. Jos ei ala, kiristysvaraa oli.
Tuo seuranta sitten tietenkin edellyttää ihan toisen tason luotettavuusmetriikoita kuin mitä tähän asti on käytetty. Ja niistä tässä taas on kyse.
Daniel puhuu vain omasta puolestaan. Ajoajat vaihtelevat eri vuorojen, päivien ja kellonaikojen mukaan. Linjavaali mahdollistaa pidempään töissä olleiden valita parhaimmat ajosarjat päältä. Daniel on ollut niin pitkään HKLlssä että hän jo saa hieman valita. Löysää on, mutta sitten on myös erittäin tiukkoja vuoroja sekä ajo pätkiä joita ei pysty ajamaan ajoissa edes liikennesääntöjä rikkomalla.
Esimerkiksi 7A Pasila-Hakaniemi on niin tiukka ettei alle 2 minuutin myöhästyminen ole mahdollinen koskaan ilman liikennesääntöjen rikkomista. Toisaalta Hakaniemi-Pasila jatkopätkä on niin löysä että ajan saa tasattua Pasilaan mennessä. Sama juttu esim. linja 1A Perämies-Hakaniemi aina myöhässä 2-5 min, mutta aika tasaantuu Hakaniemi-Käpylä välillä.
Linjojen 7A ja 1A kuljettajien vaihdot tehdään Hakaniemessä, joten kuljettajalla on intressi päästä tauolle työaikansa lopussa. Monesta kuljettajasta tuntuu epäoikeudenmukaiselta ettei HKL korvaa kuin yli 5 minuutin työajan ylitykset. Kuitenkaan aikatauluihin kuljettajat eivät voi vaikuttaa. Ei se mitään jos joskus ruokatauko alkaa tai työpäivä päätyy Liisankadulle tai Käenkujalle, mutta kun se toistuu joka päivä jokaisessa vuorossa se alkaa kyrsimään. Olisi kaikkien intressi tasata aikataulut vastaamaan todellisia ajoaikoja.
Sitten se löysä. Muutamia vuosia sitten ajoaikaa lisättiin muutamia minuuteja jokaiseen vuoroon. Samalla Eläintarhasta tuli 3 selvä päättäri lisäämällä sinne useita minuutteja pysäkkiaikaa. Tällä pyrittiin siihen että jos vuoro tulee myöhässä se ehtii tasata aikataulunsa ennen seuraavaa kierrosta ja näin vältytään vaunujen kulkemiseselta peräkanaa ja toistuvilta turhilta poikkeusreiteiltä. Etuajassa ajaminen oli myös paljon suurempi ongelma kaikilla linjoilla, koska kuljettajat lähtivät myös päättäreiltä ennakkoon jos vain suinkin kykenivät ehtiäkseen paremmin ajaa kierrokset. Nyt ainakin tämä on saatu loppumaan. Ajoajan lisäämisellä pyrittiin siihen ettei vaunuilla kaahattaisi vaan matkanteko olisi tasaista ja mukavaa. Tässä on onnistuttu vaihtelevasti sillä kaikki eivät osaa tai halua käyttää ajoaikaa tasaisesti. Tosin tähänkin voitaisiin vaikuttaa jakamalla ajoaikaa paremmin reitille.
Pysäkkipalveluaika on 20 sekunttia se sisältää ovien avaamisen, matkustajat ulos sisään ja ovien sulkemisen sekä matkustajapalvelun=lipunmyynnin. Vanun hidastus ja kiihdytys luetaan ajoaikaan. Suomalaisten lipunosto (lompakon ja rahojen kaivaminen, hintojen päivittely, väärän rahamäärän tarjoaminen) vie myös niin paljon aikaa kuljettajalta ettei sitä saa tuohon 20 sek. mahtumaan sitten millään. Niin kauan kuin kuljettajilla on lipunmyyntiä on aika tarkoitushakuista vedellä pysäkillä seisomisesta ajontappo-johtopäätöksiä.
Tein vähän työkaluja tuon käsittelyyn: https://github.com/tazle/hsl-stop-analysis
Kun lähdin tutkimaan että mikäs tuo Hastus oikein on, löytyi tämmönen varsin kiinnostava diplomityö, ”Optimaalisen ajoajan määrittely aikataulusuunnittelussa”, http://lib.tkk.fi/Dipl/2012/urn100620.pdf joka tutkii asiaa vähän eri kantilta. Tuossa määritelty täsmällisyyden mittari lienee aika pätevä, eli mikä prosentti lähdöistä on korkeintaan minuutin etuajassa tai viisi minuuttia myöhässä.
Jos joku muu tätä dataa vielä tutkii, pari huomiota mitä on tullut ainakin itselle vastaan:
– Kaikki merkinnät eivät ole virheettömiä, eli löytyy selviä mahdottomuuksia kuten ajoja joissa pysäkit ovat väärässä järjestyksessä, puuttuvia pysähtymisiä ja muuta mukavaa
– osa ajoista välillä 00..05 on muutettu muotoon 24..29, mutta ei kaikkia. Esim. suunnitellut ajat on kaikki muuntamatta ja osa virheellisistä ”000000” ajoista on korjaantunut muotoon ”240000”
– siihen ei voi luottaa että pysäkille saapuminen ja lähtö samalla sekunnilla tarkoittaisi ohiajoa.
Ihan hienoja ajatuksia. Samankaltaisia asioita olen itsekin tässä tutkinut, kuten mm. raitiovaunujen nopeutta kaupungin eri alueilla. GPS-dataa hyödyntämällä saa analysoitua erittäinkin tarkkaan monenlaisia asioita ja tapahtumia reitin varrella. Hommaa helpottaa, kun tämä GPS-data ajetaan säännöllisesti SQL-kantaan ja hetkellistä sijaintia kuvaavat pisteet sidotaan sekunnin tarkkojen kellonaikojen kanssa raideverkkoon ja pysäkkeihin.
Jonkin verran noita tilastointeja ja analyysejä on tullut ennen tätä varsinaista avoimen datan aikaa (mm. VR:n kulkutietojen tilastointia vuosina 2007-2009). Silloin ei ollut edes gps-pohjaista tietoa olemassa tässä laajuudessa kuin nykyisin.
Tätä kuvaa taidettiin tuossa yhdessä aiemmassa kommentissa kysyä: http://jpl.sr2.fi/kuvia/hkl_raitiovaunut.jpg
Kiitokset Juhanille hyvästä kuvasta. Ehdottaisin kuitenkin että tässä käytettäisiin nopeuksien sijasta nopeuksien käänteislukuja. Eli ei sanota nopeuden olevan esimerkiksi 20km/h, vaan sanotaan että kilometriin kuluu 1/20h eli 3 min.
20km/h on havainnollinen jos pohditaan kuinka pitkälle päästään vaikka puolessa tunnissa tai tunnissa. Mutta ei tätä ratikkamatkaaja mieti, hän miettii kuinka pitkään kestää ajaa 3km matka kotiin, ja tämä onkin helpompi laskea kun sanotaan kilometrin vievän 3 minuuttia.
Lisäksi nopeuksien käänteislukujen käyttö kannattaa sillon kun katsotaan nopeutta paikan funktiona, eikä ajan. Siis esimerkiksi karttaa piirettäessä. Kun katsotaan nopeutta ajan suhteen, keskimääräinen nopeus saadaan helposti keskiarvona. Jos taas katsotaan nopeutta paikan funktiona, keskinopeus saadaan vaikeasti harmonisena keskiarvona. Tästä vaikeudesta päästään eroon tuolla käänteislukujen käytöllä.
Jos edellinen kappale oli täyttä hepreaa niin ehkä esimerkki auttaa. Raitiovaunu A kulkee puolet ajasta 20km/h ja puolet ajasta 30km/h. Keskinopeus on näiden keskiarvo 25km/h. Helppoa. Raitiovaunu B kulkee puolet matkasta 20 km/h ja puolet matkasta 30km/h. Keskinopeus on näiden harmoninen keskiarvo 24km/h. Vaikeaa. Sen sijaan kannattaa sanoa että vaunu B etenee puolet matkasta kilometrin 3 minuutissa ja puolet matkasta kilometri 2 minuutissa. Keskimäärin kilometriin kuluu 2.5 minuuttia.
HKL:n ratikkayksikössä sisäisesti mietitään luotettavuusmittaria ”lähtee pysäkiltä 0-3min aikataulusta jäljessä” laskettuna kaikille pysäkeille. Opin tämänkin tänään
Pistin Juhalle nyt allaolevat metriikkaehdotukset
Ehdotus luotettavuusmetriikaksi:
Myöhästyminen lasketaan jokaiselle linjalle jokaisella pysäkillä erikseen. Ajatus että voi kasata linja- tai pysäkkikohtaisia luotettavuuksia myös.
Kolme ehdotusta spesifiksi metriikaksi
Metriikka 1: bussien/ratikoiden osuus, jotka lähtevät 0-3 minuuttia myöhässä aikataulunmukaisesta ajasta. Tämä on HKL:n sisäisesti suunnittelema metriikka ainakin ratikoille.
Metriikka 2: bussien/ratikoiden osuus, jotka lähtevät korkeintaan minuuttia ennen ja korkeintaan 2 minuuttia jälkeen relevantin ohitusajan odotusarvon. Se, millaista odotusarvoa käytetään riippuu siitä mitä muutoinkin ollaan laskemassa.
Jos aikataulu on tehty hyvin, metriikka 2 on hyvin lähellä metriikkaa 1. Aikataulutusperiaate on tiettävästi tähdätä siihen, että normaalisti ajaen menee minuuttia jäljessä.
Metriikka 3: pysäkkiajan hajonta. Elegantti ja helppo metriikka, mutta vaikeampi kommunikoida tilastotiedettä hallitsemattomille. Lisäksi aikataulusta poikkeamisen haitta ei ole lineaarinen myöhästymisen suuruuden suhteen, joten keskihajonta ei oikeastaan mittaa oikeaa asiaa.
Jos näistä jostain (erityisesti ensimmäisestä) saisi jonkin tietokannan vaikka tehtyä ja siitä visualisointeja, niin se olisi aika siistiä.
OKF Conventionin edistymistä voi seurata vaikka FB-ryhmästä
Miten tuossa metriikassa 3 saisi eroteltua hajonnan, joka syntyy todellisista pysäkkitoiminnoista ja sitten tilanteet, joissa vaunu jää pysäkille seisomaan turhaan sen vuoksi, että liikennevalo estää pysäkiltä lähtemisen? Tämä voi olla vaikeaa (mahdotonta?) mutta ensiarvoisen tärkeää se kyllä olisi, sillä valoetuudet pitäisi tietysti ohjelmoida todellisen pysäkkitoimintoihin kuluvan ajan perusteella. Hajonta antaa väärän tuloksen, jos on niin, että suurimmaksi osaksi pysäkkitoiminnoista selvitään 12–17 sekunnissa, mutta vaikkapa kolmella kerralla neljästä joudutaan lisäksi seisomaan valoissa 30 sekuntia. Pelkkää hajontaa tutkimalla luulee, että tyypillinen pysäkki(toiminto)aika on 45 sekunnin kieppeillä.
Mutta kun seurataan asiakkaan kokemaa pysäkiltälähtöajan vaihtelua, ei se sinänsä merkitse, että mistä seisomisajat johtuvat. Jos lähtöaika vaihtelee, se vaihtelee.
Mikäli liikennevalojärjestelmistä saisi dataa ulos, voisi sen jälkeen tuollaisen tilanteen tunnistaminen ja erottelu olla melko vaivatonta (selvitetään jos vaunu seisoo liikennevalon edessä JA valo on punainen ja kun näin on, kirjataan tapahtumalle syy esim. valon vaihtumisen odotus).
Tuli tehtyä ainakin yks kartta tuosta datasta: http://aut-web.hut.fi/ea/ruuhka
Tässä näytetään pysäkkiparien välisten ajoaikojen epävarmuutta, eli eroa 5- ja 95-persentiilien välillä kaikista ajoista pysäkkien välillä (aikaero lähdöstä saapumiseen). Vihreästä keltaiseen on 0-2 minuuttia, täysin punaiseen päästään neljän minuutin kohdalla. Koska dataa on paljon, tähän piirretään vain ne noin 4700 väliä joille löytyy vähintään 100 ajoa datasetistä.
Käytännössä tämän voisi tulkita karttana pysäkkiparien välisen matkustusajan ennustettavuudesta. Se, että onko tästä mitään hyötyä on sitten paljon vaativampi kysymys johon minulla ei juuri nyt ole esittää vastausta.
Hienoa!
Tuo epävarmuus on nyt siis absoluuttista aikaa, eikä suhteessa aikataulun mukaiseen aikaan, righ? Tästähän pitäisi seurata, että pidemmillä väliellä punaista tulee paljon herkemmin. Silmämääräisesti katsoen ei kyllä tosin tunnu seuraavan. Hmm…
Hyvä myös, että tämä on tuon Pottosen yllä esittämän ehdotuksen mukaisesti ajoaikoihin perustuva eikä nopeuksiin.
Ja kyllä tuolla ainakin pahimmat ongelmapaikat saa esiin.
Sulla lienee tohon jokin scripti jota voi helposti käyttää uudella datasetilläkin? Mietin että jos HSL:ltä saa vaikka laajemman datatsetin, pelkkien ratikoiden setin, lumipyrypäiväsetin jne. Kyllä noille kartoille käyttöä löytyy!
Ihan oikeita ongelmapaikkoja tuosta tuntuu näkyvän – ensimmäisenä osui silmään päivittäin käyttämäni Kehä I:n ylitys Otaniemestä Kalevalantielle, joka on ihan aiheesta punaisella. Siinä kun Jokerin liikennevaloetuus Kehältä Otaniemeen johtaa usein siihen, että e10, 103 ja 506 seisovat valoissa yhden ylimääräisen kierron, yhteensä jopa 2-5 minuuttia.
Ns. vääriä hälytyksiäkin tuolta tuntuu löytyvän, linjojen ensimmäisiltä tai viimeisiltä pysäkinväleiltä. Tämä johtunee käytettävissä olevasta datasta, ei varsinaisesta myöhästelystä, ainakaan maaseutupäättäreillä.
Selkeä vertailukohta näille löytyy HSL:n teettämistä LUOKE-selvityksistä, joissa on selvitetty linjojen ongelmakohtia ja niiden korjausta. Näitä on nyt tehty Helsingistä, Espoosta ja Vantaalta, viimeinen näistä uunituore (HSL:n hallituksessa vasta käsiteltävänä).
Aika on absoluuttista aikaa, eikä tässä itse asiassa edes käsitellä mitenkään aikatauluja saati sitten millä linjalla kukin bussi on. Tämä vääristää ehkä vähän kun on pidempiä välejä joille sitten piirretään pidempi viiva; lyhyt mutta epävarma pysäkkiväli ei sitten tule yhtä hyvin esille.
Ja juu, skriptejä löytyy joilla uutta dataa saa käsiteltyä. Tämähän ei mikään viimeistelty tekele ole, otin ehkä turhankin helposti epäselvää dataa pois sen sijaan että olisin sitä kunnolla siivonnut; tarkoituksena nyt alkuun oli saada ainakin jotain piirrettyä.
Ajojen alut ja loput tuottavat selviä ongelmia, kun kirjaukset selvästi eivät aivan jokaisessa tilanteessa kuvaa niitä täsmällisiä hetkiä kun bussi saapuu ja lähtee pysäkiltä.