GeoServer paikkatietomies

Paikkatietorajapinta rasteriaineistoille – GeoServer-palvelimella onnistuu

Paikkatietorajapinta terminä on monelle meistä tuttu juttu. Rajapintojen käyttö on kätevää ja niitä käyttäen aineistot tulevat kuin itsestään haluttuun asiakassovellukseen. Huomattavan harvalukuisempi on se joukko, jolle on tuttua, mitä kaikkea konepellin alla tulee olla, että paikkatietorajapinnat toimivat. Tässä artikkelissa luon lyhyen katsauksen rasteriaineistojen jakeluun käytettävien rajapintojen sielunelämään teknisestä näkökulmasta. Artikkelissa tarkastellaan ns. avoimia paikkatietorajapintoja, jotka palauttavat asiakassovellukselle rasterimuotoisia paikkatietoaineistoja. Rasterimuotoisella aineistolla tarkoitetaan tässä yhteydessä joko karttakuvaa (lyh. WMS) tai tiilitettyä karttakuvaa (lyh. WMS-C, WMTS ja TMS rajapinnasta riippuen). Avoimella paikkatietorajapinnalla tarkoitetaan puolestaan tässä yhteydessä sellaista rajapintaa, jonka kehitystyötä koordinoi Open Geospatial Consotium (lyh. OGC). Palvelinsovelluksena esimerkeissä on käytetty avoimen lähdekoodin GeoServer-palvelinta.

Rajapinta rasteriaineistojen lataamiseen

Rasterimuotoisten paikkatietoaineistojen lataamiseen käytettävä rajapinta tunnetaan englanninkielisellä nimellä Web Map Service (WMS). Suomenkielinen vastine WMS-rajapinnalle on karttakuvapalvelu. WMS-rajapinnasta on olemassa myös ns. tiilitettyjä karttakuvia tukeva muoto, jolloin käytetään yleensä englanninkielistä nimeä Web Map Tiled Service (WMTS). Suomenkielinen vastine WMTS-rajapinnalle on tiilitetty karttakuvapalvelu. Tiilitettyjä karttakuvia palauttava rajapinta voidaan tosin toteuttaa myös WMS-rajapinnan avulla, jolloin käytetään termiä Cached Web Map Service (WMS-C). On olemassa myös kolmas tiilitettyjä karttakuvia tarjoava rajapinta. Tämä rajapinta tunnetaan nimellä Tile Map Service (TMS). Ja mikäli termit ja lyhenteet alkavat jo tässä vaiheessa mennä yli hilseen, niin todetaan tässä välissä, että tiilitetyllä WMS-palvelulla tarkoitetaan karttapalvelimen kykyä muodostaa alkuperäisestä datalähteestä säännöllisen kokoisia karttatiiliä lennossa ja palauttaa ne asiakassovellukselle siten, että asiakassovellus voi muodostaa niistä yhtenäisen kuvamosaiikin (näkyy käyttäjälle usein siten, että näytöllä näkyvä kartta latautuu neliön muotoisina palasina).

Rasterit rajapinnoilta
Karttakuvapalvelun toimintaperiaate: asiakassovellus (käyttäjäkerrros) lähettää pyynnön palvelinsovellukselle (prosessikerros), joka prosessoi tietovarastosta (datakerros) hakemansa vastauksen ennen vastauksen palauttamista asiakassovellukselle.

 

Karttakuva pyydetään palvelimelta GetMap-pyynnöllä, jonka parametreina välitetään mm. pyydetyn karttakuvan maantieteellinen rajaus, koordinaattijärjestelmän tunnus EPSG-koodilla ilmaistuna, pyydetyn kuvan leveys ja korkeus pikseleinä ja tieto käytettävästä tyylitiedostosta.

 

