Tämä on harjoitelma OpenCPN merikarttojen luomiseen Liikenneviraston Avoimesta Datasta.
Disclaimer: Ei navigointiin
Karttojen Lähde: Liikennevirasto. Ei navigointikäyttöön. Ei täytä virallisen merikartan vaatimuksia. https://www.liikennevirasto.fi/avoindata/kayttoehdot/avoimen-tietokannan-lisenssi#.WgCfiWiCxPY
Ainuttakaan ohjelman luomaa karttaa ei ole tarkistettu/varmistettu. Ne näyttävät olevan kunnossa, mutta näitä ei tule käyttää navigointiin. Ainakaan ainoana karttana :)
Ohjelma luo bittikartat sekä niihin liittyvät konfiguraatiotiedostot. OpenCPN muunnokseen tarvitset lisäksi imgkap-ohjelman. https://github.com/nohal/imgkap
Scripti ei ole erityisen versioriippuvainen ja toiminee kaikilla 3.x pythoneilla. Tarvitset lisäksi muutaman kirjaston.
Taustaa: https://www.fe83.org/gallery/index.php/ry-member/album258/Projekteja/album675
Hyödyllistä myös asentaa imagemagick, millä voi käsittellä haettujen bittikarttojen väripaletin ennen KAP konversiota. Ilman tuota karttojen värisävyt saattavat vaihdella paljonkin (yksittäin tehtyjen imgkap.exe konversioiden jäljiltä)
Workflow:
Määrittele haluamasi karttapoiminnat csv-tiedostoon. Tee joko kokonaan uusi poiminta tai poista tekemistäni tiedostoista kommenttimerkinnät haluamistasi karttalehdistä.
Aja scripti, esim:
python MK_Get_Map_Tiles_Multithread.py MK_A_data.csv
Scripti tekee myös makekap.BAT tiedoston, minkä voi ajaa suoraan (olettaa että KAP tiedostot kopioidaan alihakemistoon "128_Colors") tai mistä voi katsoa mallia, miten seuraavat vaiheet tehdään.
Konvertoi kartan väripaletti (esim.) komennolla:
magick kartan_nimi.png -remap palette.png kartan_uusi_nimi.png
Tuossa uudelle kartalle tulee palette.png tiedostossa olevat värisävyt, jolloin kaikki kartat näyttävät yhdenmukaisilta.
2020/10 update: kartoista tulee em. tavalla tehtynä aika vaaleat ja niistä puuttuu kontrastia. Kartoista saa paremmat, käsittelemällä kartat esim komennoilla:
magick kartan_nimi.png -brightness-contrast -35,43 -modulate 100,250 CONTRAST_kartan_nimi.png
magick convert CONTRAST_kartan_nimi.png -colors 32 png8:kartan_nimi_c32.png
Näistä ensimmäinen lisää kontrastia ja värikylläisyyttä. Jälkimmäinen tiputtaa värimäärän 32 väriin.
Lopuksi tehdään .png > .KAP -konversio komennolla:
imgkap.exe kartan_nimi.png kartan_konfiguraatio_tiedosto.txt
Poista lopuksi makekap.BAT (scripti lisää siihen aina uusia rivejä kun ohjelma ajetaan).
Lopputuloksena syntyy geokoodattu KAP tiedosto, minkä voi avata OpenCPN softalla.
Ohjelma luo paljon WMTS_alkuisia.png tiedostoja (A, B, C ja D sarjoista näitä syntyy noin 80t kpl). Nämä voi huoleta poistaa konversion jälkeen. Ohjelman voi myös ajaa samalla lähtötiedolla useamman kerran (tällöin vain syntyy uudelleen saman nimiset aineistot). Ohjelman voi myös keskeyttää ja aloittaa uudelleen (huom. multithread ohjelmaa on vaikeampi keskeyttää, koska se ei juuri vastaa Ctrl-C komentoon).
Kannattanee harjoitella muutamalla karttalehdellä ja ehkä muutenkin poimia aineistot osissa.
Mukana on myös hätäisesti tehty apuohjelma karttalehden kulmien etsimiseen.
Esim:
python find_tile.py A 15 18657 9496
Apuohjelma hakee 3X3 matriisin karttatiilista. Näkymää voi vyöryttää nuolinäppäimillä ruudun kerrallaan (tai Shift + nuolinäppäimillä 3 ruutua kerrallaan). Apuohjelma myös tallentaa karttatiilet, joten ko. karttatiiliä ei enää tarvitse hakea varsinaisessa poiminnassa.
Karttoja oikeellisuutta ei edelleenkään ole varmistettu mitenkään. Ne vaikuttavat olevan kunnossa, mutta tuosta ei ole mitään takuita. ei navigointiin.
Huom: En ole keksinyt miten KAP tiedostoihin saisi "Läpinäkyvän värin". Jos karttatiilien haku menee yli aineistorajan, karttaan syntyy valkoinen reunus, mikä näkyy myös lopullisessa KAP-kartassa. Tästä johtuen esimerkiksi erikoiskarttojen poiminnassa joutuu rajaamaan poiminnan sellaiseksi että mukaan otetaan vain kokonaan erikoiskartan sisään mahtuvat karttatiilet.