keskiviikko 2. lokakuuta 2013

Kuntadata + Google Fusion Tables = kuntakartta

Tämän blogikirjoituksen tehtävä on näyttää askel askeleelta miten yksinkertaisen karttavisualisoinnin toteuttaminen onnistuu Google Fusion Tables -työkalulla.

Ohjeet on alunperin kirjoitettu Metropolia:n opintojakson "Toimittaja verkkomediassa" tarpeisiin, mutta ne on kirjoitettu niin, että kuka vain voi niitä seurata.

1. Hanki kuntadataa


Kuntiin liittyvää dataa on saatavilla hyvin monista eri lähteistä. Esimerkiksi THL:n Sotkanet tarjoaa hyvin monipuolisesti erilaista terveyteen liittyvää tietoa. Toinen laaja tietolähde on tietysti Tilastokeskus.

Esimerkiksi voit ladata kuntadataa Tilastokeskuksen Kuntien avainluvut -aineistosta.
  1. Valitse vasemmalta kaikki kunnat niin, että valituksi tulee 320/321 riviä.
  2. Valitse oikealta haluamasi tunnusluku, voit ottaa esimerkiksi "Väkiluvun muutos, % 2011 - 2012".
  3. Valitse pudotusvalikosta valinta "Pilkkueroteltu otsikolla (.csv)".
  4. Paina "Jatka" ja lataa valitsemasi data tietokoneellesi johonkin mistä löydät sen hetken päästä. 
Lisää Valitse kaikki kunnat, haluamasi tunnusluku sekä haluttu dataformaatti.

Nippelitietoina on hyvä tietää, että vuosina 2011–2012 Suomessa oli 336 kuntaa kun taas vuonna 2013 Suomessa on 320 kuntaa. Aineistossa olevien kuntien määrä kertoo usein siitä miltä ajalta aineisto on. Joskus on myös hyvä tietää, että vuosina 2011–2012 Suomessa oli 320 kuntaa mannersuomessa, koska tämä voi joskus olla hämäävää.

2. Lataa aineistosi Google Drive -palveluun


Seuraavaksi haluat siirtää hankkimasi aineiston Google Drive -pilvipalveluun, koska Fusion Tables on sieltä löytyvä työkalu.

Tätä ennen data täytyy kuitenkin puhdistaa. Käytämme myös tähän puhdistamiseen Google Drive -palvelua.
  1. Mene osoitteeseen http://drive.google.com ja kirjaudu sisään omilla Google-tunnuksillasi.
  2. Näet näkymän jossa ovat kaikki Google Drive -tiedostosi. Jos et ole käyttänyt palvelua aikaisemmin saatat saada tervetulotoivotuksia ja muita viestejä.
  3. Valitse vasemmalta löytyvä punainen upload-painike (nuoli ylöspäin).
  4. Etsi koneellesi aiemmin lataama .csv-tiedosto ja lataa se Google Drive -palveluun.
  5. Avaa tiedosto Google Drive:ssä.
Jos kaikki on tähän asti onnistunut pitäisi lopputuloksen näyttää tältä. Toki jos olet valinnut hyvin eri tyyppisen datan näyttäytyy se tietysti eri tavalla.

Mikäli jotain tuntuu menevän väärin eikä lataamastasi dokumentista synny yllä olevan kaltaista taulukkolaskentadokumenttia kokeile ladata .csv-tiedosto uudelleen ja tarkista latausikkunan asetukset. Haluat, että sinulla on "Conversion; on" -asetus päällä.

Asetettuasi "Conversion" -asetuksen tilaan "on" täytyy sinun ladata tiedosto Google Drive:en vielä kertaalleen, koska vasta tällöin asetus tulee voimaan uusille tiedostoille. Voit huoletta poistaa kaikki turhat tiedostot ja epäonnistuneet siirrot Drive:stä.

3. Puhdista data


Data täytyy puhdistaa ennen kuin sitä voidaan käyttää. Tässä tapauksessa puhdistaminen tarkoittaa, että haluamme muuntaa datan sellaiseen muotoon, että meillä on kaksi saraketta, joista ensimmäisessä sarakkeessa (A) meillä on kunnan nimi ja toisessa sarakkeessa (B) meillä on kuntaan liittyvä lukuarvo, joka siis kuvaa jotain kunnan ominaisuutta. Tässä tapauksessa se siis on kunnan muuttovoitto- tai muuttotappioprosentti.

