GIM 2 viimeinen kurssikerta

Joulun lähestyessä saapuu myös tämän kurssin viimeinen kerta. Täytynee sanoa, että kurssin aikana olen huomannut suurta kehitystä GIS:iin liittyvien asioiden ymmärtämisessä, eivätkä tehtävät tunnu enää niin ”etäisiltä” ja monimutkaisilta. Tällä kertaa kurssitehtäviä oli kaksi, joista ensimmäinen sujui mutkitta ja toisen kanssa kävin pientä taistelua, jonka voin omaksi ilokseni kertoa päättyneen voittoon!

Ensimmäisessä tehtävässä tutustuttiin lämpötilan interpolointiin Afrikassa. Datassa oli näytteitä ympäri Afrikan maanosaa, joista jokaisessa oli kuukauden keskilämpötila. Näistä tehtiin aluksi histogrammeja (kuva 1) ja vertailtiin esimerkiksi tammikuun ja elokuun lämpötiloja, joista huomattiin, että elokuussa jakauma oli normaalimpi.

Kuva 1. Histogrammi tammikuun keskimääräisistä lämpötiloista.

Tämän jälkeen tehtiin analyysi, joka ennustaa lämpötiloja ympäri Afrikkaa ja Lähi-itää. Tämä onnistuu geostatiikalla, joka perustuu siihen, että asiat ovat mitä todennäköisimmin samankaltaisia kuin sitä lähellä olevat mitatut arvot. Tähän käytetään Geostatistical Wizard -toimintoa, joka sisältää useita interpolointi keinoja, mutta ensiksi käytetään IDW:tä (Inverse Distance Weighting), joka on yksi simppeleimmistä interpoloinnin metodeista.

Alussa on tärkeää, että datoissa käytetään samoja projektoreita, jotta lämpötilojen ennustaminen olisi spatiaalisesti mahdollisimman paikkansa pitävä. IDW interpoloinnilla tehtiin sekä Smooth että Smooth Optimized. Jotta näistä kahdesta tiedettäisiin kumpi on luotettavampi, verrataan niiden Root-Mean-Square:a Cross Validationillä, sillä mitä lähempänä nollaa luku on, sitä luotettavampi se on. Tässä tehtävässä paremmaksi osoittautui Smooth Optimized.

Toisena käytetään Kriging –metodia, joka on huomattavasti vähemmän yksinkertaisempi, kuin aikaisempi IDW, sillä painoarvot lasketaan sekä näytteiden välisistä riippuvuuksista että kohteiden välisisistä riippuvuuksista. Jälleen verrataan Cross Validationillä Kriging Default ja Kriging Modified, joista huomataankin, että niiden arvot ovat hyvin samankaltaisia, mutta erottavana tekijänä voidaan pitää Root-Mean-Square:a, jolloin paremmaksi valitaan Kriging Modified.

Äsken luotua Kriging Modified –layeria tarkatellaan Standard Error –toiminnolla (kuva 2), joka kertoo epävarmuudet ennustetuissa arvoissa spatiaalisesti. Kuvassa näkyvät tummanpunaiset alueet ovat niitä, joilla epävarmuus on suurinta. Tässä voidaan nähdä selkeä ero mantereen ja meren välillä, joka johtuu suurimmaksi osaksi siitä, että merestä ei ole otettu näytteitä tätä dataa varten.

Kuva 2. Standard Error -toiminnolla karttaan saadaan esille alueet, jotka kuvastavat datalle kohdistetun ennusteen varmuutta.

Ensimmäinen tehtävä saatiin lopulliseen muotoonsa kuten kuvassa 3. Kuten ehkä oletettavaa on, päiväntasaajalla on selkeästi lämpimin alue.

Kuva 3. Ensimmäisen tehtävän kartan Layout.

