Julkaistu 30.8.2021

Näe maailma uusin silmin – Google Earth Engine

Google Earth Enginen (GEE) avulla pääset helposti käsiksi hyvin pitkälle prosessoituun maantieteelliseen aineistoon tyypillisesti hankalasti säilytettävän ja paljon tallennustilaa vaativan datan sijasta. GEE tarjoaa yhteyden useisiin kaukokartoitusaineistoihin ja niistä johdettuihin tuotteisiin kuten DMSP-OLS- ja VIIRS-DNB-satelliittikuvakokoelmiin. Kun GEEn usean petatavun kokoisen aineistoluetteloon yhdistää erittäin korkean suorituskyvyn omaavan rinnakkaislaskentapalvelun (GEE hyödyntää prosessoinnissaan tuhansien ympäri maailmaa sijaitsevien Googlen datakeskusten tietokoneiden laskentatehoa), pienille alueille kohdistuvat tehtävät valmistuvat minuuteissa ja koko maailman mittakaavan operaatioitkin saadaan suoritettua muutamassa päivässä.

Google Earth Engine

Vaikka GEE ei ole avoimen lähdekoodin ratkaisu, palvelu on kuitenkin kaikille avoin mahdollistaen sen, että kuka tahansa voi käyttää GEEtä omiin (ei-kaupallisiin) tarkoituksiinsa. Käyttäjäksi pääsee rekisteröitymällä alustalle Google-tilin avulla. Google myöntää tavallisesti uusille hakijoille käyttöoikeuden 24 tunnin sisällä. Rekisteröitymisen jälkeen pääset nauttimaan GEEn käyttövalmiista kuvatuotteista sekä vaikuttavasta laskentatehosta.

GEEn sisältämään dataan pääsee käsiksi sekä Javascriptin että Python APIn (ohjelmointirajapinnan) kautta. GEEn oma koodieditori käyttää Javascriptiä, mutta GEEn aineistojen interaktiivinen tarkastelu ja analysointi onnistuu kätevästi myös Pythonilla minkä tahansa IDEn (kehitysympäristön) kautta. IDE eroaa APIsta tyypillisesti sillä, että se mahdollistaa nopean prototyyppien luomisen ja tulosten visualisoinnin.

GEEn Python APIn dokumentaatio on huomattavasti JavaScript APIn vastaavaa suppeampi (linkki). Tämä ei kuitenkaan tarkoita sitä, ettei Python APIlla pärjää. Itse asiassa kahden Python APIn avainmoduulin, earthengine-apin ja geemapin, avulla saa käyttöönsä hyvin pitkälti samat toiminnallisuudet kuin mitä JavaScript APIn kauttakin saisi.

GEEn aineistot

Silläkin uhalla, että toistan itseäni, mainitsen asiasta uudelleen: parasta GEEssä on data. Pelkästään Earth Engine Data Catalogin vilkaisu riittää kertomaan, miten valtavasta datavarannosta on kyse. Jokainen datan parissa töitä tehnyt tietää, kuinka vaikeaa sopivan aineiston löytäminen ja siirtäminen analyysikuntoisena omaan työskentelyjärjestelmään voi olla. GEEn kanssa elämä on helpompaa; dataa ei tarvitse ladata minnekään eikä sen hallinnoinnista tarvitse murehtia sen enempää kuin mahdollisista omiin tarkoituksiin epäkätevistä tiedostomuodoista tai koordinaattijärjestelmistäkään. Haluaisin tietenkin esitellä tässä yhdessä blogissa kaikki mahdolliset GEEn sisältämät aineistot, mutta keskitytään nyt jatkossa kuitenkin vain kahteen kiinnostavaan kaukokartoitusaineistoon: DMSP-OLS- ja VIIRS-DNB-sensoreiden havaitsemaan yöaikaiseen valosäteilyyn.

Sekä DMSP-OLS- että VIIRS-DNB-sensorit ovat kaukokartoituslaitteita, jotka pyrkivät kuvaamaan monenlaisia Maan pinnalla tapahtuvia ilmiöitä keräämällä avaruuteen emittoituvaa elektromagneettista säteilyä (esimerkiksi valoa). Kaukokartoituslaitteista puhuttaessa keskeisiä termejä ovat spatiaalinen, spektraalinen ja temporaalinen resoluutio. Tyypillisesti näiden kaikkien yhtäaikainen parantaminen on hyvin vaikeaa ja usein joudutaankin tekemään hieman kompromisseja esimerkiksi temporaalisen resoluution suhteen, jos halutaan parantaa kaukokartoituslaitteiden vastaanottamien signaalien perusteella tuotettujen kuvatuotteiden spatiaalista tai spektraalista resoluutiota.

Google Earth Engine

DMSP-OLS on ensimmäinen sensori, jonka keräämistä tiedoista tuotettiin globaaleja “vakaiden valojen” kuvatuotteita vuodesta 1992 vuoteen 2013 asti. VIIRS-DNB on DMSP-OLS-sensorin seuraaja, joka DMSP-OLSin tapaan ehtii kiertää maapallon 14 kertaa vuorokaudessa kuvaten sekä päivä- että yöpuolen maapallosta joka 24. tunti. Yhtäläisyyksistä huolimatta VIIRS-DNB on onnistunut ratkomaan monia DMSP-OLS-datan haasteita esimerkiksi spatiaaliseen resoluutioon (~4.9km -> ~750m), radiometriseen resoluutioon (6-bittinen -> 14-bittinen), blooming-efektiin & saturaatioon liittyen (kaupunkialueita liioitteleva hehku on vähentynyt ja saturaatio-ongelma on poistunut kokonaan). Huomionarvoista on myös se, että DMSP-OLS-sensoria vaivaava on-board-kalibraation puute ei koske VIIRS-DNB-sensoria, sillä VIIRS-DNB mittaa pikselikohtaista yöaikaista valoa säteily-yksiköissä (nanowatts/cm²/sr). Halutessasi voit lukea lisää DMSP-OLS- tai VIIRS-DNB-sensoreiden avulla kerättyjen aineistojen historiasta, ominaisuuksista ja haasteista esimerkiksi täältä.

Mainittakoot lopuksi, että toki VIIRS-DNB-aineistoonkin liittyy ongelmia. Näistä keskeisimmät liittyvät siihen, ettei tämän sensorin tuottaman datan kanssa olla ehditty vielä kehittyä kuvatuotteiden tuottamisen kanssa samalle tasolle kuin DMSP-OLS-sensorin datan kanssa vuosien karttuessa päästiin. Kuvatuotteiden tuottaminen on siinä mielessä tärkeää, että yöaikaista valonsäteilyä kuvaavaa aineistoa ei ollut koskaan tarkoitettu stand-alone-tuotteeksi, jonka vuoksi avaruuteen säteilevän valon määrään voivat vaikuttaa myös monet luonnolliset ilmiöt (pilvet, tulipalot, saasteet), joista emme ole niin kiinnostuneita. Tästä epävarmuustekijästä huolimatta DMSP-OLS- ja VIIRS-DNB-sensoreiden keräämää NightTimeLights-aineistoa on tutkittu paljon, ja sen seurauksena tuotettujen merkittävien tutkimustulosten kautta on saatu todistettua, että ko. data korreloi useiden hyödyllisen sosioekonomisten muuttujien kehityksen kanssa.

Jupyter Notebook ja GEE

Jupyter Notebook on avoimen lähdekoodin selainpohjainen sovellus, joka soveltuu niin koodia, visualisointeja kuin tekstiä sisältävien dokumenttien luomiseen ja jakamiseen. Jupyter Notebookin kautta pystyy siis käyttämään myös GEEtä lisäämällä tiedoston alkuun muutaman rivin koodia:

Google Earth Engine

Datan visualisointi

GEE mahdollistaa aineistojen visuaalisen tarkastelun interaktiivisten karttaupotusten kautta

Video 1

Videosta 1 käy ilmi, että karttaupotus voi sisältää useita eri aineistoja, joiden näkyvyyttä voi säädellä paikkatieto-ohjelmistojen tapaan klikkaamalla tason aktiiviseksi tai säätämällä tasojen läpinäkyvyyttä. Kannattaa kiinnittää huomiota siihen, että varsinaisten aineistojen (videossa on ladattu DMSP-OLS-kuvakokoelmasta vuoden 1992 komposiitti ja VIIRS-DNB-kuvakokoelmasta vuoden 2020 kuukausittaisten komposiittien mediaani) lisäksi GEEssä on saatavilla valikoima erilaisia taustakarttoja. Karttaupotuksen interaktiivisuus mahdollistaa karttapohjalla liikkumisen ja näkymän lähentämisen / loitontamisen joko karttaupotuksen vasemmasta reunasta löytyvillä painikkeilla tai hiiren rullalla.

GEEn interaktiiviset työkalut

GEEn karttojen interaktiiviset ominaisuudet eivät kuitenkaan rajoitu karttapohjalla liikkumiseen. Saatoit huomatakin videota 1 katsoessasi, että karttaikkunan oikean yläreunan jakoavainsymbolin alta löytyy kaksi vaihtoehtoista valikkoa. Toiselta voi säätää karttatasojen näkyvyyttä ja toiselta löytyy kokoelma GEEn interaktiivisia työkaluja. Videolla 1 esiteltiin yhtä näistä; info-työkalua. Napsauttamalla i-symbolia työkalu muuttuu aktiiviseksi, ja klikkaamalla mitä tahansa kohtaa karttapohjalla, saat nähdä mitkä arvot kyseiseen sijaintiin liittyvät. Mikäli karttaikkunassasi on useita tasoja aktiivisena, näet kerralla kaikkien tasojen tiedot.

Info-työkalun lisäksi annetaan tässä blogissa erityismaininta Timelapse / Timeslider -ominaisuudelle. Monet GEEn aineistoista liittyvät luonteeltaan ajan mittaan muuttuviin ilmiöihin, ja siksi onkin kätevää pystyä luomaan animaatiota helposti GEEn omien interaktiivisten työkalujen avulla. Tarkastellaan esimerkinomaisesti vaikkapa kuukausittaisia keskilämpötiloja (kelvineinä) Japanissa. Videosta 2 pääset näkemään, miten animaation luominen käytännössä toimii ja miltä lopputulos näyttää.

Video 2

Huom! Jo olemassa olevaan karttaikkunaan voidaan jälkikäteen lisätä uusia aineistoja:

Google Earth Engine

Saatat ihmetellä miten ihmeessä noin monimutkaisia tiedostopolkuja voi muistaa ulkoa. Hyvä uutinen on se, ettei niitä tarvitsekaan muistaa. Karttaupotuksen oikeasta yläreunasta löytyy nimittäin maapallosymboli, jonka data-välilehden alta pystyt avainsanoilla hakemaan itseäsi kiinnostavia GEE-aineistoja. Kun löydät mieluisasi, napsauta Import, ja yllä näkyvien koodirivien pohja ilmestyy uuteen Jupyter Notebook -soluun.

Mainittakoot lopuksi vielä, että maapallosymbolin alta löytyy myös mahdollisuus hakea kartalta kohteita osoitteen, paikan nimen tai koordinaattien perusteella. GEEn karttaikkunan vasemman reunan työkaluilla pystyy myös mittaamaan etäisyyksiä tai lisäämään markereita karttapohjalle. GEEn työkalujen joukosta (jakoavaimen alta) löytyy kamerasymboli, jonka avulla pystyy tallentamaan luomansa karttanäkymät kuvina tai HTML-tiedostoina. On huomionarvoista, että osa GEEn karttaupotusten työkaluista eivät ole enää HTML-tiedostoksi tallentamisen jälkeen käytettävissä.

Puolitetun karttanäkymän luominen

GEEn avulla pystytään luomaan myös puolitettuja karttanäkymiä. Nämä ovat erityisen käteviä silloin, jos halutaan vertailla kahta eri karttatasoa.

Video 3.

Videolla 3 on luotu jaettu karttanäkymä vuosien 1992 ja 2012 DMSP-OLS-komposiiteista. Videolta käy hienosti ilmi, miten havainnollistavaa jaetun karttanäkymän käyttö voi olla. Kytkintä liikuttelemalla voimme interaktiivisesti säätää kumman “ikkunan” läpi haluamme alla olevaa maailmaa katsoa. Havainto valoisten alueiden laajenemisesta ko. 20 vuoden aikavälillä on helppo tehdä.

Vyöhykeanalyysi

GEEn avulla voidaan suorittaa myös hieman monimutkaisempia analyysiketjuja. Lähdetään tarkastelemaan vuoden 2018 VIIRS-DNB-dataa ja keskitetään analyysi Floridan keskipisteen ympärille luodun 200km bufferin alueelle.

Google Earth Engine

Vyöhykeanalyysin muodostamisessa on tärkeää ymmärtää, millainen jakauma datassa on. Histogrammit ovat yksi tapa tutkia dataa. Alla olevasta kuvasta näkee selkeästi, miten keskimääräinen säteilyintensiteetti on keskittynyt kahteen arvoalueeseen, lähelle nollaa ja 6-8 nanowatts/cm²/sr välille. Nyt jos haluttaisiin tunnistaa alueet, joissa on korkea säteilyintensiteetti, voitaisiin valita raja-arvoksi kuvassa ehdotettu säteilyintensiteettiarvo, sillä sitä suuremman arvon omaavia pikseleleitä on selvästi olemassa ja ne erottuvat selkeästi isommasta matalamman valosäteilyintensiteetin tiheyspiikistä.

Google Earth Engine

Mikäli luomme maskin näistä “korkean säteilyintensiteetin alueista” tarkastelemamme bufferin sisällä, saamme seuraavanlaisen karttatason:

Google Earth Engine

Toinen vaihtoehto on tarkastella histogrammia vain sen verran, että tiedämme mille välille säteilyintensiteettiarvot asettuvat ja valita sieltä itseämme kiinnostavia arvovälejä toisistaan poikkeavilla väreillä visualisoitaviksi vyöhykkeiksi. Tällöin tulos voisi muodostua esimerkiksi alla olevan kaltaiseksi:

Google Earth Engine

Ajan suhteen tehtävä analyysi

GEEn avulla voidaan tuottaa karttatuotteiden lisäksi myös erilaisia ilmiön kehittymistä kuvaavia käyriä. Tyypillinen kiinnostuksen kohde on selvittää, miten jokin mitattava ominaisuus on kehittynyt ajan suhteen. Esimerkinomaisesti voimme mainita, että tällaisia kiinnostavia metriikoita ovat esimerkiksi tarkasteltavalle alueelle osuvan valon määrä (Sum of Lights, SOL) tai säteilyintensiteetin jakauman kehitys ajan suhteen. Alla olevissa kuvioista paljastuu, miten Sri Lankasta tuleva valonsäteilyn määrä vaihtelee toki paljon vuodenaikojen mukaan, mutta myös millaisia trendejä siellä on viime vuosina ilmennyt. Yleisemmät trendit huomaa paremmin jälkimmäisestä kuviosta, jossa ollaan otettu SOL-keskiarvo 12 kk liikkuvan ikkunan sisällä. Käyrä tekee kaksi selvää sukellusta tarkastellun aikaikkunan sisällä. Syiden selvittäminen menee hieman salapoliisityön puolelle, mutta esim. lähteistä uutinen1 ja uutinen2 voisi päätellä, että 2016-2017 ajoittuneeseen radikaaliin muutokseen ovat saattaneet vaikuttaa alueelle osuneet luonnonkatastrofit. Toki ilmiötä on saattanut voimistaa myös esimerkiksi se, jos vuosi 2016-2017 on ollut erityisen pilvinen. Jälkimmäisen notkahduksen voisi kuvitella liittyvän globaaliin koronapandemiaan. Mikäli näin on, käyrän häntäpäässä on nähtävillä jo jälleen uutta valoa.

Google Earth Engine
Google Earth Engine

Toisena esimerkkinä tarkastelimme Bangkokin aluetta ja vuosien 2014-2016 aikana tapahtuneita muutoksia keskimääräisessä VIIRS-DNB-säteilyintensitetiin jakaumassa. Kuviosta on tehtävissä ainakin pari kiinnostavaa huomiota: käyrien piikit vaikuttavat systemaattisesti siirtyvän vuosi vuodelta hieman oikealle. Tämä tarkoittaa sitä, että keskimääräisen valosäteilyn intensiteetti on kasvanut (valoisten alueiden kehittyminen yhä valoisimmiksi). Lisäksi voidaan havaita isoimman piikin korkeuden kasvamista siirryttäessä vuodesta 2014 vuoteen 2016, joka puolestaan kertoo siitä, että kirkkaasti valaistujen alueiden osuus on kasvussa (enemmän valoisia alueita).

Google Earth Engine

Säteilyintensiteetissä tapahtuneen muutoksen visualisointi kartalla

Ajan suhteen tapahtuneiden muutosten tarkastelu on GEEn avulla mahdollista tehdä myös karttapohjalla. Alla olevista kuvista näet miten Iranin (lähikuvissa Teheranin ja Ahwazin kaupungit) VIIRS-DNB-satelliitin keräämän keskimääräisen valon säteilyintensiteetin määrä on muuttunut vuoden 2014 alusta vuoden 2018 loppuun. GEEn aineistoilla voidaan nimittäin suorittaa myös pikselikohtaista analyysiä. Tässä tapauksessa meidän kannattaa vähentää vuoden 2018 joulukuun komposiitista vuoden 2014 tammikuun komposiitin arvot ja jakaa saatu tulos 60:llä (näin monta kuukautta tarkastellulle aikavälille mahtuu) saadaksemme numeraalisen arvion sille, mikä on ollut keskimääräinen kuukausittainen muutos valon säteilyintensiteetissä. Visualisointiparametrit kannattaa valita siten, että väri kuvaa muutoksen suuntaa (sininen vähenemistä, punainen lisääntymistä) ja värin voimakkuus muutoksen suuruutta. Huomaa, että tässä esimerkissä emme hakeneet Iranin valtion rajoja GEEn omista aineistoista vaan hyödynsimme tietokoneen muistissa olevaa lokaalia shapefilea muuntamalla sen ee-objektiksi.

Google Earth Engine
Ahwaz.
Google Earth Engine
Teheran.

Tässä kohtaa kannattanee mainita, että esimerkiksi tällaisia karttatasoja voi exportata ulos GEEstä esimerkiksi QGISiin GeoTIFF-tiedostoina. Tason exporttaus tapahtuu oletusarvoisesti omaan Google Drive -kansioon esim. seuraavasti:

Google Earth Engine

Koropleettikartat

Pikselikohtaisten karttatuotteiden lisäksi GEEllä voi tuottaa myös koropleettikarttoja, joista esimerkkinä Italian ensimmäisen tason hallintoalueiden vuoden 2019 toukokuun keskimääräisistä VIIRS-DNB-satelliitin mittaamista valon säteilyintensiteettiarvoista tuotettu karttataso.

Google Earth Engine

Muut mahdollisuudet

Muista GEEn tarjoamista mahdollisuuksista mainittakoot nyt ainakin DMSP-OLS-datan interkalibrointi (eri satelliiteilla tuotetut kuvatuotteet eivät ole keskenään suoraan vertailukelpoisia niin kuin VIIRS-DNB-data on), koneoppiminen (esim. Random Forest -luokittelija löytyy GEEstä implementoituna samoin kuin työkaluja ohjatun oppimisen menetelmien tarvitsemien harjoitusaineistojen muodostamiseen) ja GIFien tuottaminen. Alla yksi esimerkki Kiinan Wuhanin alueelta tuotetusta GIFistä, jossa on kuvattu VIIRS-DNB-datan säteilyintensiteetin kuukausittaista vaihtelua.

Google Earth Engine

Testaa itse!

Koodit tässä blogissa esiteltyjen esimerkkien takaa löytyvät kokonaisuudessaan täältä:JupyterNotebookGEELataa

Mikäli haluat oppia hyödyntämään GEEtä syvällisemmin ja monipuolisemmin, kannattaa tutustua tähän blogiin liittyvän Jupyter Notebook -tiedoston lisäksi esimerkiksi World Bank’s Open Night Lights -tutoriaalisarjaan. Ei sitten muuta kuin kivoja tutkimusretkiä GEEn avaamaan uuteen maailmaan!

Profiilikuva

Gispo

Gispo on suomalainen avoimen lähdekoodin paikkatietotalo, jonka palveluihin kuuluu paikkatietokonsultointia, sovelluskehitystä, koulutusta sekä ylläpitoa ja tukea.