Postinumeroalueet v. 2013, versio 0.1

Sain yleisövihjeen, että Itella on julkaissut osoitetiedot avoimena datana.

http://www.itella.fi/palvelutjatuotteet/postinumeropalvelut/perusosoitteisto.html
http://www.itella.fi/liitteet/palvelutjatuotteet/yhteystietopalvelut/postinumeropalvelut_palvelukuvaus_ja_kayttoehdot.pdf

Aineisto on tekstimuotoinen, mutta jokaiseen osoitteeseen on liitetty mukaan mm. postinumero, kuntanumero ja kadun tai tien nimi. Koska kuntanumero ja tienimet ovat mukana myös Maanmittauslaitoksen maastotietokannan tiestö osoitteilla -aineistossa, niin tuntui olevan olemassa jonkinlaiset mahdollisuudet saada aikaan postinumeroaluekartta yhdistämällä nämä kaksi aineistoa.

Kokeilin aineistojen yhdistämistä Spatialitessä, niin, että valitsin sellaiset tiet, joille löytyi kuntanumeron ja nimen perusteella pari Itellan aineistosta, ja lisäsin sen jälkeen teille muutamia postinumeroalueen tietoja. Seuraavaksi muodostin karkeat postinumeroalueet valitsemalla kaikki tiet, joilla on sama postinumero ja piirtämällä alueen, joka sulkee kaikki nämä tiet sisäänsä Convex Hull -toiminnolla. Tällä tavalla syntyi 2973 postinumeroaluetta. Alueita jäi ilmeisesti muodostumatta ja toisaalta ne menevät Convex Hullin käytöstä johtuen ja ehkä muidenkin virheiden takia päällekkäin ja taajamissa niitä voi olla yli kymmenenkin limittäin. Koska minulla ei kuitenkaan ole suurta mielenkiintoa alkaa parannella aineistoa, niin laitoin tämänhetkisen tilanteen ladattavaksi
http://latuviitta.org/documents/postinumeroalueet_2013_v01.zip

Aineisto on myös WFS-palvelussa http://hip.latuviitta.org/cgi-bin/tinyows ja muokkaustilassa (WFS-T), joten esimerkiksi Quantum GIS -ohjelmalla rajoja voi halutessaan korjailla. En kuitenkaan aio seurata millään tavalla mahdollisia muokkauksia, joten jos joku niitä tekee, niin ne tulevat menemään hukkaan.

Kunta/kylä/talo/tilarajoja eivät taida postinumerot johdonmukaisesti noudattaa, joten siitä aineistosta ei olla iloa? Eli johonkin postinumeroalueeseen kuuluvat tiet saattavat kuulua useamman kuin yhden kunnan/kylän/talon/tilan alueelle? Ja vaikka eivät kuuluisikaan, mihin postinumeroalueeseen sijoitettaisiin ne kunnat/kylät/talot/tilat, joita tiet eivät leikkaa? Toisaalta kaikkien kylien alueelle ehkä joku tie menee, joten jonkinlainen aineisto saattaisi olla toteutettavissa kylägeometrian perusteella.

Ehkä postinumeroalueet Suomessa eivät ole alueita samalla tavalla kuin jossakin muualla maailmassa, pitäisikö geometrian muoto olla joukko multiviivoja tai niistä jollain periaatteella bufferoituja multipolygoneita?

Hauskan näköinen kartta tuloksena kuitenkin tuli, kiitos siitä.

Ohje perusosoitteiston haltuunottoon ja ensimmäisten askelten ottamiseksi osoitteiston muuttamiseksi paikkatietoaineistoksi
http://latuviitta.org/documents/Itellan_perusosoitteiston_haltuunotto.pdf
Multiviivat ovat itse asiassa välivaiheena alueiden muodostamisessa. PostGIS 2.0:n Concave Hull -funktiolla pääsee jonkin verran puskuroitujen polygonien suuntaan, mutta ei silläkään automaattisesti kovin hyvää tulosta saa. Ongelmana on mm. postinumeroalueiden sisällä olevat postinumeroalueet, joilla pitäisi puhkoa reikiä isoihin alueisiin, ja pitkät tiet, joiden osoitteet kuuluvat jollain numeroväleillä eri postinumeroalueilla. Näitä minä en edes yrittänyt käsitellä millään tavalla, vaikka maastotietokannan aineistossa on tietoa, jonka perusteella se varmaan olisi mahdollista, eli tienpätkien fromleft/toleft/fromright/toright -kentät. Mutta kehittäkää menetelmää ja tehkää itse parempi.

Heh,

Tehdään sitten päällekkäistä työtä. Mulla on tekeillä hieman “sofistikoituneempi” viritys aiheesta. Tuo ConvexHull ei ole kovin hyvä, jos haluaa tehdä hyvää jälkeä.

Ilmoittelen kun saan demoista kirjailtua ajatukset jonnekin…

Tarkoituksen julkaista avoimen aineistona.

p

Olen myös käyttänyt postin osoitetiedostoa hieman samaan tyyliin kuin JRA.

Polygoninen generointia olen ajatellut geokoodaamaalla osoitetasolla esim. JRA:n tekemillä MML:n tiestön osoitepisteillä. Postin osoitetiedosto on vain kinkkisessä muodossa - aineisto pitäisi purkaa niin, että osoitevälit olisi yksittäisellä osoitetasolla. Silloin voisi verrata aineistoja keskenään ja siirtää postinumerot MML:n osoitteisiin. Sitten postinumeroalueet voisi generoida Thiessen polygoneilla. Tällä saisi karkean lopputuloksen, jossa ei pitäisi tulla päällekkäisyyksiä. Karttakeskus toki tekee tämän paljon viimeistellymmin huomioiden vesistojä, muita hallinnollisia rajoja jne. Mutta toiminnallisesti oikean voisi saada näin - eli että jokainen osoite on sille kuuluvan polygonin sisällä.

Kaikki tämä työ voi toki olla turhaa. Olen ymmärtänyt, että postinumeroaineistosta tulee (lähes) ilmaista tavaraa vuoden, kahden sisällä.

Niin,

Turhaa työtä maailmaan mahtuu.

Nyt kyllä näyttäisi siltä, että tuo postinumeroaineisto ei ole aukeamassa. Se asiaa pohtiva LVM:n työryhmä sai jatkoaikaa toukokuun loppuun asti. KK:n lisäksi postinumeroaluejakoja on myös Tilastokeskuksella sekä joillakin kunnilla. Kaikki ovat vähän erilaisia.

Mulla on tässä kohta prosssi kohdallaan. Jos joku haluaa demoaineistoa, niin voin laittaa aineiston tulemaan spostilla.

P

Jos postinumeroaineisto ei ole aukeamassa, niin kai se sitten pitää tehdä tältä pohjalta itse, vaikka järkevämpääkin tekemistä varmaan olisi. Eihän noita alueita nyt kuitenkaan ole kuin se kolmisen tuhatta. Jos oikein hienostuneita menetelmiä aikoo käyttää ja suhtautuu tähän niin kuin se olisi työtä (ei siis ollenkaan päällekkäistä minun huvin vuoksi kokeilemieni ronskien menetelmien kanssa), niin viimeiseen silaukseen tarvittavaa käsityötä jää luultavasti aika vähän jäljelle.

Hyödyllisempi aineisto syntyisi siitä, jos saisi tuon perusosoitteiston geokoodatuksi ™ ja lisäisi osoitteille koordinaatit. Itellan osoitteita on noin 396661, eli ihan siedettävä määrä sekin. OSM:sta ja valmiiksi irrotetuista MML:n osoitepisteistä varmaan saisi tuhansia - kymmeniä tuhansia pareja. Lisää saisi, kun opettelisi lineaarisen referoinnin käyttöä PostGIS:llä tai Spatialitellä ja kaivaisi välinumeroita maastotietokannan tiestön to/from/left/right -kentistä.

jep juuri tätä geokoodausta olen miettinyt. Mutta miten Itellan perusosoitteiston saisi expandattua yksittäiselle osoitetasolle? Nythän aineisto on osoiteväleittäin.

Sitten voisi konkatenoida tienimi-talonumero-kunta molemmista aineistoista ja pareja tosiaan syntyisi varmasti kymmeniä tuhansia. Tällä jo tekisi ihan siedettävät polygonit.

Noh,

Laitan teille demoaineiston linkit tulemaan. Pähkikää siitä parannusehdotuksia.

P

Pitäisikö palata OSM:in juurille ja mennä ulkotöihin vaikkapa Keypad-Mapperin kanssa
http://wiki.openstreetmap.org/wiki/Keypad-Mapper_3

Jos jokainen Suomen postinjakaja saataisiin mukaan OSM-projektiin, niin kaikki osoitteet olisi kartoitettu huomiseen iltapäivään mennessä. Miettikääpä sitä.

tarkemmin ottaen, olisi kartoitettu jokainen postilaatikko. :smiley: Eroa saattaa olla satoja metrejä maaseudulla. Ja tämän Itella on tehnyt jo aikaa sitten jakeluoptimointiaan varten.

Olenpa tahollani myös asiaa hieman pohtinut ja loppu- tai välituloksena sain mtk:n osoitteellisille viivoille postinumerot määriteltyä ilmoitetuin osoitevälein. Jatkojalostus polygoneiksi tosin oli vielä vain ConcaveHull:a käyttäen, 85% parametrinä. Pieniä päällekkäisyyksiä aiheutuu tämänkin funktion vuoksi. Huomattua tuli kuitenkin myös, että muutamia alueita jäi muodostumatta vuodenvaihteen kuntaliitosten takia. Kuntanumeroita vertaamalla osoitteet eivät täsmääkään, täytyisi vielä päivittää mtk-aineistoon uudet kuntanumerot. Toiseksi myös itellan aineistosta löytyi harmillisia virheitä, jotka aiheuttavat suurempia päällekkäisyyksiä.

Esim. Huuhantie Multialla ja Joutsassa:
KATUN2013021641750HAVUMÄKI HAVUMÄKI Huuhantie 1 31 303 172Joutsa Joutsa
KATUN2013021642600MULTIA MULTIA Huuhantie 2 6 495Multia Multia
KATUN2013021642600MULTIA MULTIA Huuhantie 0 172Joutsa Joutsa

Alimmalla esimerkkirivillä on siis selkeästi jotain väärin, tai sitten koko rivi on turha. Näemmä kaikenlaista tällaistakin tuolla riittäisi parsittavana.

Ainakin kuntanumerot ja mieluiten jollain tapaa automatisoidusti nuo itellan datan virheet täytyisi saada korjattua ennen kuin alueista saa mitään järkevää. Tai sitten polygoneiden muodostamisessa täytyisi hylätä etäisyyttä x kauempana erillään olevat pisteet/viivat. Ellei sitten Itella korjaile julkaisemaansa dataa joskus (itse käyttämänikin on jo parin viikon takaa). Selvästikin olisi liian helppoa, jos nuo alueet tulisi valmiiksi tarjolle.

  • Golug

edit: vanhentuneet linkit poistettu

En itse noita haja-asutusalueita vielä kokeillutkaan, pitääkin tutkia asiaa.

ConcaveHull on kyllä väärä metodi. Kuten Miika jo mainitsi niin joku Tesselation -funktio olisi tarpeellinen, lisätietoja: http://en.wikipedia.org/wiki/Tessellation.

Kysymys: mikä on nopein softa tehdä Voronoi-analyysit 4+ miljoonasta osoitepisteestä?

P

Tein pikakokeen OpenJUMP:lla, 121898 pisteen Thiessen-polygonit, mitä ne sitten ovatkaan, syntyvät alla 2 sekunnissa. Kartalle piirtämiseen kului 3 sekuntia lisää. Jos löydät jotain parempaa, niin voit siis parhaimmillaan säästää 40 x 5 sekuntia eli reilut kolme minuuttia elämästäsi. Tosin minä en todellakaan tiedä, onko tuo Jumpin Vororoi-analyysi sitä, mitä haet.

Pitääköhän ostaaa parempi kone, kun mulla menee 172k pisteellä ainakin yli minuutti. Mikäs versio OpenJump:sta?

Versio taisi olla r3277 eli uusin eilisistä kehitysversioista. Kone oli Windows 7 kannettava, jossa oli 32-bittinen Java 1.6 jolle oli annettu 1,5 Gt muistia. Mutta ei se suostunut oikein toimimaan kuin max. 500000 osoitepisteellä. Ehkä QGis pystyy käsittelemään koko pistejoukkoa kerralla, ftools-työkaluissa on kai jotain Voronoihin viittaavaa. OpenJUMP 64-bittisellä Javalla saattaisi myös toimia , koska sille voi antaa enammän muistia, jos on mitä antaa.
Sulauttamalla syntyneet Thiessen-polygonit yhteisen postinumeron perusteella saa todellakin aikaan jo aika kivan näköisiä postinumeroalueita.

Ftools oli aika hidas. Spatialite 4.0:n uusi ST_Voronoj (tms) on ihan ok nopeuden suhteen. Tosin prosessissa pitää heittää kamaa PostGIS:stä Spatialiteen ja takaisin.

Sitten jos ajot pistää palasiin, niin pitää miettiä yhdistämistä.

P

Yllätys oli jälleen, kuinka paljon aineistoissa löytyy samannimisiä katuja samojen kuntien alueella. Jonkinlainen etäisyyden tarkastelu näille on kai tehtävä, koska suorilta ei oikein voi pudottaa poiskaan saman kunnan sisällä olevia samannimisiä katuja, jotka esim. kuuluvat kahteen eri nimiseen toimipaikkaan. Taajaman ulkopuolella pitkän tien jakautuessa eri postinumeroihin voi toimipaikan nimikin vaihtua samalla.

Voronoj diagrammitkaan ei ole aivan ongelmaton tesselation-funktio, koska diagrammi sulkee aina sisäänsä pisteet, jotka alueiden rajalla ollessaan eivät enää olekaan rajapisteitä. Tämä taas on ongelma enemmänkin taajamassa, jossa postinumeroalueet katkeavat katuihin, tai pariton puoli kuuluu eri alueeseen kuin parillinen. Ehkä sopivalla intersektiolla sekin selviäisi. Tällä kertaa ei mennyt ajatus vielä niin pitkälle noiden kuntien sisäisten katupäällekkäisyyksien tuottaessa päänvaivaa.

Siis ei kai saman kunnan alueella voi olla kuin yksi samanniminen katu? Tai ainakin kuntaliitoksissa oli aikamoinen ongelma poistaa ne päällekkäisyydet. Tietysti useassa viivassa on sama kadunnimi, koska katu koostuu pääasiassa useasta viivan pätkästä.

Vai ymmärsinkö taas jotain väärin?

P

Luonnossa tilanne on noin, mutta Itellan aineistossa esimerkiksi Helsingin Mannerheimintie on 10 kertaan. Osaksi siitä syystä, että sillä on 6 eri postinumeroa (00100, 00250, 00260, 00270, 00280 ja 00300). Lisäksi ominaisuustiedolla “KIINTIETOTYYPKDI” on neljällä postinumerolla arvoja 1 ja 2. Näistä ne 10 riviä syntyvätkin. Ja kun maastotietokannan tiestössä on vastaavalla tavalla useita tienpätkiä, joilla on saman kunta-tienimi-yhdistelmä, niin aineistojen parittamisesta raakana syntyy paljon tarpeettomia ja vääriäkin yhdistelmiä.