Toisessa tehtävässä selviteltiin interpoloinnin avulla lämpötilojen jakautumista kaupungissa ja vielä tarkemmin vanhemman väestön keskuudessa. Näin tiedostetaan alueet, joissa ikääntyneet ihmiset saattavat olla riskin alaisia lämpöaaltojen aikaan. Urbaaneilla alueilla lämpötilat saattavat nousta hyvinkin korkealle kuumina aikoina. Tähän vaikuttavat esimerkiksi pinnat kaupungeissa, jotka imevät itseensä lämpöä sekä kasvillisuuden vähäisyys. Kaupunkien ympärillä saattaa esiintyä Heat Island –ilmiö. Tästä voi lukea lisää esimerkiksi osoitteesta https://www.epa.gov/heatislands/learn-about-heat-islands.

Aluksi aineistosta tehtiin histogrammi, jota voi tarkemmin katsoa kuvasta 4. Poikkiviivat histogrammissa edustavat keskiarvoa, mediaania ja keskihajontaa.

Kuva 4. Histogrammi toisen tehtävän lämpötila-aineistosta.

Seuraavaksi keskitytään taas interpolointiin ja tarkemmin Kriging sekä EBK –metodeihin. Kuten ensimmäisessä tehtävässä, taas vertaillaan näiden kahden tulosta toisiinsa ja valitaan se, joka sopii paremmin tehtävään. EBK metodin interpolointi tulos on tarkempi, erityisesti standard errorsia vertaillessa. EBK käy yleisestikin ottaen silloin, kun käsitellään pieniä aineistoja, kuten tässä tehtävässä. Suurin ero näiden kahden metodin välillä on se, että EBK:ssa ei tarvitse määritellä/laskea erikseen semivariogrammia, kuten muissa kriging metodeissa, vaan sen oletetaan automaattisesta olevan kuten ennustettu ( Täältä lisää tästä ). Kummastakin metodista tosin voidaan huomata, että kaupunki keskusta on alue, jossa lämpeneminen on pahimmillaan.

Seuraavaksi karttaan lisätään uusi rasterilayer, josta nähdään läpäisemättömät alueet. Tähän käytetään ArcGis:istä haettavaa dataa nimeltä ”USA NLCD Impervious Surface Time Series”, joka kattaa koko Yhdysvallat, minkä vuoksi käytetään Exract by Mask-toimintoa, jolla saadaan rasteriaineisto vain meidän rajaamalle alueelle. Näin saadaan datasta huomattavasti pienempi.

Jotta saadaan vielä selville, että läpäisemättömille tasoilla ja lämpötilojen kohoamisella urbaanilla alueella on riippuvuutta, selvitetään tämä tekemällä kuvaaja, josta voidaan tulkita riippuvuutta paremmin. Aluksi pitää kuitenkin saada näytepisteiden ja läpäisemättömän layerin arvot samaan uuteen layeriin, jonka voi tehdä Exract Values to Points -toiminnolla. Tästä voidaan jatkaa edelleen Scatter Plotin tekoon (kuva 5). Kuvaajasta huomataan selkeä positiivinen riippuvuus lämpötilan ja läpäisemättömän pinnan välillä.

Kuva 5. Kuvaaja, jossa on lämpötilan sekä läpäisemättömän pinnan korrelaatio.

Seuraavaksi käytetään EBK Regression Prediction –toimintoa, jotta voidaan hyöydyntää läpäisemättömiä pintoja selittävänä muuttuja lämpötilamittausten interpoloinnissa. Aiempaan kahteen Kriging-metodiin verrattuna, uusi layer on hyvin samanlainen, mutta siinä on enemmän tarkkuutta.

Kun meillä on interpoloinnilla saadut lämpötilaoletukset, voidaan niistä laskea keskiarvo jokaiselle korttelille. Ensiksi pitää saada Zonal Statistics as Table –toiminnolla kortteleihin lämpötilan keskiarvo, jonka jälkeen tämä attribuuttitaulukko voidaan liittää korttelilayeriin. Lopputulos on kuvan 6 mukainen. Kuten siitä nähdään, kaupungin keskiosissa on kaikista kuuminta.

Kuva 6. Lämpötilojen jakautuminen kortteleittain.

