Latasin otsikon aineiston MML:n tänään avatusta, todella hyvin toimivasta palvelusta. Linkkien näpyttelemistä oli juuri ja juuri siedettävän paljon (413 tiffiä + 413 tfw-tiedostoa) ja tavuja kertyi yhteensä 9,6 gigaa.
Koska MML:n lataussovellus toimii niin hyvin, niin ei tunnu järkevältä laittaa 1:50t rastereita samanlaisina jakoon. Koitan sen sijaan kehittää niistä jotain kivaa, jotain sellaista joka toimisi erityisen hyvin jollain avoimen lähdekoodin GIS-ohjelmalla ja tietysti GDAL:lla. Kolme ensimmäistä yritystä on johtanut epäonnistumisiin ja nyt on menossa neljäs lupaava kokeilu. Jos se epäonnistuu niin kokeilen huomenna illalla vielä paria muuta vaihtoehtoa. Jos niistäkään ei synny mitään kivaa, niin teen sitten ihan tavallisen zipin noista rastereista perjantaina. Huomasin nimittäin, että kun tekee GDAL:lla LZW-pakattuja tiffejä noista MML:n LZW-pakatuista tiffeistä, niin tiedostojen yhteenlaskettu koko pienenee 9,6 gigasta 4,8 gigaan eli aika tarkasti puoleen, mikä nyt on jo ihan merkittävä ero. Pitäisi kai sitten myös kokeilla, pienentäisikö sama ajo 30 gigatavun peruskarttarasteriaineistoa samassa suhteessa. Saa tuota kyllä ihan vapaasti kokeilla muutkin, komento on tällainen
Jos vaikka muuntaa kymmenen tai sata tiffiä noilla säädöillä ja laskee sitten alkuperäisten ja muunnettujen tiedostojen yhteiskoot niin pitäisi olla jo aika luotettava tieto vaikutuksesta. Tiffien sisäisestä laatoituksesta (-co tiled=yes) nyt on jo sinällään hyötyä kaikille paikkatieto-ohjelmille, niin kuin siitäkin, että tehdään kuvista geotiffejä, jolloin ei enää tarvita tfw-tiedostoja.
Tuossa 1:50000 mittakaavan setissä näyttää sitten olevan kolme pilallista karttaa, joissa ei ole mitään muuta sisältöä kuin koordinaattiristit. Täytyy laittaa MML:lle korjauspyyntö. Pitäisi varmaan jo ymmärtää, että lähtöaineistot kannattaa tarkistaa ennen kuin laittaa tuntikausia kestävät prosessoinnit käyntiin.
Sekä alkuperäiset että GDAL:lla muunnetut tiffit ovat LZW-pakattuja eli häviöttömiä eli laatu on sama.
Yleensäkin, jos png- tai lzw-pakattujen kuvien tiedostokoko pienenee zippaamalla niin voi alkaa epäillä, ettei alkuperäinen pakkaus ole tehonnut parhaalla mahdollisella tavalla. GDAL:lla on mahdollista saada aikaan samanlaisia tuloksia. Tavallisimmin se käy niin, että suurta kuvaa varpataan koordinaattijärjestelmästä toiseen ja muunnos tehdään suoraan johonkin pakattuun muotoon. Kuvadata voidaan joutua kirjoittamaan levylle palasissa ja pakkaamaan samalla tavalla palasina. Tällöin jokainen pala voi olla hyvin pakattu, mutta koko kuvaa ajatellen voi olla mahdollista päästä tehokkaampaan pakkaukseen, jos kaikki kuvadata on alusta pitäen saatavilla.
Suosittelen lämpimästi tuon muunnoksen tekemistä, mutta testatkaa kuitenkin tulos ensin lempiohjelmillanne. Kaikki ohjelmat eivät avaa sisäisesti laatoitettuja tai LZW-pakattuja tiffejä.
Ai niin, kello oli käynnissä, koko erän (2910 tiffiä) muuntaminen heikolla Windows-kannettavalla USB-levyltä samalle USB-levylle kesti 4 tuntia 47 minuuttia.
1:50000-rasterin tilantarvetta pystyy vähentämään käyttämällä vielä lisää deflate-pakkausta (gdal_translaten optio -co compress=deflate) geotiffeissä: koko menee noin puoleen zip-paketeista. Huono puoli on, etteivät kaikki ohjelmat eivät osaa käyttää deflate-pakattuja kuvia. LZW-pakkaus toimii varmemmin.
PNG-kuvat voi kutistaa 10 - 20 % pienemmiksi pngcrushilla (pngcrush -m 113), mutta tämä lisää kovasti prosessointiaikaa, ja lopputulos on vähän isompi kuin deflate-geotiffillä.
Suositukseni on: pakkaa rasteri-geotiffit LZW:llä, jos edes se toimii käyttämilläsi ohjelmilla.
Pakkasin itseäni varten maastokarttarasterin 2910 tiffiä deflatella – aion käyttää niitä itse Qgisissä, joka osaa avata ne. Tilaa kuluu yhteensä 12,9 Gt, joka on 10 % vähemmän kuin torrentin 14,4 Gt:n datamäärä.
…muokkaus: Jos joku haluaa tehdä saman, ja käytössä on Linux ja perl-moduli File::Rename, niin tällaiset komentoloitsut minulla tekivät tämän. Nämä ajoin joka hakemistossa UK, UL, UM jne. erikseen.
rivi: muuntaa MML:n tiedoston deflate-pakatuksi ja laatoitetuksi geotiffiksi (nimeen tulee jatkoksi -g.tif), sekä tekee ns. worldfilen. Worldfilen tekeminen ei ole välttämätöntä Qgisin kannalta
rivi: nimeää äsken luodut tiedostot siten, että ne korvaavat alkuperäiset tiffit
Kartta on testattu OpenJUMP Plussalla, Kosmo GIS:llä ja gvSIG:llä ja niillä sen pitäisi toimia varsin hyvin. GDAL:iin perustuvilla ohjelmilla kartta tuskin toimii, ellei GDAL:issa ole mukana joko JP2KAK- tai JP2ECW-ajuria. Nykyisin yleensä ei ole, koska molemmat vaativat lisenssin.
JPEG2000-pakkaus ei rasterikarttojen yhteydessä säästä tilaa, niille sopii parhaiten väripaletin käyttö yhdistettynä deflate- tai LZW-pakkaukseen. Mutta ei JPEG2000 rasterikartoillakaan toivottoman huono ole. Sopivilla parametreillä pakattuna kartta aukeaa rivakasti kaikissa mittakaavoissa, eikä laadun menetys ole merkittävää jos tekee pakkauksen suurin piirtein LZW:tä vastaavaan tiedostokokoon. 1:250000 -karttojen tiedostokokojen vertailu
GDAL:lla LZW-pakattuina 468 Mt
Pakkaamattomina 24-bittisinä 17 Gt
Lähes häviötön JPEG2000 600 Mt
JPEG2000 ei tarvitse niin sanottuja pyramiditasoja eli suurempiin pikselikokoihin heikennettyjä versioita kaukaa katsomista varten. Niiden tekeminen syö levytilaa noin 30 % alkuperäisten kuvien koosta, joten LZW:n 468 ja JPEG2000:n 600 Mt ovat näin laskettuna sama asia.
Avautui ja toimii hienosti QGIS 1.7.3:lla, Windows 7, i5-kone 8GB muistia.
Onko ajatuksissa tehdä vastaavaa suurempimittakaavaiselle rasteriaineistolle (tuolle 1:50000) esim paloina?
On kyllä. 1:100000 rastereista tein jo yhden version, mutta MML:n latauspalvelusta puuttuu lehti W34R eikä karttaa, josta puuttuu käsivarren huippu, kehtaa laittaa tarjolle. Kunhan puuttava pala on saatavilla niin haeskelen sopivan pakkaussuhteen ja laitan tuloksen saataville. Ensimmäinen yritys tuotti 3,2 gigatavun JP2-tiedoston, mutta silmämääräisesti häviöttömään laatuun taitaa päästä vähän tiukemmallakin pakkaamisella.
Sen jälkeen on tietysti pakko kokeilla, onnistuuko myös kaikkien 1:50000 rastereiden puskeminen yhteen JPEG2000-tiedostoon, ja seuraavaksi sama juttu peruskarttarastereilla. Todennäköisesti ainakaan peruskartoilla ei ole enää mitään järkeä laitttaa koko maata yhteen tiedostoon, koska tiedostokoko tulisi olemaan varmaankin vähintään 20 gigatavua ja sen jakaminen alkaisi käydä turhan hankalaksi. Mutta järkevyyden ja ohjelmistojen suorituskyvyn rajat löytää vain menemällä ensin vähän yli.
Tuo 1:100000 mittakaava näyttäisi olevan viimeinen, jonka voi vielä pakata yhdeksi ainoksi tiedostoksi ilman rahaa. Sen jälkeen Kakadun demo-ohjelman ominaisuudet loppuvat kesken. Jos Kakadulla tahtoo päästä tuon rajan yli, niin tarvitaan vähintään “Non-commercial, named user licence” (250 USD), joka oikeuttaa kääntämään kdu_compress -ohjelman itse ja paremmilla optioilla. Linuxille riittää tuo investointi, Windowsille kääntämiseen tarvittataan lisäksi Microsoftin Visual Studio Professional (500 USD). Kakadun nykyiset non-commercial -lisenssiehdot ovat niin kaiken kieltävät, että heikottaa, mutta kyllä ne sen sallivat, että pakkaa kuvia JPEG2000-muotoon ja antaa ne ilmaiseksi pois.
Tekeillä on myös ohje siitä, miten tuon pakkaamisen voi tehdä itse. Tälläkin kertaa on tullut vastaan muutamia jänniä hankaluuksia, joista selviäminen ei sinänsä ole vaikeaa, mutta ilman aikaisempaa kokemusta voisi olla vaikea keksiä, mitä kautta ongelmat kannattaa kiertää.
Rivien välissä on myös muihin tarkoituksiin yleistettävää tietoa JPEG2000:sta ja GDAL:in virtuaalirastereista, jotka ovat hienoja juttuja molemmat. Harmi vain, ettei JPEG2000:lle ole vielä oikein todella hyvää avoimen lähdekoodin kirjastoa.
Pakkasin tällä kertaa vähän tiukempaan, ja laadun huononemisen alkaa jo huomata, kun katsoo esimerkiksi peltoja tai muita tasavärisiä alueita. JPEG2000-pakkaus alkaa sutata alueita ja tekee ne kirjaviksi. Toisaalta yhden gigatavun tiedostokoko 144000 x 249600 pikselin kartalle ei ole paha. Tämä mosaiikki syntyy vielä samoilla ohjelmilla ja ohjeilla kuin 1:250000 mittakaavan mosaiikkikin, joten kuka tahansa voi tehdä kuvasta helposti oman versionsa.
Tämä alkoi jo QGIS:lle tuottaa vaikeuksia. Tai ei varsinaisesti vaikeuksia, mutta jonkin aikaa piti odottaa, että ohjelma sai luettua tiedoston ja sen jälkeen kartalla liikkumisessa oli pieniä viiveitä. Käytettävyydeltään kuitenkin riittävä ja kuvan laatu samoin riittävä katselutarkoituksiiin.
Aijai, jos tämän aineiston saisi kännyyn. Voisi mennä metsään vaan eikä tarvitsi huolehtia, onko kartta mukana.
Pakkaus on tehty täsmälleen samoilla parametreillä kuin 1:100000 mosaiikissakin. Pikselimäärä taas nelinkertaistui ja kuvan koko on nyt 288000x 480000 pikseliä, eli ennen pakkaamista tiedostokoko RGB-tiffinä oli 414 gigatavua. Suuren tyhjän valkoisen alueen takia pakkaussuhteella 1:100 tuli vielä ihan käyttökelpoista laatua, minkä voi tarkistaa avaamalla seurantapalvelimen sivun kuvaruutukaappaukset. Koko kuvan lataaminen tulee olemaan hidasta, koska minulla on vain 1 Mb/sek linja käytössä ulospäin.
Tämän kartan kanssa voisi mennä jo vaikka suunnistamaan, mutta kännyssä se ei kyllä taida kovin sujuvasti toimia. Suosittelen kuvan katselemiseen ainakin ensimmäisellä kerralla kdu_show -ohjelmaa, niin saa tuntumaa siitä, kuinka hyvin JPEG2000 voi toimia oikeilla ohjelmilla.
Peruskartoista en enää viitsi tehdä JEPG2000-mosaiikkeja. Pakkaaminen sinänsä ei olisi ongelma, vaikka koko maan mosaiikin tilapäiselle tiffille 1 metrin pikselikoolla tulisikin kokoa noin 2 teratavua. Valmiin 20 Gt:n suuruisen JPEG2000-kuvan jakelu ei kuitenkaan enää onnistuisi minun kaistanleveydelläni. Järkevämpää olisi varmaan jakaa koko maa vähintään neljään kuvaan. Jos kiinnostuksen kohde on vain maakunnan tai pitäjän kokoinen alue, niin tiedostokoko tulee hyvin kohtuulliseksi. Noita mosaiikkeja voi kuka tahansa voi tehdä halunsa ja tarpeensa mukaan, koska ilmaisia ohjelmistoja, vapaita peruskarttoja ja jonkinlainen työohjekin on saatavilla. Toivottavasti nämä mosaiikit lisäävät uskoa JPEG2000-tiedostomuodon mahdollisuuksiin. Se ei todellakaan ole vain uudempi ja hitaampi JPEG-versio, vaan jotain ihan muuta.