Suhdanne-ennusteet: screippaaminen, siivoaminen, pivot ja suodattimet

Tämä on tausta-aineistoa Jyväskylän yliopiston datajournalismi-kurssille keväällä 2014. Videot kelpaavat itseopiskeluun myös ilman luentoja.

Vaihe 1 – datan kopiointi:

Ensimmäiseksi kopioidaan Talouselämän kokoamat suhdanne-ennusteet Google-taulukkoon. Se tehdään käyttämällä ImportHtml-funktiota. Jos Google-taulukon kieliasetuksena on suomi, pitäisi tämän funktion toimia.
=importhtml(”http://www.talouselama.fi/suhdanne-ennusteet/”;”table”;1)


Funktiolle annettavat parametrit erotellaan puolipisteellä. Ensin kerrotaan, mistä osoitteesta dataa haetaan. Se annetaan lainausmerkeissä ”http://www.talouselama.fi/suhdanne-ennusteet/”. Seuraavaksi tehdään selväksi, halutaanko taulukko ”table” vai lista ”list”. Kolmanneksi kerrotaan, monesko lista tai taulukko ko. osoitteesta haetaan. Viimeinen parametri on siis olennainen, jos sivulla on useita taulukoita tai listoja.

Vaihe 2 – sarakkeiden levittäminen:

Seuraavaksi kopioidaan haettu tieto pelkkinä arvoina uuteen taulukkoon, jotta sen käsittely on mahdollista. Se tehdään kopioimalla kaikki teksti ja käyttämällä ”liitä määräten; vain arvoja” -valintaa. Sarakkeiden levittäminen niin, että teksti mahtuu yhdelle riville onnistuu näppärästi tuplaklikkaamalla sarakkeiden väliä.

Vaihe 3 – tyhjien rivien täyttäminen:

Koska verkkosivulla taulukossa ei ole ennustuslaitoksen nimeä joka rivillä, pitää meidän lisätä se. Teemme ylimääräisen sarakkeen, johon luomme funktion. Funktion tehtävänä on vilkaista samalta riviltä viereisestä sarakkeesta, onko se tyhjä vai ei. Mikäli sarake on tyhjä, kopioidaan nimi ylemmältä riviltä. Mikäli siinä on nimi, kopioidaan se samalta riviltä.

Ensimmäisellä rivillä kopioimme nimen kirjoittamalla uuteen sarakkeeseen (soluun B2) =A2. Tämä kopioi solun A2 sisällön soluun B2. Seuraavalla rivillä solussa B3 kirjoitamme funktion:

=IF(ISBLANK(A3;A2;A3)

If-funktio toimii siten, että ensimmäinen parametri on testi. Seuraavana kerrotaan, mitä tehdään jos testin tulos on tosi. Viimeiseksi kerrotaan, mitä tehdään, jos testin tulos on epätosi. Testimme ISBLANK(A3) siis testaa, onko solu A3 tyhjä vai ei. Jos se on tyhjä, näyttää funktio sen, mitä A2-solussa lukee. Jos solussa on tekstiä, näytetään se.

Kun funktio kopioidaan muille riveille, muuttaa laskentataulukko kaavan joka riville sopivaksi. Niinpä seuraavalla rivillä soluviittaukset ovatkin muuttuneet ja funktio kuuluu =IF(ISBLANK(A4;A3;A4). Sama viidennellä, kuudennella ja neljännelläsadalla rivillä.

Vaihe 4 – siivoaminen käsityönä:

Seuraavaksi tutustutaan tosielämään. Datassa on käytännössä aina jotain virheitä. Tässä datassa ongelmia aiheuttaa se, että muutamaan otteeseen desimaalierottimeksi on livahtanut piste pilkun sijaan. Oman ongelmansa aiheuttaa Google-taulukko, joka ilmeisesti ystävällisesti yrittää muuttaa pisteellä erotellun desimaaliluvun päivämääräksi ja sen jälkeen vielä numeroksi. Google (kuten Excelkin) ajattelevat, että numero 1 tarkoittaa tammikuun 1. päivää vuonna 1900.

Datassamme esim. eräs Suomen pankin ennusteista (työttömyysaste 7.7) tulee luetuksi päivämääränä 7.7.2014 (Google täydentää vuosiluvun tälle vuodelle, koska sitä ei ole ilmoitettu). Sitten vaan lasketaan, monesko päivä on kyseessä, kun laskeminen aloitetaan 1.1.1900.  Niinpä taulukkomme päätyy näyttämään työttömyysasteeksi 41 827 (prosenttia työvoimasta), mikä on tietysti kaukana täystyöllisyystavoitteesta.

Virheet etsitään silmämääräisesti, mutta avuksi tulee datan järjestäminen A:sta Ö:hön ja Ö:stä A:han joka sarakkeen kohdalla. Kun sarakkeita ei ole tämän enempää, on se helppo tapa jäljittää lyöntivirheitä ja muita kummallisuuksia.

Vaihe 5 – Pivot-taulukointi:

Seuraavaksi teemme kevyttä analyysiä datasta. Pivot-taulukolla tutkimme, millaisia ennustuksia millekin vuodelle on tehty BKT:n vuosimuutoksesta.

Pivot-taulukon riveiksi valitaan vuodet. Arvot riveille poimitaan keräämämme datan BKT-sarakkeesta. Otetaan keskiarvon lisäksi mediaani, maksimi, minimi sekä vilkaistaan keskihajontaa. Lopuksi kopioidaan Tilastokeskuksen sivuilta toteutunut BKT:n kehitys ja verrataan sitä ennustusten keskiarvoon.

Vaihe 6 – Suodattimet:

Lopuksi vilkaistaan vielä tarkemmin vuodelle 2009 tehtyjä ennustuksia. Pannaan dataan ensin suodatin, joka näyttää ainoastaan ennusteet, jotka koskevat vuotta 2009. Koska jokaisella rivillä on ennustuslaitoksen lisäksi myös ennusteen päivämäärä, tehdään nimi-sarakkeeseen suodatin, joka näyttää ainoastaan ne rivit, joiden nimi-sarakkeessa on luku 2008. Näin saamme näkyviin vuonna 2008 tehdyt ennusteet, joissa on ennustettu vuotta 2009.

Tästä datahärpäke uutisten kylkeen?

Tämä datasetti sopisi jo pohjaksi vaikka mihin. Seuraava askel olisi siivota nimien kirjoitusasu yhtenäiseksi (esim. VM ja Valtiovarainministeriö tai PT ja Palkansaajien tutkimuslaitos) sekä erottaa nimet ja ennusteen tekoajankohta eri sarakkeisiin. Kun vielä esimerkiksi Sampo, Sampo Pankki ja Danske Bank tai OP ja OP-Pohjola muutettaisiin samaksi, niin aina parempi.

Tulevaisuudessa näkisin mielelläni esimerkiksi ennusteuutisoinnin yhteydessä datajournalistisen härpäkkeen, joka esittelisi ko. laitoksen ennustusten osumatarkkuutta aiempina vuosina sekä mahdollistaisi vertailun muihin. Siitä vaan talon koodari asialle. Ei pitäisi olla täyden työpäivänkään homma.

21. maaliskuu 2014 by Jarno Liski
Categories: Tutoriaalit | Leave a comment

Pörssiomistajien nimet maksavat 50 000 euroa

Jokaisella on oikeus (3 luku 17 §) saada nähtäväkseen osakeyhtiön osakaslista. Sellaista on pidettävä yhtiön pääkonttorissa ja siitä on annettava jäljennös pyytäjälle, joka tosin maksaa yhtiölle koituvat kulut. Kuluilla tarkoitetaan tavanomaisia kopiointikustannuksia, tulkitsee esimerkiksi Helsigin seudun kauppakamari.

Jos yhtiö on arvo-osuusjärjestelmässä, eli sen osakkeita liikutellaan sähköisesti arvopaperikeskuksena Suomessa toimivan monikansallisen EuroClear-yhtiön järjestelmien hoteissa, pidetään osakasluetteloakin EuroClearissa sähköisesti. Myös näihin osakasluetteloihin saa käydä tutustumassa maksutta EuroClearin toimistolla Helsingissä tai niistä saa jäljennöksen joko paperisena tai sähköisesti. Jäljennösten hintaan pätee sama määräys kustannusperusteisesta hinnoittelusta kuin yhtiön pääkonttorista annettuun listaan.

Olen nyt pari vuotta yrittänyt saada EuroClearin noudattamaan lakia. Yhtiö nimittäin luovuttaa kyllä jäljennöksiä osakasluettelosta, mutta perii niistä tuntuvia hintoja. Hinnat määräytyvät kunkin yhtiön osakkaiden lukumäärän perusteella. Yksittäiset yhtiöt maksavat tyypillisesti joitakin satasia. Kaikkien 119 Helsigin pörssiin listatun yhtiön osakasluettelot maksaisivat yhtiön arvion mukaan noin 50 000 euroa. Yhtiön mielestä tämä vastaa todellisia kustannuksia. Maalaisjärjellä on vaikea käsittää, miten 119 Excel-tiedoston exporttaaminen ja lähettäminen sähköpostilla voisi kustantaa yhtiölle kymmeniä tuhansia euroja.

Kantelin asiasta eduskunnan oikeusasiamiehelle, joka totesi, ettei hänen toimivaltansa ulotu yhtiöön. EOA neuvoikin ratkaisussaan olemaan yhteydessä Finanssivalvontaan. Soitin Finanssivalvontaan, josta kerrottiin, ettei heidän valvojan rooliinsa kuulu tällaisten palveluiden hintojen lainmukaisuuden valvonta.

Finanssivalvonnasta neuvottiin olemaan yhteydessä Kilpailuvirastoon. Kilpailuvirasto voisi nimittäin tutkia, käyttääkö EuroClear monopoliasemaansa väärin palveluja hinnoitellessaan.
Tein siis toimenpidepyynnön Kilpailuvirastoon. Sieltä vastattiin, että Kilpailuvirasto pystyy tutkimaan vain kansantaloudellisesti merkittää monopolihinnoittelua. Muutamien kymppitonnien ”kopiointikulut” julkisista asiakirjoista eivät kansantaloutta heiluttele.

Miksi toimittaja sitten haluaisi osakasluettelot datana, jos niitä kerran voi yleisöpäätteeltä tarkistaa ilmaiseksi? Ainakin kaksi syytä tulee mieleen.
Ensiksikin EuroClearin koneelta voi tutkia omistajia ainoastaan yhtiökohtaisesti. Saadakseen tietoonsa tietyn henkilön omalla nimellään hallitsemat pörssiomistukset, pitäisi käydä läpi 119 yhtiön osakaslistat ja tarkistaa, löytyykö kyseistä nimeä listalta. Excelissä osakasluettelot voisi yhdistää, ja omistustiedot kaikista yhtiöistä olisivat haettavissa nimen perusteella.
Toiseksi EuroClearista saa aina vain ajantasaisen tiedon omistuksista. Omistajadataa toimittaja voisi tallettaa, ja selvittää omistusten muutoksia. Useinhan yhteiskunnallisesti merkittävämpää olisi tietää, milloin joku on osakkeensa hankkinut tai myynyt kuin se, omistaako joku osakkeita vai ei.

On jokseenkin surkuhupaisaa, että nykytoimittaja joutuu näkemään miltei saman vaivan kuin Esko Seppänen, joka 1970-luvulla kiersti yhtiöiden pääkonttoreita keräten omistajatietoja osakasluetteloista. Nyt tiedot sentään saa mennä jäljentämään yhteen konttoriin, kun Seppänen vielä joutui kiertämään kaikki pääkonttorin. On toisaalta pörssiyhtiöiden määräkin kasvanut sitten 1970-luvun.

Ainoa tie eteenpäin lienee se, että lainsäädäntöä tarkennettaisiin. Näin ajattelee ainakin hallinto-oikeuden professori Olli Mäenpää, jolta olen tässäkin asiassa saanut hyviä neuvoja.

”Niinhän tehtiin, kun Suomen Pankki ryhtyi perimään kohtuuttomia hintoja julkisista asiakirjoistaan”, sanoo Mäenpää.

Asiaan liittyvät asiakirjat (pdf):

Kanteluni EOA:lle
EuroClearin vastine EOA:lle
EOA:n ratkaisu
Toimenpidepyyntöni kilpailuvirastolle
Kilpailuviraston ratkaisu

Kaikki asiakirjat (pdf:t zip-pakettina)

13. joulukuu 2012 by Jarno Liski
Categories: Laintulkinta | 5 comments

Google Refine ja Spreadsheet: Kuntavaltuutettujen iän vertaaminen valtakunnalliseen keskiarvoon

Kuntavaaleissa 2012 Oikeusministeriö julkisti tulostiedot csv-muodossa. Data on ladattavissa vaalit.fi-sivuston kautta etsimällä tai suoraan täältä. Muista tutustua tietuekuvaukseen, jotta tiedät, mitä data pitää sisällään.

Tällä kertaa piti katsomani, minkä ikäisiä ihmisiä valtuustoihin tuli keskimäärin valittua mistäkin puolueesta. Sen jälkeen vertasin vielä kotikaupunkini Jyväskylän tilannetta valtakunnalliseen. Tutoriaalissa opetellaan

  • Tuomaan data Google Refine -datansiivoustyökaluun
  • Tekemään poimintoja datasta halutuilla kriteereillä
  • Siirtämään poimittu data Refinestä Google Spreadsheetiin (tai Exceliin ym.)
  • Laskemaan pivot-taulukolla keskiarvo erikseen jollain kriteerillä poimituille ryhmille (tässä ehdokkaiden iän keskiarvo erikseen joka puolueelle)
  • Tehdäänpä vielä simppeli =IF-funktiokin
Datan pyörittelyn seurauksena saadaan tietää, kuka on Suomen vanhin valtuustoon valittu kuntavaaliehdokas, minkä ikäisiä ovat uudet valtuutetut keskimäärin missäkin puolueessa valtakunnallisesti sekä sama tieto Jyväskylän osalta. Lisäksi katsotaan, miten keski-iät eroavat puolueiden sisällä sukupuolen mukaan. Aikaa koko hommaan menee alle 30 minuuttia.

Ensiksi joudut asentamaan Google Refinen. Se on selaimessa pyörivä työkalu. Itse jouduin lisäksi antamaan ohjelman käyttöön lisää muistia asetustiedostoja rukkaamalla (ah 1990-lukua!), että se jaksoi imaista koko ehdokaskohtaisen äänestysdatan (joka ehdokkalle oma rivi jokaista äänestysaluetta kohti ~750 000 riviä dataa). Refinen voit ladata täältä ja muistia sille annetaan näin.

Tutoriaalit on taas kerran tehty Kari Peitsamo -metodilla treenaamatta ja uudelleenäänittämättä, joten änkytystä, virheitä ja muuta riittää. Mutta kyllä niistä sitkeä opiskelija silti pystyy ymmärtämään, miten asiat on tehty.

1) Haetaan ehdokaskohtaiset tulostiedot, ja etsitään Google Refinellä läpimenneet (8:03 min)

  • Google Refine: Import
  • Google Refine: Text Facet
  • Google Refine: Custom tabular exporter

2) Selvitetään ehdokkaiden keski-iät puolueittain Google Spreadsheetissä (5:32 min)

  • Google Spreadsheet: Taulukoiden järjestäminen halutun sarakkeen mukaan
  • Google Spreadsheet: Tiedostojen lisääminen
  • Google Spreadsheet: Pivot-taulukkoraportin luominen ja tietojen analysointi

3) Katsotaan vielä, miten iät eroavat sukupuolittain (1:19 min)

  • Google Spreadsheet: Sarakkeiden lisääminen Pivot-taulukkoon