Perusajatus karttakuvapalvelun toiminnassa on se, että asiakassovellus lähettää palvelimeen kytkeytyessään ns. GetCapabilities -sanoman, jolla se pyytää palvelinta listaamaan karttakuvapalvelusta saatavilla olevat aineistot ja niiden speksit. Palvelimen palauttama GetCapablities -vastaussanoma on XML-muotoinen dokumentti, joka parsitaan asiakassovelluksessa selkokieliseen muotoon. Varsinainen karttakuva pyydetään palvelimelta GetMap-pyynnöllä, jonka parametreina välitetään mm. pyydetyn karttakuvan maantieteellinen rajaus (bounding box), koordinaattijärjestelmän tunnus EPSG-koodilla ilmaistuna, pyydetyn kuvan leveys ja korkeus pikseleinä ja tieto käytettävästä tyylitiedostosta. Mikäli karttakuvapalvelun lähtöaineistona käytetään parametrisoitua tietokantanäkymää, voidaan GetMap-pyynnön mukana välittää parametreja (viewparams), joiden mukaan taustalla toimiva tietokantanäkymä suodattamaan karttakuvassa näytettävää aineistoa halutulla tavalla. Myös mahdollinen autentikointitieto voidaan tarvittaessa välittää GetMap-pyynnön parametrina (API-key), joskin useinmiten autentikointitieto välitetään palvelimelle HTTP-pyynnön (joita myös WMS-pyynnöt ovat) header-osassa. GetMap-pyyntö palauttaa asiakassovellukselle rasterimuotoisen karttakuvan halutussa kuvaformaatissa. Käytettäessä tiilitettyä karttakuvapalvelua, palvelimelta pyydetään yhden laaja-alaisen karttakuvan sijaan säännöllisen karttatiilijaotuksen (gridset) mukaisia karttatiiliä. Tyypillinen koko karttatiilelle on 256 pikseliä suuntaansa. Tiilitettyä karttakuvapalvelua tukevissa asiakassovelluksissa karttatiilet kasataan yhdeksi kokonaiseksi karttakuvaksi.

Karttakuvapalvelun lähtöaineistot

Karttakuvapalvelu voidaan toteuttaa siten, että se käyttää lähtöaineistoina vektorimuotoisia paikkatietoaineistoja. Tällöin kyseessä on dynaaminen WMS-palvelu. Dynaamisella WMS-palvelulla tarkoitetaan sitä, että palvelinohjelmisto muodostaa karttakuvaa palvelimelta pyytävän GetMap-pyynnön mukaisen vastauksen juuri sillä spatiaalisella tarkkuudella, joka välitetään GetMap -pyynnön BBOX-parametrissa ilman, että prosessoinnissa tarvitsee tehdä tarkkuutta heikentävää skaalausta. Tästä johtuen dynaamisen WMS-palvelun palauttamat karttakuvat ovat teräviä eikä niissä esiintyvät kohteet ole pikselöityneet. Tämä on mahdollista, koska lähtöaineisto on vapaasti skaalattavissa olevaa vektoriaineistoa eikä asiakassovellukselle palautettavaa karttakuvaa muodostettaessa tarvitse suorittaa rasterioperaatioita (esimerkiksi interpolointia). Luettaessa lähtöaineistoja vektorimuotoisista paikkatietoaineistolähteistä, on suorituskykyisin vaihtoehto spatiaali-indeksejä hyödyntävä tietokantajärjestelmä (esim. PostGIS).

 

Karttakuvapalvelu voidaan toteuttaa siten, että se käyttää lähtöaineistoina vektorimuotoisia paikkatietoaineistoja. Tällöin kyseessä on dynaaminen WMS-palvelu.

 

Toinen mahdollinen datalähde karttakuvapalvelulle on rasteriaineisto. Rasteriaineistoja voidaan lukea joko yksittäisistä sijaintitiedon sisältävistä kuvista (esim. GeoTiff) tai useista kuvista koostuvista kuvamosaiikeista (esim. ImageMosaic). Luettaessa aineistoja rasterimuotoisia paikkatietoaineistoja sisältävästä datalähteestä muussa kuin natiivitarkkuudessa, suorittaa rajapintapalvelin rasterin piirtoon liittyviä operaatiota (mm. interpolointia) ennen kuin se palauttaa karttakuvan asiakassovellukselle. Tapauksesta riippuen alkuperäisesta rasterista luettavaa lähtötietoa joudutaan skaalaamaan joko ylös- tai alaspäin lopputuloksen saamiseksi. Käytettävästä rajapintapalvelimesta riippuen tarjolla on erilaisia interpolointimenetelmiä. Yleisimmät interpolointimenetelmät ovat bilineaarinen ja lähimmän naapurin menetelmä. Käytettäessä rasterimuotoisia paikkatietoaineistoja karttakuvapalvelun aineistolähteinä, kannattaa lähtöaineistot optimoida jakelua varten esimerkiksi luomalla aineistoihin sisäinen tiilitys (inner tiling) ja/tai sisällyttämällä tiedostoihin yleistystasot (adding overviews). Ja mikäli levytilasta ei tee tiukkaa, niin lähtöaineistot kannattaa säilyttää palvelimella pakkaamattomassa muodossa, jolloin palvelimen ei aineistoja lukiessa tarvitse ensin purkaa aineistojen pakkausta.

Millaisia kokemuksia sinulla on rasteriaineistojen jakeluun tarkoitetuista OGC-rajapinnoista?

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *