HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon käsittely Antti Leino antti.leino@cs.helsinki.fi 15.1. 22.2.2007 Tietojenkäsittelytieteen laitos
Yleiskuvaus Kurssilla käsitellään tiedon hallinnan ja louhinnan erityiskysymyksiä, kun käsiteltävä aineisto sisältää paikkatietoa: Paikkatiedon käsittely relaatiotietokannassa Tarvittavat relaatiomallin ja SQL-kyselykielen laajennokset Paikkatiedon indeksointi tietokannassa Paikkatiedon klusterointi Assosiaatiosääntöjen etsintä paikkatiedosta
Yleiskuvaus Tällä kurssilla ei käsitellä Kartografiaa Paikkatietoaineistojen tuottamista Paikkatietojärjestelmien käyttöä Maantieteellistä analyysiä Paikkatiedon tilastollista analyysiä mitenkään tyhjentävästi Tämänsukuisiin aiheisiin voi perehtyä esimerkiksi kursseilla Geoinformatiikan peruskurssi (maantieteen laitos) Spatiaalinen tilastotiede (matematiikan ja tilastotieteen laitos)
Kevät 2007 Luennot 15.1. 22.2.2007, ma,to klo 10-12 C222 Harjoitukset 22.1. 23.2. to klo 12-14 BK106, LuK Ari Meriläinen Kurssikoe to 27.2. klo 16 19 Harjoitustyö 16.3. mennessä Kurssin kotisivu http://www.cs.helsinki.fi/u/leino/opetus/paikka-k07/
Luento-ohjelma Viikko Päivä Asiat 1 15.1. Kurssin aloitus Johdatus paikkatietoon ja -kantoihin 18.1. Relaatiomallin paikkatietolaajennokset 2 22.1. Kyselyt paikkatietokannasta 25.1. Paikkatiedon indeksointi ja 3 29.1. approksimointi 1.2. Kyselyn käsittely 4 5.2. Johdatus tiedon louhintaan 8.2. Erityyppisiä paikkatietoaineistoja 5 12.2. Spatiaalinen riippuvuus 15.2. Yhteisesiintymäsäännöt 6 19.2. Paikkatiedon klusterointi 22.2. Yhteenveto
HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon käsittely 1. Johdanto Antti Leino antti.leino@cs.helsinki.fi 15.1.2007 Tietojenkäsittelytieteen laitos
Mitä paikkatieto on? Paikkatieto (spatial data): kaksi komponenttia Sijaintitieto Koordinaatit: järven (likimääräinen) keskipiste Geometria: järven reunaviiva Topologia: kummalla puolella rantaviivaa vesi on Ominaisuustieto Yksilöivää: järven nimi, 1 tilan rekisterinumero Paikantavaa: katuosoite Ajoittavaa: rakennuksen rakennusvuosi Kuvailevaa: rakennuksen käyttötarkoitus, järven pinta-ala, metsätyyppi,... 1 Kuitenkin vain n. 3 1 Suomen järvistä yksikäsitteinen nimi!
Sijaintitieto Sijaintitieto käsitetään useimmiten 2-ulotteiseksi Todellisuudessa ulottuvuuksia on 3 4 2-ulotteiset X Y / I P Korkeus Z Joskus myös aika T Korkeutta ja aikaa käsitellään usein ominaisuustietona Toisaalta joskus tarpeen ottaa myös korkeus sijaintitietoihin, toisinaan jopa aika
Ominaisuustieto Se osa tiedosta, joka ei liity sijaintiin (paikkatietojärjestelmän suoraan ymmärtämässä muodossa) Erilaisia mitta-asteikkoja: Asteikko Tulkinta Esimerkkejä Luokka-asteikko (nominal scale) Vain luokkatunnisteita sukupuoli, rakennustyyppi Järjestysasteikko Lukujen (tms.) välillä soveltuvuus- järjestyssuhde Lukujen erotuksella mielekäs tulkinta Suhdeasteikko (ratio scale) Diskreetti vs. jatkuva tieto Lukujen suhteilla mielekäs tulkinta (ordinal scale) Välimatkaasteikko (interval scale) luokat Celsiusasteikko, rakennusvuosi Kelvin-asteikko, lukumäärä
Tiedon louhinta Perustehtävä:»kerro jotain mielenkiintoista tästä aineistosta» Suuri ja niukasti jäsennelty aineisto Vähän ennakko-odotuksia Kumpikaan näistä ei ole aivan ehdoton Sukua tilastotieteelle mutta vain sukua Ei niinkään ilmiöiden olemassaolon osoittamista kuin uusien etsimistä Yleensä tilastomenetelmät vaikeuksissa, kun muuttujien määrä kasvaa
Paikkatiedon louhinta Esimerkki: järvinimien komponenttianalyysi 1492 yleisintä vedenkokoumannimeä Aluejako 40x40 km ruutuihin Pääkomponenttianalyysi (tässä 2. komponentti) Vertailun vuoksi rautakautiset linnavuoret
Paikkatiedon louhinta Assosiaatiosääntö kahden nimen esiintymien välillä Ahvenlampi Haukilampi Tilastollisesti merkitsevä jo alle 1km etäisyyksillä Vastaavia sääntöjä löytyy paljon Ahvenlampi => Haukilampi: + At 1 km found 20; p(n<20) = 1.0000 (corrected 1.00) + At 2 km found 40; p(n<40) = 1.0000 (corrected 1.00) + At 3 km found 51; p(n<51) = 1.0000 (corrected 0.99) + At 4 km found 75; p(n<75) = 1.0000 (corrected 1.00) + At 5 km found 92; p(n<92) = 1.0000 (corrected 0.97) + At 6 km found 116; p(n<116) = 1.0000 (corrected 0.98) + At 7 km found 137; p(n<137) = 1.0000 (corrected 0.95) + At 8 km found 170; p(n<170) = 1.0000 (corrected 1.00) + At 9 km found 181; p(n<181) = 1.0000 (corrected 0.96) + At 10 km found 204; p(n<204) = 1.0000 (corrected 0.98)
Paikkatietojärjestelmä Paikkatietojärjestelmä (geographical information system) Paikkatiedon visualisointi teemakartat karttatasot Paikkatiedon analysointi karttatasojen yhdistely korkeus- ja maastomallit reittioptimointi Kulloinkin tarvittava tieto voidaan yleensä pitää kokonaisuudessaan käsillä Paljolti tämän kurssin aiheen ulkopuolella
Paikkatietojärjestelmä
Paikkatieto tietokannassa Lähtökohta: tietoa on paljon Kaikki ei mahdu keskusmuistiin Huomiota on kiinnitettävä tallennusmenetelmiin hakumenetelmiin ja kyselyn optimointiin tiedon eheyteen Normaaliratkaisuna tietokannanhallintajärjestelmä Näissä perinteisesti yksinkertaisia tietotyyppejä Entäpä paikkatieto?
Paikkatieto tietokannassa Table "public.kunnat01" Column Type Modifiers --------------+---------------+----------- kuntakoodi character(3) not null nimi character(25) not null laani integer maakunta integer miehet integer naiset integer yht integer ulkom_miehet integer ulkom_naiset integer ulkom_yht integer muutos00 integer wkb_geometry geometry Indexes: "kunnat01_2_pkey" primary key, btree (kuntakoodi) "kunnat01_geom" gist (wkb_geometry) Check constraints: "enforce_srid_wkb_geometry" CHECK (srid(wkb_geometry) = 2393) "enforce_dims_wkb_geometry" CHECK (ndims(wkb_geometry) = 2)
Paikkatieto tietokannassa Paikkatietokannan hallintajärjestelmä (spatial database management system): tietokannan hallintajärjestelmä, jossa tietomalli sisältää paikkatietoon soveltuvat tietotyypit kyselykieli sisältää tarvittavat operaatiot tehokkaat algoritmit ja hakemistorakenteet paikkatieto-operaatioille Paikkatietokantajärjestelmä (spatial database system): paikkatietokannan hallintajärjestelmä ja sillä toteutettu tietokanta
Paikkatietotyyppien lisäys tietokannanhallintajärjestelmään Periaatteessa mahdollista mallintaa yksinkertaisten tietotyyppien avulla Piste koostuu kahdesta numerosta jne. Tehotonta ja pitkästyttävää Parempia vaihtoehtoja ad hoc -arkkitehtuuri: säädetään ja viritetään hybridiarkkitehtuuri: käsitellään ominaisuusja sijaintitietoja eri tavalla integroitu arkkitehtuuri: toteutetaan paikkatietotyypit suoraan tietokantaan
Hybridiarkkitehtuuri Sijainti- ja ominaisuustiedon hallinta erikseen Integrointikerros tarjoaa yhtenäisen näkymän Integrointikerros Relaatiotietokanta Sijaintitiedon ominaisuustiedolle hallintajärjestelmä Useimmat kaupalliset paikkatietojärjestelmät tällaisia Ongelmia Kaksi erillistä tietomallia ongelmia mallinnuksessa ja kyselyiden yhdistämisessä Yhdistettyjen operaatioiden toteuttaminen hankalaa
Integroitu arkkitehtuuri Relaatiotietokannanhallintajärjestelmään lisätään paikkatietotyypit SQL-kyselykieltä laajennetaan paikkatieto-operaatioilla Kyselyiden optimointi mahdollista Useimmissa relaatiotietokantajärjestelmissä nykyisin myös paikkatiedon käsittelymahdollisuus Jatkossa keskitytään nimenomaan integroituun lähestymistapaan Esimerkeissä PostgreSQL
Mitä paikkatieto vaatii tietokannanhallintajärjestelmältä? Tiedon loogisen esitystavan on sovelluttava geometriatiedon esittämiseen mutta tietoalkioiden itsenäisyys on säilytettävä tiedon on sovittava yhteen käyttäjän todellisuuskäsitysten kanssa Kyselykieleen on lisättävä maantieteellisiä suhteita ym. kuvaavat funktiot Liitokset ym. operaatiot on toteutettava paikkatiedolle Tiedon fyysinen esitystapa ja tietokantahaut on saatava tehokkaaksi
Paikkatiedon esittäminen Oliopohjainen lähestymistapa Data tulkitaan koostuvaksi itsenäisistä olioista, joilla on muoto ja sijainti sekä ominaisuuksia Kukin olio esitetään erikseen Tilapohjainen lähestymistapa Kuhunkin (rasteroidun) avaruuden pisteeseen liittyy suoraan ominaisuustieto Erillisiä olioita ei ole, sen sijaan kuvattava maailma voidaan jakaa alueiksi Sopii maantieteellisesti jatkuvan ominaisuustiedon esittämiseen
Eriulotteisia paikkaolioita 0 1 2 Piste Murtoviiva Monikulmio (Point) (Linestring) (Polygon) Pistejoukko Viivajoukko Monikulmiojoukko (Multipoint) (Multilinestring) (Multipolygon) Kohdejoukko (Geometrycollection)
Eriulotteisia paikkaolioita 0-ulotteiset: piste ja pistejoukko Kohteita, joiden muodolla / koolla ei ole merkitystä tarkastelumittakaavassa 1-ulotteiset: murtoviiva ja viivajoukko Äärellinen joukko kahden pisteen välisiä janoja Murtoviivan päätepistettä lukuun ottamatta kukin pisteistä on kahden janan päätepiste 2-ulotteiset monikulmio: suljetun murtoviivan rajaama alue monikulmiojoukko: useita monikulmioita kohdejoukko: useita 0-2-ulotteisia olioita
Eriulotteisia paikkaolioita OpenGIS Simple Features Specification esittää paikkatieto-olioiden esitykseen tällaisen luokkahierarkian:
Erilaisia murtoviivoja Suljettu (closed): päättyy lähtöpisteeseensä Yksinkertainen (simple): janat eivät leikkaa toisiaan (paitsi peräkkäiset yhteisessä päätepisteessään) vs. Suoran L suhteen monotoninen (monotone): kukin suoraa vastaan kohtisuora viiva leikkaa murtoviivan korkeintaan kerran vs.
2-ulotteiset oliot yksinkertainen: reunaviiva yksinkertainen ei kupera (convex): monikulmion pisteiden välinen jana kuuluu aina monikulmioon monotoninen: reunaviiva voidaan jakaa täsmälleen kahdeksi monotoniseksi murtoviivaksi reiällinen
Olioiden väliset sijaintisuhteet Topologiset suhteet esim. sisällä, erillään Suuntasuhteet esim. yläpuolella, pohjoiseen Etäisyyssuhteet esim. < 100 km päässä
Etäisyyssuhteet Perustuvat lyhimpään etäisyyteen olioiden välillä Tarkka etäisyys usein työläs laskea Kyselyissä apuna indeksirakenteet Käytössä normaalit vertailuoperaatiot, kuten <=>
Suuntasuhteet Likimääräisiä, yleensä pääilmansuuntien mukaan pohjoiseen / etelään / itään / länteen väli-ilmansuunnat johdettavissa Laskennallisesti melko helppoja
Topologiset suhteet Kahden monikulmion A ja B välillä kuusi erilaista Erilliset Sivuavat Samat disjoint (A, B) touches (A, B) equals (A, B) Peittää Sisältää Leikkaavat contains (A, B) overlaps (A, B) within (B, A)
Topologisia peruskäsitteitä Monikulmiolla A on 2-ulotteinen sisusta (interior) A 1-ulotteinen reuna (boundary) A Murtoviivalla B on 1-ulotteinen sisusta (interior) B 0-ulotteinen reuna (boundary) B Molemmilla on lisäksi ulkopuoli A
Monikulmioiden topologiset suhteet Suhteet voidaan määritellä monikulmioiden reunan ja sisustan leikkausten avulla Suhde A B A B A B A B Erilliset Sivuavat Samat Peittää Sisältää Leikkaavat
OpenGIS-määritysten mukaiset suhteet OpenGIS-määrityksissä topologiset suhteet hiukan eri lailla Ei erontekoa peittämis- ja sisältämissuhteiden välillä Leikkaussuhde (overlap) määritelty eri tavalla: A ja B leikkaavat, kun A B ei ole kumpikaan kohteista, mutta se on yhtämoniulotteinen kuin ne. Lisäksi toinen leikkaussuhde (intersect): kohteet eivät ole erilliset
Janojen topologiset suhteet Vastaavat kuin monikulmioiden välillä Erilliset Sivuavat Samat disjoint (A, B) touches (A, B) equals (A, B) Peittää Sisältää Leikkaavat contains (A, B) overlaps (A, B) within (B, A) Risteävät crosses (A, B)
Janojen topologiset suhteet Suhteet voidaan jälleen määritellä reunan ja sisustan leikkausten avulla Suhde A B A B A B A B Erilliset Sivuavat Samat Peittää Sisältää Leikkaavat Risteävät
Muut topologiset suhteet Kaksi pistettä voivat olla vain samat tai erilliset Ulottuvuudeltaan erilaisten kohteiden suhteet samantapaisesti kuin edellä monikulmio jana monikulmio piste jana piste Usean olion muodostamat kohteet monimutkaisempia, mutta määriteltävissä
Oliojoukkojen geometria Kolme pääasiallista esitystapaa Spagettimalli (spaghetti model) Verkkomalli (network / graph model) Topologinen malli (topological model / partition)
Spaghettimalli Kukin joukkoon kuuluva olio esitetään toisista riippumatta Topologiset suhteet on laskettava aina tarvittaessa Yhteiset pisteet ja reunaviivat esitettävä useaan kertaan Yksinkertainen Uusien olioiden lisääminen helppoa
Verkkomalli Pisteiden ja murtoviivojen väliset topologiset suhteet valmiiksi talletettuina solmu: piste, joka yhdistää kaaria kaari: murtoviiva, joka alkaa solmusta ja päättyy solmuun Yhtenäisyys ja polut helposti selvitettävissä 2-ulotteiset topologiset suhteet laskettava
Topologinen malli Kuten verkkomalli, mutta lisärajoitus: tasoverkko, ts. jokainen murtoviivojen leikkauspiste on solmu Kuvattava alue jaettu vierekkäisiin monikulmioihin Kaikki monikulmiot eivät välttämättä ole maantieteellisesti mielekkäitä kohteita Topologiset kyselyt helppoja Karttanäkymän vaihto raskasta Uusien kohteiden lisääminen raskasta