Avainsana-arkisto: Power BI

Oppimisanalytiikan terälehdillä

Power BI on Microsoftin kehittämä monipuolinen työkalu datan visualisointiin. Kerron ensiksi Power BI:n tukemista kokeellisista teemakartoista ja syistä niihin tutustumiseen. Tämän jälkeen avaan omien karttatiedostojen hyödyntämistä teemakartoissa, miksi tarvitsemme tähän muunnostyökalun ja mitä sen on tehtävä, kuinka alueet nimetään kartoissa ja kytketään Power BI:n dataan. Lopuksi käyn vielä läpi työkalun tekemisessä esille tulleita rajoituksia. 

Lähtökohdat 

Oppimisanalytiikan visualisoinnissa on tarpeen esittää edistymistä muillakin tavoin, kuin pelkästään perinteisin kaavioin. Keväällä 2019 pidetyissä APOA-hankkeen työpajoissa kerättiin visualisointiin liittyviä ideoita, ja yksi niistä oli esittää osaamistavoitteet kukan terälehtinä. Mikäpä sen mukavampi haaste – katsotaan seuraavaksi, miten Power BI saadaan taipumaan tähän tavoitteeseen. 

Eli käytännössä haluamme piirtää mielivaltaisen muotoisen kartan Power BI:n avulla. Vaihtoehtoja tämän toteuttamiseen on useampia. Voisimme luoda oman liitännäisen Power BI:hin, mutta sen osalta kehitystyö muuttuu nopeasti monimutkaiseksi tarvittavien kehitysympäristöjen ja liitännäisen julkaisunkin vuoksi. Joten jätetään tämä varalle jotain isompaa varten. 

Mutta Power BI:n eräs kokeellinen ominaisuus on teemakartta (Shape Map), jolla voi esittää erilaisia geometrisia alueita kartalla. Teemakartan avulla voi värittää vaikkapa kokonaisen maanosan, mikä tekee siitä karttojen päälle projisoituja pallokuvaajia visuaalisempia. Teemakartta on kirjoitushetkellä vielä kokeiluasteella, joten se täytyy kytkeä päälle erikseen Power BI Desktopin asetuksista (kuva 1).  

Kuva 1. Teemakartan kytkeminen päälle Power BI Desktopissa.

Kuva 1. Teemakartan kytkeminen päälle Power BI Desktopissa.

Teemakartan karttapohjat ovat JSON-tiedostoja, jotka sisältävät geometrista aluedataa TopoJSON-muotoisena. Uuden maan kartan tekemiseen on toki erilaisia palveluita, mutta mikäli haluamme luoda täysin normaalista maailmasta irrallisen kartan, niiden tekemiseen ei ole oletuksena tarjolla mitään vastaavaa. Siispä tehdään ohjelma, joka tuottaa meille sellaisen. Mutta ensiksi, tarvitaan tietenkin kartta itsessään.  

Karttojen luominen

Karttapohjia on mahdollista tehdä vektorigrafiikkaohjelmalla, kuten esimerkiksi Inkscapella. Inkscape tallentaa tiedoston oletuksena SVG (Scalable Vector Graphics)-muotoisena. Tässä tapauksessa loin kuvassa 2 näkyvän tiedoston, jossa on niin kukka terälehtineen ja mehiläinenkin. Tämän jälkeen SVG-tiedosto on muunnettava TopoJSONmuotoon.  

Kuva 2: Inkscapella luotu karttapohja.

Kuva 2. Inkscapella luotu karttapohja.

Yksinkertaistettuna TopoJSON koostuu kaarista, jotka rajaavat jonkun alueen, tai ovat osa jonkun alueen rajaa. Kaaret määritellään koordinaattiarvoparijonoina. TopoJSONtiedostossa koordinaatit merkitään pituus- ja leveysasteina. Pituusja leveysasteilla esitetään kolmiulotteinen pallokoordinaatisto, mutta meidän tapauksessamme ne projisoidaan vielä kaksiulotteiseen tasoon, jota Power BI käyttää. Eräs varsin yleisesti käytetty Power BI:n tukema ja yksinkertaisesti toteutettavissa oleva karttaprojektiomalli on Mercator, joten valitsemme sen.  

Alueiden nimeäminen TopoJSON-tiedostossa 

Kartan eri alueet merkitään TopoJSON-tiedostoon properties-kentän avulla. Alueille merkitään nimi-arvopareista koostuvia avaimia. Näiden avulla Power BI tunnistaa eri alueet, ja voi korostaa niitä datan perusteella. Onneksi kunkin Inkscapessa tuotetulle muodolle voi antaa nimen, jolloin muunnostyökalu puolestaan voi siirtää sen TopoJSON-alueen tunnisteeksi. Tällä tavalla jokainen erillinen alue saa yksilöllisen tunnisteen. Listauksessa 1 on esitetty lehti2-muodolle luotu properties-kenttä, johon on liitetty avaimet ID, ISO ja name 

"properties": { 

   "ID":"lehti2", 

   "ISO":"iso_lehti2", 

   "name":"name_lehti2" 

}

Listaus 1. Esimerkki properties-kenttään tallennetuista avaimeista ja niiden arvoista.

