Julkaistu 18.8.2020

KuntaGML-rajapinnat QGISiin

Erilaisten tiedostoformaattien kanssa toimiminen on kaikille paikkatietoasiantuntijoille tuttua. On kuitenkin muutamia formaatteja, jotka aiheuttavat käyttäjillä harmaita hiuksia. Varsinkin, jos ei ole myynyt sieluaan jollekin järjestelmätoimittajalle. 

Toimiiko KuntaGML QGISillä? Tätä kysellään tasaisin väliajoin. Gispon tukipalveluartikkeli KuntaGML:n käytöstä on kerää edelleen kohtuullisen tasaisesti klikkauksia Googlesta. Selkeästi KuntaGML:n käyttöön QGISillä on siis kiinnostusta. Myös Jarno Kinnunen (a.k.a. Paikkatietomies) on blogissaan tarkastellut tapoja lukea kyseistä formaattia. 

Rajapintojen hyödyntäminen komentorivipohjaisten ratkaisujen tai epävarmasti toimivien lisäosien kautta ei ehkä ole tavalliselle käyttäjälle kovinkaan houkuttelevaa. Voisiko siis olla joku yksinkertainen lisäosa QGISiin, jolla vain voisi lukea dataa sisään? Kyllä voisi. 

KuntaGML:n taustaa

Mikäs tämä KuntaGML oikein on? KuntaGML on Suomen paikkatietokentän formaattikummajainen, joka pompsahtelee esille aina erilaisissa yhteyksissä. Edellisellä vuosikymmenellä osana KRYSP-hanketta kehitetyn formaatin oli tarkoitus olla yleinen paikkatietojen siirtoformaatti Suomessa. Tai kuten hankesivuilla asia on määritelty: 

“Yleisenä toiminnallisena tavoitteena on ottaa kunnissa käyttöön standardimuotoiset paikkatietopalvelurajapinnat ja mahdollistaa kaupallisten sekä viranomaisten järjestämien, kuntien tuottamaa paikkatietoa hyödyntävien tietopalvelujen toteuttaminen.”

Hieno tavoite, mutta valitettavasti 10 vuotta myöhemmin voidaan todeta että ihan tähän ei päästy. Yhteensopimattomuus INSPIRE-direktiivin kanssa, epäselvä hallintamalli, hankala hyödynnettävyys ja yleinen avoimen datan politiikka olivat kaikki tekijöitä, jotka eivät varsinaisesti tukeneet KuntaGML:n toimintamallia. Kuntatietopalvelun kuoppaamista voidaan pitää yhtenä KuntaGML:n kuoliniskuna. 

Rajapintoja kuitenkin on edelleen toiminnassa ja niitä käytetään. Tai olisi mukava käyttää jos siihen olisi sopiva työkalu. No nyt on ainakin pohja sellaiselle. 

Lisäosan kehitysprosessi

Meillä Gispolla Joona lähti tutkimaan vielä helpompia  tapoja lukea KuntaGML-formaattia QGISiin ja lähti kehittämään QGISin lisäosaa aineistojen lukemiseen.  Jo muinaiset Gispolaiset (i.e. Mäkisen Erno) olivat tehneet työkalun kehitykseen ansiokasta pohjatyötä, mutta kokonaisuuden paketointi helppokäyttöiseen ja toimivaan kokonaisuuteen oli syystä tai toisesta jäänyt vielä tekemättä. 

Formaatti perustuu OGC:n GML-formaattiin, mutta skeemat ovat rakenteeltaan hyvin vaihtelevia ja käytännössä kattavaa dokumentaatiota rajapinnoista ei oikeastaan ole saatavilla. KuntaGML-pohjaisia rajapintoja löytyy kuitenkin avoimina (siis jotka eivät vaadi tunnistautumista) esimerkiksi Turusta ja Riihimäeltä. Näillä myös testattiin kehitettyä lisäosaa. 

Joona itse kommentoi tätä lyhyttä kehityssprinttiä seuraavasti:

“Erno oli onneksi tehnyt jo raskaan työn havaitessaan ja korjatessaan virheitä tietyissä KuntaGML:n XML-skeemoissa. Lisäosan tehtäväksi jäikin skeemojen korjaaminen ja haluttujen tasojen lisääminen QGISiin. Lisäosa tallentaa halutut tasot kätevästi Spatialite-tiedostoon, jotta niiden käsitteleminen QGISin puolella olisi mahdollisimman vaivatonta. Haastavinta kehitystyössä oli KuntaGML:n aineistojen saaminen yksinkertaisempaan muotoon siten, että kaikki oleellinen tieto pysyy mukana ja on helposti käytettävissä myös QGISin puolella.”

Aineistot käyttöön lisäosan avulla 

Kehitetty lisäosa on julkaistu Gispon GitHubissa. GitHubista löytyy myös ohjeet työkalun käyttöönottoon, mutta tässä askeleet vielä pähkinänkuoressa:

  • Lataa kyseisen repositorion releaseista uusin  zip-paketti (ei siis koko tätä repoa, vaan erikseen releaseista tiedosto KuntaGMLLoader.zip)
  • Avaa QGIS ja mene käyttöliittymässä lisäosavalikkoon ja sieltä etsi vasemmanpuoleisesta valikosta kohta josta voit asentaa lisäosia zip-tiedostosta (Plugins → Install from ZIP)
  • Etsi lataamasi tiedosto ja asenna. Kun näet sinisen palkin lisäosadialogissa, on asennus onnistunut. 

Tämän jälkeen lisäosavalikon alle ilmestyy uusi työkalu. KuntaGML Loader. Syötä KuntaGML-rajapinnan osoite ja lisäosa lataa sinulle sieltä löytyvät kohteet. Alla vielä sama animaationa.

KuntaGML

Tämän jälkeen saat geometriat ja ominaisuustiedot esimerkiksi rakennuksista projektiisi. Jotta kyselyt eivät rajottaisi rajapintoja liikaa, on lisäosassa vielä rajoitus kohteiden hakemisen määrän suhteen. 

Tiedot esimerkiksi rakennusten sijainnista ja ominaisuustiedoista on tallennettu erillisiin skeemoihin, joten ne ladataan erillisiksi tasoiksi projektiin. Nohevalle QGISin käyttäjälle näiden tietojen yhdistäminen ei kuitenkaan pitäisi aiheuttaa suurta päänvaivaa joko taululiitoksen tai projektin sisäisen relaation avulla. 

Toteutimme siis toimivan konseptin työkalusta. Tämä ei ole lopullinen ratkaisu, mutta eräänlainen MVP, jonka pohjalta on hyvä rakentaa lisää mikäli tarpeita on. Jos sinulla on aiheesta kysymyksiä tai kehitystarpeita, ota yhteyttä!

Profiilikuva

Gispo

Gispo on suomalainen avoimen lähdekoodin paikkatietotalo, jonka palveluihin kuuluu paikkatietokonsultointia, sovelluskehitystä, koulutusta sekä ylläpitoa ja tukea.