Postinumeroalueet v. 2013, versio 0.1

Ahaa, nyt ymmärrän logiikkanne. Omassa “ratkaisussani” lähdin heti siitä, että ei postinumeroalueita voi synnyttää tien nimien perusteella ollenkaan. Sen takia, että pitkä tiet jakautuvat usealle alueelle sekä monesti postinumeroalueen jakajana on tie (eli vasen ja oikea puoli eri puolilla tietä).

Ainakin tuossa Mannerheimintiessä en nähnyt pahempaa ongelmaa. Toisin on esimerkiksi Kivalterintie:
http://www.verkkoposti.com/e3/postinumeroluettelo?po_commune_radio=zip&streetname=Kivalterintie&po_commune=Helsinki&zipcode=

Numerot 3-21 ovat 00620 ja 1-25 00640. Hmm, eli siis 3-21 ovat sisi sekä 00620 ja 00640. Tai ilmeisesti asiakas saa valita kumpaa käyttää :wink:

Solakalliontie 1, Helsinki on kanssa mielenkiintoinen…

No, minä olen vain leikkinyt aineistolla ja kokeillut, saisiko pienimmällä mahdollisella vaivalla aikaan jotain käyttökelpoista tai edes kivaa. Tiet tulevat mukaan postinumeroalueiden muodostamiseen epäsuorasti, koska postinumerot on liitetty Itellan aineistosta maastotietokannan geometrioihin tällä ronskilla kyselyllä

SELECT mtk.geometry, itella.postinro
FROM maastotietokannan_tiet mtk, Itellan_perusosoitteet itella
WHERE mtk.teksti=itella.katufi
AND mtk.kunta_nro=itella.kuntakdi

Tämä johtaa siihen, että jokainen maastotietokannan Helsingin Mannerheimintien pätkä paritetaan jokaisen Itellan aineistossa esiintyvän Helsingin Mannerheimintien kanssa, mistä syntyy yhteensä 900 riviä, joista valtaosa on vääriä. Lääkkeenä voisi olla väärien parien karsiminen tutkimalla maastotietokannan teiden from/to/left/right -arvoja ja verrata niitä Itellan pienkiinteistonumero/suurkiinteistonumero-arvoihin. Tai kenties irrottaa maastotietokannan osoitteet pisteiksi ja parittaa ne Itellan osoitteiden kanssa niin, että otetaan huomioon kunta, katu ja osoitenumero. Parittelun tuloksenhan ei tarvitsisi olla mitenkään täydellinen, koska alueet voi muodostaa myös edustavan otoksen perusteella.

Kyllä alueet pitäisi voida muodostaa nimenomaan katujen ja kuntien perusteella, jos aineisto on virheetöntä. Olen omassa ratkaisussani lähtenyt nimenomaan yhdistämään mtk:n ja itellan aineistosta löytyvät kadunnumerot. Postinumero katkeaa yleensä risteyksestä, kuten mtk:n aineistossakin viivat, joten en nähnyt tässä sinänsä ongelmaa.

Pieniä virheitä tosin on näkynyt molemmissa aineistossa, esim. mtk:n viivoissa vääriä katunumeroita, tai itellan listassa samalle kadulle ja postinumerolle jostain syystä kaksi eri kuntaa, jotka ovat 100km päässä toisistaan. Nämä pitäisi olla sopivasti poimittavissa poiskin.

Mielenkiintoisia virheitä itellan aineistossa taitaa olla muutenkin, kuten edellä mainittu Kivalterintie. Kyseisessä tapauksessa voisi luulla, että väli 1-25 tulisi olla 23-25, koska ei tuollaisia päällekkäisyyksiä pitäisi olla.

Lisäksi kuntaliitosten jäljiltä molemmistakin aineistosta tosiaan löytyy samoja kadunnimiä saman kunnan alueella, jotka kuitenkin ovat eri paikassa. Uusimpien liitosten myötä tämä ei toki ole ihmekään. Vielä ei ole tullut mieleen täydellistä ratkaisua tämän osalta.

Ainakin joissakin kuntaliitoskunnissa katu/tienimistöä on uusittu, jottei päällekkäisyyksiä tulisi. Tallensin itselleni vuoden 2009 Jyväskylän seudun kuntaliitoksen tiimoilta parikin dokumenttia nimenmuutoksista. Toisessa on listattu lähes 3.500 kadun/tiennimeä. Tosiasiassa nimiä ei ole noin monta, koska moni nimi esiintyy useammin kuin kerran. Kirkkoteitä löytyi kuusi: kaupungista, Säynätsalosta, maalaiskunnasta, Korpilahdelta, Muuramesta ja Toivakasta. Toisessa prujussa listataan sitten sekä vanhat nimet, että uudet. Kirkkotie jäi Kirkkotieksi entisen maalaiskunnan Vaajakoskella. Muut muutettiin mm. Saarnatieksi sekä Kirkonmäentieksi. Toivakan kohdalla ei näyetty uutta nimeä, vaikka senkin Kirkkotielle oli kirjattu “muuttaa” -merkintä. Ehkäpä sitten seuraavalla liitoskerralla, kun Toivakka(, Laukaa ja Muurane) pakotetaan Jyväskylän etäkyliksi.