4) Haetaan vertailun vuoksi keski-iät puolueittain (9:56 min)

  • Google Refine: Import
  • Google Refine: Text Facet
  • Google Refine: Custom tabular exporter ja datan lähettäminen suoraan Google Spreadsheetiin

 

03. marraskuu 2012 by Jarno Liski
Categories: Tutoriaalit | Tags: , , | Leave a comment

Google Refine: Poimi alle 30-vuotiaat ehdokkaat

Etsitään kuntavaaleissa valituksi tulleet alle 30-vuotiaat Keski-Suomesta. Apuna käytetään Oikeusministeriön tulospalvelusta ladattavaa dataa. Lopputuloksena saamme Excel-tiedoston, joka sisältää tiedot ainoastaan alle 30-vuotiaista ja valituiksi tulleista.

Apuna käytetään Google Refineä, joka on tietokoneelle asennettava ohjelma, joka pyörii kuitenkin selaimessa.

Saat videon näkymään koko näytöllä, kun siirrät kursorin videon päälle ja klikkaat pikkuruista kuvaketta aivan oikeassa alalaidassa.

29. lokakuu 2012 by Jarno Liski
Categories: Tutoriaalit | Tags: | Leave a comment

Tilastokeskus avaa aluetietokannan vuoden vaihteessa