Haluamme myös, että rivillä yksi (1) meillä on otsikkorivi. Eli rivi joka kuvaa sarakkeiden sisällön. Otsikkoriviä seuraa esimerkiksi suomalaisen kuntadatan tapauksessa 320 riviä, jotka kuvaavat kuntien tiedot. On hyvä tarkistaa rivien määrä sekä ettei mukana ole mitään muuta tarpeetonta.

Nämä toimenpiteet on mahdollista tehdä kuten missä tahansa taulukkolaskentaohjelmassa.

Ensimmäinen rivi on nimeltään otsikkorivi. Se kertoo mitä tietoa sarakkeet pitävät sisällään. Samankaltaista tietoa sisällään pitävät tiedot erotellaan omiksi sarakkeikseen.

4. Tallenna data Fusion Tables -dokumenttina


Käsittelemämme dokumentti on tähän asti ollut Google Spreadsheets -dokumentti. Nyt koska haluamme visualisoida datan Fusion Tables -työkalun avulla kartalle täytyy meidän tallentaa tämä Spreadsheet-dokumentti Fusion Tables -dokumentiksi.
  1. Mene Google Drive -palvelun etusivulle.
  2. Valitse vasemmalta painike "Create".
  3. Valitse "Fusion Table". (Mikäli et löydä "Create"-valikon alta Fusion Tables -valintaa täytyy sinun asentaa kyseinen työkalu "Connect more apps" -valikon kautta).
  4. Valitse avautuvasta ikkunasta vasemmalta Google Spreadsheet, hae oikea dokumentti ja valitse se.
  5. Esikatseltuasi dokumenttia ja annettuasi sille haluamasi tiedot pääset näkemään lataamasi tiedot.
Fusion Tables -dokumentti muistuttaa jossain määrin taulukkolaskentadokumenttia ulkonäöllisesti (sarakkeita ja rivejä), mutta ei kuitenkaan ole sellainen.

Tärkein ero taulukkolaskentadokumentin ja Fusion Tables -dokumentin välillä on, että Fusion Tables on nimenomaisesti tiedon visualisointityökalu. Sen avulla on siis mahdollista suhteellisen helposti visualisoida olemassa olevaa tietoa. Tietojen muokkaaminen sen avulla on kuitenkin melko tuskallista. Fusion Tables:ssa esimerkiksi sarakkeiden summaaminen ja muut funktionaaliset toiminnallisuudet loistavat poissaolollaan. Kannattaa siis ensin muokata data valmiiksi taulukkolaskentaohjelmistossa ja vasta sitten tuoda se Fusion Tables:iin.

5. Hanki aluerajat


Jotta voit tehdä datastasi Suomen kuntarajoihin perustuvan visualisoinnin täytyy sinulla olla datan lisäksi toki myös Suomen kuntarajat. Lataa dataasi sopivat rajat tämän blogin KML-aineistot sivulta. Esimerkkitapauksessamme oikea aineisto on "Suomen kuntarajat 2013".

Voit joko käyttää "Make a copy" -toimintoa tai sitten ladata datan ensin koneellesi ja sitten uutena Fusion Tables -dokumenttina omaan Google Drive:esi. Oleellista on, että saat rajat sisältävän Fusion Tables -dokumentin näkymään omassa Google Drive:ssäsi.

Haluat ladata aluerajat omaan Google Drive:esi.

6. Yhdistä datasi aluerajadataan


Seuraavaksi haluat yhdistää kaksi dokumenttia toisiinsa yhteisen nimittäjän avulla. Yhteinen nimittäjä on tässä tapauksessa kunnan nimi, joka siis on yhteinen molempien dokumenttien kesken.
  1. Avaa kuntadata sisältävä Fusion Tables -dokumenttisi.
  2. Valitse File-valikon alta löytyvä Merge-painike.
  3. Etsi dokumenteistasi aluerajat sisältävä dokumentti ja valitse "Next".
  4. Valitse sarake, jonka perusteella dokumenttien yhdistäminen tehdään.
Valitse sarakkeet joissa on toisiaan vastaavat tiedot.

7. Karttadatan visualisointi


Nyt meillä siis on Fusion Tables -dokumentti, joka pitää sisällään niin datan kuin aluerajat. Seuraavaksi haluamme määrittää miltä kartta näyttää. Eli haluamme muun muassa määrittää alueiden värityksen.
  1. Valitse "Map of geometry" -välilehti.
  2. Näet punaisen Suomen kartan.
  3. Valitse "Tools" -> "Change map styles...".
  4. Valitse vasemmalta Polygons.
  5. Valitse Buckets.
  6. Määrittele haluamasi värien määrä. Kohdasta "Divide into x buckets". Esimerkiksi 4–6 on usein hyvä arvo.
  7. Valitse kohtaan "Column" sarakkeen nimi, jossa on visualisointiin haluamasi data.
  8. Tallenna muutokset ja näet tekemäsi muutokset kartalla.
  9. Voit muuntaa alueita klikkaamalla näkyvän infoikkunan sisältöä valitsemalla "Tools" -> "Change info windon layout...". Voit valita mitkä sarakkeet näytetään ja myös muokata vapaasti osatessasi infoikkunan html-koodia.