Itellan postinumerolistauksista löytyy aina välillä ilmiselviä virheitä. En nyt muista suoralta kädeltä, mutta kerran etsiessäni tiettyä tietä postinumerolla, niin listasta löytyi myös Karstulan/Kyyjärven/Kinnulan… sejasetie. Kyseistä tietä ei ole olemassa. On joko bugi tai inhimillisestä erehdyksestä johtuva moka. (Ellei sitten ole kyse “pääsiäismunasta” :wink: )

Yksi etu aineistojen vapauttamisessa on se, että mahdolliset bugit korjaantuvat nopeasti. Tietääkö kukaan onko itellalla jotain aineistoon liittyvää palsvelusähköpostiosoitetta, johon virheistä voisi ilmoittaa?

Postin verkkosivulla näkyy olevan palautelomake. Menisikö viesti perille, jos valitsee vaihtoehdon “Muu palaute”? Tuon lisäksi löytyy sähköpostiosoite (asiakaspalvelu@posti.fi) ja onhan postilla oma lärvikirjasivunsakin.

Heivasin tuolta palautelomakkeen kautta yhden virheen (Espoon Huvilakatu 14) ja sieltä jopa tuli sähköpostilla ihan ihmisen tekemä vastaus. Katsotaan korjaantuko. Oli hieman kryptisempi kuin nuo muut mainitsemani.

P

Kokeilin tällä kertaa 2,75 miljoonalla pisteellä ja OpenJUMP:lla 64-bittisellä Javalla ajettuna. Muistia annoin 4 Gt.
Pisteiden luku Spatialite-kannasta: 17 sekuntia
Polygonien luominen: 75 sekuntia
Polygonien sulautus yhteisen postinumeron perusteella: 70 sekuntia

OpenJUMP:in Voronoi-työkalussa on se kiva ominaisuus, että se osaa siirtää ominaisuustiedot pisteiltä polygoneille, minkä ansiosta voidaan siirtyä suoraan sulautusvaiheeseen. Aikaa 2954 postinumeroalueen luomiseen kului siis yhteensä 162 sekuntia. Minun mielestäni se on hyvä aika.

Se on hyvä aika, mun ptää päästä samaan. Tosin pitäisi kyllä saada homma pelittämään komentoriviltä…

P

Täytyneepä katsella sopiva yhteystieto ja laittaa lista menemään. Itse löysin kunnan mukaan ryhmiteltyjä päällekkäisiä osoitevälejä eri postinumeroille yli parituhatta, joista uniikkeja katu-kunta-pareja oli 1867 riviä. Jokusellakin kadulla oli siis päällekkäisiä välejä sen tarkemmin vielä niitä eritellyt.

Laitoin OpenJUMP:in Vororoi-funktiolla tehdyt alueet shapefileksi ja ladattavaksi. Minä itse en taida tämän enempää enää postinumeroiden kanssa puuhata.
http://latuviitta.org/documents/postinumeroalueet_2013_v02.zip

Päivitin ohjeen http://latuviitta.org/documents/Itellan_perusosoitteiston_haltuunotto.pdf
Siinä on nyt selostettu myös postinumeroalueiden muodostaminen concave hull -menetelmällä ja Voronoi-diagrammin kautta. Mukana on paljon havainnollistavia kuvia.

Taidanpa postata omankin välitulokseni shapefile-muotoisena. OpenJUMP:lla päädyin itsekin tekemään voronoi-polygonit. Osoitteiden postinumeroluokittelun tein siis jo aiemmin ilmoitettujen ja saatavilla olleiden osoitevälien mukaan. Tulos ei ole täydellinen, koska mtk-aineistossa on välillä pieniä sijaintivirheitä, ja itellan aineistossa on tällä hetkellä parilla tuhannella kadulla päällekkäisiä osoitevälejä. Niinpä isojen alueiden sisään syntyy tällä tavoin hyvin pieniä postinumeroalueita, jotka eivät sinne kuuluisi. Tuloksena on tällä hetkellä 5330 aluetta, vaikka eri postinumeroita otoksessa on vain 2961.

http://dl.dropbox.com/u/76347308/itella_pono-alueet_130311_b02.zip

Ajattelin vielä sen verran puuhailla asian parissa, että ainakin pienimmät syntyneet turhat ja väärät alueet sulauttaisi sitä ympäröivään oikeaan postinumeropolygoniin. Toisaalta myös irrallaan varsinaisesta alueestaan olevat sivupolygonit voisi todennäköisesti poistaa ja päästä polygonien yhteismäärässä lähemmäs tuota kolmea tuhatta.

Hyvältä näyttää. Tarkastelin kokeeksi Jyväskylän seutua ja muutama omituisuus löytyi:

  • Keljonkankaan (ponro 40530) alueen sisälle on muodostunut pala Korpilahtea (41800) [matkaa näiden kahden välillä on siinä 20-25 km]
  • Palokan (40270) sisälle Rutalahtea (41710)
  • Kuohun (41930) sisälle samaten Rutalahtea

