[OSM-fi] Saimaan vesistön rantaviivat muutettu coastlineksi?

Jukka Rahkonen jukka.rahkonen at latuviitta.fi
Thu Aug 14 09:22:00 BST 2008


> Mikä merkitys on tuolla, että Saimaan vesistöjen rantoja on muutettu
> coastlineksi?
>
> Tietysti isojen alueiden natural=water ja josmin käyttö näytti kyllä
> sekavammalta.

Sillä on muutamia vaikutuksia, jotka voisi kiteyttää sanomalla, että
tekniikka pelaa, mutta tietojen käyttäminen käy vaikeammaksi.

Natural=water ja järven piirtäminen sulkeutuvana alueena on luonnollinen
tapa piirtää järvet. Silloin järvi saadaan tietokannasta myös helposti
ulos alueena, se on yksinkertaista piirtää vaikkapa sinisellä värillä
täytettynä ja sille voidaan laskea esimerkiksi pinta-ala, rantaviivan
pituus tai painopiste. Ongelmana on vain se, että Saimaan tapaisen järven
piirtämiseen tarvitaan tuhottomasti pisteitä, ja koko järven käsittely
yhtenä rinkulana luultavasti tukkisi JOSM:in, ihan varmasti Potlatchin ja
kenties myös kartanpiirto-ohjelmat.
Järven pilkkominen useisiin natural=water -alueisiin on toimiva kiertotie,
mutta tulos on kieltämättä sekava, ja siinä syntyy tietokantaan sellaisia
kohteita, joita luonnossa ei ole olemassa.

Coastline:n avulla rantaviiva on helppo pilkkoa helposti käsiteltäviin
paloihin, mutta ongelmana on se, että coastline on tietokannassa viiva,
mutta oikeasti se esittää jotakin, joka halutaan kartalla näyttää
alueeana, vaikkapa valtamerenä.  Siitä syystä ennen kartan piirtämistä
rantaviivoista täytyy tehdä alueita ottamalla jonkin kokoinen pätkä
rantaviivaa ja sulkemalla se.  Sama juttu siis kuin järven pilkkomisessa
useisiin natural=water -alueisiin.  Mapnin-karttaa varten se tehdään
ilmeisesti 100x100 kilometrin ruutuina, ja tuloksena syntyvistä alueista
luodaan shapefile-muotoiset tiedostot (katso
http://wiki.openstreetmap.org/index.php/Coastline_error_checker).

Mapnik-kartan tekemisen kannalta tässä on sekin hyvä puoli, että miljoonia
rantaviivapisteitä ei tarvitse lukea OSM-tietokannasta, vaan rantaviiva
saadaan esikäsitellyistä shapefileistä, jotka ovat nopeampia käsitellä.
Huonona puolena on sitten se, että Coastline-järviä on vaikeampi käsitellä
vaikkapa GIS-ohjelmissa.  Kun natural-water -järvet saadaan tietokannasta
ulos suoraan alueina, niin natural-water järvistä täytyy ensin hakea
kaikki toisiinsä kytkeytyvät coastline-pätkät, ja niistä on jollain
ohjelmalla muodostettava polygoni.  Mapnik-kartan tekoa varten alunperin
luodulla osm2pgsql-ohjelmalla coastline ei edes siirry
PostGIS-tietokantaan, koska se olisi turhaa, merethän piirretään niistä
erikseen luoduista shapefileistä.

Minun mielestäni pienet järvet kannattaa piirtää natural=water
-menetelmällä, ja yhtenä rinkinä ainakin johonkin 1500 nodeen asti.  Jos
rantaviiva on pitempi, niin sitten pilkottuna osiin. Ja Saimaalle ja
Päijänteelle ainakin natural=coastline on varmaankin järkevintä.

Tähän aiheeseen liittyy se, kuinka saaret pitäisi piirtää.  Tavallisimmin
käytetty tapa on piirtää se natural=land -alueina.  Joidenkin mielestä
tämä on väärin, koska silloin ajatellaan, että järvi on sen uloimpien
rantojen väliin jäävä allas, ja saaret ovat altaan päällä kelluvia
maalauttoja.  Tämän tavan vastustajien mielestä oikea tapa olisi piirtää
järvelle ulkoreunat, sitten saaret sinne  altaan sisäpuolelle reikinä, ja
yhdistää nämä kaikki multipolygoni-relaatiolla.  Tällä tavalla syntyvän
reikäisen polygonin pinta-ala kertoisi suoraan järven vesialueen
pinta-alan, kun water+land -menetelmällä järven pinta-alaan kuuluu myös
saarien pinta-ala.
Minun mielestäni water+land -tapa on ihan hyvä.  Pinta-alan nyt joutuu
laskemaan vähentämällä järven alasta saarien pinta-alat, mutta se on
kohtuullisen helppo operaatio.  Sitä paitsi, jos järvi esitetään
reikäisenä alueena, niin jokaisesta reiästähän täytyisi luoda OSM-kantaan
oma "island"-kohteensa käyttämällä samoja nodeja.

-Jukka Rahkonen-





More information about the talk-fi mailing list