Yhdistämisen jälkeen sinulla on uusi Fusion Tables -dokumentti missä on niin hankkimasi data kuin aluerajat. Aluerajat näkyvät kuvassa kohdassa "geometry".

Voit vaihtaa raja-arvoja ja värejä haluamallasi tavalla. Näissä valinnoissa tulisi toki julkaistavassa jutussa olla jokin peruste.

Mahdolliset tyhjät alueet tarkoittavat sitä, että yhdistäminen alkuperäisen datan ja aluerajadatan välillä ei ole onnistunut kaikilta osin. Tässä tapauksessa syynä on, että kuntien nimen eivät olleet aineistoissa yhteneväiset.

8. Julkaisu


Valmiin karttatoteutuksen julkaiseminen onnistuu useimmissa sisällön hallintajärjestelmissä niin sanotun iframe-upotuksen avulla. Saat upotukseen tarvittavan html-koodin valitsemalla "Tools" -> "Publish...".

Ennen julkaisua Fusion Tables -dokumentti tulee asettaa näkyväksi Internetissä. Valinta "Everyone with a link" on usein hyvä vaihtoehto.

Tämä iframe-koodi upotetaan hieman riippuen sisällöntuotantojärjestelmästä osaksi jutun leipätekstiä, jolloin sen pitäisi toimia kuten tässä.



Loppusanat


Nämä ohjeet eivät pyri kuvaamaan prosessia täydellisesti vaan on tarkoituksenmukaista, että niitä läpikolutessa joutuu myös ajattelemaan välillä mitä on tekemässä.

Kaikki palaute on tervetullutta :)

3 kommenttia:

  1. Kysymys: Onko jotain kikkaa, millä saisi dokumentin ä:t ja ö:t näkyviin, kun lataa .csv-dokumentin suoraan koneelta Fusion Tablesiin (muuntamatta sitä siis ensin google-formaattiin)? Olen kokeillut kaikkia noista character encoding -vaihtoehdoista, mutta mikään ei suostu tunnistamaan äätä ja öötä. Olisi nimittäin hiukan helpompaa vaan ladata käsiteltävä dokumentti suoraan FT:n puolelle, jos tuo onnistuu jotenkin.

    Hyvä tutoriaali, just viime viikolla pyörittelin Fusion tablesia ja opettelin tän ite kantapään kautta. Olis näköjään päässy helpommalla, jos olis oottanut viikon verran.

    VastaaPoista
  2. Merkistöongelmiin ei ole olemassa mitään yksikäsitteistä vastausta. Joskus on vain niin, että alkuperäisessä dokumenttissa merkistökoodaus on sillä tavalla rikki, että sitä ei ole mahdollista korjata.

    Useimmiten kuitenkin auttaa avata .csv-tiedosto jossain ohjelmassa joka osaa muuntaa merkistöformaatteja. Esimerkiksi Sublime Text (http://www.sublimetext.com/) on tällainen ohjelma, jossa on mahdollista "Save as encoding".

    Eli avaa käsittelemäsi .csv-tiedosto Sublime Text -editorissa ja tallenna tiedosto uudelleen edellä mainitulla valinnalla UTF-8 formaatissa.

    Ja kannattaa aina käyttää kun vain mahdollista UTF-8 valintaa jos ei ole erityistä syytä muuhun.

    Jos ei tunnu näillä ohjeilla ratkeavan niin voit lähettää kyseisen .csv-tiedoston suoraan minulle (etu.suku@gmail.com) niin voin katsoa onko siinä jotain erityistä vialla.

    Mutta kuten sanoin. Merkistöongelmiin ei ole valitettavasti mitään viisasten kiveä.

    VastaaPoista
  3. Tervehdys. Itsekin innostuin karttavisualisoinneista ja koodasin uudelleenkäytettävän Javascript komponentin jolla kartan voi maalata statistiikalla.

    Geneerinen koodi löytyy GitHubista https://github.com/tomimick/mapcolorizer.git

    http://kuntakartta.org on palvelu joka käyttää komponenttia, värittää Suomen kunnat tilastoilla. Siellä myös esimerkkejä miten komponenttia voi helposti käyttää omalla sivulla.

    Tomi

    VastaaPoista