Tilastokeskuksen maksullinen aluetietokanta (ALTIKA) avataan vapaaseen käyttöön yhdistämällä se StatFin-palveluun. Maksuttoman StatFin-palvelun käyttöehdot on laadittu avoimen datan periaatteet huomioiden, ja niissä luvataan pääsääntöiseti maailmanlaajuinen, maksuton, peruuttamaton rinnakkainen käyttöoikeus aineistoihin, joita voi vapaasti:

  • kopioida ja levittää
  • muokata ja hyödyntää kaupallisesti
  • yhdistellä muihin tuotteisiin
  • käyttää osana sovellusta tai palvelua

Tilastokeskuksesta vastaava hallinto- ja kuntaministeri Henna Virkkunen kertoi Datalysaattorille, että Aluetietokannan yhdistäminen StatFiniin on vireillä. Tilastokeskuksen tietopalvelupäällikkö Markku Huttusen mukaan tavoitteena on, että ALTIKA olisi avointa dataa vuoden vaihteessa.

ALTIKA sisältää kuntakohtaista tietoa muun muassa kuntataloudesta, väestöstä ja vaaleista. StatFiniin on myös luotu rajapinnat, joiden avulla aineistoa voi paremmin hyödyntää.

Huttunen sanoo, että tällä hetkellä maksuillisten Ruututietokannan tai aikasarjatietokanta ASTIKAn avaamisesta ei Tilastokeskuksella ole suunnitelmia.

