tiistai 26. tammikuuta 2016

Fitbit-data Exceliin

Fitbit-aktiivisuusranneke laskee päivässä kertyneet askeleet, kerrokset ja paljon muuta tietoa liikkumisesta. Nettipalvelusta tai älypuhelimesta voi sitten katsella miten tavoitteet ovat täyttyneet.

Fitbitin oma Dashboard-näyttö
Mutta entä jos haluaa katsoa tietoja kauemmas taaksepäin? Kojelauta näyttää vain 28 päivän tiedot. Log-välilehdeltä voi valita melkein minkä ajanjakson tahansa, esimerkiksi vuoden:

Log-välilehti näyttää vaikka koko vuoden.
Graafista näkyy, miten mittauksissa on keväällä tauko, koska laitteen malli vaihtui. Analyysitoiminnot ja mittauksen säilyminen yhdenmukaisena on valmistajan näkökulmasta mainio keino sitoa asiakas oman tuotteen käyttäjäksi.

Entä miten tiedot saisi ladattua itselle, jos vaikka lopettaa juuri tämän rannekkeen käytön? Onneksi Fitbitissä on mahdollisuus ladata tiedot itselle. Toiminto löytyy asetuksista (Data Export) ja näyttää lupaavalta. Tiedot saa ladattua joko CSV- tai XLS-muodossa.

Voiko päiväysten valinta olla oikeasti näin hankalaa?
"Your data belongs to you!", sivu hehkuttaa -- aivan oikein. Tämä on sitä MyDataa. Tiedot liikkumisestani ovat minun, eivät Fitbitin omaisuutta. Asiakkaana minulla pitäisi olla oikeus ladata ne itselle ja jopa siirtää palvelusta toiseen.

Mutta sitten tulee ongelma: Custom-kohtaan syötettävä aikaväli voi olla enintään 31 päivää. Mitä ihmettä? Miksei koko vuotta kerralla?

Todellinen riesa paljastuu, kun alkaa syöttää päivämääriä kenttiin. Alku- ja loppupäivän voi valita kalenterinäytöstä, mutta ne eivät voi olla yli 31 päivän päässä toisistaan, eikä arvoja voi edes tyhjentää! Tammikuun siirto menee helposti, mutta helmikuu vaatii kolme klikkausta: alkupäiväksi valitaan 31.1., sen jälkeen loppupäiväksi 28.2. ja lopuksi alkupäiväksi siirretään 1.2.

Maaliskuu on vielä vaikeampi, koska loppupäivää ei voi siirtää suoraan 31.3. vaan ajat on syötettävä paloissa. Ensin alku 28.2., sitten loppu 28.3., sitten alku 1.3. ja lopuksi loppu 31.3. Tämän täytyy olla tahallista kiusantekoa! Jos päiväyksiin on helpompi tapa, en ainakaan itse keksinyt sitä. Jatkossa täytyy ladata data aina kuukauden loppuessa.

Data avautuu Exceliin, mutta maa-asetukset ovat amerikkalaiset, joten tulos on tällainen:

Kuukauden data vihdoin Excelissä.
Kun yksittäiset kuukaudet on kopioitu allekkain Exceliin, dataa on vielä puhdistettava. Pilkkujen poisto tuhaterottimista käy helposti etsi-korvaa-komennolla, samoin desimaalipisteen vaihto pilkuksi. Olisi ehkä helpompi ladata tiedot CSV-muodossa ja tehdä etsi/korvaa tekstinkäsittelyllä.

Päiväysten kääntäminen suomalaiseen muotoon käy helpoiten Text to columns -toiminnolla. Samalla toiminnolla vaihtuvat (sarake kerrallaan) korvausten jälkeen tekstiksi tulkitut numerot takaisin numeroiksi ja edessä on prosessin palkitsevin vaihe: analyysi omalla ohjelmalla.

Seuraavissa esimerkeissä tulokset ovat sivuseikka, koska dataa puuttuu keväältä. Oleellista on oivaltaa helppous ja mahdollisuudet, joita palvelusta ladatun oman datan analysointiin liittyy. Tässä työssä Excelin pivot-taulukko on mainio apuväline. Se tunnistaa automaattisesti kuukaudet ja parilla klikkauksella tuloksena on taulukko ja graafi:

Askeleet kuukausittain.
Piirretään samaan graafiin kaksi eri muuttujaa:

Askelten määrä ja kerrokset.
Askelten ja kerrosten määrällä on suora korrelaatio, joskin kesäkuukausina se vähenee. Tulos kertoo, että työpaikalla on kävelty portaita hissin käyttämisen sijaan.

Sykeanturin tulokset eri aktiivisuusmääristä -- raskasta liikuntaa on kovin vähän:

Sykealueet.
Lasketaan vielä askelten jakauma 10 000 tarkkuudella. Se käy helpoiten lisäämällä datasivulle ylimääräinen sarake, jossa on kaava =INT(askeleet/10 000) ja käyttämällä sen jälkeen =COUNTIF-funktiota:

Askeljakauma päivittäin.
Kahdeksana päivänä askelmäärä on ylittänyt 30 000 ja kerran peräti 40 000.

2 kommenttia:

  1. XLS-formaatin pitäisi olla riippumaton kansallisista määrittelyistä. Mitä tuossa on tehty? Onko kentät tekstiä? Sen sijaan Excelin CSV-formaatti on idioottimainen. CSV on koneluettava formaatti, joten sen pitäisi olla riippumaton koneen asetuksista. CSV:t kannattaa lukea Libereofficella ja tallentaa Excelin ymmärtämässä formaatissa.

    VastaaPoista
    Vastaukset
    1. @Osmo

      XLS on Microsoftin proprietary formaatti, jonka tuottaminen ja lukeminen muiden toimesta perustuu reverse-engineering -työhön. Se tarkoittaa sitä, että kyseistä formaattia ei kukaan muu kuin Microsoft osaa täydellisesti tulkita ja sen käyttöön liittyy siten aina riskejä, että joku asia ei toimi tai näytä siltä kuin sen pitäisi.

      Uudempi XLSX on hieman parempi, siltä osin että se perustuu XML:n, mutta senkin DTD:stä Microsoft onnistui tekemään ilmeisen tarkoituksellisesti hyvin vaikean toisten käytettävän. Mutta se on siis teoriassa helpompi ja luotettavampi tiedon vaihdon väline kuin XLS formaatti.

      CSV (Comma Separated Value) on löyhä määritelmä -80 luvulta, joka ei ota kantaa käytettyyn merkistöön. Sen kanssa tulee siis helposti myös merkistöongelmia kymmenien vanhojen merkistöjen kanssa. Sen lisäksi tietysti joidenkin maiden, mm. Suomen, kansallisissa standardeissa on määritelty desimaalieroittimeksi pilkku (,) ja tuhaterotin piste (.) joista pilkku risitiriidassa CSV:n kentänerottimen kanssa ja pistekin sekottaa usein numeroiden tulkinnassa.

      Microsoft yritti ratkaista asiaa ja vaihtoi kansallisia verisoita tehdessään sen em. kieliversioissa puolipisteeksi (;) ja vältti siten yhden ongelman, mutta aiheutti samalla sotkun joka kiusaa edelleen monia tänä päivänä. Eikä Microsoftia näytä kiinnostavan asian korjaaminen niin paljoa, että se tarjoaisi saman tyylisen dialogin jossa voi valita mitä merkkejä CSV:tä lukiessa käytetään kuin on mm. Libre Officessa. Toki (ainakin aiemmin) kentänerottimen saattoi vaihtaa kieli-asetuksista, mutta se on tavalliselle käyttäjälle aivan liian hankala mekanismi käytettäväksi.

      Vika ei ole CSV:n, koska siitä sovittaessa ei kansallisia standardeja huomoitu, siihen ei ollut silloin tarvetta koska ei tuettu yleensäkään koska merkistöt joita käytettiin olivat järjestelmäkohtaisia ja liukulukujen esitysmuotoja käytännössä vain yksi ts. jenkkien tapa esittää niitä.

      Ongelma syntyi siitä, että Microsoft rikkoi sovittua käytäntöä eikä edes vaivaudu korjaamaan sitä kuntoon kun se ei juuri kiusaa ketään englantia puhuvissa maissa ja siellä missä kansallinen standardi ei vaihtanut pilkkua ja pistettä desimaali- ja tuhaterottimena.

      Fiksumpi ratkaisu kuin tehdä kansallisia versioita CSV:stä olisi ollut pitäytyä yhdessä siirtoformaatissa ja edellyttää ohjelmilta jotka lukevat ja kirjoittavat muuntamista kansallisiin formaatteihin.

      CSV:tä fiksumpiakin formaatteja toki on, mm. XML:n ja JSON:n perustuen, mutta CSV:tä käytetään yleisesti sen (heh heh) "helppouden" vuoksi :/

      Poista