680 likes | 918 Views
Luento 5: Paikkatietokyselyt ja -tietokannat sekä geometrialaskelmat - digitointivirheet ja metatieto. SELECT WORLD.COUNTRY, WORLD.POP_2007 FROM WORLD WHERE (((WORLD.COUNTRY)="Finland" Or (WORLD.COUNTRY)="Sweden" Or (WORLD.COUNTRY)="Norway" Or (WORLD.COUNTRY)="Denmark"));.
E N D
Luento 5: Paikkatietokyselyt ja -tietokannat sekä geometrialaskelmat - digitointivirheet ja metatieto SELECT WORLD.COUNTRY, WORLD.POP_2007 FROM WORLD WHERE (((WORLD.COUNTRY)="Finland" Or (WORLD.COUNTRY)="Sweden" Or (WORLD.COUNTRY)="Norway" Or (WORLD.COUNTRY)="Denmark"));
Aineistojen käsittely • muokkaus • yhdistely • päivittäminen • laaduntarkkailu Tiedon keruu • Valmiit paikkatietoaineistot • kenttätutkimukset • kaukokartoitus • julkaistut kartat • valitut karttatasot • teemakartat • 3-ulotteisuus • virtualitodellisuus • valinnat • haut • ryhmittelyt • visuaalinentarkastelu • verkosto • pinta • overlay Esittäminen Kyselyt Analyysit Paikkatietojärjestelmien päätehtävät
Paikkatietokyselyt tietokannoista sekä geometrialaskelmat Esimerkkejäattribuuttikyselystä: Aktiivisetmetsäpalotjossaanalyysiruudussayli 5 paloavuosien 2002 – 2005 välisenäaikanan: SELECT * FROM firesum02_05 WHERE COUNT > 5 Afrikanmaatjossayli 10 miljoonaaasukasta: SELECT * FROM WORLD WHERE CONTINENT = “AFRICA” AND POPULATION > 10 000 000
Paikkatietokyselyistä yleisesti • kuuluu paikkatietojärjestelmien yleisimpiin toimintoihin • kysellään tietyt ehdot täyttäviä kohteita joko ominaisuustietojen tai sijainnin perusteella • teknisesti yksinkertainen toimenpide jossa tiedon rakenne ei muutu • kyselyissä valituiksi tulleet kohteet voidaan tallentaa jälkikäteen pysyvästi tiedostoksi / tietokantaan. ArcGIS (Data / Export Data) • GISissä kysely perustuu yleensä SQL-kieleen, structuredquerylanguage, jota voi hyödyntää suppeammin tai laajemmin
Paikkatietokyselyjen tavoitteista ja tuloksista • Paikkatietojärjestelmien tavoitteena on tuottaa tietoa ja uudenlaista ymmärrystä ilmiöiden alueellisesta jakautumisesta ja niiden vaihtelusta. • Paikkatietokannasta tehdyt kyselyt tuottavat vastauksia kysymykseen hakemalla tietokannasta kaikki kohteet, jotka täyttävät annetut hakuehdot. Hakuehdot voivat perustua joko sijainti- tai ominaisuustietoihin tai molempiin. • Kyselyjen tulokset voi esittää joko kartalla, jolloin voidaan tarkastella kohteen sijaintia tai taulukkona, jolloin voidaan tarkastella kohteen ominaisuustietoja. Kyselyjen avulla voidaan myös luoda laajemmasta aineistosta uusia suppeampia osa-aineistoja ja tallentaa saatu aineisto uutena tietokantana myöhempää käyttöä varten.
Kyselyjen tulosten hyödyntämisestä • - usein käyttökelpoista tietoa sellaisenaan • - kyselyjen ja visuaalisen karttatulkinnan ”linkitys” paikkatietomenetelmien vahvuusalue • - visuaalinen ja numeerinen tarkastelu tukevat toinen toisiaan- uusimmissa GIS-ohjelmistoissa valinnat kartalta ja taulukoista mahdollista linkittää myös erilaisiin tilastokaavioihin (esim. valinnat suhteessa jakaumakuvaajiin) • - valintojen hyödyntäminen jatkoanalyyseissa ja visualisoinneissa: - ehdot täyttävien kohteiden kuvaaminen kartalla - valintojen pohjalta tehdyt muuttujamuunnokset (esim. uudelleenluokittelut)- osajoukkoa kuvaavat tilastotunnusluvut, taulukot, jne. (esim. aluevertailut)- kyselyjen integroiminen analyysiprosessin eri vaiheisiin
SQL • Relaatiotietokantojen tietokannan käsittelykielen standardiksi on muodostunut SQL-kieli (eng. StructuredQueryLanguage). E.F. Coddin julkaistua relaatiomallin vuonna 1970, IBM lähti kehittämään relaatiomallin mukaista prototyyppitietokantaa. • Ensimmäinen kaupallinen SQL-tuote oli Oracle vuonna 1979. IBM itse julkisti ensimmäisen SQL-tuotteensa SQL/DS:n vasta vuonna 1981. 1980-luvulla syntyi joukko SQL-pohjaisia tuotteita ja nykyisin suurin osa niin kaupallis-hallinnollisista kuin luonnonvarainhallintaan tarkoitetuista sovelluksista tehdään SQL-pohjaisille relaatiotietokannoille.
SQL (StructuredQueryLanguage) • Paikkatieto-ohjelmistoissa sisäänrakennettuna erilaisia käyttöliittymiä SQL-kyselyille • SQL on kehitetty relaatiotietokantojen kysely- ja muokkauskieleksi • Paikkatietoaineistoissa ominaisuustiedoille tyypillistä nimenomaan relaatiomuoto, karttakohteet vastaavat taulukon rivejä ja muuttujat sarakkeita • Paikkatietoa varten kehitetty myös sijaintiin pohjautuvia hakukriteereitä • SQL-ohjelmistoja: -MySQL (Opensource) -SQLite (Public domain); -Microsoft SQL Server 2005 Express Edition (free) -Kaupalliset tuotteet: mm. Microsoft Access, Oracle Spatial 10g release 2 -Microsoft SQL 2005 server
SQL (StructuredQueryLanguage) • Tärkeimmät komennot: SELECT, UPDATE, INSERT ja DELETE. • Paikkatietokyselyissä käytetään pääasiassa SELECT-komentoa • Kyselyt rakennetaan muuttujien, operaattoreiden ja arvojen avulla: CONTINENT = “Africa" • Kokonaisuudessaan SQL-kieli toimii kuitenkin laajempana lauseena Select * from WORLD where CONTINENT = “Africa" into Selection
SQL-kyselyn suppea perusmuoto • SELECT ominaisuus_1, ominaisuus_2, ... = Tulostaulukon kentätFROM tietojoukko_1, tietojoukko_2 ’ = Lähtöaineiston taulu(t)WHERE ehto_1, ehto_2, ...; = valintakriteeri(t)Esimerkki: • SELECT * FROM WORLD WHERE CONTINENT = “AFRICA” AND POPULATION 2007 > 50 000 000 Tulos:
Lauseiden yhdistäminen Boolen operaattoreilla • Haettavien kohteiden ominaisuustiedot joko täyttävät tai eivät täytä hakuehtojaKohdejoukkoon kohdistuvan haun tulos voi siis olla tosi tai epätosi • Kyselyjen yhdistäminen loogisten operaattorien avulla • * Leikkaus: AND * Unioni: OR* Poissulkeva joko-tai: XOR* Negaatio: NOT
SQL-kysely - Boolen operaattori esimerkki 1 • Esimerkki SQL kyselylausekkeesta toteutettuna MS Access tietokantaohjelmistolla. • SELECT WORLD.COUNTRY, WORLD.POP_2007, WORLD.CONTINENT FROM WORLD WHERE (((WORLD.POP_2007) > 50000000 AND (WORLD.POP_2007) < 100000000) AND ((WORLD.CONTINENT)="Africa")); Tulos: tulos sisältää Afrikan maat joiden asukasluku on suurempi kuin 50 miljoonaa, mutta pienempi kuin 100 miljoonaa
Boolen algebra esimerkki 2 • Mikäli kaupunki-tietokanta sisältää kentät NIMI ja ASUKASLUKU, voidaan kysellä esimerkiksi: • asukasluku >= 50000 AND asukasluku <100000 tulos sisältää kaupungit, joiden asukasluku on suurempi tai yhtä suuri kuin 50000, mutta pienempi kuin 100000 • asukasluku < 50000 OR asukasluku > 100000 tulos sisältää kaupungit joiden asukasluku on joko pienempi kuin 50000 tai suurempi kuin 100000 • asukasluku > 100000 NOT Nimi= ”Helsinki” tulos sisältää Helsinkiä lukuun ottamatta kaupungit, joiden asukasluku on suurempi kuin 100 000.
Boolen algebra esimerkki 3 • aineistossa on tietoja rakennuksista (rakennusvuosi, suojelutietoja, kaavatietoja) halutaan selvittää kyselyllä ennen v. 1930 rakennetut rakennukset: rakennusvuosi < 1930 Tuloksena kaksi tulosjoukkoa: tosi ja epätosi Jos aineistossa on kohteita joiden rakennusvuositieto puuttuu ja se on koodattu esim. nollaksi, Joudutaan käyttämään JA -leikkausehtoa:rakennusvuosi < 1930 JA rakennusvuosi > 0 • * jos taas halutaan selvittää mitkä rakennukset ovat "vanhoja" tai rakennussuojelukohteita niin käytetään unioniehtoa TAI • (rakennusvuosi < 1930 JA rakennusvuosi > 0) TAI suojelukohde ="Kyllä” • ehtojen suoritusjärjestys voi vaikuttaa lopputulokseenehtolausekkeiden suoritusjärjestys on vasemmalta oikealle ellei suluilla osoiteta toisin
Kyselyesimerkki toteutettuna Microsoft Access tietokantaohjelmistolla Design näkymä kyselyjen tekoon SQL -näkymä kyselystä: SELECT WORLD.COUNTRY, WORLD.POP_2007 FROM WORLD WHERE (((WORLD.COUNTRY)="Finland" Or (WORLD.COUNTRY)="Sweden" Or (WORLD.COUNTRY)="Norway" Or (WORLD.COUNTRY)="Denmark"));
Select-lause kokonaisuudessaan • Laaja SQL-tuki sallii alikyselyt ja tulosten ryhmittelyn, sekä tulostaulun kenttien valinnan – mm. MapInfo tukee • Select CONTINENT, Count(*), sum(POP_2007), Min(POP_GRW_RT), Max(POP_GRW_RT) from WORLD group by continent order by continent into Selection • Esim. ArcGIS ei tue näitä ja siksi oleellista osata ”ketjuttaa” ominaisuustieto- ja sijaintikyselyitäesim. yli 5 km: päässä keskustasta sijaitsevat kaupunginosat, joissa työttömyysaste on yli 10 % yli 40-vuotiaiden asukkaiden keskuudessa?
Relaatiotietokannat • Relaatiotietokannassa tiedot esitetään tauluina (engl. table), joita kutsutaan myös relaatioiksi. Kukin taulu koostuu tietueista ja kentistä. • Taulun riveillä, joita kutsutaan tietueiksi, on yhtä monta tietoa eli kenttää. Jokaisella rivillä täytyy olla yksikäsitteinen perusavain, joka vastaa jotakin reaalimaailman kohdetta. Kuhunkin kohteeseen liitetään vain siihen välittömästi liittyvät ominaisuudet. • Taulut liittyvät toisiinsa avainkenttien avulla. Mikäli kahden taulun avainkentissä on sama arvo, täydentävät tietueet toisiinsa. • Relaatiotietokannoista tietoa haetaan vain tiedon nimien ja arvojen perusteella, ei tiedon sijainnin tai järjestyksen mukaan. Kukin yksittäinen tieto relaatiotietokannassa voidaan hakea esimerkiksi ilmoittamalla taulun nimi, perusavaimen kentän nimi ja avaimen arvo sekä haettavan tiedon kentän nimi. Lähde: Ilkka Blomqvist ja Tino Johansson 2004
Relaatiotietokannan taulut ja avainkentät (Primary key) Relaatiotietokantojen taulut eli relaatiot ovat yhdistettävissä toisiinsa avainkenttien avulla Lähde: Ilkka Blomqvist ja Tino Johansson 2004
Edistyneempiä SQL-kyselyitä 1 • - relaatiotietokannat voivat käsittää yhden tai useamman taulun- jos kysely kohdistuu kahteen tai useampaan tauluun niin yhden ehdon on yhdistettävä taulut toisiinsa • Esimerkki: SELECT rakennukset.rakennustunnus, rakennukset.osoite, rakennukset.rakennusvuosi, suojelukohteet.päätösperusteFROM rakennukset, suojelukohteetWHERE rakennukset.rakennustunnus = suojelukohteet.rakennustunnus AND( (rakennukset.rakennusvuosi < 1930 AND rakennukset.rakennusvuosi > 0) OR rakennukset.suojelukohde="Kyllä" );
Edistyneempiä SQL-kyselyitä 2 Venäjän paloalueiden lukumäärä hallintoalueittain (1996-2002)
Paikkatietokyselyt paikkatieto-ohjelmistoissa • Kyselyjen periaate eri ohjelmistoissa sama, mutta toteutus vähän erilainen • kyselyjen tekeminen nykyisissä desktop-GIS –ohjelmistoissa hyvin joustavaa -esim. ArcMap:in varsinaiset kyselytyökalut Selectbyattributes- (ominaisuustietokyselyt) ja Selectbylocation- (sijaintietokyselyt) kyselyikkunat-esim. MapInfossa samalla kyselytyökalulla tehdään molemmat valintatyypit-samalla periaatteella hyödynnetään myös erikoistoimintojen yhteydessä (esim. puuttuvien arvojen poissulkeminen teemakarttoja tehdessä, Label-toiminnon kohdistaminen vain tietyn tyyppisiin kohteisiin, jne.)
OminaisuustietokyselyjentoteutusArcMap:issa • - Kohteiden valinta ominaisuustietojen perusteella (Selection Select by Attributes) • SQL-käyttöliittymä • Esimerkki: Halutaan löytää 1997 myynnissä olleista asunnoista yksiöt ja kaksiot joiden neliöhinta on alle 10000 markkaa. Lauseke on tällöin: "HUON_LKM" <= 2 AND "NELIOHINTA" < 10000
Kohteiden valinta sijainnin perusteella • yksinkertaisin sijaintiin perustuva kysely on kohteen visuaalinen paikantaminen näytöltä ja sen ominaisuustietojen kysely infotyökalulla • käytetyimpiä ovat kuitenkin kyselyt, joissa valinnan kriteereinä ovat taulujen väliset sijaintisuhteet. Tällöin kohdejoukko A sisältää, leikkaa, sivuaa tai sijaitsee tietyn etäisyyden päässä kohdejoukkoa B, jonka koostumus pyritään saamaan selville. Kysytään esimerkiksi: • Mitkä ovat jonkin alueen naapurialueet? • Mitkä rakennukset kuuluvat johonkin kortteliin? • Mitkä rakennukset sijaitsevat 300 metrin päässä rannasta? • Samoja sijaintisuhteiden määrittelyjä käytetään myös tietokantaliitoksissa (join), yhdistettäessä ominaisuustietoja toisiin
Sijaintikyselyt: Sijaintisuhde ja geometriatyyppejä • - Intersect : valitsee tulos-layerin kohteet, jotka leikkaavat valintalayerin kohteita ainakin yhdessä kohtaa tai jäävät kokonaan valintalayerin kohteiden sisään. Asetettaessa tulos- ja valintalayer samaksi, tulokseksi saadaan naapurusto (valittuna kohde ja sen viereiset kohteet). • - Arewithindistance of: valitsee määrätyn etäisyyden päässä valintalayerin kohteista sijaitsevat tuloslayerin kohteet. Asetettaessa valintaetäisyys nollaksi tulokseksi saadaan naapurusto. Valintoja voi tehdä myös saman layerin kohteille. • - Arecompletelywithin: valitsee valintalayerin kohteiden sisällä kokonaisuudessaan olevat tuloslayerin kohteet; esim. kuntapolygonin alueella sijaitsevat väestöpisteet, tiesegmentit tai rakennuspolygonit. • - Completelycontain(edellinen toisinpäin): esim. valitaan väestöpisteiden, tiesegmenttien tai rakennuspolygonien perusteella tuloslayerista kuntapolygoni/t. • - Havetheir center in: kuten Arecompletelywithin, mutta perusteena tuloslayerin kohteiden keskipisteet. • - Contain the center of: kuten CompletelyContain, mutta valintaperusteena valintalayerin kohteiden keskipisteet.
ArcGIS10.1 ”Select byLocation” valintamahdollisuudetkts. http://resources.arcgis.com/en/help/main/10.1/index.html#//00s50000002q000000
Sijaintiin perustuvan kyselyn toteutus ArcMap:issa • valinta-layer sisältää valittuina ne kohteet, joiden sijaintiin nähdentulos-layerin kohteita valitaan1. Valitaan ensin (esim. aluevalintatyökalulla) halutut valinta-layerin kohteet (kaikki kohteet/osa kohteista!) • 2. Siirrytään SelectbyLocation –kyselyikkunaan, jossa määritetään mm.: - valinnan tyyppi (valinta kaikista kohteista, OR-valinta, AND-valinta, poistava NOT-valinta) - valinnassa käytettävän sijaintisuhteen tyyppi
Esimerkki: valitaan 300 metrin päässä metroasemasta sijaitsevat kohteet edellä valittujen ("HUON_LKM" <= 2 AND "NELIOHINTA" < 10000) edullisten yksiöiden ja kaksioiden osajoukosta:
Yhteenveto paikkatietokyselyistä • Paikkatietokyselyt noudattavat relaatiotietokannoille kehitettyjä kyselymenetelmiä • Tavallisin kyselykieli on SQL, Structuredquerylanguage • SQL-syntaksi on aina samaa muotoa: Select * from WORLD where CONTINENT = "Africa" into.. • Kyselyjä voidaan tehdä ominaisuustiedon tai sijainnin mukaan • Sijaintirelaatioiden määrittelyssä on ohjelmistokohtaisia eroja.
Geometrialaskelmat: olennainen osa kyselyitä • jo ensimmäistä paikkatietojärjelmää (CGIS, Canadian Geographic Information Systems) kehitettäessä yhtenä tavoitteena oli manuaalisten menetelmien (esim. planimetri) korvaaminen pinta-alatietojen tuottamisessa • numeerisessa muodossa oleva sijaintitieto mahdollistaa mm. seuraavien tunnuslukujen laskemisen: • kohteiden väliset etäisyydet • keskipiste/keskisijainti (sentroidi), keskietäisyys sentroidista, jne. • kohteiden pituus, mutkikkuus, suuntautuneisuus (viivamaiset kohteet)pinta-ala, ympärysmitta, muoto, suuntautuneisuus (aluemaiset kohteet)kaltevuus, viettosuunta, kuperuus/koveruus (korkeustiedon sisältävä data) • * ks. lisätietoja oppikirjoista: Jensen & Jensen s. 233-240; Longley et al. (2001): s. 286-291; Heywood et al. (2002), Demers (1996): s. 203-226
Kohteiden välinen etäisyys (suoran viivan pituus) • perustapaus (vektoridata): kahden pisteen (A ja B) välinen etäisyys (viiva) • Suoran viivan pituus lasketaan Pythagoraan lausetta hyödyntäen
Usean viivan pituus • * useammasta koordinaattiparista muodostuvan mutkittelevan viivan pituus saadaan summaamalla segmenttien pituudet yhteen -
Pinta-alan laskeminen ominaisuustietotauluun ArcMapissä Laskeminen vektorikarttatasoille tapahtuu attribuuttitaulun numeeriseen Kenttään CalculateGeometryvalikosta
Muita aluemaisia kohteita kuvaavia tunnuslukuja • * suuntautuneisuus (voi perustua esim. polygonin pohjois/etelä- vs. itä/länsi- suuntaisten akselien suhteeseen)* polygonin muotoa kuvaavat tunnusluvut Esim. yksinkertaisen ”kompaktiutta” kuvaavan tunnusluvun laskeminen polygoninympärysmitan ja pinta-alan suhteeseen perustuen (Longley et al. 2001):
Rasteriaineiston geometrialaskelmat • rasteriaineistoissa kohteiden pituuksien yms. geometristen suureiden laskemisessa hyödynnetään tietoa resoluutiosta (solun sivun pituus etäisyysyksiköissä)* ortogonaalinen (+) etäisyys solujen välillä johdetaan suoraan resoluutiosta* diagonaalinen (Χ) etäisyys saadaan vastaavasti Pythagoraan lauseesta (1.414 * resoluutio)
Geometristen laskelmien käyttöalueista: • 1) kohteista saatavalla geometrisella tiedolla usein sinällään sovellusarvoa: • * esim. karttapalvelut netissä (esim. lyhimmät reitit)* paljonko matkaa lähimpään palveluun?* kuinka paljon tonteilla rakentamatonta maata (rakennustehokkuus)?* jne. • 2) lisäksi perusgeometriaa hyödynnetään osana kehittyneempiä paikkatietomenetelmiä, mm.: • * bufferi- eli etäisyysvyöhykeanalyysit * reitti- ja verkostoanalyysit: lyhin reitti, travellingsalesman –ongelma, jne.* monet interpolointimenetelmät: esim. Thiessenin polygonit, idw, kriging* spatiaaliset mallinnusmenetelmät: esim.kustannusetäisyysmallit, hydrologinen mallinnus, näkyvyysanalyysit
Sijaintitiedon tuottaminen digitoimalla - paluu luento 4 aiheeseen jota ei ehditty käsitellä
Digitointi • = karttojen analogisen sijaintitiedon muuntaminen digitaaliseen muotoon koordinaattipiste kerrallaan
Digitointitavat • A. Manuaalinen (työpöytä)digitointi - (paperi) karttapohjan asemoiminen digitointipöydälle - tukipisteiden määrittäminen (min. 4) = asemointi karttakoordinaatistoon - sijaintipisteiden manuaalinen tai puoliautomatisoitu tallentaminen kursorityökalua liikuttamalla • B. Kuvaruutudigitointi tyypillinen työskentelyjärjestys: 1. kartan yms. skannaus2. skannatun kartan/kuvan oikaiseminen koordinaatistoon tunnettuja koordinaattipisteitä hyödyntämällä ”georeferencing” 3. haluttujen kohteiden digitointi uudeksi paikkatietoaineistoksi 4. ominaisuustietojen syöttäminen kohteille
Digitointivirheitä Lähde: Ilkka Blomqvist ja Tino Johansson 2004
Lisää digitointivirheistä Digitointivirheitä: (A) undershoots and overshoots; (B) invalid polygons; and (C) sliver polygons
Lisää digitointivirheistä • - sliver- eli suikalepolygonit (1) • - ali- ja ylitarttuminen (2-3) • - alueella puuttuva, vajavainen tai ylimääräinen viivasegmentti (4-6) • - huolimaton digitointi (7-8) • - lähtöaineistojen erot (9)
Vierekkäistendigitointienyhteensopimattomuus: vaatiiesim. “Rubber sheeting korjaustoimintoa” Mismatch of adjacent spatial data sources that require rubber-sheeting