Maanmittauslaitoksen ilmaisten aineistojen hyödyntäminen

Onko näin, että tiennimistö & osoitenumerointi ei nyt kuitenkaan ole avattavan datan joukossa? Ensimmäisessä testitorrentissa olevassa lxxxxxxv.shp -aineistoissa näyttää olevan tyhjää täynnä teiden TEKSTI -sarake.

Meinaan vaan, että maastotietokannan sivulla http://www.maanmittauslaitos.fi/digituotteet/maastotietokanta mainitaan maastotietokanta avoimeksi, ja tietosisältöluettelossa maastotietokannan sisällöksi mainitaan mm. “Tiestö osoitteilla” - tämän perusteella näyttää, että tiestökin kuuluisi avattavan datan joukkoon.

Näyteaineistosivulta http://www.maanmittauslaitos.fi/node/3406 ladattavassa tiedostossa kyllä sitten on tiedosto, josta löytyy u311109Av.shp jossa osoitteet & talonnumerot ovat mukana.

Pitäisi sen tietääkseni olla avointa. Ilmeisesti se jostain syystä ei nyt ole torrenttina jakoon tulleessa mukana…? Joka tapauksessa “tiestö osoitteilla” -sivullakin lukee “Aineistosta ei peritä käyttöoikeusmaksuja. Tiedostolatauspalvelusta itsepalveluna aineistoja ladattaessa ei peritä myöskään tietoväline-, käsittely- eikä toimituskuluja.”

Nähtävästi MML:llä tapahtunut tässä pieni kämmi. Aiemmin ainakin osoitteita ei ole tullut maastotietokanta-tuotteen mukana, vaan tiestö osoitteilla on ollut oma erikseen tilattava tuotteensa. Tätä aina ihmettelin ja tuntui aika rahastukselta, sillä tiestön geometria oli kuitenkin identtinen.
Nyt nähtävästi tuotteita ei ole kuitenkaan osattu/hoksattu järjestetty uudestaan, niin kuin tuolla on ilmoitettu.
Tästä kannattaa olla yhteydessä mml:ään.
Ennen kuin nimistö ja osotteet saadaan mukaan, niin ei mun mielestä kannata teitä OSMiin ladata.

Toivottavasti näinpäin, että virhe on tiedon sisällyttämisessä eikä aineiston kuvauksessa.

En saanut mainitsemaani yhden rivin perliä toimimaan oikein, joten panen nyt jakoon aikaisemmin tekemäni, paikannimirekisterin UTF-8:ksi muuttavan perl-skriptin. Tämä toimii Linuxilla (sekä Windowsin rivinlopuilla että natiivi-Linux-rivinlopuilla), ja testannen viikonlopun aikana Windowsissa sekä Cygwinissä että Strawberry Perlissä.

http://pastebin.com/emkzmGst

Tallenna skripti esim. nimellä mml-pnr-utf8.pl ja aja se tähän tyyliin – tulostus pitää ohjata uuteen tiedostoon:

perl mml-pnr-utf8.pl PNR_2011_01.TXT > PNR_2011_01-utf8.TXT

Joka tapauksessa on toistettava, että maastotietokannan nimistön muunnos ei onnistu tällä skriptillä, koska itse tietokannan kentät ovat dbf-tiedostoissa.

Skriptiä voi luultavasti käyttää, jos muuntaa shapefilet ensin johonkin tekstipohjaiseen tiedostomuotoon ogr2ogr-ohjelmalla. Noista tulee ensimmäisinä mieleen GML ja Mapinfo mid/mif. Prosessi voisi mennä suurin piirtein näin:

  • Asetetaan GDL:lle SHAPE_ENCODING -muuttuja ja sille arvo ISO-8859-10
  • muunnetaan shapefile GML-muotoon komennolla
    “ogr2ogr -f GML output.GML input.SHP --config OGR_FORCE_ASCII no”
  • Ajetaan output.GML mml-pnr-utf8.pl -skriptin läpi

Nyt GML-tiedoston pitäisi olla kunnossa ja sitä voi käyttää seuraavien muunnosten syötteenä. Testaamatta tätä ei kannata kuitenkaan uskoa. Vähän samantapaiseen aiheeseen liittyviä kokemuksia on ohjeessa http://latuviitta.org/documents/Mapinfo_GDAL_ogr2ogr_ja_UTF-8.pdf

Toinen torrentti, ilmeisesti tämä on nyt se kaivattu nimistö osoitteilla:

