Paikkatietoinfran hyödyntäminen 29. 9. 2011 Rajapintojen hyödyntäminen avoimen lähdekoodin ohjelmistoilla Osa 1: Paikkatietohakemiston CSW-rajapinnan hyödyntäminen Paikkatietohakemiston CSW-rajapintaa voidaan käyttää Quantum GIS-ohjelman CSWlaajennoksen avulla. Tämä laajennos ei kuulu QGIS-ohjelmiston vakio-osiin eikä sitä myöskään voi asentaa suoraan ohjelmasta sen laajennostenhallintatyökalun avulla, vaan se on ladattava itse sen tekijän Gis-Lab:in lataussivustolta http://gis-lab.info/programs/qgis/qgis-repo.xml Suora linkki CSW-lisäosaan (v.0.0.12) tätä ohjetta kirjoitettaessa oli http://gis-lab.info/programs/qgis/cswclient.zip Laajennos asennetaan purkamalla pakattu arkisto QGIS-ohjelman hakemistoon \python\plugins Oleellinen osa hakemistopuusta on \python\plugins\cswclient\, ja kun se näyttää tältä, niin asennus on tehty oikein ja QGIS voidaan käynnistää. Hakemistopuun yläosa saattaa näyttää erilaiselta sen mukaan, mikä QGIS-versio on asennettuna ja miten asennus on tehty, mutta siitä ei tarvitse välittää. Uusi laajennos ei ole heti asentamisen jälkeen käytettävissä vaan se pitää ehkä ensin aktivoida QGIS-ohjelman laajennostenhallintatyökalulla.
Kun CSW-laajennos on käytettävissä se löytyy lisäosien valikosta ja sitä kautta se myös käynnistetään.
Paikkatietohakemiston käyttö aloitetaan lisäämällä palvelinlistalle sen yhteysosoite http://geonetwork.nls.fi/geonetwork/srv/en/csw Kun CSW-hakemistotyökalu on asennettu, niin sen käyttäminen on varsin yksinkertaista.
Palvelun tiedot saadaan näkyviin joko lomakkeella tai XML-muodossa
Hakuvälilehdellä voidaan tehdä hakuja aluerajauksen ja hakuehtojen perusteella. Valitsemalla tuloksista jonkin rivin saa näkyville aineiston lyhyen kuvauksen.
Tarkempia tietoja valitusta aineistosta saa Metadata ja View XML-nappuloilla. Sen mukaan miten aineisto on määritelty hakemistopalvelussa saattaa olla mahdollista myös lisätä se suoraan QGISohjelmaan WMS-palveluksi. Myös GvSIG-ohjelmassa on työkalu aineistopalveluiden käyttöön. Testattaessa työkalua (ohjelmaversio 1.11.0 Final) kävi selville, että se aloittaa keskustelun Paikkatietohakemiston palvelun kanssa normaalisti lähettämällä sekä GetCapabilities- että DescribeRecords-pyynnöt. Näihin saatavat vastaukset luetaan ja tulkitaan oikein ja tiedot päivitetään oikein käyttöliittymään. Kuitenkaan varsinaisen aineistohakupyynnön lähettäminen ei toistaiseksi tuntemattomasta syystä onnistu. Osa 2: WFS-rajapintojen hyödyntäminen Tässä esitellään lyhyesti WFS-palvelujen käyttämistä seuraavilla avoimen lähdekoodin GISohjelmilla: GvSIG Kosmo Quantum GIS
Esiteltävien ohjelmistojen valinnassa on käytetty seuraavia perusteita: Niillä voidaan todistettavasti hakea WFS-aineistoja palvelimelta Ne on yksinkertaista asentaa Windows-koneelle Ne sopivat aineistojen hyötykäyttöön, eli niillä voidaan muokata WFS:stä noudettuja aineistoja sekä geometrian että ominaisuustietojen osalta ja muokattu aineisto voidaan tallentaa johonkin yleisesti tunnettuun GIS-muotoon. GvSIG Yleistä GvSIG tukee WFS-versioita 1.0.0 ja 1.1. Ohjelma ei kuitenkaaan anna käyttäjän valita palvelun versiota, vaan se tarkistaa ensin, mitä versioita palvelin tukee, ja valitsee niistä automaattisesti korkeimman itselleen mahdollisen. Ikävä kyllä ohjelma ei kuitenkaan tunnista oikein kaikkia sellaisia koordinaattijärjestelmiä, joiden koordinaatit WFS 1.1.0-palvelu lähettää järjestyksessä pohjoinen-itäinen. Niinpä syystä GvSIG näyttää esimerkiksi Suomen kyljelleen kaatuneena, jos sen vektorit on haettu standardin mukaisesta WFS 1.1.0 -palvelusta KKJ-järjestelmässä. GvSIG voi pitää WFS-palvelu GetCapabilities-vastauksen muistissa, mikä voi nopeuttaa käytännön työskentelyä huomattavasti. Jotkut WFS-palvelimet nimittäin lähettävät GetCapabilities-vastauksen varsin hitaasti. Ohjelma näyttää WFS-tasojen selväkieliset nimet (Title), mutta sitä voi pyytää näyttämään myös niiden varsinaiset nimet (typename). Tässä tapauksessa myös nimen nimiavaruusosa näytetään. Tämä on esimerkillisen hyvä tapa. Käyttäjä voi valita vapaasti, mitkä kohteiden ominaisuustiedot palvelusta haetaan. Jättämällä varmasti turhiksi tiedettävät ominaisuudet pois voidaan pienentää siirrettävän tiedon määrää ja nopeuttaa palvelua. Kohteet haetaan aina palvelun oletusarvoksi ilmoittamassa koordinaattijärjestelmässä. Ohjelma pystyy itse muuntamaan koordinaatit muihin järjestelmiin. GvSIG tekee kaikki pyynnöt GET-menetelmällä. Tästä voi olla haittaa, sillä joidenkin palvelimien kehitystyössä on keskitytty tukemaan monipuolisemmat haut mahdollistavaa POST-menetelmää, ja GET-pyyntöjen kanssa voi esiintyä virheitä. Hakuja voidaan rajata sekä ominaisuustietoehtojen että BBOX-aluerajauksen avulla. GvSIG sijoittaa ääkköset GET-pyynnössä FILTER-osan sisään url-koodattuina. Se voi olla oikea tapa, mutta ainakaan kaikki WFS-palvelimet eivät hyväksy sitä, joten esimerkiksi nimihaku suomalaisista aineistoista voi epäonnistua tästä syystä. Varoittaa, jos maxfeatures-parametrillä annettu kohteiden enimmäismäärä tulee täyteen. Tämä on hyvä, sillä useimmiten, jos kohteiden enimmäismäärän raja tulee vastaan, niin osa kohteista jää leikkurin takia tulematta kokonaan. Ääkkösongelmaa lukuunottamatta GvSIG on hyvin toimiva WFS-ohjelma, joka tekee palveluista haetuista kohteista kartan nopeasti. Se pystyy myös käsittelemään satojen tuhansien kohteiden suuruisia aineistoja. WFS:stä haetut kohteet voidaan tallentaa näihin muotoihin: GML, shapefile, PostGIS
GvSIG-ohjelman WFS-käyttöliittymä Kosmo GIS Yleistä Kosmo GIS tukee WFS-versioita 1.0.0 ja 1.1.0 ja käyttäjä voi valita, mitä versiota käytetään. WFStasojen muokkaus (WFS-T) on tällä hetkellä otettu pois käytöstä, koska se ei ollut riittävän yhteensopiva eri merkkisten WFS-T -palvelinten kanssa. Vaikka Kosmo tukeekin WFS 1.1.0 -standardin mukaisia kyselyitä ja GML3-tiedostomuotoa, niin se ei edes yritä hallita eri koordinaattijärjestelmien itä- ja pohjoiskoordinaattien järjestystä. Kosmo olettaa, että koordinaatit ovat aina järjestyksessä itäinen-pohjoinen, mikä johtaa esimerkiksi KKJ:ssä kyljelleen kaatuneen kartan. Onneksi Kosmossa on mahdollista valita käyttöön WFS 1.0.0 -versio, joka ei kärsi tästä ongelmasta. Kosmo näyttää WFS-tasojen niminä niiden varsinaiset nimet (typename), mutta kuitenkin ilman nimiavaruusmäärittelyä. Tämä ei ole erityisen hyvä tapa, mikäli joudutaan selvittämään palvelussa esiintyviä ongelmia. Kosmon käyttäjä voi valita vapaasti WFS:stä haettavat ominaisuustiedot ja jättää halutessaan turhana pitämänsä tiedost pois. Kosmo hakee kohteet palvelun ilmoittamssa oletuskoordinaattijärjestelmässä. Se voi muuntaa koordinaatit itse WFS-haun jälkeen.
Kosmo tekee GetFeature-pyynnöt käyttämällä POST-menetelmää. Yleensä palvelimet tukevat POST-menetelmää paremmin kuin GET-menetelmää mutkikkaita hakuehtoja käytettäessä. Sekä ominaisuustietoehtoja että paikkaan perustuvia rajauksia voidaan käyttää hakuehtoina. Kosmo tukee muitakin kuin yksinkertaista BBOX-rajausta (Contains, Crosses, Disjoint, Equal, Intersects, Overlaps. Kyselyt tehdään kyselyavustajalla. Sen käyttö ominaisuustietoehtojen tekemiseen on helppoa, mutta spatiaaliehtojen tekeminen ei ole yhtä havainnollista. Kosmolla ei ole ääkkösongelmia. Kosmo ei varoita, jos maxfeatures-parametrillä annettu kohteiden enimmäismäärä tulee täyteen. Yleensähän tämä tarkoittaa sitä, että kaikkia kyselyn löytämiä kohteita ei lähetetty, vaan tulos katkaistiin, ja käyttäjän olisi hyvä huomata tämä jo aikaisessa vaiheessa. Kosmo on hyvin toimiva ja monipuolinen WFS-ohjelma, joka tekee palveluista haetuista kohteista kartan nopeasti. Satojen tuhansien kohteiden suuruistenkin karttatasojen käsittely on mahdollista. WFS:stä haetut kohteet voidaan tallentaa näihin muotoihin: GML, shapefile, PostGIS, Oracle Spatial, mysql Kosmo GIS -ohjelman WFS-käyttöliittymässä käytettävä kyselynmuodostintyökalu. Esimerkkitapauksessa etsitään kohteita kartalta valitun polygonin (yhden kunnan rajat) perusteella. Quantum GIS
Yleistä Quantum GIS tukee vain WFS-versioita 1.0.0. QGIS tukee myös WFS-tasojen muokkaamista (WFS-T). Koska WFS 1.1.0 -tuki puuttuu, niin sillä ei ole myöskään ongelmia GML3:n mukanaan tuoman itä- ja pohjoiskoordinaattien järjestyksen kanssa. Toisaalta tämä merkitsee, että vain WFS 1.1.0 versiota tukevia palvelimia ei QGIS-ohjelmalla voida käyttää ollenkaan. Ohjelma näyttää WFS-tasoista sekä niiden selväkieliset nimet (Title) että niiden varsinaiset nimet (typename). Myös nimiavaruus on nimessä mukana. QGIS hakee aina kohteiden kaikki ominaisuustiedot, eikä käyttäjä voi jättää jo etukäteen turhiksi tietämiään ominaisuuksia pois. QGIS hakee kohteet käyttämällä palvelun ilmoittamaa oletuskoordinaattijärjestelmää. QGIS tekee kaikki pyynnöt käyttämällä GET-menetelmää. Ainoa rajausmahdollisuus on käyttää karttaikkunasta otettava BBOX-rajausta. Toisaalta tämän aluerajauksen käyttäminen on helppoa. Kehitysversiossa (tuleva QGIS 1.8.0) on mahdollisuus syöttää hakuehtoja kirjoittamalla niistä WFS-pyynnön FILTER-elementti. Tämä ei ole käyttäjäystävällinen tapa, koska tavallinen käyttäjä ei voi kirjoittaa käsin pyyntöä niin, että se olisi standardin mukaan oikein. QGIS ei kärsi ääkkösongelmista, koska sillä ei voi tehdä kyselyitä ominaisuustiedoista. QGIS-ohjelma ei anna käyttäjälle mahdollisuutta rajata palautuvan aineiston suuruttaa maxfeatures-parametrillä. QGIS tarjoaa vain perusominaisuudet WFS-palvelun käyttöön. Toisaalta ohjelma on varsin luotettava, sillä se tekee niin yksinkertaisia kyselyitä, että elleivät ne mene läpi, niin vika on melkein varmasti vastapuolella olevassa WFS-palvelimessa. QGIS-ohjelmalla voidaan tallentaa WFS:stä haetut kohteet voidaan tallentaa noin 20 eri vektorimuotoon, mm. GML, shapefile, MapInfo Tab, DXF, MicroStation.dgn
Quantum GIS 1.8.0 -version WFS-käyttöliittymä. Yhteystiedot: Jukka Rahkonen Maa- ja metsätalousministeriön tietopalvelukeskus sähköposti: jukka.rahkonen@mmmtike.fi