6. Tmoy
Tmin Tmax
janv.
févr.
mars
avr.
mai
juin
juil.
août
sept.
oct.
nov.
déc.
janv.
févr.
mars
avr.
mai
juin
juil.
août
sept.
oct.
nov.
déc.
janv.
févr.
mars
avr.
mai
juin
juil.
août
sept.
oct.
nov.
déc.
32
36
40
15
20
25
24
28
32
36
Mois
Températures[°C]
Variables climatiques Tmin Tmax Tmoy
Régime de températures−−Période:1961−2009
Figure 1 – Régime de Températures
Cette figure (figure 1) représente l’évolution saisonnière de la température sur la période 1961
à 2009. L’analyse de cette figure permet de dire que la température minimale présente une
ondulation au cours de l’année avec des maximas en Avril-Mai (en moyenne 27.3°C pour le
mois de mai) et les mois de Janvier et Décembre sont les mois les plus frais (moyenne de 16°C
pour Janvier). Ces faibles valeurs de températures au cours des mois de décembre Janvier
seraient liées à l’envahissement des vents frais et secs d’harmattan venant du Sahara et qui
balayent toute la sous-région ouest africaine. Les températures minimales affichent une faible
dispersion aux mois de Juillet Août et Septembre qui correspondent à la période hivernale de
la zone.
Les températures maximales épousent elles aussi l’allure de celles minimales avec deux pics ;
le premier pic observé au cours des mois de Mars-Avril-Mai (mois les plus chauds) et le
deuxième enregistré au cours des mois d’Octobre et Novembre. Les mois de Juillet Août et
Septembre sont les mois les moins chauds avec des températures de l’ordre de 28-36°C. Les
hautes températures obtenues au cours des mois de Mars-Avril-Mai sont liées au fait que
cette période correspond au cour de la saison sèche. Les températures moyennes évoluent
entre 17 et 27°C pour les minimales et 32 et 40°C pour les maximales.
6
7. 1.1.2 Variabilité saisonnière Humidités
ggplot2::ggplot(data=moyenne.mensuel[moyenne.mensuel$variable%in%c("Umin","Umax"),],
mapping=ggplot2::aes(y=value, fill=variable, x=Month) )+
ggplot2::geom_boxplot(outlier.colour="black", show.legend=TRUE) +
theme(axis.text.x = element_text(angle = 90,hjust = 1))+
theme(legend.position="bottom",legend.background = element_rect(fill="lightblue",
ggplot2::facet_wrap(facets= ~ variable, dir="h", scales="free",nrow = 1,ncol = 2) +
ggplot2::labs(title="Régime Hygrométrique--Période:1961-2009") +
ggplot2::xlab(label="Mois")+ggplot2::ylab(label="Humidité relative en [%]")+
labs(fill="Variables climatiques")
Umin Umax
janv.
févr.
mars
avr.
mai
juin
juil.
août
sept.
oct.
nov.
déc.
janv.
févr.
mars
avr.
mai
juin
juil.
août
sept.
oct.
nov.
déc.
20
40
60
80
100
20
40
60
Mois
Humiditérelativeen[%]
Variables climatiques Umin Umax
Régime Hygrométrique−−Période:1961−2009
Figure 2 – Régime Hygrométrique
la figure 2 représente l’évolution de l’humidité. L’humidité relative dans son évolution au cours
de la saison se présente sous la forme d’une cloche assymétrique vers la droite. L’humidité
minimale est inférieure à 20% au cours des mois de Novembre à Mars et est supérieure à 40%
entre juillet et Aout. L’humidité maximale (à droite sur la figure) a la même évolution que la
minimale avec des taux inférieurs à 50% en saison sèche et supérieur à 80% entre juillet et
7
8. Aout. Il faut remarquer que les deux types d’humidités se comportent de façon oppose au
niveau de la dispersion. En effet l’humidité minimale à une forte dispersion en saison humide
et une faible dispersion entre Novembre et Avril contrairement à l’humidité maximale qui
connait une faible dispersion entre Juillet et Septembre et forte dispersion le reste de l’année.
1.1.3 Variabilité saisonnière Insolation
ggplot2::ggplot(data=Insolation.moy.cumul,
mapping=ggplot2::aes(y=value, fill=variable, x=Month) )+
ggplot2::geom_boxplot(outlier.colour="black", show.legend=TRUE) +
theme(axis.text.x = element_text(angle = 90,hjust = 1))+
theme(legend.position="bottom",legend.background = element_rect(fill="lightblue",
ggplot2::facet_wrap(facets= ~ variable, dir="h", scales="free",nrow = 1,ncol = 2) +
ggplot2::labs(title="Durée d'insolation--Période:1961-2009") +
ggplot2::xlab(label="Mois")+ggplot2::ylab(label="Insolation en [heure]")+
labs(fill="Variables climatiques")
Insolation Moyenne Mensuelle Insolation cumul mensuel
janv.
févr.
mars
avr.
mai
juin
juil.
août
sept.
oct.
nov.
déc.
janv.
févr.
mars
avr.
mai
juin
juil.
août
sept.
oct.
nov.
déc.
0
100
200
300
7
8
9
10
11
Mois
Insolationen[heure]
Variables climatiques Insolation Moyenne Mensuelle Insolation cumul mensuel
Durée d'insolation−−Période:1961−2009
Figure 3 – Durée d’insolation mensuelle
8
9. L’insolation moyenne mensuelle connait une grande dispersion au cours de l’année contrai-
rement à son cumul mensuel au cours de la période 1961 à 2009 (figure 3). Les moyennes
mensuelles varient entre 7 et 10heures par mois et les cumuls sont généralement supérieurs à
225 heures par mois. Les plus petites valeurs se retrouvent au cours des mois de Juillet-Aout-
Septembre et cela s’explique par le fait que cette période correspond à la saison pluvieuse.
La saison pluvieuse est marquée par un ciel généralement nuageux empêchant ainsi les
rayonnements solaires de parvenir à la surface terrestre. Les fortes moyennes sont enregistrées
en saison sèche (figure 3).
1.1.4 Variabilité saisonnière Vent
ggplot2::ggplot(data=moyenne.mensuel[moyenne.mensuel$variable==c("Vent"),],
mapping=ggplot2::aes(y=value, fill=variable, x=Month) )+
ggplot2::geom_boxplot(outlier.colour="black", show.legend=TRUE) +
theme(axis.text.x = element_text(angle = 90,hjust = 1))+
theme(legend.position="bottom",legend.background =
element_rect(fill="lightblue",
size=0.5, linetype="solid"), legend.title =
element_text(colour="blue", size=10,face="bold"))+
ggplot2::labs(title="Vitesse du vent--Période:1961-2009") +
ggplot2::xlab(label="Mois")+ggplot2::ylab(label="Vitesse du vent en [m/s]")+
labs(fill="Variables climatiques")
1
2
3
4
janv.
févr.
mars
avr.
mai
juin
juil.
août
sept.
oct.
nov.
déc.
Mois
Vitesseduventen[m/s]
Variables climatiques Vent
Vitesse du vent−−Période:1961−2009
Figure 4 – Vent saisonnier
9
10. La vitesse du vent représentée sur la figure 4 est globalement supérieure à 0,5m/s et inférieure
à 3,5m/s. Les mois de Mai et Juin enregistrent les fortes vitesses du vent comprises entre
1,5 et 4m/s mais le vent affiche aussi une forte dispersion pendant cette même période. Cela
pourra être lié au début de la saison pluvieuse avec la prédominance des grains orageux.
hist(vent, breaks=seq(0,5,1), main="Fréquences des vitesses de vent",
xlab="Vitesse de vent (moyenne mensuelle)[en m/s]", ylab="Occurence",col="cyan")
Fréquences des vitesses de vent
Vitesse de vent (moyenne mensuelle)[en m/s]
Occurence
0 1 2 3 4 5
0100200
Figure 5 – Occurence des vitesses de vent
Les fortes occurrences de vitesse de vent mensuelle sont comprises entre 1 à 3m/s. Les vents
forts de 4 à 5m/s par mois sont moins fréquents dans la zone.
1.1.5 Variabilité saisonnière Pluie
boxplot(Pluie.mensuel,names = month.abb[1:12],col="cyan",
main="Régime pluviométrique",
ylab="Pluie(mm/mois)",xlab="Mois",las=2)
lines(1:12,apply(Pluie.mensuel,2,mean),col="red",lwd=2)
legend(x="topleft",legend=c("moyenne mensuelle"),
cex = 0.6,lwd = 2, col = "red",lty = 1)
10
11. Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
0
100
200
300
400
Régime pluviométrique
Mois
Pluie(mm/mois)
moyenne mensuelle
Figure 6 – Régime pluviométrique
Le régime pluviométrique est monomodal. La pluviométrie moyenne mensuelle présente une
forte variabilité au cours de l’année. La période de Juin à septembre sont les mois les plus
arrosés avec des quantités en moyenne supérieures à 100mm. Le mois d’Août est le mois au
cours duquel la zone enregistre de forte pluviométrie avec des hauteurs moyennes atteignant
200mm. Le cumul mensuel présente toutefois une forte dispersion au cours de ce mois. A
partir de cette représentation graphique on peut dire que la saison de pluie dans la zone va
de juin à septembre avec plus de 80% du cumul annuel.
par(mfrow=c(1,2))
hist(data$Pluie..mm., breaks=seq(0,120,5),
main="Fréquences des pluies n journalières",
xlab="classes des hauteurs n journalières[en mm/jour]",
ylab="Occurence",col="cyan")
hist(apply.monthly(data.xts[,8]$Pluie..mm.,sum), breaks=seq(0,450,50),
main="Fréquences des pluies n mensuelles",
xlab="classes des hauteurs n mensuelles[en mm/mois]",
ylab="Occurence",col="cyan")
11
12. Fréquences des pluies
journalières
classes des hauteurs
journalières[en mm/jour]
Occurence
0 20 60 100
050001000015000
Fréquences des pluies
mensuelles
classes des hauteurs
mensuelles[en mm/mois]
Occurence
0 100 300
0100200300400
Figure 7 – Fréquence des Pluies journalières et mensuelles
Les hauteurs des précipitations journalières présentent des fréquences très variables sur la
période d’étude (1961-2009). Les hauteurs journalières inférieures 5mm sont très fréquemment
observées dans la zone. Les précipitations supérieures à 60mm bien qu’elles soient très rares
ont été observéees sur la période d’étude dans la zone.
Les pluviométries mensuelles inférieures à 50mm présentent une plus forte occurrence .
climograph(apply.monthly(data.xts[,8]$Pluie..mm.,sum),
moyenne.mens$tmean...C.,na.rm = T,
main="Evolution de la Pluviométrie et de la Température Moyennes 1961-2009")
12
13. Jan Mar May Jul Sep Nov
Evolution de la Pluviométrie et de la Température Moyennes 1961−2009Precipitation,[mm]
0
50
100
150
200
250
0.2 0.2 1.8 7.9
31.2
87.7
160.8
200.5
110.3
28.5
0.8 0.2
24.6
27.4
30.8
33.4 33.6
31.1
28.6
27.4
28.3
30.3
28.2
25.3
24
26
28
30
32
34
Temperature,[°C]
Precipitation Temperature
Figure 8 – Evolution de la Pluviométrie et de la Température Moyennes 1961-2009
Cette figure n’est qu’une synthèse de l’évolution saisonnière des paramètres pluie et tempéra-
tures sur la zone. les températures moyennes (en rouge) et la pluviométrie (en batons bleu)
moyennes mensuelles sur la période y sot représentées.
1.2 Variabilité interannuelle des paramètres climatiques
##études de ruptures dans les séries de températures et de précipitations
TminK=mk.test(ts(moyenne.annuel$tmin...C.,start = 1961,end = 2009,frequency = 1))
Tminpt=pettitt.test(ts(moyenne.annuel$tmin...C.,start = 1961,end = 2009,frequency = 1))
TmaxK=mk.test(ts(moyenne.annuel$tmax...C.,start = 1961,end = 2009,frequency = 1))
Tmaxpt=pettitt.test(ts(moyenne.annuel$tmax...C.,start = 1961,end = 2009,frequency = 1))
RRK=mk.test(ts(pluie.annuel,start = 1961,end = 2009,frequency = 1))
RRpt=pettitt.test(ts(pluie.annuel,start = 1961,end = 2009,frequency = 1))
RR_maxK=mk.test(ts(pluie.maxi.an ,start = 1961,end = 2009,frequency = 1))
RR_maxpt=pettitt.test(ts(pluie.maxi.an ,start = 1961,end = 2009,frequency = 1))
##regression
Tminreg=lm(moyenne.annuel$tmin...C.~year(moyenne.annuel$tmin...C.))
Tmaxreg=lm(moyenne.annuel$tmax...C.~year(moyenne.annuel$tmax...C.))
13
15. legend(x="bottomright",legend=c("moyenne annuelle","moyenne Période 1",
"moyenne période 2","Tendance"),cex = 0.55,lwd = 2,
col = c("red","blue","cyan","black"),lty = c(1,1,1,1))
plot(year(moyenne.annuel$tmax...C.),moyenne.annuel$tmax...C.,type = "l",lwd=3,
col="red",main="Evolution des n températures maximales",
xlab = "Années",ylab = "°C", las=2)
abline(Tmaxreg$coefficients,lwd=2)
mtext(paste("tau=",signif(TmaxK$estimates[3],2)," p-value=",
signif(TmaxK$p.value,2),sep = ""),3)
mtext(paste("Année=",year(moyenne.annuel[Tmaxpt$estimate])," p-value=",
signif(Tmaxpt$p.value,2),sep = ""),4)
segments(1961,mean(moyenne.annuel$tmax...C.[1:8],na.rm=T),1968,
mean(moyenne.annuel$tmax...C.[1:8],na.rm=T), col="blue",lwd = 3)
segments(1968,mean(moyenne.annuel$tmax...C.[8:49],na.rm=T),2009,
mean(moyenne.annuel$tmax...C.[8:49],na.rm=T), col="cyan",lwd = 3)
legend(x="bottomright",legend=c("moyenne annuelle","moyenne Période 1",
"moyenne période 2","Tendance"),cex = 0.5,lwd = 2,
col = c("red","blue","cyan","black"),lty = c(1,1,1,1))
15
16. 1960
1970
1980
1990
2000
2010
20.5
21.0
21.5
22.0
22.5
23.0
23.5
Evolution des
températures minimales
Années
°C
tau=0.69 p−value=3.5e−12
Année=1982p−value=6.3e−08
moyenne annuelle
moyenne Période 1
moyenne période 2
Tendance
1960
1970
1980
1990
2000
2010
35.0
35.5
36.0
36.5
Evolution des
températures maximales
Années
°C
tau=0.063 p−value=0.53
Année=1968p−value=0.52
moyenne annuelle
moyenne Période 1
moyenne période 2
Tendance
Figure 9 – Evolution des températures
La figure ci-dessus présente la variation interannuelle des températures minimales et maximales.
On note une tendance à la hausse aussi bien pour les Températures minimales que maximales.
Cependant la hausse est plus importante et significative (le test de Mann- Kendall utilisé avec
un niveau de significativité au seuil de 5%) pour les températures minimales (0.5°C /10ans)
que les températures maximales (0.03°C/10ans). L’utilisation du test de Pettit avec un niveau
de significativité au seuil de 5% a permis de détecter les années de ruptures. L’année de
rupture trouvée pour les Tmin est 1982 avec un pvalue <0.05. La différence de moyenne
entre les deux périodes (avant 1982 et après 1982) est de l’ordre 1.5°C. Pour la température
maximale, il n’y a pas de rupture significative. hausse de température devient continue et
plus importante sur les températures minimales que sur les températures maximales
#variabilité des températures
par(mfrow=c(1,2))
plot(year(TminIPS),TminIPS,col=ifelse(TminIPS>0,"red","blue"),type = "h"
,ylab = "anomalies de températures",xlab = "Année", las=2,
main= "variation de la température n minimale",lwd=2)
lines(year(TminIPS),moymobTmin,lwd=2,col="black")
16
17. legend(x="bottomright",legend=c("Année Chaude","Année froide","moy-mob"),
cex = 0.6,lwd = 2, col = c("red","blue","black"),lty = c(1,1,1))
plot(year(TmaxIPS),TmaxIPS,col=ifelse(TmaxIPS>0,"red","blue"),type = "h"
,ylab = "anomalies de températures",xlab = "Année", las=2,
main= "variation de la température n maximale",lwd=2)
lines(year(TmaxIPS),moymobTmax,lwd=2,col="black")
legend(x="bottomright",legend=c("Année Chaude","Année froide","moy-mob"),
cex = 0.6,lwd = 2, col = c("red","blue","black"),lty = c(1,1,1))
lines(year(TmaxIPS),moymobTmax,lwd=2,col="black")
1960
1970
1980
1990
2000
2010
−1.0
−0.5
0.0
0.5
1.0
1.5
2.0
variation de la température
minimale
Année
anomaliesdetempératures
Année Chaude
Année froide
moy−mob
1960
1970
1980
1990
2000
2010
−2
−1
0
1
variation de la température
maximale
Année
anomaliesdetempératures
Année Chaude
Année froide
moy−mob
Figure 10 – Variabilité interannuelle des températures
par(mfrow=c(1,1))
y=plot(year(TmeanIPS),TmeanIPS,col=ifelse(TmeanIPS>0,"red","blue"),
type = "h",lwd=2,ylab = "anomalies de températures",xlab = "Année", las=2,
main= "Variabilité de la température moyenne")
lines(year(TmeanIPS),moymobTmean,lwd=2,col="black")
legend(x="bottomright",legend=c("Année Chaude","Année froide","moy-mob"),
17
18. cex = 0.8,lwd = 2, col = c("red","blue","black"),lty = c(1,1,1))
1960
1970
1980
1990
2000
2010
−2
−1
0
1
2
Variabilité de la température moyenne
Année
anomaliesdetempératures
Année Chaude
Année froide
moy−mob
Figure 11 – Variabilité interannuelle des températures
De l’observation de ces figures sur la variabilité des températures, il ressort :
— Pour la température minimale
Une tendance d’années relativement froides (1961-1980) en comparaison à la moyenne
61-90 et une tendance maintenue d’année chaudes de 1981-2009. Les 10 années les
plus chaudes s’observent pour la plupart ces 20 dernières années.
— Pour la température maximale
on note une certaine variabilité des températures maximales avec une tendance à des
années chaudes ces dernières années
— Pour les températures moyennes
une situation similaire à la température minimale est observée.
18
19. 1.2.2 Variabilité des précipitations annuelles
#Graphe des pluies
par(mfrow=c(1,2))
plot(year(pluie.annuel$Pluie..mm.),pluie.annuel$Pluie..mm.,type = "l",lwd=3, col="red",
main="Evolution des n cumuls annuels",
xlab = "Années",ylab = "Pluie en [mm/an]", las=2)
abline(RRreg$coefficients,lwd=2)
mtext(paste("tau=",signif(RRK$estimates[3],2)," p-value=",
signif(RRK$p.value,2),sep = ""),3)
mtext(paste("Année=",year(pluie.annuel[RRpt$estimate])," p-value=",
signif(RRpt$p.value,2),sep = ""),4)
segments(1961,mean(pluie.annuel$Pluie..mm.[1:30],na.rm=T),1990,
mean(pluie.annuel$Pluie..mm.[1:30],na.rm=T), col="blue",lwd = 3)
segments(1990,mean(pluie.annuel$Pluie..mm.[30:49],na.rm=T),2009,
mean(pluie.annuel$Pluie..mm.[30:49],na.rm=T), col="cyan",lwd = 3)
legend(x="topleft",legend=c("cumul annuel","cumul moyen Période 1",
"cumul moyen période 2","Tendance"),cex = 0.5,lwd = 2,
col = c("red","blue","cyan","black"),lty = c(1,1,1,1))
plot(year(pluie.maxi.an$Pluie..mm.),pluie.maxi.an$Pluie..mm.,type = "l",
lwd=3, col="red",main="Evolution des pluies n maxi annuels",
xlab = "Années",ylab = "Pluie en [mm/an]", las=2)
abline(RR_maxreg$coefficients,lwd=2)
mtext(paste("tau=",signif(RR_maxK$estimates[3],2)," p-value=",
signif(RR_maxK$p.value,2),sep = ""),3)
mtext(paste("Année=",year(pluie.annuel[RR_maxpt$estimate])," p-value=",
signif(RR_maxpt$p.value,2),sep = ""),4)
segments(1961,mean(pluie.maxi.an$Pluie..mm.[1:27],na.rm=T),1987,
mean(pluie.maxi.an$Pluie..mm.[1:27],na.rm=T), col="blue",lwd = 3)
segments(1987,mean(pluie.maxi.an$Pluie..mm.[27:49],na.rm=T),2009,
mean(pluie.maxi.an$Pluie..mm.[27:49],na.rm=T), col="cyan",lwd = 3)
legend(x="topright",legend=c("maxi annuel","moyen maxi Période 1",
"moyen maxi période 2","Tendance"),cex = 0.5,lwd = 2,
col = c("red","blue","cyan","black"),lty = c(1,1,1,1))
19
20. 1960
1970
1980
1990
2000
2010
400
500
600
700
800
900
Evolution des
cumuls annuels
Années
Pluieen[mm/an]
tau=0.043 p−value=0.67
Année=1990p−value=0.28
cumul annuel
cumul moyen Période 1
cumul moyen période 2
Tendance
1960
1970
1980
1990
2000
2010
40
60
80
100
Evolution des pluies
maxi annuels
Années
Pluieen[mm/an]
tau=0.035 p−value=0.73
Année=1987p−value=0.45
maxi annuel
moyen maxi Période 1
moyen maxi période 2
Tendance
Figure 12 – Evolution des précipitations annuelles
Il est présenté ci-dessus l’évolution des cumuls annuels et des pluies maxi annuels. on note un
forte variation du cumul (400- plus de 900mm). On constate un tendance à la hausse qui
cependant au test de Man-Kendall n’est pas significative. Aussi le test de pettit appliqué révèle
l’année 1990 comme rupture avec pvalue>0.05 donc non significatif. Néanmoins nous avons
essayé de calculer la différence de moyenne entre les deux périodes qui est de 50mm environ.
Dans 50% de cas les pluies maxi annuels sont supérieurs à 60mm. elles sont supérieures à
80mm 9années/49.
#variabilité des précipitations
par(mfrow=c(1,1))
y=plot(year(RRIPS),RRIPS,col=ifelse(RRIPS<0,"red","blue"),type = "h"
,ylab = "IPS",xlab = "Année", las=2,main= "variabilité des cumuls annuels",lwd=3)
lines(year(RRIPS),moymobRRIPS,lwd=2,col="black")
legend(x="topleft",legend=c("Année excédentaire","Année déficitaire","moy-mob"),
cex = 0.8,lwd = 2, col = c("blue","red","black"),lty = c(1,1,1))
20
21. 1960
1970
1980
1990
2000
2010
−1
0
1
2
variabilité des cumuls annuels
Année
IPS
Année excédentaire
Année déficitaire
moy−mob
Figure 13 – Variabilité des précipitations annuelles
De l’observation de cette figure sur la variabilité des cumuls pluviométriques, il ressort une
tendance d’années déficitaires entre 1970 et 1990 et deux periodes d’années excédentaires :
1960-1969 et 1991-2009. Les années de deficit remarquables sont 1983,1984.
1.2.3 Variabilité des vitesses de vent
##Graphe des vents
par(mfrow=c(1,2))
plot(year(moyenne.annuel$vent..m.s.),moyenne.annuel$vent..m.s.,type = "l",
lwd=3, col="red",main="Evolution des vitesses n de vent",
xlab = "Années",ylab = "vitesse du vent en[m/s]", las=2)
plot(year(vent.maxi.an$vent..m.s.),vent.maxi.an$vent..m.s.,type = "l",
lwd=3, col="red",main="Evolution des n vents maxi annuels",
xlab = "Années",ylab = "vitesse du vent en[m/s]", las=2)
21
22. 1960
1970
1980
1990
2000
20101.5
2.0
2.5
Evolution des vitesses
de vent
Années
vitesseduventen[m/s]
1960
1970
1980
1990
2000
2010
3.5
4.0
4.5
5.0
5.5
6.0
6.5
7.0
Evolution des
vents maxi annuels
Années
vitesseduventen[m/s]
Figure 14 – Vent : vitesse interannuelle
Les moyennes annuelles de vitesses de vent sont comprises entre 1 et 3 m/s. Elles présentent
une tendance à la hausse. Les maxi journaliers de vitesse de vent dépassent dans plus de 60%
des observations les 05m/s.
1.2.4 Variabilité des paramètres Humidité et insolation
#graphes humidités et insolation
par(mfrow=c(1,2))
plot(year(moyenne.annuel$rhmax....),moyenne.annuel$rhmax....,type = "l",lwd=3,
col="red",main="Evolution de l'humidité n relative",xlab = "Années",
ylab = "Humidité relative en[%]", las=2, ylim = c(10,70))
lines(year(moyenne.annuel$rhmin....), moyenne.annuel$rhmin....,col="blue",lwd=3)
legend(x="bottomright",legend=c("Humidité maxi","Humidité mini"),
cex = 0.6,lwd = 2, col = c("red","blue"),lty = c(1,1))
plot(year(moyenne.annuel$insolat..h.),moyenne.annuel$insolat..h.,type = "l",lwd=3,
22
23. col="red",main="Evolution des durées n d'insolation",xlab = "Années",
ylab = "Insolation en [heures]", las=2)
1960
1970
1980
1990
2000
2010
10
20
30
40
50
60
70
Evolution de l'humidité
relative
Années
Humiditérelativeen[%]
Humidité maxi
Humidité mini 1960
1970
1980
1990
2000
2010
8.4
8.6
8.8
9.0
9.2
9.4
9.6
Evolution des durées
d'insolation
Années
Insolationen[heures]
Figure 15 – Evolution interannuelle de l’insolation et de l’humidité
L’insolation présente une tendance à la baisse et varie entre 8.4 et 10 h en moyenne par année.
L’humidité présente des faibles valeurs sur la période 1983-1990 correspondant aux années de
déficit pluviométriques accentués.
2. Date de début et Date de fin de saison, nombre de
jour de pluie
2.1 Date de début de saison
Le critère “agronomique” fut présenté par Somé and Sivakumar (1994). Somé and Sivakumar
(1994) retiennent comme condition du démarrage de la saison (date X), une quantité de 20
23
24. mm de pluies recueillies en 3 jours consécutifs après le 01 avril de l’année, sans période sèche
d’une durée supérieure à 7 jours dans les 30 jours qui suivent.
#&&&&&&&&&&&&&&&&&&&&&&&&&&&& dates de debut de saison &&&&&&&&&&&&&&&&&&&&&
#&&&&&&&&&&&&&&&&&&&&&&&
dates=as.character(data[,1])
julien.day=NULL
mat=NULL # initialisation pour les nombres de jours annuels
mat2=NULL # initialisation pour les dates de début
date.dem.deb="01-04" #date de démarrage de la recherche des dates de début
for (an in 1961:2009){
annee=as.character(an)
debut=paste(date.dem.deb,substr(annee, 3, 4), sep = "-")
fin=paste("31-12-",substr(annee, 3, 4),sep = "")
idebut=as.numeric(which(dates==debut))
ifin=as.numeric(which(dates==fin))
pluiesannee=as.numeric(data$Pluie..mm.[idebut:ifin])
nbpluie20mm=length(which(pluiesannee>=20))
nbjp=length(which(pluiesannee>=1))# nombre de jour
#de pluie par an
trouv=0
idate=idebut
repeat {
idate=idate+1
ipreced=idate-1
isuiv=idate+1
#controle de données manquantes
if (is.na(data[ipreced,9])==T|is.na(data[idate,9])==T|is.na(data[isuiv,9])==T){
deb_saison<-NA_real_
break()
}
cumul3jr=data[ipreced,9]+data[idate,9]+data[isuiv,9] #3jrs
if (cumul3jr>=20) {
troisp=c(data[ipreced,9],data[idate,9],data[isuiv,9])
itroisp=c(ipreced,idate,isuiv)
maxp=max(troisp,na.rm=T)
imaxp=which(troisp==maxp)
ideb=itroisp[imaxp]
deb_saison=data[ideb,1]
trouv=1
#controle des séquences sèches de plus de 7jours
24
25. finp=ideb+30
pluie30jr=data[ideb:finp,1]
isec=0
repeat {
isec=isec+1
isecf=isec+6
donneeverif=pluie30jr[isec:isecf]
test1=length(which(donneeverif<1))
if (test1==7){
trouv=0
}
if (test1==7 | isec==24 ) break
}
}
if (trouv==1) break
}
result=c(an,nbpluie20mm,nbjp)
mat=rbind(mat,as.numeric(result))
demarrage=c(as.character(an),as.character(deb_saison))
mat2=rbind(mat2,as.character(demarrage))
}
colnames(mat)=c("Année","Nombre pluies>=20mm","Nombre jours pluies sur l'année")
colnames(mat2)=c("Annee","Debut_saison")
mat2=as.data.frame(mat2)
for(i in 1:dim(mat2)[1]){
if(is.na(mat2$Debut_saison[i])){julien.day<-rbind(julien.day,NA)
next }
julien.day=rbind(julien.day,julian(as.Date(paste(mat2$Annee[i],
substr(mat2$Debut_saison[i],4,5),substr(mat2$Debut_saison[i],1,2),sep="-")),
origin=as.Date(paste(mat2$Annee[i],"01-01",sep="-"))))
}
mat2=cbind(mat2,julien.day)
colnames(mat2)=c("Annee","Debut_saison","jour_julien")
par(mfrow=c(1,2))
plot(year(moyenne.annuel$insolat..h.),mat2$jour_julien,type = "l",lwd=3, col="blue",
main="Evolution des dates n de début de saison",
xlab = "Années",ylab = "Dates en [jour julien]", las=2)
abline(h=mean(mat2$jour_julien,na.rm = T),col="red",lwd=2)
legend(x="bottomleft",legend=c("Date de début",
"Moyenne 1961-2010"),
cex = 0.6,lwd = 2, col = c("blue","red"),lty = c(1,1))
25
26. boxplot(mat2$jour_julien,names =c("DD"),col="cyan",
main="Date de début n de saison",
ylab="Dates en [jour/julien)",las=2)
1960
1970
1980
1990
2000
2010
120
140
160
180
Evolution des dates
de début de saison
Années
Datesen[jourjulien]
Date de début
Moyenne 1961−2010
120
140
160
180
Date de début
de saison
Datesen[jour/julien)
Figure 16 – Date de début de saison
Les dates de début présentent une très forte variation et se situent entre le 25 Avril au plutôt
au 06 juillet au plus tard. En moyenne la saison démarre autour du 04 juin. Les dates sont
assez dispersées et présentent une distribution symétrique (moyenne sensiblement égale à la
médiane). Dans 75% des cas les dates de début sont inférieures au 20 juin. Le paysan court
moins de risque de ré-semis en semant après cette date car 3 années sur 4 nous avons son
occurence. Aussi tout paysan qui sème avant le 20 mai court un grand risque de ré-semis car
seulement 25% des dates lui sont inférieures soit une occurence de 1 année sur 4.
DD=scale(mat2$jour_julien,
mean(mat2$jour_julien[1:30],na.rm = T),
sd(mat2$jour_julien[1:30],na.rm = T))
par(mfrow=c(1,1))
plot(year(RRIPS),DD,col=ifelse(DD>0,"red","blue"),type = "h"
,ylab = "anomalies des dates de début",xlab = "Année", las=2,main= "variabilité des Date
26
27. lines(year(RRIPS),stats::filter(DD,rep(1/5,5), side=2)
,lwd=2,col="black")
legend(x="bottomleft",legend=c("Précoce","Tardive","moy-mob"),
cex = 0.8,lwd = 2, col = c("blue","red","black"),lty = c(1,1,1))
1960
1970
1980
1990
2000
2010
−2.0
−1.5
−1.0
−0.5
0.0
0.5
1.0
variabilité des Dates de début de saison
Année
anomaliesdesdatesdedébut
Précoce
Tardive
moy−mob
Figure 17 – Variabilité des dates de début
De 1961 à 1970, les dates de début présentent une tardivité soutenue. Le reste des années est
marquée par une forte variabilité.
2.2 Date de fin de saison
critère SIVAKUMAR
La date de la fin de la saison des pluies est le jour où, après le 01 septembre, il n’y a plus
de pluie supérieure ou égale à 5 mm pendant au mois 20 jours successifs ou deux décades
(Sivakumar).
27
28. #################Date de fin critère Sivakumar
dates=as.character(data[,1])
julien.day=NULL
mat3=NULL
date.dem.fin="01-09" #date de démarrage de la recherche des dates de fin
#ou avec readline
#date.dem=readline("saisissez la date de démarrage des calculs sous la forme 01-10 et t
for (an in 1961:2009){
annee=as.character(an)
jour.dem.cal=paste(date.dem.fin,substr(annee, 3, 4), sep = "-")
fin=paste("31-12-",substr(annee, 3, 4),sep = "")
ijour.dem.cal=as.numeric(which(dates==jour.dem.cal))
ifin=as.numeric(which(dates==fin))
#Recherche dela date de fin de saison
ifin.saison=ijour.dem.cal
repeat {
if(any(data$Pluie..mm.[ifin.saison:(ifin.saison+19)]>=5)){
max.indice.sup.5=as.numeric(max(
which(data$Pluie..mm.[ifin.saison:(ifin.saison+19)]>=5)))
ifin.saison=ifin.saison+max.indice.sup.5
}else{
break
}
}
fin.saison<-data[ifin.saison,1]
findesaison=c(as.character(an),as.character(fin.saison))
mat3=rbind(mat3,as.character(findesaison))
}
colnames(mat3)=c("Annee","Fin_saison")
mat3=as.data.frame(mat3)
####COnversion en Jour julien###############################
for(i in 1:dim(mat3)[1]){
if(is.na(mat3$Fin_saison[i])){julien.day<-rbind(julien.day,NA)
next }
julien.day=rbind(julien.day,julian(as.Date(paste(mat3$Annee[i],
substr(mat3$Fin_saison[i],4,5),substr(mat3$Fin_saison[i],1,2),sep="-")),
origin=as.Date(paste(mat3$Annee[i],"01-01",sep="-"))))
}
mat3=cbind(mat3,julien.day)
colnames(mat3)=c("Annee","Fin_saison","jour_julien")
28
29. critères PRESAO (CRA)
La fin de la saison dans la zone nord unimodale a lieu quand à partir du 1ˆ{er} Septembre,
un sol capable de contenir 70mm d’eau disponible est complètement puisé par une perte
quotidienne d’évapotranspiration de 5mm.
##############Date de fin critère PRESAO
dates=as.character(data[,1])
julien.day=NULL
mat4=NULL
date.dem.fin="01-09" #date de démarrage de la recherche des dates de fin
#ou avec readline
#date.dem=readline("saisissez la date de démarrage des calculs sous la forme 01-10 et t
#Capacité de Rétention du sol en mm
Cap_ret_maxi=70
#Evapotranspiration quotidienne en mm/j
ETP=5
for (an in 1961:2009){
annee=as.character(an)
debut=paste("01-01",substr(annee, 3, 4), sep = "-")
jour.dem.cal=paste(date.dem.fin,substr(annee, 3, 4), sep = "-")
fin=paste("31-12-",substr(annee, 3, 4),sep = "")
idebut=as.numeric(which(dates==debut))
ijour.dem.cal=as.numeric(which(dates==jour.dem.cal))
ifin=as.numeric(which(dates==fin))
ru=0 # initilisation de la capacité de rétention du sol
#au début de l'année en saison séche
#détermination de la capacité de rétention du sol
#é la date de démarrage de la recherche de fin
for(k in idebut:ijour.dem.cal){
if(is.na(data$Pluie..mm.[k])){
next()
}
ru<-data$Pluie..mm.[k]+ru-ETP
if(ru>Cap_ret_maxi){
ru<-Cap_ret_maxi
}
if(ru<0){
ru<-0
}
29
30. }
#fin de la détermination de ru au Jour de demarrage calcul
#Recherche dela date de fin de saison
ifin.saison=ijour.dem.cal
repeat {
ifin.saison<-ifin.saison+1
ru<-data$Pluie..mm.[ifin.saison]+ru-ETP
if(ru>Cap_ret_maxi){
ru<-Cap_ret_maxi
}
if (ru<=0.5) break()
}
fin.saison<-data[ifin.saison,1]
findesaison=c(as.character(an),as.character(fin.saison))
mat4=rbind(mat4,as.character(findesaison))
}
colnames(mat4)=c("Annee","Fin_saison")
mat4=as.data.frame(mat4)
####COnversion en Jour julien###############################
for(i in 1:dim(mat3)[1]){
if(is.na(mat4$Fin_saison[i])){julien.day<-rbind(julien.day,NA)
next }
julien.day=rbind(julien.day,julian(as.Date(paste(mat4$Annee[i],
substr(mat4$Fin_saison[i],4,5),substr(mat4$Fin_saison[i],1,2),
sep="-")),
origin=as.Date(paste(mat4$Annee[i],"01-01",sep="-"))))
}
mat4=cbind(mat4,julien.day)
colnames(mat4)=c("Annee","Fin_saison","jour_julien")
par(mfrow=c(1,1))
plot(year(moyenne.annuel$insolat..h.),mat4$jour_julien,type = "l",lwd=3,
col="blue",main="Evolution des dates de fin de saison",
xlab = "Années",ylab = "Dates en [jour julien]", las=2)
points(year(moyenne.annuel$insolat..h.),mat4$jour_julien,pch=16,col="blue")
#abline(h=mean(mat3$jour_julien,na.rm = T),col="red",lwd=2)
lines(year(moyenne.annuel$rhmin....), mat3$jour_julien,col="red",lwd=3)
points(year(moyenne.annuel$insolat..h.),mat3$jour_julien,pch=16,col="red")
legend(x="topleft",legend=c("PRESAO","SIVAKUMAR"),
cex = 0.6,lwd = 2, col = c("blue","red"),lty = c(1,1))
30
31. 1960
1970
1980
1990
2000
2010
250
260
270
280
290
300
Evolution des dates de fin de saison
Années
Datesen[jourjulien]
PRESAO
SIVAKUMAR
Figure 18 – Evolution des dates de fin de saison
Les dates de début varient entre le 02 septembre et 02 novembre pour les deux critères utilisés
et tournent en moyenne autour du 04 octobre pour le critère de sivakumar et du 23 septembre
pour le critère du CRA (PRESAO). Sur presque toute la période d’étude les dates critères
sivakumar sont au delà des dates critères PRESAO. Sur presque toutes les années, les dates
de début
boxplot(cbind(mat3$jour_julien,mat4$jour_julien),names =c("SIVAKUM","PRESAO"),col=c("red
31
32. SIVAKUM
PRESAO
250
260
270
280
290
300
Date de fin de saison
Datesen[jour/julien)
Figure 19 – comparaison de la distribution des dates de fin selon les deux critères
Les dates de fin calculées avec le critère SIVAKUMAR, dans 50% des cas dépassent 75% des
dates dates de fin critère PRESAO. 1 année sur 2, les dates pour sivakumar sont inférieures
au 03 octobre et celles du PRESAO sont inférieures 23 septembre.
2.3 Longueur de saison
Long.sivakumar=mat3$jour_julien-mat2$jour_julien
Long.presao=mat4$jour_julien-mat2$jour_julien
plot(year(moyenne.annuel$insolat..h.),Long.presao,type = "l",lwd=3, col="blue",
main="Evolution des longueurs de saison",
xlab = "Années",ylab = "Longeur de saison en [nombre de jour ]", las=2)
#abline(h=mean(mat3$jour_julien,na.rm = T),col="red",lwd=2)
lines(year(moyenne.annuel$rhmin....), Long.sivakumar,col="red",lwd=3)
legend(x="topleft",legend=c("PRESAO",
"SIVAKUMAR"),
cex = 0.6,lwd = 2, col = c("blue","red"),lty = c(1,1))
32
33. 1960
1970
1980
1990
2000
2010
60
80
100
120
140
160
Evolution des longueurs de saison
Années
Longeurdesaisonen[nombredejour]
PRESAO
SIVAKUMAR
Figure 20 – Evolution des longueurs de saisons
Le choix de la culture plus précisément son cycle doit tenir compte des longueurs des saisons
et des chances que la longueur du cycle corresponde à la longueur des saisons. Ici nous
présentons l’évolution des longeurs de saison pour les deux critères utilisés. Elles varient entre
60 et 165 jours pour les deux critères sur la période d’étude. A l’instar de la date de début
elle est très variable.
LSS=scale(Long.sivakumar,
mean(Long.sivakumar[1:30],na.rm = T),
sd(Long.sivakumar[1:30],na.rm = T))
LSP=scale(Long.presao,
mean(Long.presao[1:30],na.rm = T),
sd(Long.presao[1:30],na.rm = T))
par(mfrow=c(1,2))
y=plot(year(RRIPS),LSS,col=ifelse(LSS>0,"blue","red"),type = "h"
,ylab = "anomalies des longueurs de saison",xlab = "Année", las=2,
main= "variabilité des longueurs n de saison SIVAKUMAR",lwd=3)
legend(x="bottomleft",legend=c("longue","courte"),
cex = 0.8,lwd = 2, col = c("blue","red"),lty = c(1,1))
33
34. y=plot(year(RRIPS),LSP,col=ifelse(LSP>0,"blue","red"),type = "h"
,ylab = "anomalies des longueurs de saison",xlab = "Année", las=2,
main= "variabilité des longueurs n de saison PRESAO",lwd=3)
legend(x="bottomleft",legend=c("longue","courte"),
cex = 0.8,lwd = 2, col = c("blue","red"),lty = c(1,1))
1960
1970
1980
1990
2000
2010
−1
0
1
2
variabilité des longueurs
de saison SIVAKUMAR
Année
anomaliesdeslongueursdesaison
longue
courte
1960
1970
1980
1990
2000
2010
−1
0
1
2
variabilité des longueurs
de saison PRESAO
Année
anomaliesdeslongueursdesaison
longue
courte
Figure 21 – Variabilité des longueurs
Pour les deux critères la tendances à des longeurs de saisons longues est observée les 20
dernières années. Elle est plus remarquée pour le critère PRESAO.
2.4 Nombre de jour de pluie dans la saison
Il est déterminé ici les nombres de jours de pluie entre la date de début et la date de fin de
saison. Ainsi, il est fait une comparaison entre les nombres de jours de pluie sur toute l’année
civile pour évaluer les jours pluvieux non pris en compte par les critères agronomiques de
démarrage et de fin de saison.
34
35. dates=as.character(data[,1])
mat5=NULL
mat2=as.data.frame(mat2)
mat3=as.data.frame(mat3)
for (i in 1:49){
if(is.na(mat2$Debut_saison[i])|is.na(mat3$Fin_saison[i])){
mat5=rbind(mat5,NA)
next()
}
debutsaison=unique(as.vector(mat2[i,2]))
finsaison=unique(as.vector(mat3$Fin_saison[i]))
idebut=as.numeric(which(dates==debutsaison))
ifin=as.numeric(which(dates==finsaison))
pluiesaison=as.numeric(data$Pluie..mm.[idebut:ifin])
nbjp=length(which(pluiesaison>=1))
mat5=rbind(mat5,as.numeric(nbjp))
}
mat5=cbind(1961:2009, mat5)
plot(mat[,1],mat[,3],type = "h",lwd=3, col="blue",
ylim = c(20,65),main="Nombre de jours de pluie ",
xlab = "Années",ylab = "Nombre de jour [jour]", las=2)
lines(mat5[,1],mat5[,2],type = "l",lwd=3, col="red")
legend(x="topleft",legend=c("Nombre jour année",
"Nombre jour saison"),
cex = 0.6,lwd = 2, col = c("blue","red"),lty = c(1,1))
35
36. 1960
1970
1980
1990
2000
2010
20
30
40
50
60
Nombre de jours de pluie
Années
Nombredejour[jour]
Nombre jour année
Nombre jour saison
Il ressort de l’observation de ce graphe, que les nombres de jours de pluie pour la saison
varient entre 25 et 58 jours. pour ce qui concerne les nombes de jours annuels de pluie ils se
situent entre 35 et 60jours. Les pluies en marges de la saison pluvieuse sont plus importante
entre 1961 et 1980.
3. Corrélations entre les paramètres climatiques
Il est étudié ici les corrélations entrent les valeurs quotidiennes des différents paramètres.
data.without.Na=na.omit(data)
corr=cor(data.without.Na[,-1])
cor=round(as.data.frame(corr),3)
kable(cor, format = "latex", caption = "Corrélations entre les variables",booktabs = T)
kable_styling(latex_options = c("scale_down"))
D’une façon générale, les variables de même type présentent de fortes corrélations entre
elles. Il s’agit par exemple des groupes (tmin, tmax, tmean) et (rhmin, rhmax). Il importe
de souligner certaines liaisons plus ou moins fortes mais en sens inverse. c’est le cas de
la température maximale et de l’humidité relative. Ainsi plus il fait chaud, moins l’air
atmosphérisque présente de la vapeur d’eau. La corrélation inverse entre la température
minimale et l’insolation s’explique par le fait que la température minimale est relevée à 6hTU
et donc avant l’apparition des rayons solaires. La corrélation négative entre la pluie et les
températures maximales s’explique par le fait que la survenance des précipations atténue les
36
37. Tableau 1 – Corrélations entre les variables
tmin...C. tmax...C. rhmin.... rhmax.... insolat..h. vent..m.s. tmean...C. Pluie..mm.
tmin...C. 1.000 0.571 0.219 0.236 -0.082 0.273 0.896 0.050
tmax...C. 0.571 1.000 -0.458 -0.247 0.360 0.001 0.876 -0.164
rhmin.... 0.219 -0.458 1.000 0.878 -0.345 -0.001 -0.119 0.348
rhmax.... 0.236 -0.247 0.878 1.000 -0.186 -0.085 0.005 0.315
insolat..h. -0.082 0.360 -0.345 -0.186 1.000 -0.084 0.147 -0.180
vent..m.s. 0.273 0.001 -0.001 -0.085 -0.084 1.000 0.161 0.053
tmean...C. 0.896 0.876 -0.119 0.005 0.147 0.161 1.000 -0.060
Pluie..mm. 0.050 -0.164 0.348 0.315 -0.180 0.053 -0.060 1.000
températures en général. Le paradoxe avec les températures minimales pour cette station
pourrait s’expliquer par le fait que la plupart des pluies surviennent en journée et donc
impactent plus sur les températures maximales. Le vent et l’humidité relative corrélent en
sens inverse puisque le vent est facteur d’évaporation et participe à l’assèchement des masses
d’air.
corrplot::corrplot(corr, method="shade", shade.col=NA,tl.col="black", tl.srt=45)
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
tm
in...C
.
tm
ax...C
.
rhm
in....rhm
ax....
insolat..h.
vent..m
.s.
tm
ean...C
.
Pluie..m
m
.
tmin...C.
tmax...C.
rhmin....
rhmax....
insolat..h.
vent..m.s.
tmean...C.
Pluie..mm.
Figure 22 – Corrélation entre les différents paramètres
37