kuntarajat leikkatuna suomen rantaviivalla

jlehtoma edited this page Apr 26, 2013 · 40 revisions

Tausta

Maanmittauslaitoksen jakamaa kuntaraja-aineistoa on käytetty monissa yhteyksissä esimerkiksi erilaisten interaktiivisten karttavisualisointien tekemiseen. Hiukan harmillisesti (mutta ihan oikein) MML:n aineistossa on rannikkokunnissa mukana myös merialueet, vaikka visualisointien kannalta pelkkien maa-alueiden kuvaaminen olisi usein parempi ratkaisu.

Tämä ohje kuvaa, kuinka vapaasti saatavilla olevista MML:N aineistoista saadaan näppärästi irti kuntarajat pelkästään maa-alueille. Valmiiksi käsitellyistä aineistoista kiinnostuneet voivat ladata aineistot Datavaalien sivuilta pian. Pelkästään aineistosta kiinnostuneet voivat ladata paikkatietoaineiston Datavaalit-hankkeen sivuilta:

Em. aineistot sisältävät Maanmittauslaitoksen Yleiskartta 1:1 000 000 aineistoa, 2011

1 Kuntajako-aineisto

MML:n jakama kuntajakoaineisto tulee hiukan hankalassa XML/GML formaatissa, mutta onneksi avoimen lähdekoodin paikkatieto-ohjelma Quantum GIS (QGIS) osaa lukea tätä(kin) formaattia sujuvasti. Syvällisemmin kyseisestä aineisosta ja sen haltuunotosta on kirjoittanut mm. Jukka Rahkonen Latuviitta-sivustolla (pdf). Tässä esimerkissä on käytetty kuntajakoaineiston 1:1 000 000 versiota.

Käyttöehdot ja latauspalvelu löytyvät MML:n sivuilta.

2 Suomen rantaviiva

Suomen rantaviiva löytyy MML:n vuoden 2011 ilmaisista vektoriaineistoista, jotka on erittäin näppäsrästi esikäsitelty paketoituun muotoon Latuviitta-sivuilla. Ladattava paketti sisältää Spatialite-paikkatietokannan, sen katseluun soveltuvan Windows-ohjelman sekä käyttöehdot.

Esivaatimukset

Ohjeet olettavat, että Quantum GIS on asennettuna (testattu versiolla 1.8.0).