”Ruututietokantaan liittyy sellainen ongelma, että koska alueet ovat niin pieniä, jollain alueilla tiedosta riippuen havaintojen määrä on niin pieni, että yksityisyydensuoja vaarantuu”, Huttunen selittää.

Nykyisin tilatut tiedot voidaan Huttusen mukaan aina tapauskohtaisesti varmistaa yksityisyydensuojan loukkaamisten varalta tilaajan kustannuksella.

27. elokuu 2012 by Jarno Liski
Categories: Uutiset | Tags: , , , | 2 comments

Seuraava ehdokas avattavaksi dataksi Suomessa: Tilastokeskuksen ruututietokanta

Karttadataa avanneen Maanmittauslaitoksen johtava asiantuntija Antti Rainio haluaa Tilastokeskuksen Ruututietokannan avoimeksi dataksi. Ruututietokanta sisältää tilastoja, joissa 104 muuttujaa (pdf) on jaettu kartalle neliökilometrin kokoisiin ruutuihin. Suurista kaupungeista tilastoa on tarjolla 250×250 metrin ruuduissa. Aineiston avulla voidaan kartalla tarkastella esimerkiksi esimerkiksi eri ikäluokkien tulotasoa neliökilometrin kokoisissa alueissa.

Datalysaattori.fi teki Tilastokeskukselle tietopyynnön, josta selviää, kuka nykyisin aineistoa käyttää ja minkä verran tuloja aineiston maksullisena pitäminen tuottaa. Tulokset puhuvat puolestaan. Vuosina 2007–2011 aineiston myyminen on tuottanut Tilastokeskukselle rahaa noin 100 000 euroa vuodessa. Julkisen sektorin osuus tästä on ollut 15 000 – 20 000 euroa vuodessa. Seuraavassa ruututietoaineiston kokonaislaskutus Tilastokeskuksella vuosittain:

  • 2007: 73 551 e
  • 2008: 100 797 e
  • 2009: 143 731 e
  • 2010: 136 522 e
  • 2011: 99 968e