Tehtävän tarkoitus oli nähdä kuumien kortteleiden lisäksi niiden iäkkäät asukkaat. Lopputulosta voidaan analysoida vielä Select Layer by Attribute avulla ja lisätään sinne ehdoiksi, että korttelin lämpötilan keskiarvon on oltava isompi kuin 81 fahrenheittia ja korttelissa on oltava yli 65 asukkaita enemmän kuin 100 000. Työkalu hakee meille kuvan 7 mukaiset alueet. (Esrin ohjeissa oli hieman vähemmän alueita, en tiedä onko vika minussa, vai ohjeissa :D)

Kuva 7. Korttelit, joissa lämpötilan keskiarvo on yli 81 ja yli 65-vuotiaita asukkaita yli 100 000.

Kuvan 7 tietoja voitaisiin hyödyntää esimerkiksi ennakoimaan tulevien lämpöaaltojen vaikutusta terveydenhuoltoon. Jos kaupungissa on useita sairaaloita, keskustan alueella olevat sairaalat voisivat lisätä resurssejaan aikoina, jolloin on erityisen kuuma, sillä lähtökohtaisesti iäkkäämpi väestö kärsii kuumuudesta enemmän. Kaupallisella puolella tätä tietoa voitaisiin käyttää esimerkiksi markkinointiin. Yrityksen, jotka tarjoavat esimerkiksi lämpöilmapumppuja voisivat kohdentaa markkinointinsa näille alueille.

Interpoloinnin pariin

 

Kurssi alkaa lähenemään loppua ja tämän GIS-gurun taidot sen kuin paranevat. Kuudennen viikon tehtävissä tutustuttiin interpoloinnin mielenkiintoiseen maailmaan.

Ensimmäisessä tehtävässä annettiin pohjustukseksi tieto siitä, että maataloudesta aiheutuvat ravinnepäästöt vaikuttavat happipitoisuuksiin ja aiheuttavat näihin ekosysteemeissä häiriöitä, jotka ilmenevät esim. happikatoalueina. Tehtävänä oli selvittää happipitoisuudet tasoina ympäri Chesapeak (Virginia, USA)  laaksoa ja  tarkoituksena oli verrata kesän 2014 ja 2015 tuloksia. Ensimmäiseksi tehtiin kaavio (kuva 1) liunneiden happimolekyylien keskiarvoista, mistä voidaan nähdä niiden selkeät syklit.

Kuva 1. Kaavio liuenneista happimolekyyleistä 2014-2015.

Kun dataa ollaan tutkittu eri kaavioiden avulla, voidaan siirtyä Geostatistical Wizard:in käyttöön. Sieltä valitaan Interpolation with barriers ja tarkemmin Kernel Interpolation. Kernel on parempi vaihtoehto tässä kuin esimerkiksi Diffusion, sillä Kernel on yleisempi ja sitä käytetään usein juuri näytteiden kanssa, jotka on otettu joensuusta. Asetuksia pitää hieman hienosäätää, mutta tuloksena on kartta, kuten kuvassa  2.

Kuva 2.

Tarkoituksena oli myös tutustua miten Geostatistical Wizard:issa voi tutkia kohdetta eri asetuksilla (välivaiheita on niin monia, että niitä on turha tässä käydä läpi).

Mitä punaisempi väri on, sitä suuremmat alueille on liuennut maataloudesta ravinteita. Tässä taas voidaan huomata kuinka tärkeä osa värityksellä on lopputuloksen kannalta ja kuinka tärkeää on lopullisessa tuloksessa määritellä oikeanlainen asteikko työlle, (sillä eihän tuosta muuten mitään ymmärtäisi).

Tämän jälkeen tutustuttiin myös vuoden 2015 dataan kaavioiden ja histogrammin avulla sekä tehtiin 2015 vuoden datalle Kernel Interpolation with Barriers. Tämän tarkoituksena on tehdä polynomifunktioon pohjautuva trendipintainterpolointi lyhyille pätkille ja monta kertaa peräkkäin.

Kun 2014 ja 2015 dataa vertailtiin Cross Validationin avulla, huomattiin, että 2015 vuoden data oli n. 10 % tarkempi kuin edellisen vuoden. Tämä voidaan todeta vertailemalla niiden Root-Mean-Square:a, joka on pienempi vuoden 2015 datan kohdalla. Tämä tosin johtuu todennäköisesti siitä, että vuonna 2015 otettiin enemmän näytteitä.