Työvaiheet

  1. Lataa kuntajakoaineisto (1:1 000 000) MML:n latauspalvelusta
  2. Lataa Maanmittauslaitoksen ilmaiset vektorit (1:1 000 000) Spatialite-tietokantana Latuviitasta koneellesi ja pura zip-paketti.
  3. Käynnistä QGIS
  4. Lisää kuntajakoaineisto näkymään klikkaamalla 'Add Vector Layer'
  5. Klikkaa 'Browser' ja mene kansioon, johon tallensit MML:n kuntajako-XML -tiedoston ja valitse alhaalla 'Filter'-pudotusvalikosta 'All files'. Kuntajako-XML -tiedoston pitäisi nyt näkyä dialogissa, valitse se ja klikkaa 'Open'.
  6. Ruudulle aukeaa uusi dialogi, valitse siitä oikea taso AdministrativeUnit ja klikkaa 'Ok'.
  7. Kuntajaon pitäisi nyt näkyä ikkunassa
  8. Seuraavaksi lisätään näkymään Suomen rantaviivat Spatialite-tietokannasta. Klikkaa työkalupalkin painiketta 'Add Spatialite Layer'
  9. Avautuvassa dialogissa, lisää kytkös Spatialite-tietokantaan klikkaamalla painiketta 'New'
  10. Etsi avautuvassa tiedostodialogissa paikka, johon tallensit Spatialite-tietokannan kohdassa 2 ja klikkaa 'Open'.
  11. Yhdistä tietokantaan painamalla painiketta 'Connect'
  12. Dialogiin aukeaa kaikki tietokannassa olevat tasot. Valitse niistä aluetaso coast_p
  13. Molempien tasojen pitäisi nyt näkyä ikkunassa
  14. Joudumme muokkaamaan rantaviiva-tasoa hiukan, joten tehdään siitä ensin kopio. Klikkaa hiiren oikealla nappulalla tason coast_p päällä ja valitse 'Save as...'
  15. Talenna tiedosto ESRI Shapefile-muodossa nimellä fin_coast_p.shp haluamaasi paikkaan
  16. Poista alkuperäinen coast_p-taso näkymästä klikkaamalla sen päällä hiiren oikeaa nappullaa ja painalla 'Remove'
  17. Lisää kohdassa 14 luotu shapefile näkymään kuten kohdassa 4
  18. Klikkaa taas hiiren oikealla painikkellaa kohdassa 17 lisätyn shapefilen fin_coast_p päällä ja valitse 'Toggle Editing'
  19. Poistetaan fin_coast_p-tasolta Itämeri, jotta voimme leikata kuntatason pelkällä rantaviivalla. Valitse työkalupalkista työkalu 'Select Single Feature'
  20. Klikkaa Itämeren päällä mitä tahansa kohtaa, jolloin Itämerta kuvaava polygoni aktioivoituu
  21. Valitse 'Edit'-valikosta 'Delete Selected'
  22. Poistu muokkaustilasta samalla tavalla kuin aktivoitkin sen kohdassa 18
  23. Muista tallentaa muutokset ohjelman sitä kysyessä
  24. Seuraavaksi leikataan kuntajako-taso rantaviivalla. Valitse 'Vector'-valikosta 'Geoprocessing Tools' > 'Clip'
  25. Täytä 'Clip'-dialogi seuraavalla tavalla (voit myös valita jonkun muun nimen tulostiedostolle) - tässä vaiheessa saattaa kestää hiukan, joten malttia.
  26. MML:n kuntajakoaineistossa on mukana 3 tasoisia hallinnollisia rajoja: aluevirastokeskus (2ndOrder), maakunta (3rdOrder) ja kunta (4thOrder). Eri rajoja ei välttämättä heti huomaa, koska korkeamman tason rajaukset noudattalevat nekin kuntarajoja.
  27. Nyt mukaan halutaan vain kunnat, joten kysellään kunnat erilleen muista rajoista. Klikkaa kuntajakotason (fin_hallinnollinen_maa) päällä hiiren oikeaa nappullaa ja valitse 'Query'
  28. Avautuvassa kyselydialogissa, aktivoi vasemmalla olevasta listasta 'nationalLevel' ja klikkaa oikealla olevaa painiketta 'All'. Toiminto listaa kaikki fin_hallinnollinen_maa-tason ominaisuustietotaulussa olevan kentän 'nationalLevel' arvot. Toisin sanoen kaikki hallinnolliset tasot (kts. kohta 35)
  29. Valitaan vain 4-tason kohteet, eli kunnat. Kirjota kuvassa näkyvä rimpsu 'SQL where clause'-kenttään. Homma onnistuu myös kliksuttelemalla kenttiä ('Fields'), arvoja ('Values') ja operaattoreita ('Operators')
  30. Valinta on nyt päällä ja esimerkiksi 'Save as...'-toiminto kunnioittaa tätä valintaa. Talenna siis fin_hallinnollinen_maa-taso uutena versiona (esim. fin_kunnat_maa.shp) kuten kohdassa 14.
  31. Ja valmista tuli! Helppoa kuin heinänteko. Kohdassa 30 syntynyt shapefile on kuntajakokartta ilman merialueita.

Lopuksi

Etenkin verkkokehittäjät pitävät KML-tiedostotyypistä, koska sen yhdisteleminen vaikkapa Googlen palveluihin on melko suoraviivaista. Pekka Sarkola on kirjoittanut muualla pätevät ohjeet aineistojen kääntämisen KML-muotoon QGIS-ohjelman avulla.

Kunta-aineiston ominaisuustietotaulu (ts. paikkaan littyvä ominaisuustieto) on edelleen melko sotkuista. Tai miltä kuulostaa esim. merkkijono "(2:Kirkkonummi,Kyrkslätt)" kunnan nimenä? Tietoa olisi selvästi hyödyllistä vielä jatkojalostaa ja hajoitta vaikkapa eri kieliset kunnan nimet omiksi kentikseen.

Joona Lehtomäki - 2012

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.