Voit tarkastella laskutusta asiakassektoreittain (yksityinen, julkinen, muut) täältä (Google Drive).
Ruututietokanta kehitettiin ruotsalaisten kanssa yhteistyössä, kertoo Rainio. Tilastotietojen ongelmana on se, että esimerkiksi sosio-ekonomiseen asemaan liittyvät tiedot pitää summata isommiksi kokonaisuuksiksi, ettei yksilön tietosuoja vaarannu.

 

”Usein tiedot aggregoidaan erilaisiin hallinollisiin alueisiin, esimerkiksi kuntatasolle”, selittää Rainio.

 

Hänen mukaansa ongelmana on, että kuntatasoisen tilastotiedon kanssa jäämme historiallisten rajojen vangiksi. Tieto ei ole riittävän tarkkaa. Suomalaisten onneksi tietoa alettiin tilastoimaan neliökilometrin kokoisiin ruutuihin jo 1970-luvulla ja virallisemmin vuodesta 1980.

 

”Monista tilastoista löytyy jo kattavia aikasarjoja”, Rainio sanoo.

 

Tietoa kuitenkin käyttävät harvat. Vuosina 2007-2011 aineistoa on ostanut yhteensä 70 eri tahoa. Kymmenen tärkeimmän asiakkaan tilauksista on tullut puolet ruututietokannan myyntituloista vuosina 2007-2011. Kymmenen suurinta tilaajaa ovat
  1. ESRI Finland Oy (74 000 e)
  2. Suomen Lähikauppa Oy (43 000 e)
  3. SOK, Asiakasomistaja- ja markkinointipalvelut (35 000 e)
  4. Xtract Oy (27 000 e)
  5. Bisnode Finland Oy (26 000 e)
  6. Affecto Finland Oy (18 000 e)
  7. K-Plus Oy (16 000 e)
  8. Ruokakesko Oy (13 000 e)
  9. Experian Oy (12 000 e)
  10. FCG Finnish Consulting Group Oy (11 000 e)
ArcGIS-karttasoftaa valmistavan ESRIn tapauksessa kyse lienee eri toimeksiantajille tehdyistä projekteista. Selkeä kärkiryhmä tietojen käytössä on siis kaupan ala.
Raivio vaikuttaa hieman tuohtuvan Datalysaattorin esittämistä luvuista.

 

”On säälittävää, että meillä on tällaisia monopoleja tai duopoleja, joilla on varaa katsoa datasta, miten viimeisen päälle viilataan logistiikka, mutta yhteiskunnassa muu kehittäminen jää, kun tiedon päälle läiskäistään tällaiset hintalaput, joilla yritetään vain kuoria se kaikkein rasvaisin kerma päältä”, hän sanoo.

Rainion mielestä tarkka alueellinen tilastodata voisi auttaa esimerkiksi erilaisia kansalaisjärjestöjä tekemään ehdotuksistaan tarkempia ja perustellumpia. Myös opetuskäyttö ja kaikki muu kokeiluluontoinen – mutta potentiaalisesti tärkeä – aineiston käyttö jää nykyään tekemättä kynnysrahan vuoksi.

”Kyllä kai ahkeralla valistustyöllä voitaisiin saada joku huomaamaan, että tästä aineistosta kannattaa maksaakin. Kuitenkin paljon helpommin ja nopeammin päästään sinne maaliin, kun tieto avataan. Ne hyödyt tulevat sitten varmasti perässä. Niihin verrattuna tällaiset sadat tuhannet eurot ovat pikkusummia”, hän sanoo.

Rainio kertoo, että Maanmittauslaitoksen tapauksessa vain noin 15 prosenttia aineiston keräämiseen tarvittavasta rahasta saatiin kasaan aineistoa myymällä. Aineiston vapauttamisesta ehti jo syntyä pieni propagandasota, kun Valtiovarainministeriön budjettiosaston virkamiehet eivät olisi halunneet siitäkään tulovirrasta luopua.

Tänä keväänä Valtiovarainministeriö jo edellytti budjettiriihessä, että eri ministeriöt alkavat tuottaa ensi kevääksi ehdotuksia avattavasta datasta omilta hallinnonaloiltaan.

”Suosittelen ministeri [Henna] Virkkuselle, joka käy tulosneuvottelut Tilastokeskuksen kanssa, että jos näitä tietoja voi mielestäsi käyttää yhteiskunnassa muuhunkin, niin ota se neuvotteluissa huomioon”, Antti Rainio sanoo.

Datalysaattori on lähettänyt ministerin erityisavustajan kautta kommenttipyynnön Ruututietokannan avaamisesta Henna Virkkuselle 16.8.2012. 

Päivitys 27.8.2012: Ruututietokantaa ei Virkkunen ole oikopäätä avaamassa, mutta aluetietokannan pitäisi olla avointa dataa vuoden vaihteessa.

Tilastokeskusen Ruututietokannan myyntiin liittyvät tiedot:

Kokonaislaskutus sektoreittain ja vuosittain 2007-2011 (Google Spreadsheet)

Kokonaislaskutus asiakkaittain 2007-2011 (Google Spreadsheet)

Ruututietokannan tietosisältö (pdf)

16. elokuu 2012 by Jarno Liski
Categories: Uutiset | Tags: , , , , , , | 4 comments

YLEn MOT-ohjelma julkaisee yritystukidataa kymmenistä tuhansista suomalaisyrityksistä

Yleisradion tutkivan journalismin ohjelma MOT julkaisee dataa suomalaisten yritysten tuista. Luvassa on tärkeimpien tukimuotojen osalta 12-15 vuoden aikasarjoja. Osasta tukia tietoa on vain viime vuosilta.