http://laillisettorrentit.net/index.php?page=torrent-details&id=29fba9f469275246a74f1cee28f0c0d1defca112

Tuli tässä mieleen kun torrentit näyttävät ainakin tällä haavaa toimivan varsin mukavasti jakelukanavana, että yksi tapa lähestyä tätä OSM:ään syöttämis -asiaa olisi protoilla OSM-muotoon muunnetulla MML-datalla niin, että pistettäisiin OSM-muotoon muunnettua dataa torrent-jakeluun.

Itse kukin voisi sitten omilla OSM-dataa käyttävillä työkaluillaan testata, miltä OSM-muodossa välitetty MML-data käytännössä näyttää ja tuntuu arkisilla OSM-välineillä, ja tämänkin perusteella sitten voisi arvioida, mitkät osat datasta on mielekästä varsinaiseen OSM-kantaan syöttää.

Onko kukaan laskenut, minkä verran tilaa mahtaisi viedä pbf-muodossa maastotietokannan koko Suomen aineisto OSM-muotoon muutettuna, sisällyttäen a) kaikki kentät tai b) sellaiset joita tyypilliset OSM-ohjelmat osaavat käsitellä? (eli minkä kokoinen mml-maastotietokanta.pbf) 9,8 gigan zipissä ei ollut tiennimiä, joten varmaan käytännössä tuo todennäköisesti yli 10 gigan menisi jos kaikki sisällytetään, tosin pbf-pakkaus saattaisi kyllä vähentää tilantarvetta (vrt. .pbf:n / .osm.bz2:n kokoero)

Muoks: Jos OSM:n lisenssiehdoista tulee OSM:ään sisällyttämiseen ongelmia (johon mahdollisuuteen aiemmissa viesteissä on viitattu), erillinen OSM-muotoisen MML-datan jakelu välttäisi tämän.

Onko noista osoitteista mitään tulkintaohjeita missään?

Ilmeisesti ne luetaan teiden FROMLEFT, FROMRIGHT, TOLEFT ja TORIGHT attribuuteista?

(EDIT: Oheinen ohje löytyi manuaalista:
Osoitetiedot
Tien niminä tallennetaan kunnan virallisen osoitejärjestelmän mukaiset tieni-met. Osoitetiedot määritetään tieviivasegmentille vasemman ja oikean puolen maksimi- ja minimiosoitenumeroina. Haja-asutusalueilla osoitenumeroiden kasvu tapahtuu etäisyyden suhteessa kuntakohtaisesti (kunnasta riippuen joko 10 m tai 100 m matka kasvattaa osoitenumeroa yhdellä). Samoin kuntakohtai-sesti määräytyy, millä puolella (oikea – vasen) on parilliset ja parittomat osoite-numerot. )

Toimii se Windowsissakin: sekä Strawberry Perlillä (5.14.2) (käytin portable-versiota) että Cygwinin alla (perl 5.10.1).

Kaiken kaikkiaan tästä voi pienellä vaivalla muokata mitä tahansa tekstitiedostoja muuntavan skriptin.

Tein sitten ensimmäinen onnistuneen kokeilun MML:n tieaineiston käytöstä reitittävässä aiemmin OSM-aineistoa käyttäneessä navigaattorissa, reilun 50 kilometrin reitti löytyi.

Lähtöaineistona MML:n yhden karttalehden aineisto tiestö osoitteilla, konversiossa mukana teiden perusominaisuudet, nekin isolta osin stetson-menetelmällä tässä vaiheessa kun tarkoitus oli ottaa ensimmäinen askel ja nähdä esim. miten risteykset toimivat vai toimivatko. Ts. allaolevassa tägikonversiossa on vielä isolta osin tietyyppien vastaavuus OSM:n tietyyppeihin ongelmallista, ei kannata suoraan mihinkään isompaan käyttää, mutta testaus ja kehitys on toki tervetullotta.

Käytetty OSM-konversio pnorman:in ogr2osm-versio, kts. http://wiki.openstreetmap.org/wiki/Ogr2osm , allaolevalla translations -hakemistoon laitetulla konversiolla varustettuna. Konversioon käytetty komento python ogr2osm.py -t mml-roads-with-names uxxxxxxv.shp sopivat MML-tiedostot sisältävässä hakemistossa ajettuna. Ääkköset ovat koodattuna muotoon ä joka näkyy käyttämässäni navigaattorissa tulevan ruudulle oikein.

Yllättävänkin helposti tässä näköjään pääsee liikkeelle, tällä työkalulla tulee tosin sitten mutkia matkaan siinä vaiheessa kun haluaa ottaa erityyppisiä maastotietokannan aineistoja käyttöön. Eri karttalehtien yhdistämisen toimivuudesta en osaa vielä sanoa mitään.

Alla on tiedosto translations/mml-roads-with-names.py jonka on tarkoitus hoitaa MML-tägein muunto OSM-tägeiksi, varsinaisen shapefile → OSM-vektorimuunnoksen tekee muokkaamaton ogr2osm.py


# coding=utf8
from osgeo import ogr
import re
import urllib
import json

uvmfeatures = []

def filterTags(tags):
    if tags is None:
        return
    newtags = {}
    for (key, value) in tags.items():
        if (value != ""):
            value = value.strip()
        if (key == "TEKSTI" and value != ""):
            newtags["name"] = value
        elif (key == "YKSSUU" and value != "0"):
            newtags["oneway"] = "yes"
        elif (key == "YKSSUU" and value == "0"):
            continue
        elif (key == "VERSUH" and value == "0"):
            continue
        elif (key == "VERSUH" and value < 0):
            newtags["layer"] = value
        elif (key == "VERSUH" and (value > 0 and value < 10)):
            newtags["layer"] = value
        elif (key == "VERSUH" and value == "-1"):
            newtags["layer"] = "-1"
        # Autotie Ia
        elif (key == "LUOKKA" and value == "12111"):
            newtags["highway"] = "primary"
        # Autotie Ib
        elif (key == "LUOKKA" and value == "12112"):
            newtags["highway"] = "primary"
        # Autotie IIa
        elif (key == "LUOKKA" and value == "12121"):
            newtags["highway"] = "secondary"
        # Autotie IIb
        elif (key == "LUOKKA" and value == "12122"):
            newtags["highway"] = "secondary"
        # Autotie IIIa
        elif (key == "LUOKKA" and value == "12131"):
            newtags["highway"] = "tertiary"
        # Autotie IIIb
        elif (key == "LUOKKA" and value == "12132"):
            newtags["highway"] = "tertiary"
        # Talvitie
        elif (key == "LUOKKA" and value == "12312"):
            newtags["highway"] = "winter_road"
        # Polku
        elif (key == "LUOKKA" and value == "12313"):
            newtags["highway"] = "path"
        # Kävely- ja pyörätie
        elif (key == "LUOKKA" and value == "12314"):
            newtags["highway"] = "cycleway"
            newtags["foot"] = "yes"
        # Ajopolku
        elif (key == "LUOKKA" and value == "12316"):
            newtags["highway"] = "track"
        # Ajotie
        elif (key == "LUOKKA" and value == "12141"):
            newtags["highway"] = "unclassified"
        # Tarkista
        elif (key == "PAALLY" and value == "0"):
            newtags["surface"] = "unpaved"
        # Tarkista
        elif (key == "PAALLY" and value == "1"):
            newtags["surface"] = "paved"
        # Tarkista
        elif (key == "PAALLY" and value == "2"):
            newtags["surface"] = "paved"
        elif (value == ""):
            continue
        else:
            newtags[key] = value
        #if (key == "Layer" or 
        #    (key == "Text" and value != "")):
        #    newtags[key] = value
        #if (key == "Layer" and value != "VA-UVM-BLDG-CODE"):
        #    newtags["building"] = "yes"
    return newtags

Nimitin itseni OSM yhteisön ja Maanmittauslaitoksen väliseksi yhteyshenkilöksi. Paikka on vapaa heti kun joku muu ilmoittautuu tähän virkaan.

Ensin ruvetaan pitämään koordinointikokouksia. Paikkan OSM Irc-kanava (osm-fi) maanantaisin klo 18. Tai ainakin ensimmäinen pidetään ma 14.5. klo 18:00 (UTC+3?, Helsingin kesäaikaa).

Asioita:

  • Käyttöoikeuksien asiat: lukekaa legal-talk -listalta lisää. MML lisensssi vs. OSM lisenssi
  • MMLn aineistojen hyödyntäminen: imports vai ei. Koska saadaan ladattua, tekniset yksityiskohdat
  • Markkinointi

Jotain muuta?

Erittäin hämmentävää. :open_mouth:

Maastotietokannan dbf-tiedostoissa olevien nimien muuntaminen saamen kielten osalta ei onnistu käyttämällä ISO-8859-10-koodausta. Sen sijaan Windowsin codepage 1250 muuntaa ne š:t ja ž:t oikein.

Mutta! Äkiseltään katsottuna kirjaimet đč, sekä koltansaamen omat kirjaimet, on korvattu dbf-tiedostoissa merkillä, jonka heksakoodi on 1A (kyseessä on kontrollimerkki)!! Esim. tämän järven koltansaamelainen nimi Nu’ǩǩešluubbâl on tavoittamattomissa tällä “koodauksella”.

Voisiko joku muukin katsoa, näyttääkö tiedostosta X5/X51/X51132_ea_mtk.shp.zip löytyvä mxxxxxxt.dbf samalta, etten vain puhu läpiä päähäni? Olen tässä pari päivää pähkäillyt tämän kanssa, kunnes lopulta keksin katsoa heksaeditorilla.

No niin,

Kutsun koolle, mutten itse saavu paikalle. Tein vielä muistutuksen ja muistin asian tuntia ennen. Noh, sitten tuli hässäkkä päälle ja asia painui unholaan. Pahoittelen, ehkä me tässä mietitään joku parempi hetki.

Juu, näyttää olevan vikaa datassa. Palautetta MML:lle?

Ilman muuta, palautetta MML:lle ja aineistot korjataan. 1:50000 rastereiden kolme pilallista lehteä on jo korjattu.

…Jos jaksatte niin löytyneitä virheitä voisi laittaa listaksi, koska on odotettavissa että eri (vanhojakin) versioita mml:n aineistoista liikkuu ihmisillä niin ei toivottavasti kaikkien tarvitsisi samoja virheitä keksiä aina uudelleen ja uudelleen. …Tuolla ollaan jotain sen suuntaista yritelty:

http://wiki.openstreetmap.org/wiki/Fi:Maastotietokanta/Virheet


i.

Ihmettelin samaa latauspalvelun tiedostoja tutkiessa. Kyselin asiaa MML:sta ja sain vastauksen (4.6.2012):

“Vielä ei ole suunnitelmissa, että Tiestö osoitteella aineisto tulisi latauspalveluun. Aineisto voi tilata esim. myynti@maanmittauslaitos.fi osoitteesta tai sivun http://www.maanmittauslaitos.fi/avoindata/hankinta kautta”.

Eli tuosta ymmärrän että on avattavan datan joukossa, mutta ei latauspalvelussa. Ja näköjään joku reipas yksilö olikin tuon laittanut jo torrentina jakoon.

Sain myös vinkin (ystävällisesti aloittelijaa neuvoivat) mistä löytyy kuvaus maastotietokannan shape-zippien tiedostojen nimeämisestä (exxxxxxp jne). Löytyy Maaastotietokannan kohdemallin ensimmäisen välilehden aivan lopusta “Tietojen luovutusformaatit ja nimeäminen”:
http://www.maanmittauslaitos.fi/sites/default/files/Maastotietokanta_kohdemalli.xls

Mikäs on tilanne tuon lisenssiepäselvyyden kanssa?

Puuhailen nimittäin Hämeenlinnan kunnan alueiden (pesuveden mukana menee myös Hattula ja Janakkala) rakennustuonnin kanssa käyttäen maastotietokannan aineistoja. Valmiita, reunoiltaan puolikkaat talot viereisiin ruutuihin yhdistettyjä osm-tiedostoja on maastotietokannan karttaruuduista odottamassa jo 25 kappaletta. (Luokat 44300, 42210-12, 43320-22, 42230-32, 42240-42, 42250-52, 42260-61 ja 42270)

Ei mitään epäselvyyksiä. Mutta halutaan asiaa nyt hieman tarkentaa.

Koetan saada nyt viikonlopun aikana tehtyä ehdotuksen Memorandum of Understanding:stä. Kiertää tuolta OSM:n Legal-aktiivien kautta, jotta saadaan siitä kielioppivrihreet pois.

Sitten lähtisii MML:n kommenteille. Ei pitäisi olla ongelmia.

Tässä vähän pohjaa:

*Here are principles:

NLSF agree that their data license is compatible with OSM cc-by-sa and ODbL.
OSM will add NLSF name and text to Attribution section of OSM Wikipedia
NLSF data can be used as background / reference data or it can be imported to be part of OSM
It is recommend that OSM mappers will include also source tags, if they use NLSF datasets (reference or import). Also mention of date time stamp (year) should be included
*

Kommentteja voi kirjoitella tännekin.