R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Helteen tukaluus

Kirjoitin aiemmin viimaindeksistä, joka kuvaa pakkasen ja tuulennopeuden vaikutusta ihmisen kokemaan kylmyyteen. Vastaavankaltaisia indeksejä on kehitetty myös koetun lämmön kuvaamiseen. Ilmatieteen laitos tarjoaa kaavion, joka ilmeisesti käyttää ns. Summer Simmer Indexiä (SSI). SSI ei ota huomioon tuulen viilentävää vaikutusta, eikä auringon lämmittävää vaikutusta. Molemmat voidaan tarvittaessa ottaa huomioon esimerkiksi Australian Apparent Temperature -indeksissä (ATS). ATS:ää voidaan käyttää myös pakkasen purevuuden arviointiin viimaindeksin sijaan.

Laskentafunktio

Tehdäänpä näiden laskemiseen soveltuva laskuri. SSI käyttää Fahrenheit-asteita, joten tarvitaan myös Celsius-asteiden muunnosfunktiot. Muunnosfunktiot ovat yksinkertaisia:

# Celcius-asteista Fahrenheit-asteiksi
C2F <- function(C) {
   (C) * 1.8 + 32
}
 
# Fahrenheit-asteista Celcius-asteiksi
F2C <- function(F) {
   (F32) / 1.8
}

Tehdään tämän jälkeen varsinainen laskentafunktio:

 
hi <- function(temperature, humidity, wind.speed=0, solar.irradiation=0, index="SSI") {
   # temperature:       Celcius
   # humidity:          %
   # wind.speed:        m/s
   # solar.irradiation: W/m^2
 
   T <- temperature
   H <- humidity
   V <- wind.speed
   Q <- solar.irradiation
 
   if(index=="SSI") {
      Tf <- C2F(T)
      SSI <- 1.98*(Tf−(0.550.0055*H)*(Tf−58))56.83
      res <- F2C(SSI)
   }
 
   if(index=="ATS") {
      E2  <- (H / 100) * 6.105 * exp(1) ^ ((17.27 * T) / (237.7 + T ))
      res <- T + 0.348 * E2 - 0.70 * V + ((0.70 * Q) / (V + 10)) - 4.25
   }
 
   res <- round(res, 1)
 
   return(res)
}

Funktiolle pitää antaa vähintään kaksi argumenttia, temperature (lämpötila Celcius-asteina) ja ilmankosteus (humidity, %). Oletusarvoisesti funktio laskee SSI-indeksin, mutta sen voi muuttaa laskemaan ATS-indeksin argumentilla index. Tällöin funktiolle pitää antaa myös argumentit wind.speed (tuulen nopeus, m/s) ja solar.irradiation (auringon lämmitysvoima, W/m^2).

Käyttöesimerkki

Esimerkiksi työtilani lämpötila tuntuu SSI-indeksillä

hi(31,80)
 
#[1] 43.6

miltei 44-asteiselta, vaikka huonelämpötila onkin vain 31 astetta.

Vastaavasti sama laskutoimitus voidaan tehdä ATS-indeksillä. Ulkona auringon insolaatio voi Suomessa olla keskipäivällä yli 600 W/m^2, josta sisätiloihin saadaan noin 30 %. Toisin sanoen, ilman tuuletusta ja ikkunoiden varjostusta tai peittämistä, sisätilojen lämpötila tuntuu

hi(31,80,0,180, index="ATS")
 
#[1] 51.8

ATS-indeksillä laskettuna paljon lämpimämmältä (51,8 astetta) kuin SSI-indeksillä laskettuna.

Vertailun vuoksi Madridissa on tänään klo 15:00 33 astetta lämmintä, ilmankosteus on 13 % ja tuulen nopeus 4 m/s. Vastaavaan aikaan insolaatio ulkona on noin 500 W/s. Näillä arvoilla lämpötila tuntuu

hi(33,13,4,500, index="ATS")
 
#[1] 53.2

noin 53,2 Celcius-asteelta. Karkeasti työskentelytilani tuntuu siis lämpötilansa puolesta suunnilleen samalta kuin Madridin auringonpaiste iltapäivällä heinäkuussa! Myönnettäköön, että kaavat on kehitetty ulkolämpötilojen vertailuun, joten yllä esitetty vertailu voi olla hieman keinotekoinen.

Kaavio auringonpaisteen vaikutuksesta

Ilmatieteen laitoksen mukaan keskimääräinen ilmankosteus ulkona on Vantaalla noin 80 % ja tuulen nopeus noin 5 m / s. Katsotaanpa miten auringonpaiste vaikuttaa eri lämpötilojen kokemiseen, kun ilmankosteus ja tuulen nopeus pidetään vakiona mainitulla tasolla. Insolaatio vaihtelee Suomessa karkeasti välillä 30 – 600 W / m^2. Etelä-Suomessa maksimi-insolaatio on kesäkuussa 06:00-18:00 välillä yli 250 W / m^2. Tulokset esittään alla lämpökarttakaaviona.

d <- expand.grid(temperature=seq(20,31,0.5), humidity=80, wind.speed=4, solar.irradiation=seq(30,600,10))
d$hi <- NA
for(i in 1:nrow(d)) {
   d$hi[i] <- hi(d$temperature[i], d$humidity[i], d$wind.speed[i], d$solar.irradiation[i], index="ATS")
}
 
library(reshape2)
library(RColorBrewer)
tmp <- dcast(d[,c(1,4,5)], temperature~solar.irradiation)
rownames(tmp) <- tmp$temperature
tmp <- tmp[,-1]
tmp <- tmp[rev(1:nrow(tmp)),]
 
cols <- brewer.pal(9, "Reds")
colfunc <- colorRampPalette(c(cols[1], cols[8]))
cols <- colfunc(10)
 
 
library(gplots)
heatmap.2(floor(as.matrix(tmp))+0.1, Rowv=NA, Colv=NA, scale="none", col=cols, cellnote=floor(as.matrix(tmp)), notecex=0.75, 
          notecol="black", trace="none", key=FALSE, breaks=c(20,25,30,35,40,45,50,55,60,65,70), margins=c(3,3), adjCol=c(0.5,0.5))

Tuloksena muodostuva lämpökartta näyttää seuraavalta. Insolaatio on vaaka-akselilla ja lämpötila pystyakselilla. Auringon lämpövaikutus tuloksiin näyttää olevan varsin suuri. Päivän aikainen vaihtelu näyttää olevan noin 30 astetta hämärästä kaikkein kirkkaimpaan ajankohtaan verrattuna. Jos siis haluaa pysytellä mahdollisimman viileänä, on tärkeää välttää suoraa auringonpaistetta (yllätys!).

[Klikkaa kuva suuremmaksi!]

Lisäys 2018-07-29
Lisättäköön edellisiin tarkasteluihin muutama huomio.

Yhdysvaltain American Society of Heating, Refrigerating and Air-Conditioning Engineers, ASHRAE, on tehnyt runsaasti tutkimusta ihmisten kokemasta lämpötilasta. Tutkimus keskittyy sisätiloihin, mutta tutkimuksiin perustuen on saatavilla mm. laskuri, jolla lämpötilakokemusta voi arvioida. Laskurin mukaan työtilani sisälämpötila on tällä hetkellä näköjään kuuma eika lainkaan suositusten mukainen. Laskuri on siitä hyvä työkalu, että se sisältää myös mahdollisuuden arvioida, miten eri ihmiset kokevat lämpötilan, sillä vaihtelu on yllättävän suurta, helposti 7-10 astetta.

Lämpöneutraali ilman lämpötila on noin 27-astetta, kun ihminen on alasti ja lepotilassa. Tällöin ollaan lämpötilan puolesta jonkinlaisessa fysiologisessa tasapainotilassa. Tasapainolämpötila on ihmisen elimistön lämpötilaa pienempi, sillä ihminen on tasalämpöinen eli tuottaa oman lämpönsä (vähintään noin 100 W lämpöteho), jonka ylimäärä pitää saada poistettua ympäristöön. Jos ympäristö on liian lämmin, ihmisen elimistö tehostaa viilennystään ja jos taas liian kylmä, lämmitys tehostuu.

Lämpötilan mukavaksi kokemista on tutkittu suomalaisilla Finrisk 2007 -tutkimuksen yhteydessä kyselyllä. Yli puolet vastaajista oli sitä mieltä, että yli 25-asteen lämpötila on jo kuuma. Alle 5% vastaajista piti vasta yli 33-asteen tai yli 19-asteen lämpötilaa kuumana. Mukavan lämpötilan ylärajaksi taas koettiin noin 18-24 -asteen lämpötilat, riippuen iästä ja sukupuolesta. Noin neljä viidestä vastaajasta kokee tällä hetkellä Etelä-Suomessa vallitsevan sään (+27 – +30) tukalan kuumaksi. Helsingin Sanomat teki hiljattain myös oman kyselynsä, jonka tulokset ovat saman suuntaisia.

Wikipedian artikkeli esittelee yleistajuisesti, miksi ihmisten lämpötilakokemukset voivat vaihdella mm. fysiologisista ja psykologisista syistä johtuen. Yksi tärkeä tekijä on ikä, sillä erityisesti vanhat kokevat korkean (ja matalan) lämpötilan tukalampana kuin nuoremmat.

Ihmispopulaatiot ovat myös osittain sopeutuneet asuinmaansa olosuhteisiin. Esimerkiksi pienin ikääntyneiden kuolleisuus on Suomessa, kun päivän keskilämpötila on 14-17 Celcius-astetta, kun vastaava lämpötila Ateenassa on 23-26 astetta. Suomessa optimilämpötila on tarkentunut noin 14-asteeseen. Viileässä ilmastossa asuvien ihmisten kuolleisuus lisääntyy nopeammin lämpötilan noustessa kuin sen laskiessa. Ihmisen fysiologia kuitenkin muuttuu, jos sää jatkuu, ja uuteen ilmanalaan akklimatisoituminen vie tyypillisesti muutamia viikkoja. Myös kulttuurierot voivat vaikuttaa kuolleisuuseroihin eri ilmanaloissa.

Finrisk 2007 ja kuolleisuustutkimusten tuloksia verrattaessa kannattaa huomioida, että Finrisk kysyi tukalaksi koettua lämpötilaa. Tämä voi olla esimerkiksi päivän ylin lämpötila ulkona. Kuolleisuustutkimuksissa taas käytettiin päivän keskilämpötilaa, joka on matalampi kuin päivän ylin lämpötila, koska yöt ovat tyypillisesti päiviä viileämpiä. Päivän keskilämpötila voi olla 14-astetta, jos päivän ylin on esimerkiksi noin 22- ja alin noin 3-astetta tai jos päivän ylin on noin 20-astetta ja yön alin noin 9-10 astetta. Jälkimmäinen lienee ainakin Etelä-Suomessa tyypillisempi tilanne 14-asteen päiväkeskiarvoa ajatellen.


Category