ESIMERKKI: Lumensyvyys#
Työn rakenne#
Yksinkertainen projekti noudattaa yleensä simppeliä perusrakennetta:
Määritetään kiinnostuksen kohde (tutkimuskysymys)
Etsitään aineistoa (datankeruu)
Tarkastellaan löydöksiä (analyysi)
Arvioidaan, kritisoidaan (tulokset ja johtopäätökset)
Selitetään tarpeen mukaan käytetyt aineistot (lähteet)
1. Tutkimuskysymys#
Sanotaan, että meitä kiinnostaa pohtia Espoon talvien lumisuutta tällä vuosituhannella. Onko kevät 2022 tosiaan lumisin vuosiin vai tuntuuko se vain siltä?
2. Aineisto#
Ilmatieteen laitokselta löytyy reaaliaikaisia mittauksia tarjoava portaali, josta voidaan kaivaa haluttujen paikkakuntien mitta-asemilta mitattuja arvoja.
https://www.ilmatieteenlaitos.fi/havaintojen-lataus
Tässä esimerkissä on käytetty Espoon asemia vuosilta 2000-2022. Yksikin mittaus on mittaus, mutta paremman yleiskuvan saamiseksi voi olla hyödyllistä tarkastella useamman lähiaseman aineistoja. Ilmatieteen laitoksen kartasta osuu ensimmäisenä silmään Tapiolan, Nupurin ja Nuuksion asemia, joten katsotaan mitä niistä selviää.
Tiedot on noudettu palvelusta 6.3.2022
# Tuodaan tarvittavat työkalukirjastot
import pandas as pd
import matplotlib.pyplot as plt
# Huomaa lukukomennon sisään lisätty 'parse'-parametri, jolla luodaan tiedostoon yhdistelmä päivämääräsarakkeista,
# jolloin saadaan juoksevasti kasvava luku tulevan visualisoinnin aika-akseliksi.
Tapiola = pd.read_csv("https://raw.githubusercontent.com/opendata-education/Tyopajat/main/materiaali/data/EspooTapiola.csv",
parse_dates = {"Aika":["Vuosi", "Kk", "Pv", "Klo"]}, keep_date_col = True)
Nupuri = pd.read_csv("https://raw.githubusercontent.com/opendata-education/Tyopajat/main/materiaali/data/EspooNupuri.csv",
parse_dates = {"Aika":["Vuosi", "Kk", "Pv", "Klo"]}, keep_date_col = True)
Nuuksio = pd.read_csv("https://raw.githubusercontent.com/opendata-education/Tyopajat/main/materiaali/data/EspooNuuksio.csv",
parse_dates = {"Aika":["Vuosi", "Kk", "Pv", "Klo"]}, keep_date_col = True)
Tapiola
Aika | Vuosi | Kk | Pv | Klo | Aikavyöhyke | Lumensyvyys (cm) | |
---|---|---|---|---|---|---|---|
0 | 2014-01-01 | 2014 | 1 | 1 | 00:00 | UTC | -1 |
1 | 2014-01-02 | 2014 | 1 | 2 | 00:00 | UTC | -1 |
2 | 2014-01-03 | 2014 | 1 | 3 | 00:00 | UTC | -1 |
3 | 2014-01-04 | 2014 | 1 | 4 | 00:00 | UTC | -1 |
4 | 2014-01-07 | 2014 | 1 | 7 | 00:00 | UTC | -1 |
... | ... | ... | ... | ... | ... | ... | ... |
2915 | 2022-02-24 | 2022 | 2 | 24 | 00:00 | UTC | 54 |
2916 | 2022-02-25 | 2022 | 2 | 25 | 00:00 | UTC | 47 |
2917 | 2022-02-26 | 2022 | 2 | 26 | 00:00 | UTC | 47 |
2918 | 2022-02-27 | 2022 | 2 | 27 | 00:00 | UTC | 47 |
2919 | 2022-02-28 | 2022 | 2 | 28 | 00:00 | UTC | 46 |
2920 rows × 7 columns
Nupuri
Aika | Vuosi | Kk | Pv | Klo | Aikavyöhyke | Lumensyvyys (cm) | |
---|---|---|---|---|---|---|---|
0 | 2000-01-02 | 2000 | 1 | 2 | 00:00 | UTC | 21 |
1 | 2000-01-04 | 2000 | 1 | 4 | 00:00 | UTC | 24 |
2 | 2000-01-05 | 2000 | 1 | 5 | 00:00 | UTC | 20 |
3 | 2000-01-06 | 2000 | 1 | 6 | 00:00 | UTC | 19 |
4 | 2000-01-07 | 2000 | 1 | 7 | 00:00 | UTC | 16 |
... | ... | ... | ... | ... | ... | ... | ... |
3896 | 2010-12-28 | 2010 | 12 | 28 | 00:00 | UTC | 44 |
3897 | 2010-12-29 | 2010 | 12 | 29 | 00:00 | UTC | 44 |
3898 | 2010-12-30 | 2010 | 12 | 30 | 00:00 | UTC | 41 |
3899 | 2010-12-31 | 2010 | 12 | 31 | 00:00 | UTC | 48 |
3900 | 2011-01-01 | 2011 | 1 | 1 | 00:00 | UTC | 49 |
3901 rows × 7 columns
Nuuksio
Aika | Vuosi | Kk | Pv | Klo | Aikavyöhyke | Lumensyvyys (cm) | |
---|---|---|---|---|---|---|---|
0 | 2014-06-14 | 2014 | 6 | 14 | 00:00 | UTC | -1.0 |
1 | 2014-06-15 | 2014 | 6 | 15 | 00:00 | UTC | -1.0 |
2 | 2014-06-16 | 2014 | 6 | 16 | 00:00 | UTC | -1.0 |
3 | 2014-06-17 | 2014 | 6 | 17 | 00:00 | UTC | -1.0 |
4 | 2014-06-18 | 2014 | 6 | 18 | 00:00 | UTC | -1.0 |
... | ... | ... | ... | ... | ... | ... | ... |
2798 | 2022-02-24 | 2022 | 2 | 24 | 00:00 | UTC | 87.0 |
2799 | 2022-02-25 | 2022 | 2 | 25 | 00:00 | UTC | 81.0 |
2800 | 2022-02-26 | 2022 | 2 | 26 | 00:00 | UTC | 83.0 |
2801 | 2022-02-27 | 2022 | 2 | 27 | 00:00 | UTC | 82.0 |
2802 | 2022-02-28 | 2022 | 2 | 28 | 00:00 | UTC | 80.0 |
2803 rows × 7 columns
3. Analyysi#
Kuvaajat ovat erinomainen työkalu nopeisiin arviointeihin. Otetaan ensimmäiseksi yleiskuva ajan suhteen:
plt.figure(figsize = (30, 5))
plt.scatter(Tapiola["Aika"], Tapiola["Lumensyvyys (cm)"])
plt.title("Lumensyvyys Tapiolan mitta-asemalla (cm) \n", fontsize = 30)
plt.show()
plt.figure(figsize = (30, 5))
plt.scatter(Nupuri["Aika"], Nupuri["Lumensyvyys (cm)"])
plt.title("Lumensyvyys Nupurin mitta-asemalla (cm) \n", fontsize = 30)
plt.show()
plt.figure(figsize = (30, 5))
plt.scatter(Nuuksio["Aika"], Nuuksio["Lumensyvyys (cm)"])
plt.title("Lumensyvyys Nuuksion mitta-asemalla (cm) \n", fontsize = 30)
plt.show()
Tapiolan ja Nuuksion tiedot näyttävät olevan samalta ajalta, mikä helpottaa rinnakkaista vertailua:
plt.figure(figsize = (30, 5))
plt.scatter(Nupuri["Aika"], Nupuri["Lumensyvyys (cm)"], c = "red", label = "Nupuri")
plt.scatter(Nuuksio["Aika"], Nuuksio["Lumensyvyys (cm)"], c = "blue", label = "Nuuksio")
plt.scatter(Tapiola["Aika"], Tapiola["Lumensyvyys (cm)"], c = "orange", label = "Tapiola")
plt.title("Lumensyvyys Espoon mitta-asemilla (cm) \n", fontsize = 30)
plt.legend(fontsize = 20)
plt.show()
Aineistossa näkyy muutamia poikkeuksellisia kausia, kuten poikkeuksellisen lumettomia vuosia (2008, 2020) tai korkeita kinoksia (2010, 2022). Tarkastellaan niitä vähän lähemmin.
Tapiola20 = Tapiola.query("Vuosi >= '2019'")
Nuuksio20 = Nuuksio.query("Vuosi >= '2019'")
plt.figure(figsize = (30, 5))
#plt.subplot(1,2,1)
plt.scatter(Tapiola20["Aika"], Tapiola20["Lumensyvyys (cm)"], c = "orange", label = "Tapiola")
plt.xticks(rotation = 45)
#plt.subplot(1,2,2)
plt.scatter(Nuuksio20["Aika"], Nuuksio20["Lumensyvyys (cm)"], c = "b", alpha = 0.5, label = "Nuuksio")
plt.suptitle("Lumensyvyys viime vuosina Espoon mitta-asemilla (cm) \n", fontsize = 30)
plt.xticks(rotation = 45)
plt.legend(fontsize = 20)
plt.show()
Tapiola21 = Tapiola.query("Vuosi >= '2021'")
Nuuksio21 = Nuuksio.query("Vuosi >= '2021'")
plt.figure(figsize = (15, 5))
#plt.subplot(1,2,1)
plt.scatter(Tapiola21["Aika"], Tapiola21["Lumensyvyys (cm)"], c = "orange", label = "Tapiola")
plt.xticks(rotation = 45)
#plt.subplot(1,2,2)
plt.scatter(Nuuksio21["Aika"], Nuuksio21["Lumensyvyys (cm)"], c = "b", alpha = 0.5, label = "Nuuksio")
plt.suptitle("Lumensyvyys 21-22 Espoon mitta-asemilla (cm) \n", fontsize = 30)
plt.xticks(rotation = 45)
plt.legend(fontsize = 20)
plt.show()
4. Arviointi#
Ilmatieteen laitoksen sivuilta saa jonkinlaista kuvaa mittausten tarkkuudesta ja asemien paikkatiedoista.
Lumensyvyyden hetkelliseksi tarkkuudeksi ilmoitetaan ± 2 cm. Vuorokausiarvoja, joita tässäkin käytettiin, ei keskiarvoisteta läpi päivän vaan ne ilmoitetaan kello 8 (kesällä 9) havainnoista.
Asemista kerrotaan seuraavaa.
Nuuksio: Asema sijaitsee laajalla metsäisellä, harvaan asutulla ja hyvin rikkonaisella järviylängöllä jonka korkeustaso on keskimäärin 80-110 m mpy, mutta syvät murroslaaksot 30-60 m mpy. Järviylänkö on sade- ja lumimaksimialuetta. Laajemmat alavat, tyypilliset Etelä-Suomen jokimaat (20-50 m mpy) sijaitsevat lähimmillään kaakossa ja lounaassa n. 6 km päässä asemasta. Sääasema sijaitsee pienellä metsäaukiolla korkean mäen reunamalla.
Tapiola: Asema sijaitsee rannikolla, pääkaupunkiseudun (asukasluku n. 1,1 milj.) esikaupunkialueella. Keskimääräiseen rannikkoviivaan on etäisyyttä n. 2 km sektorissa 120-240 astetta, lisäksi Laajalahden-Seurasaaren lahti sijaitsee n. 2,5 km päässä idässä ja koillisessa. Maa-aluetta hallitsevat kallio/moreeniselänteet (20-50 m mpy) ja näiden väliset savitasangot (0-20 m mpy). Sääasema sijaitsee Gräsanojan loivassa laaksossa, laajan ulkoilualueen melko avoimessa puistossa, jossa muutamien lehtipuiden lisäksi 30 metriä korkea rakennus lounaassa n. 25 m päässä asemasta.
Nupurin aseman toiminta lopetettiin vuonna 2011.
Ylläolevan perusteella ei liene ihmeellistä, että piirretyssä aineistossa havaitaan Nuuksion ylittävän reippaasti Tapiolan arvot. Syitä löytyy niin maantieteen (paikallinen lumimaksimi, pohjoisempana) kuin ihmistoiminnankin vuoksi (Tapiola sijaitsee tiiviimmin asutetulla alueella). Trendit noudattavat kuitenkin toisiaan, kuten nähdään erittäin lumisesta vuodesta 2022 tai käytännössä lumettomasta vuodesta 2020.
Lumiaineistot ovat näillä asemilla kuitenkin harmillisen lyhyitä. Kaivelemalla latauspalvelusta vanhempia asemia tai tekemällä johtopäätöksiä yleisten sademäärien kautta pystyisi syventämään väitteitään alueen ilmaston aikakehityksestä. Jatkopohdintana voi miettiä, miten lumettomien ja hyvin lumisten vuosien heiluminen tilastoissa liittyy yleisesti ilmastonmuutoksen tuomiin säähäiriöihin.
5. Lähteet#
https://www.ilmatieteenlaitos.fi/havaintojen-lataus
https://www.ilmatieteenlaitos.fi/havaintoasemat
https://www.ilmatieteenlaitos.fi/nuuksion-saahavaintoasema