R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Veden tiheyden laskeminen

Viime viikolla tuli tarve laskea sadoille tai tuhansille havainnoille veden tiheyden arvio käyttäen mitattua veden syvyyttä, lämpötilaa ja suolaisuutta. Löysin helposti Googlella useitakin ohjelmia, jotka kyllä laskevat tiheyden kiltisti yhdelle havainnolle kerrallaan, mutta tuhansien kanssa tulisi niitä käyttäen ongelmia. Olisin voinut tehdä laskurin itse vaikka Exceliin, jos olisin jaksanut etsiä sopivat yhtälöt laskutoimituksia varten, mutta jälleen kerran R:stä löytyivät sopivat funktiot valmiina.

Tiheyden laskemiseksi on kullekin havainnolle ensin laskettava vedenpaineen arvio kussakin mitatussa syvyydessä. Kun paine on arvioitu, voidaan seuraavaksi laskea suoraan tiheyden arvio. Pääpiirteissään laskenta toimii data frame d:llä seuraavasti:

# Loads the libraries
library(seacarb)
library(oce)
 
# Sample data
d<-data.frame(depth=c(0,10,20), temp=c(8,6,4), sal=c(6,6.5,7))
 
# Calculations
# Pressure
d$pres<-d2p(d$depth, 60)
# Density
d$dens<-swRho(d$sal, d$temp, d$pres)
# Density anomaly
d$dens.anomal<-swSigma(d$sal, d$temp, d$pres)
 
# Results
print(d)
#  depth temp sal     pres     dens dens.anomal
#1     0    8 6.0  0.00000 1004.572    4.572244
#2    10    6 6.5 10.09978 1005.143    5.143037
#3    20    4 7.0 20.20002 1005.664    5.663513


Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *