wiki:Calculating annual, winter and summer temperatures per year

back to first page ..
back to Temperature
back to Temperature download and load

Winter : Période hivernale : décembre, janvier, février

  • calculé sur l'ensemble de la période 1977-2002(poolage)
  • calculé pour chaque année (winter1977, winter1978...)

Summer :Période estivale : juin, juillet, août, septembre (tel que défini dans la publi de Lassalle 2008 : juin à août)

  • sur l'ensemble de la période 1977-2002(poolage)
  • pour chaque année

Annual

  • pour chaque année
  • Pour avoir la température estivale pour chaque année par gridid :
    tapply(tmp$value[tmp$season=="summer"],list(tmp$gridid[tmp$season=="summer"],tmp$year[tmp$season=="summer"]),mean)
    
  • Pour avoir la température hivernale pour chaque année par gridid :
    tapply(tmp$value[tmp$season=="winter"],list(tmp$gridid[tmp$season=="winter"],tmp$year[tmp$season=="winter"]),mean)
    
  • Mais c'est plus compliqué :

En fait pour les "winter temperatures" on doit prendre le mois de décembre de l'année t et les mois de janvier et février de l'année t+1 et faire la moyenne sur ces trois mois.

NNum<-length(levels(as.factor(tmp$Num)))
Nyear<-length(as.numeric(min(tmp$year)):as.numeric(max(tmp$year)))
tmpwinter<-array(NA,c(Ntmp,Nyear))
system.time(
for(i in 1:NNum){
	for(j in (as.numeric(min(tmp$year))+1):as.numeric(max(tmp$year))){
		tmpwinter[i,j-as.numeric(min(tmp$year))+1]<-sum(tmp$value[tmp$month=="12"&tmp$year==(j-1)&tmp$Num==i],
						   tmp$value[tmp$month=="1"&tmp$year==j&tmp$Num==i],
						   tmp$value[tmp$month=="2"&tmp$year==j&tmp$Num==i])/3
	}
}
)
tmpwinter<-as.data.frame(tmpwinter)
names(tmpwinter)<-paste("w",as.numeric(min(tmp$year)):as.numeric(max(tmp$year)),sep="")
Last modified 15 years ago Last modified on Jun 16, 2010 5:19:55 PM