Aineisto saadaan avoimeksi nettiin tänä syksynä. Ohjelman toimittaja Kirsi Skön kertoo, että myös valtion valtion osaomisteisia yrityksiä on kattavasti mukana.

Asiasta kertoi Tuija Aalto Facebookin Finnish Open Data Ecosystem -ryhmässä. Linkki viestiin (toimii vain ryhmän jäsenille).

 

edit 21.8.2012:

Kirsi Skön kertoo Facebookissa (vain ryhmän jäsenille), että ”aineisto on suorien tukien osalta laaja, ja käsittää jopa kymmeniä tuhansia yrityksiä”.

14. elokuu 2012 by Jarno Liski
Categories: Uutiset | 1 comment

Avointa dataa YLE Ajantasassa

YLEn Ajantasa-ohjelmassa oli maanantaina 13.8. ohjelma avoimesta datasta. Ohjelma on siinä määrin suurelle yleisölle suunnattu, että juontaja spiikkaa aiheen sisään puhumalla ”mystisestä sanaparista avoin data”.

Puhujana on Antti Poikola. Avoimen datan käsitteleminen alkaa 07:00 minuutin kohdalla.

Voit ladata ohjelman tästä (mp3).

13. elokuu 2012 by Jarno Liski
Categories: Uutiset | Tags: | Leave a comment

Ilmatieteen laitoksen reaaliaikainen data avoimeksi

Näyttökuva 2012-08-08 kohteessa 0.56.51

Valtiovarainministeriön budjettiriihestä kuuluu iloisia uutisia. Ilmatieteen laitoksen reaaliaikaista dataa vapautetaan kahdessa vaiheessa. Avoimeksi on valtiovarainministeriön mukaan muuttumassa

  • sää- ja ilmastohavaintojen data
  • tutka- ja salamadata
  • kansallinen sääennuste data
  • lentokenttähavaintojen data
Lisäki VM hakee budetissaan talouskasvua avoimesta datasta pyytämällä ministeriötä selvittämään, millä aikataululla ja millä tavoin ministeriöt aikovat avata tietovarantojaan. Valtionvarainministeriön tiedotteessa sanotaan, että ministeriöiltä odotetaan selvityksiä ”kehysriiheen mennessä”. Tämä lienee tulkittavissa ensi kevääksi.

Asian bongasi Helsingin Sanomien Jussi Pullinen ja twiittasi.

08. elokuu 2012 by Jarno Liski
Categories: Uutiset | Leave a comment

Google Docs scraperina (ImportXML)

Funktion tulokset

Paul Bradshawn kirjan innoittamana pieni johdatus Google-dokumenttien taulukkolaskimen toimintaan. Google Drive (entinen Google Docs) osaa Taulukkolaskenta-sovelluksessaan hakea tietoa taulukkoon nettisivuilta. Tämän tutoriaalin esimerkkitiedosto on tarkasteltavissa täällä.

=importHtml-funktio hakee annetusta verkko-osoitteesta taulukkoja tai listoja. Taulukot ovat sitä tietoa, mikä on html-koodissa <table> ja </table> -tagien välissä. Listat taas löytyvät <ul>, <ol> ja <dl> -tagien välistä.

Nyt keskitymme kuitenkin =ImportXML-funktioon, joka on monipuolisempi ja osaa hakea tietoa mm. html- ja xml-sivuilta ja .csv-tiedostoista.

Halusin tätä sivua varten listan Julkisuuslain pykälöiden otsikoista. Pykäli on 38, joten olisin voinut myös copy-pastettaa ne, mutta näin homma kävi nopeammin. Jos olisin sattunut haluamaan Rikoslaista rikosnimikkeet, olisi niiden leikkaaminen ja liimaaminen alkanut jo käydä työstä ilman tällaista menetelmää.

Google Laskentataulukossa funktio luodaan kirjoittamalla soluun = (on yhtä kuin) -merkki. Se kertoo sovellukselle, että tulossa on funktio, eikä solun arvo. Funktiot ovat muoto =FunktionNimi(parametri, parametri, parametri…)

FunktionNimi kertoo mitä tehdään, parametrit mille tehdään ja joskus vielä miten tehdään (mikäli funktiossa on useampia vaihtoehtoja).

=ImportXML(”http://www.finlex.fi/fi/laki/ajantasa/1999/19990621″; ”//h5[@class=’ot’]”)

  • =ImportXML hakee halutut tiedot ja esittää jokaisen omalla rivillään
  • ensimmäinen parametri on verkko-osoite, josta tietoa haetaan. Se tulee lainausmerkkien sisään.
  • parametrit erotetaan toisistaan puolipisteellä (;). Huom! Mikäli laskentataulukon maa-asetukseksi on säädetty esim. Yhdysvallat, korvataan puolipiste pilkulla (,). Tarkista tämä valikosta Tiedosto > Maakohtaiset asetukset.
  • jälkimmäinen parametri kertoo, että haetut tiedot löytyvät <h5>-tagin sisältä silloin, kun tagilla on attribuutti class=”ot”. Huom! Vaikka verkkosivun lähdekoodissa attribuutti on kirjoitettu lainausmerkeillä, tulee se Googleen heittopilkuilla.

Kun verkkosivun lähdekoodista löytyy esimerkiksi teksti <h5 class=”ot”>Julkisuusperiaate</h5>, kirjoittaa funktiomme soluun sanan ”Julkisuusperiaate”. Sinä et tiedä, että pykälien otsikot on tuolla tavalla merkitty, mutta minä tiedän. Voit itsekin varmistaa asian menemällä Finlexin sivulle ja tarkistamalla lähdekoodin.

<h5 class=”ot”>Julkisuusperiaate</h5>
<p class=”py”>Viranomaisten asiakirjat ovat julkisia, jollei tässä tai muussa laissa erikseen toisin säädetä.</p>
<p class=”py”>Oikeudesta seurata eduskunnan täysistuntoa, valtuuston ja muiden kunnallisten toimielinten kokouksia sekä tuomioistuinten ja kirkollisten toimielinten istuntoja säädetään erikseen.</p>

Tältä sivun lähdekoodi näyttää. Niinpä kirjoitamme funktiomme Google-taulukkoon tyhjään kenttään.

Kun painat enteriä, alkaa Google Laskentataulukko hakea tietoja. Se tulostaa jokaisen löytämänsä <h5 class=”ot”> ja </h5> -tagien sisältä löytämänsä tekstin omalle rivilleen.

Voimme vaihtaa funktion poimimaan esimerkiksi Rikoslain kaikki pykälät.

Jos into riittää, niin voit kopioida samalla tavalla vaikka kansanedustajien blogien osoitteet. Ne löytyvät tältä verkkosivulta: http://web.eduskunta.fi/Resource.phx/eduskunta/organisaatio/kansanedustajat/blogit.htx

Lähdekoodista löytyy tällaisia linkkejä:

<A href=”http://www.sauliahvenjarvi.puheenvuoro.uusisuomi.fi/” target=_blank>Blogi</A>

Muokataan siis funktiotamme poimimaan oikeat asiat:

=ImportXML(”http://www.finlex.fi/fi/laki/ajantasa/1999/19990621″; ”//h5[@class=’ot’]”)

Vaihdetaan osoite:

=ImportXML(”http://web.eduskunta.fi/Resource.phx/eduskunta/organisaatio/kansanedustajat/blogit.htx”; ”//h5[@class=’ot’]”)

Vaihdetaan tagi ja attribuutti. Nyt on huomattava, että jos teemme, kuten intuitio ehkä neuvoisi ja kirjoitamme funktion…

=ImportXML(”http://web.eduskunta.fi/Resource.phx/eduskunta/organisaatio/kansanedustajat/blogit.htx”; ”//a[@href]”)

…saamme tulokseksi listan sanoja Blogi. Se johtuu siitä, että href=verkko-osoite -attribuutilla varustettujen <a> ja </a> -tagien välissä lukee aina sana ”Blogi”. Emme halua hakea sitä, vaan href-attribuutille annettuja arvoja, eli verkko-osoitteita, joihin linkit ohjaavat. Se tapahtuu näin:

=ImportXML(”http://web.eduskunta.fi/Resource.phx/eduskunta/organisaatio/kansanedustajat/blogit.htx”; ”//@href”)

Älä hämmenny, kun saat ensimmäisille riveille kaikkea asiaankuulumatonta. Funktio hakee sivun kaikki linkit, ei pelkästään Blogi-linkkejä. Listan loppupäästä löytyvät kuitenkin kaikkien blogien osoitteet.

07. elokuu 2012 by Jarno Liski
Categories: Tutoriaalit | Tags: , , , , | Leave a comment

← Older posts