Pyramidit rasterikuvissa

Kirjoittaja: Antti Castrén, TKK
Artikkeli pdf-muodossa (Positio 2/2008)

Kukapa meistä ei olisi katsonut kotikulmiaan tai kesämökkiään Internetin ilmaisista satelliitti- ja ilmakuvapalveluista? Siellähän se tuttu tönö pilkottaa metsän keskeltä, kuten taisi tehdä jo ennen tekokuiden aikaa. Mutta kuinka moni on huomannut pyramidit samoilla tanhuvilla? Muinaisten egyptiläisten seuraajien jälkiä lienee joka niemessä, notkossa ja saarelmassa, kun kuvasta tarkasti katsoo.

Kuten tunnettua, rasterikuvat muodostuvat matriisissa olevista pikseleistä, joista kullakin on lukuarvo. Arvo edustaa yleensä väriä tai harmaasävyä. Kuvan tarkkuuden kasvaessa eli pikselien koon pienentyessä tarvittavien solujen määrä kasvaa eksponentiaalisesti, joten tarkat rasterikuvat vaativat kapasiteettia varsin huomattavasti.

Pyramidien idea

Rasterikuvista puhuttaessa pyramidit tarkoittavat karkeammilla resoluutiotasoilla tallennettujen kuvatasojen muodostamista ja käyttöä alkuperäisen kuvan sijasta. Näin voidaan välttyä tarpeettoman suuren datamäärän käsittelyltä tai siirrolta rajatun keskusmuistin tai tiedonsiirtoväylien paineissa. Kulloinkin käsitellään tarkkuustasoltaan sopivinta kuvaa, jolloin optimoidaan suorituskyky. Lisäksi kuvatasot pilkotaan pienempiin palasiin, joista vain kulloisenkin kohteen alueelle osuvia paloja siirretään tai käsitellään.

Pyramidien kuvatasot muodostetaan joko ennalta tai vasta tarvittaessa; valinta riippuu olosuhteista. Jos tallennustilasta ei ole suurta pulaa ja laskentakapasiteettia on riittävästi, nopeuttaa ennalta muodostaminen toimintaa. Jos taas nämä edellytykset eivät täyty, tasoja muodostetaan tarpeen mukaan. Tallennuskapasiteettia kannattaa siinäkin tapauksessa olla vähintään sen verran käytössä, että kerran muodostetut tasot voidaan tallentaa tulevaa käyttöä varten.

Pyramidien muodostaminen

Pyramidien muodostusperiaate on yksinkertainen. Alkuperäisen "tarkan" kuvan useampi lähekkäinen pikseli korvataan yhdellä seuraavan tarkkuustason kuvan pikselillä. Vastaavasti tarkkuudeltaan seuraavaksi karkein kuvataso muodostetaan samalla algoritmilla, jonka syötteenä käytetään edellisen tason lähekkäisiä pikseleitä. Järjestelmän ominaisuuksista riippuu, kuinka monta tarkkuustasoa on järkevä laskea ja millä kertoimella pikseleitä korvataan.

Esimerkkinä voidaan ajatella tilannetta, jossa on 10 km kanttiinsa oleva alue ja siitä kuva yhden metrin resoluutiolla. Toisin sanoen kuvan koko on 10000 x 10000 pikseliä. Jos käytetään kertoimena viittä, niin seuraava kuvataso on kooltaan 2000 x 2000 ja sitä seuraava 400 x 400 pikseliä. Käyttäjän haluaman mittakaavan mukaan valitaan näistä kolmesta sopivin tarkkuustaso. Kaikissa näissä tapauksissa kuva siis kattaa koko mainitun 100 km2 alueen, mutta yhden pikselin edustama alue tietysti kasvaa ensin yhdestä viiteen ja sitten viidestä 25 metriin per sivu. Periaate selviää myös oheisesta kuvasta.

On olemassa lukuisia näytteenottoalgoritmeja, joilla lasketaan arvo useasta pikselistä yhdelle korvaavalle pikselille. Algoritmin valinta riippuu lähtödatan luonteesta, eli siitä onko kyseessä muutamaa luokkaa esittävä teemakartta, korkeusmalli tai vaikkapa ilmakuva. Yksinkertaisin lienee lähimmän naapurin menetelmä, jossa korvaava pikseli saa sen arvon, joka on sillä tarkemman tason pikselillä, joka osuu korvaavan pikselin keskelle. Tämä tapa sopii luokkamuotoiselle datalle.

Korkeusmalleille sopii bilineaarinen interpolointi eli neljän naapurin mukaan laskettu painotettu keskiarvo. Kolmas yleinen menetelmä on kolmannen asteen interpolointi, jossa arvo lasketaan laajemman naapuruusalueen pohjalta. Ilma- ja satelliittikuville tämä tapa on näistä kolmesta sopivin.
Katso siis seuraavan kerran rasterikuvaa huolella, kun muutat sen tarkasteluetäisyyttä. Huomaat kuinka tarkka kuva korvautuu loitontaessa pyramidin ylemmällä tasolla. Lähennettäessä taas on helppo havaita, kuinka tarkempi kuva muodostuu pienemmistä osakuvista.

Kirjoittaja tekee diplomityötään spatiaalisesta analyysistä Tekesin Turvallisuus-ohjelmaan kuuluvassa projektissa. Sähköposti: antti.castren[at]tkk.fi

Sanasto

Naapuruusalue = yhden pikselin lähellä sijaitsevien pikselien joukko. Naapuruus voidaan määrittää useilla eri tavoilla.

Näytteenottoalgoritmi = menetelmä, jolla datasta lasketaan tai poimitaan edustavia arvoja.

Pikseli = rasterikuvan yksittäinen piste, yleensä neliönmuotoinen.

Resoluutio = tässä tapauksessa erottelukyky, eli yhden pikselin edustama etäisyys. Voidaan ajatella kuvan sisäisenä mittakaavana.
 

29.6.2010 15:14