Tämä on Janne Aukian blogi.
Fiilistelen arkea, taidetta ja tekniikkaa.

Kuutio

Julkishallinnon tietomassat avoimiksi!

25.3.2009 klo 10:48

(Muokattu 27.3.2009)

Valtion virastoilla ja kunnilla on kerättynä valtavat määrät dataa, jota käytetään tehottomasti. Jos data olisi paremmin ihmisten käytettävissä, niiden päälle voisi tehdä uudenlaisia palveluita vaikkapa asuntojen hintojen ja matka-aikojen vertailemiseen, tautitrendien seuraamiseen tai lasten nimien selailuun.

Datan saaminen avoimeksi

Enimmäinen askel julkishallinnon datan saamiseksi avoimeksi olisi laittaa pystyyn wiki, jossa esiteltäisiin avoimen julkishallinnon datan kahdeksan periaatetta.

Wikissä voisi myös listata (vähän Wiredin wikin tyyliin) julkishallinnon yksikkö yksiköltä mitä dataa niillä on olemassa julkisena, mitä on maksullisena tai sisäisessä käytössä ja minkälaisessa muodossa data pitäisi saada julkiseen käyttöön.

Esimerkkejä julkishallinnon datasta

Joitakin datoja on jo verkossa saatavilla (esimerkiksi pelastustoimen hälytykset). Tosin hälytysdatankin osalta voisi kertoa tarkemmin ainakin sen, millä lisenssillä sitä saa käyttää.

Ainakin seuraavat datat voisivat mahdollistaa mahtavia palveluja, jos ne olisivat kenen tahansa ilmaiseksi saatavilla verkossa:

  • Tilastokeskuksen tilastot (mm. demografiatilastot, kulutustilastot, aluekohtaiset tilastot)
  • Maanmittauslaitoksen kartta- ja nimistörekisteri
  • Väestörekisterikeskuksen nimirekisterit
  • Kaupunkien keräämät omat tilastot (esimerkiksi koulutusrakenne alueittain Helsingissä)
  • YTV:n ja HKL:n linjojen reitit, aikataulut ja matka-ajat.

Mitä seuraavaksi?

Suomi voi olla ylpeä siitä, että meillä on pitkät perinteet suomalaisia koskevan tilastotiedon keräämisestä ja analysoinnista, erityisesti terveydenhuollon osalta. Nyt pitäisi ottaa ensimmäiset askeleet datan saamiseksi julkiseksi!

Pari kysymystä, joihin kaipaisin kommentteja: Mitä muita tietomassoja ja -kantoja listalle pitäisi vielä lisätä? Entä mitkä olisivat hyvät käännökset termeille “open data” ja “open government data”? Otan mieluusti ehdotuksia ja kommentteja vastaan aiheeseen liittyen!

Erilainen samanlainen — uusi versio matka‑aikakartasta

10.3.2009 klo 22:37

Tein vielä uuden version matka-aikakartasta (ks. aikaisempi postaus). Kuvaa klikkaamalla pääsee isompaan versioon. Kuvassa valkoiset käyrät vastaavat 10, 20, 30, 40, 60 ja 90 minuutin matka-aikoja.

Python-skripti graafin piirtämiseksi matka-aikadatasta (graafi on vielä tämän jälkeen yhdistetty Googlen karttaan fotarissa):

import pylab, scipy, numpy, csv
import matplotlib.pyplot as pyplot
from scipy import signal, ndimage

# setup constants

MAX_VALUE = 120
SCALING = 10
SMOOTHING = 50
CONTOUR_LEVELS = [10,20,30,40,60,90]

# import data

fileName = 'routeDataGrid.raw'
w,h = 90, 80

sr = csv.reader(open(fileName), delimiter=',')
x,y = 0,0
Z = numpy.zeros((h,w))
for y, row in enumerate(sr):
   for x, item in enumerate(row):
      Z[y][x] = int(item)

Z = Z[::-1]
Z[Z>MAX_VALUE]=MAX_VALUE
Z[Z==-1]=MAX_VALUE

X, Y = numpy.meshgrid(numpy.arange(w), numpy.arange(h))

# interpolate

newx,newy = scipy.mgrid[0:1:complex(0,h)*SCALING, 0:1:complex(0,w)*SCALING]
coords = numpy.array([newx*(h-1), newy*(w-1)])

Z_large = ndimage.map_coordinates(Z, coords, order=3)
X_large, Y_large = numpy.meshgrid(numpy.arange(w*SCALING), numpy.arange(h*SCALING))

# smooth (this would be faster with fft)

def gauss_kern(size, sizey=None):
   size = int(size)
   if not sizey:
      sizey = size
   else:
      sizey = int(sizey)
   x, y = scipy.mgrid[-size:size+1, -sizey:sizey+1]
   g = scipy.exp(-(x**2/float(size)+y**2/float(sizey)))
   return g / g.sum()

G = gauss_kern(50)
Z_smooth = scipy.signal.convolve(Z_large, G, mode='same')

# plot contour

figsize=(numpy.array(Z_smooth.shape)/100)[::-1]
pyplot.rcParams.update({'figure.figsize':figsize})
pyplot.figure()
pyplot.axis('off')
pylab.imshow(120-Z_smooth, cmap=pyplot.cm.jet)
pyplot.contour(X_large, Y_large, Z_smooth, CONTOUR_LEVELS, colors='white', linewidths=1.5, linestyles='solid', antialiased=True)
pyplot.subplots_adjust(bottom=0.0, top=1.0, left=0.0, right=1.0, hspace=0.0, wspace=0.0)
pyplot.savefig('mapimage.pdf', format='pdf')

En ole vielä täysin tyytyväinen väritykseen. Idea valkoisista ääriviivoista tuli Chris Lightfootin toteuttamasta Lontoon matka-aikakartasta. Silti, ehkä vastaava kuva ilman ääriviivoja (mutta eri värisillä alueilla) olisi selkeämpi.

Chris Lightfootin ja Tom Steinberg kartasta on myös tehty interaktiivinen versio vuonna 2007. Siinä voi valita, kuinka pitkän työmatkan on valmis tekemään ja paljonko on valmis maksamaan asunnosta — kartta näyttää kaikki alueet jotka vastaavat näitä vaatimuksia.

Kiinnostava sivuhuomio: interaktiivisen kartan toteutukseen osallistui myös Tom Carden monia hienoja juttuja tekevästä Stamen Design -toimistosta. Tom Carden on tullut vastaan hienojen Processing-härpättimien tekijänä. ja joskus olen vilkuillut myös hänen Delicious-linkkilistaansa.

good buys on software pirodr! 666