Hieman on hankalaa hahmottaa meneekö alueet oikein, kun esim. Kuohu näkyy kahtena alueena. Sen jakaa kahdeksi alueeksi Petäjävedestä (41900) “irtautunut” alue. Noiden kahden ponro-alueen välissä pitäisi olla ainakin Kintaus (41920).

Sairasvuoteella oli sopivasti aikaa ihmetellä tapauskohtaisesti näitä mainittuja muutamia virheitä. Kaikkiaanhan niitä on se parisen tuhatta, joten jonkinlainen alueiden irrallisuuteen tai vastaavaan perustuva korjailu olisi tarpeen, ellei aineistojen virheitä saada korjatuksi. MTK-aineisto näyttää kyllä äkkiä katsottuna varsin hyvältä päivitettyäni sen tuoreempaan, jota tarjoiltiin näemmä vain GML-muotoisena. Itella sen sijaan tarjoilee ainakin julkisesti yllättävänkin virhepitoista listaa.

  1. tapaus näyttäisi johtuvan tuollaisesta virheestä, parillisen puolen osoitenumeroista vaikuttaisi unohtuneen kakkonen edestä. Tällaisia taitaa olla melko vaikea automatiikalla havaita tai suodattaa, ainakaan ennen alueiden muodostamista.

kunta | pono  | katufi | alku | loppu
  179 | 41800 | Ysitie | 220  |  326 
  179 | 41800 | Ysitie | 2133 |  2721

  1. tapaus on näitä helpommin löydettäviä, joissa on selkeästi päällekkäisiä katuja tai osoitevälejä. Näitä toivottavasti Itella korjaisikin piakkoin.

kunta | pono  |      katu      | os_väli  
  179 | 40270 | Koskelantie    | 3-35
  179 | 41710 | Koskelantie    | 11-115
  179 | 40270 | Koskelantie    | 28-50
  179 | 41710 | Koskelantie    | 36-140

  1. tapauksen virheen alkuperääkin on vaikeampi arvata, veikkaisin kuntaliitoksen jäljiltä vääräksi jäänyttä kadunnimeä 41710-alueella Vehkasuontien kohdalla.

kunta | pono  |    katufi    | alku | loppu
  179 | 41710 | Vehkasuontie |    2 |    10
  179 | 41710 | Vehkasuontie |    5 |    11
  179 | 41930 | Vehkasuontie |   36 |      
  179 | 41930 | Vehkasuontie |   19 |    39

Viimeinen tapaus, eli Kuohun kahdeksi jakava virhe johtuukin sitten virheellisestä Pontikkalantiestä. Jyväskylän (179) puolella kun kyseistä katua ei ole ollenkaan ja Petäjäveden puolellakaan sen ei alueittain katsottuna kuuluisi olla 41900 postinumerolla. Mikä sitten lienee virheen syynä tässäkin…


kunta | pono  |     katufi     | alku | loppu 
  592 | 41900 | Pontikkalantie |      |      
  179 | 41930 | Pontikkalantie |   63 |      

Täytynee seuraavaksi vikalistaksi Itellalle yrittää poimia osoitteita noista virheellisesti toisten alueiden sisään muodostuvista pikkualueista. 2. tapausta vastaavat päällekkäiset osoitteet -lista jo menikin korjattavaksi, sen saamiseksi kun ei tarvinnut minkäänlaista sijaintitietoa. Tämäkin toki helpottuisi, jos saisivat ensin nuo aineistonsa “helpommat” virheet korjattua.

Itellalle virheet voi laittaa osoitteella postinumerot _tahan_miuku_mauku itella.com. Tai sitten web-lomakkeen kautta.

P

Pikaista paranemista.

Ehdin nyt vain silmäillä kolmostapausta. Virhe ei johdu vuoden 2009 kuntaliitoksesta, vaan löytyy itse kuntanumerosta. Nuo kaksi ylintä eivät ole Jyväskylää vaan Joutsaa, jolloin niiden kuntanumero onkin 172. Petäjäveden osuus Vehkasuontiestä kuuluu Jyväskylän Kuohun postinumeroalueeseen (kaksi alempaa riviä, ne siis ovat oikein).

Jatketaan…

Kakkoskohdan Koskelantien kohdalla sama kuntanumerovirhe kuin kolmoskohdassa. Eli ponojen 41710 kuntanumero on 172.

Pontikkalantie löytyy kuin löytyykin. Aivan Jyskylän ja Petäjäveden rajamailta, vm. puolelta. Ylempi rivi pitää poistaa ja alemmassa rivissä korjata kuntanumero 179 → 592. Kuohun postinumeroalue menee tuonkin tien kohdalla “väärän kunnan puolelle”.

Tuosta on paha sanoa onko ylemmän rivin osoitenumeron alkukakkonen unohtunut. En äkkiseltään löytänyt yhtäkään Ysitien parillista numeroa 41800 alueella. Kaksi suurempaa löytyi (3690 ja 3812), mutta ovatkin Saakosken ponoalueella 41860.