Kummatkin, sekä vuoden 2014 ja 2015 datat, exportataan rasterimuotoon ja ne avataan erillisiksi karttaikkuinoiksi ja siirretään layoutille (kuva 3). Kuvaan lisättiin asianmukainen legenda, pohjoisnuoli sekä mittakaavat. Kuvasta nähdään hyvin vertailtuna vuoden 2014 ja 2015 karttojen erot ravinnepäästöissä. Kartoissa ei näy hälyttäviä lukuja, sillä arvot pysyvät pääosin yli 5mg/L, joka on suositeltu raja näissä päästöissä. Kuitenkin joillain alueilla on huomattavasti enemmän parannettavaa.

Kuva 3. Ensimmäisen tehtävän lopputulos, jossa vertailtavana 2014 ja 2015 vuosien hapen määrä vesistössä.

 

Tehtävää voitaisiin soveltaa selvittämään happikatoja vesistöissä ympäri maailmaa. Jos halutaan tuodan aihe lähemmäs meitä ja konkreettisemmaksi niin voidaan ottaa tutkittavaksi meidän rakas meremme. Esimerkiksi Itämeren tutkimuksessa on havaittu happikadon olevan ilmiönä erittäin suuri ongelma ja sen on arvioitu olevan jopa Etelä-Suomen kokoinen (llppo Vuorinen (2017), Itämeren muuttuva ekosysteemi).

Toisessa tehtävässä tehtiin 3D-mallinnusta interpolointia Monterey laaksossa. Tarkasteltavissa oli taas hapen määrä tietyllä alueella laaksossa. Tehtävässä on paljon vaiheita, joten joudun niitä karsimaan tässä raportissa.

Lähtötilanne oli kuvan 4 näköinen. Aluksi tutkittiin ja testailtiin mitä 3D-mallille voi tehdä, miten pisteistä löytää mitäkin tietoa ja kuinka liikkua 3D-mallin sisällä.

Tämän jälkeen tutkittiin dataa tarkemmin attribuuttitaulukosta ja tehtiin taulukoita. Esimerkiksi kuvan 5 kuvaajasta nähdään hapen määrän ja syvyyden selkeä suhde. Hapen määrä on suurin pinnalla ja vähenee vähitellen. Pienimillään se on n. -600m – -800m syvyydessä.

Empirical Bayesian Kriging 3D -toiminnolla saadaan 3D-näkymässä aikaseksi tasoja, joita voi liikutella tässä tapauksessa ylhäältä alas ja samalla nähdään tasojen happipitoisuudet. Kun tästä muutetaan vielä metodi Equal Intervals:iin ja luokat 32:teen, saadaan jokaiselle tasolle näkyviin myös happipitoisuuden vaihtelu tasolla. 

Tehtävässä muutetaan data rastereihin, tutkitaan ennusteita ja sekä erroreita. Näiden monien ja pitkien vaiheiden jälkeen projektista tehdään animaatio Oxygen Prediction – layerista, joka saatiin aikaisemmista vaiheista ja analyyseista. Oma animaationi näkyy alla.

Mielestäni tämä oli tehtävän hienoin kohta, koska tällaista ei ole aikaisemmin päässyt kokeilemaan. Ja kuka nyt ei olisi innoissaan 3D-mallinnusvideosta, jonka on itse tuottanut???

 

Videon lisäksi aineistosta tehtiin Voxel layer, jonka avulla voidaan käytännössä nähdä 3D:nä kaikki oxygen preditions:it samassa kuvassa neliönä.

Interpoloinnista yleisesti:

Interpoloinnissa on tärkeää tietää rasterien merkitys. Esimerkiksi ensimmäisessä tehtävässä datat exportattiin rastereiksi. Tämä tehtiin siksi, että interpoloitavat kohteet olisivat lähekkäämmin toisiaan, sillä näin saadaan kaikista todenmukaisin tulos. On sanomattakin selvää, että solut, jotka ovat lähimpänä otosta, omaavat mitä todennäköisimmin samanlaisia arvoja otoksen kanssa, kuin ne jotka ovat siitä kaukana. Jos kuvitellaan alue, joka voidaan jakaa 20 soluun ja näytteitä on alueelta vain 6 kappalletta. Solut joihin ei osu näytettä voidaan interpoloimalla laskea matemaattisesti ennustamaan todennäköisintä lukua perustuen lähimpänä oleviin näytteisiin.

 

Näkyvyyttä ja moniuloitteisuutta

Tällä viikolla tehtiin näkyvyysanalyyseja sekä lisää 3D-harjoituksia, jotka olivat ainakin minun mielestäni siistejä! Harjoituksia oli kolme ja lisäksi yksi bonustehtävä.

Ensimmäisessä tehtävässä tarkoituksena oli asettaa valot New Yorkin osavaltion itäiselle telttailualueelle, jotta telttailualue voisi vastaanottaa enemmän kävijöitä myös pimeään aikaan. Tehtävän alussa harjoiteltiin databasen käyttöä ja sinne tallennusta.

Tämän jälkeen datan, joka kertoo valojen sijainnista, attribuuttitaulukkoon lisättiin tietoja (OFFSETA = valopylväitten korkeus, AZIMUTH 1 ja 2 = missä kulmassa valo on ja RADIUS2 = kuinka pitkälle valon täytyy näkyä). Seuraavaksi harjoituksessa käytetiin viewshed –toimintoa, jotta saadaan näkyviin alueet, joihin valot osuvat ja mahdolliset päällekkäisyydet valokeiloissa etsitään raster functionsin avulla.

Seuraavaksi muutetaan OFFSETA attribuuttitaulukosta 3 -> 10, joka tarkoittaa, että valopylväät olisivatkin 3 metrin sijasta 10 metrin korkuisia. Uudelle datalle tehdään samainen viewshed -toiminto, jolloin tulos on kuvan 1 mukainen. Kun suoritetaan vielä raster functions –toiminto, saadaan lopputulokseksi kuva 2.

Kuva 1. Telttailualueen valaistus 10 metrin valotolppien kanssa.
Kuva 2. Valmis tuotos valaistuksen jakautumisesta telttailualueella.

Harjoituksessa 2 tarkoituksena oli tehdä näkyvyysanalyysi siitä, millaisen näkyvyyden turvallisuudesta vastaavat henkilöt saisivat paraatista. Data esitettiin 3D-muodossa.

Ensiksi aloitettiin havainnollistamalla näköalaa katselupisteistä paraatireitille käyttämällä toimintoa Construct Sight Lines, jonka jälkeen tätä työstettiin vielä Line of Sight –toiminnolla, jotta saatiin äsken luotujen linjojen näkyvyys esille. 3D-karttaan ilmestyy sekä vihreitä, että punaisia viivoja (valitettavasti tästä ei tullut välivaihekuvaa), joista punaisia viivoja blokkaa jokin este, esim rakennus. Vihreät viivat ovat ne, joita tässä harjoituksessa haetaan.

Jotta viivoille saadaan haluttu 3D-ulottuvuus, käytetään toimintoa Add Z Information. Select by Attribute –toiminnolla karsitaan vielä viivat, jotka ovat kauempana kuin 1100 jalkaa (feet). Ohjeissa mainittiin, että mahdolliset paikalliset sääilmiöt saattavat vähentää näkyvyyttä, joten analyysit toistettiin, mutta näkyvyys vaihdettiin 600 jalkaan (feet). Lopullinen tulos oli kuvan 3 mukainen.

Kuva 3. 3D-mallinnus paraatin näkyvyydestä tarkastelupisteistä.

Harjoituksesta yksi ja kaksi mieleeni tuli, että tällaista näkyvyysanalyysia voisi käyttää myös esimerkiksi kun suunnitellaan valvontakameroiden sijoituspaikkoja.

Kolmas harjoitus keskittyä täysin 3D-maailman pariin. Aluksi opeteltiin lisäämään karttaan moniulotteisia karttasymboleja, kuten liikennevaloja, ja muutenkin syvennyttiin 3D-merkkien pariin. Karttaan myös lisättiin 3D-rakennusten aikaansaamat varjot (kuva 4).

Kuva 4. Rakennusten luomat varjot.

Harjoituksen toisessa vaiheessa hahmoteltiin näkymää Berliinissä, jossa asemakaavaan lisättäisiin yksi rakennus (sinisellä). Ympärillä on esitettynä nykyiset rakennukset sekä puut tietyltä alueelta. Kuvasta 5 käy ilmi uuden rakennuksen paikka.

Kuva 5. Uuden rakennuksen sijainta nykyisen kaupunkimallin joukossa.

BONUS

Bonustehtävän tarkoituksena oli tutkia koulujen ja sairaaloiden välisiä matkoja, jos kyseiset tilanteet vaatisivat mediheliä. Harjoituksen ensimmäisessä osiossa käytettiin Eucledian –toimintoa, jotta saatiin havainnollistettua matka linnuntietä sairaaloista kouluihin ja lisäksi suunta sekä matkan pituus. Nämä tehtiin erikseen samalla toiminnolla (Eucledian). Divide –toimintoa käytettiin, jotta saatiin mailit osoitettua jalkoina (feet).

Jotta data saadaan kartalle mahdollisimman nopeasti luettavaksi, voidaan käyttää toimintoa Reclassify. Tämä mahdollistaa sen, että kartasta on helppo lukea etäisyyksiä, esimerkiksi värien avulla.

Raster functions –toiminnon avulla saadaan käännettyä tehtävässä data siten, että toisin kuin aikaisemmassa tilanteessa keskityttiin matkaan koululta sairaalaan, nyt halutaan tietää suunnat sairaalasta kouluihin, sillä tämä on lähtötilanteessa tärkeämpää. Toimintoon syötetään alla oleva kaava.

Con(("Direction To Hospital" > 0)  & ("Direction To Hospital"  <=  180), "Direction To Hospital" + 180, Con("Direction To Hospital" > 180,  "Direction To Hospital" - 180, 0))
Kuva 6. Harjoituksen sairaalaosion lopputulos, kun sairaaloista lähtevät osiot on jaettu alueisiin.

Bonustehtävän loppuosio keskittyi löytämään mahdollisimman alhaisella kustannuksella mahdollisimaan turvallisen reitin voimalaitoksen ja voimajohdon välille eteläisessä Kaliforniassa.

DEM-aineiston avulla voitiin tehdä Slope –toiminnolla uusi layer, jossa näkyi maaston kaltevuus (kuva 7).

Kuva 7. Slope aineiston kuvaaminen kartalla ennen reclassify slope dataa.

Karttaan lisättiin uusi database, joka on reclassify slope -taulukko. Tämän avulla tehdään alkuperäiselle datalle Reclassify by Table –toiminto, jotta saadaan kaltevuusasteikko järkevämmäksi.

Sama toiminto tehdään Land use –rasterille, mutta toisena datana käytetään newlanduse –dataa, jonka läpi täytyy ensiksi tehdä Calculate Statistics. Slope-aineistojen uudelleenluokittelu oli helppoa, sillä niiden muuttujat ovat jatkuvia, kun taas landuse -datan muuttujat ovat diskreettejä. Reclassify –toiminnon jälkeen saadaan uusi maankäyttöä kuvavaa data, jota voidaan käyttää hyödyksi myöhemmissä vaiheissa. Näin data on valmisteltu painotettuun etäisyysanalyysiin.

Viimeisessä vaiheessa ensiksi Plus –toiminolla summattiin Landuse sekä Slope, jotta saatiin niiden Cost. Sitten käytettiin Cost distance –toimintoa, jolla saatiin aineistoon Direction ja Distance layerit. Näitä tarvittiin viimeiseen vaiheeseen, jossa Cost Path –toimintoon syötettiin haluttu lähtö paikka sekä Distance että Cost ja saatiin lopputulokseksi Least Cost Path. Kuvassa 8 näkyy sinisellä reitti näistä analyyseista saatu kustannustehokkain reitti.

Kuva 8. Bonustehtävän lopputulos, jossa kustannustehokkain reitti on kuvattu sinisellä.