Kuva 3a. Teemakartan asetukset ennen uuden kartan valintaa. Kuva 3b. Uusi teemakartta lisättynä sekä Mercator-projektiomalli valittuna.Kuva 3c. Tietueet kytkettynä teemakartan visualisointiin.
Kuva 3a, 3b, 3c. Vasemmalla teemakartan asetukset ennen uuden kartan valintaa. Keskellä uusi kartta lisättynä sekä Mercator-projektiomalli valittuna. Oikealla tietueet kytkettynä kartan visualisointiin.

Muunnostyökalun käyttö 

Edellä mainitut asiat on toteutettu kirjoittamaani shapemaptool-ohjelmaan. Se käy läpi SVG-tiedoston muotojen janat, rakentaa niistä TopoJSON-alueita, sekä liittää SVG-muotojen nimet avaimiksi. Työkalun käyttö on kuvattu tarkemmin lataussivuston README-tiedostossa. Tämän jälkeen kartta ladataan teemakartan asetuksista klikkaamalla Add map (kuva 3a). Kartan latauduttua valitsemme käytettävän projektion (kuva 3b). 

Karttojen avaintiedon soveltaminen Power BI-visualisoinnissa 

Teemakarttojen avainarvojen etuna on niiden vapaamuotoisuus; dataa ei tarvitsekaan kytkeä pituus- ja leveysasteisiin, vaan merkkijonoarvoon. Esimerkiksi kukan terälehdet nimetään tunnisteilla lehti1lehti5. Mikäli data halutaan projisoida näihin arvoihin, voimme käyttää DAX-kyselyssä SWITCH-lausetta. Se mahdollistaa diskreettien arvojen luomisen uuteen sarakkeeseen jonkun olemassa olevan sarakkeen arvon perusteella. Mikäli joku tehtävä halutaan jättää ulkopuolelle, sen kohta kartan_tunnus-sarakkeesta jätetään tyhjäksi. Sarakkeen luova DAX-lauseke määriteltäisiin seuraavasti: 

kartan_tunnus = SWITCH( Tehtavat[Nimi]; “Tehtava1”; “lehti1”;”Tehtava2”;”lehti2”) 

Siinä käsitellään Tehtava-taulukossa olevan nimi-sarakkeen arvoa. Mikäli arvo on “Tehtava1”, lause palauttaa arvon “lehti1”. “Tehtava2” puolestaan saa arvon “lehti2”. Muille arvioille ei tehdä mitään, joten ne jäävät tyhjiksi. Tuloksena syntyvä data on listattu taulukossa 1. Tämän jälkeen Power BI:n on mahdollista liittää arvo aina tiettyyn alueeseen kartassa, kunhan taulun sarakkeiden arvot on kytketty teemakarttaan (kuva 3c). Teemakartan asetuksilla on mahdollista määritellä myös tyhjän arvon käsittelytapa – joko jätetään kokonaan piirtämättä, tai täytetään se oletusvärillä. 

Nimi       Pisteet  kartan_tunnus 

Tehtava1     10   lehti1 

Tehtävä2     50   lehti2 

Tehtävä3        (tyhjä) 

Taulukko 1. Tehtava-taulukon sarakkeet ja rivit, joilla arvot sidotaan teemakarttaan.  

Muutamien ulkonäköön liittyvien säätöjen jälkeen valmis Power BI -visualisointi on nähtävissä kuvasta 4. 

Kuva 4: Lopullinen visualisointi toiminnassa Power BI-tiedostossa.

Kuva 4. Lopullinen visualisointi toiminnassa Power BI-tiedostossa.

Muotoseikkoja 

SVG-tiedostoihin voi määritellä Inkscapen avulla varsin monipuolisia muotoja. TopoJSONtiedostomuoto sen sijaan tukee tasan yhtä tapaa asioiden esittämiseen, joten joudumme käsittelemään muotoja Inkscapessa muunnostyökalua varten. Muunnostyökalu odottaa muotojen datan olevan janoja, eikä kykene tekemään itsenäisesti muunnosta muista muodoista.  

Esimerkkitiedostossa muodot on mallinnettu alun perin Bézier-käyrillä. Muunnosta varten Bézier-käyrät puolestaan on muutettava Inkscapen termeissä poluiksi, sekä pilkottava Modify Path-laajennoksella perättäisiksi janoiksi. Pilkkomisesta syntyvien janojen määrä on toki vapaasti valittavissa, joten muodoista saadaan useimmiten riittävän kaarevan näköisiä ihmissilmän huijaukseen.  

Järjestyksellä on väliä 

Janojen pisteiden määrittelyjärjestys näyttäisi vaikuttavan siihen, miten Power BI tulkitsee muodon täyttöasetukset. Jos janojen pisteiden järjestys on “väärin päin”, muoto täytetään ulkopuolelta. Toisin sanoen, yhden pienen alueen täyttämisen sijaan Power BI täyttääkin kaiken tilan teemakartasta kyseisen alueen ulkopuolelta. Janojen pisteiden määrittelyjärjestys on käännettävissä Inkscapessa negatiivisella skaalausoperaatiolla. 

Yhteenvetona voidaan todeta, että Power BI:n teemakarttojen, kehitetyn muunnostyökalun, sekä SVG-karttojen avulla on mahdollista lisätä perinteisistä kaavioista poikkeavia visualisointeja oppimisanalytiikkaa varten. Esimerkkitiedostot ja muunnostyökalu ovat ladattavissa osoitteesta https://github.com/agrohn/shapemaptool 

Kirjoittaja: Anssi Gröhn, tietojenkäsittelyn lehtori