source: trunk/src/indice_flore/time_serie_histog3.m @ 10

Last change on this file since 10 was 10, checked in by pinsard, 16 years ago

first commit with original work of Sebastien Gervois

File size: 13.9 KB
Line 
1% initialisation
2clear; close all;
3figure(1); orient('landscape')
4
5%%%%%%%%%%%%%%% FICHIER OLR
6% ouverture / lecture du fichier
7fid=fopen('sahel_pb.dat','r');
8v=fread(fid,3538,'float');
9fclose(fid);
10k=122*29;
11
12% on centre et on reduit la serie de l OLR
13ind_olr=reshape(v, k,1); clear v;
14olr_std=std(ind_olr);
15olr_moy=mean(ind_olr);
16
17for a=1:3538;
18   ind_olr(a)=(ind_olr(a)-olr_moy)/olr_std;
19end;
20ind_olr=reshape(ind_olr,122,29);
21
22%%%%%%%%%%%% FICHIER TYPE DE TEMPS
23% on ouvre le fichier
24load occu.txt
25
26% on reorganise le fichier de type de temps (jours,annees,cluster)
27y=reshape(occu,122,58,4);
28clear occu;
29
30% on selectionne les annees de 1979 a 2005
31occu_type_tps(:,:,:)=y(:,30:58,:); clear y;
32
33% intialisation des tableaux
34type_temps_compomax=zeros(3,90,21,4);
35type_temps_compomin=zeros(3,90,21,4);
36compteurmax=0; compteurmin=0;
37
38for a=1:29; % boucle sur les annees
39   clear delta; delta=zeros(122,1);
40   for b=1:122; % boucle sur les jours   
41        if b>1;
42            delta(b)=ind_olr(b,a)-ind_olr(b-1,a);
43        end;
44   end;
45   for b=1:122;
46      if (b>11 & b<112); % 1ere condition (laisser une marge de 10)
47%        condition 1 on est a un maximum deltas apres sont negetifs et
48%             delta avant postifs   
49         if (delta(b+1)<0 & delta(b)>0 & ind_olr(b,a)>1.5);
50           
51            compteurmax=compteurmax+1;
52            type_temps_compomax(1,compteurmax,1,:)=occu_type_tps(b-10,a,:);
53            type_temps_compomax(1,compteurmax,2,:)=occu_type_tps(b-9,a,:);
54            type_temps_compomax(1,compteurmax,3,:)=occu_type_tps(b-8,a,:);
55            type_temps_compomax(1,compteurmax,4,:)=occu_type_tps(b-7,a,:);
56            type_temps_compomax(1,compteurmax,5,:)=occu_type_tps(b-6,a,:);
57            type_temps_compomax(1,compteurmax,6,:)=occu_type_tps(b-5,a,:);
58            type_temps_compomax(1,compteurmax,7,:)=occu_type_tps(b-4,a,:);
59            type_temps_compomax(1,compteurmax,8,:)=occu_type_tps(b-3,a,:);
60            type_temps_compomax(1,compteurmax,9,:)=occu_type_tps(b-2,a,:);
61            type_temps_compomax(1,compteurmax,10,:)=occu_type_tps(b-1,a,:);
62            type_temps_compomax(1,compteurmax,11,:)=occu_type_tps(b,a,:);
63            type_temps_compomax(1,compteurmax,12,:)=occu_type_tps(b+1,a,:);
64            type_temps_compomax(1,compteurmax,13,:)=occu_type_tps(b+2,a,:);
65            type_temps_compomax(1,compteurmax,14,:)=occu_type_tps(b+3,a,:);
66            type_temps_compomax(1,compteurmax,15,:)=occu_type_tps(b+4,a,:);
67            type_temps_compomax(1,compteurmax,16,:)=occu_type_tps(b+5,a,:);
68            type_temps_compomax(1,compteurmax,17,:)=occu_type_tps(b+6,a,:);
69            type_temps_compomax(1,compteurmax,18,:)=occu_type_tps(b+7,a,:);
70            type_temps_compomax(1,compteurmax,19,:)=occu_type_tps(b+8,a,:);
71            type_temps_compomax(1,compteurmax,20,:)=occu_type_tps(b+9,a,:);
72            type_temps_compomax(1,compteurmax,21,:)=occu_type_tps(b+10,a,:);
73
74            type_temps_compomax(2,compteurmax,1,:)=occu_type_tps(b-9,a,:);
75            type_temps_compomax(2,compteurmax,2,:)=occu_type_tps(b-8,a,:);
76            type_temps_compomax(2,compteurmax,3,:)=occu_type_tps(b-7,a,:);
77            type_temps_compomax(2,compteurmax,4,:)=occu_type_tps(b-6,a,:);
78            type_temps_compomax(2,compteurmax,5,:)=occu_type_tps(b-5,a,:);
79            type_temps_compomax(2,compteurmax,6,:)=occu_type_tps(b-4,a,:);
80            type_temps_compomax(2,compteurmax,7,:)=occu_type_tps(b-3,a,:);
81            type_temps_compomax(2,compteurmax,8,:)=occu_type_tps(b-2,a,:);
82            type_temps_compomax(2,compteurmax,9,:)=occu_type_tps(b-1,a,:);
83            type_temps_compomax(2,compteurmax,10,:)=occu_type_tps(b,a,:);
84            type_temps_compomax(2,compteurmax,11,:)=occu_type_tps(b+1,a,:);
85            type_temps_compomax(2,compteurmax,12,:)=occu_type_tps(b+2,a,:);
86            type_temps_compomax(2,compteurmax,13,:)=occu_type_tps(b+3,a,:);
87            type_temps_compomax(2,compteurmax,14,:)=occu_type_tps(b+4,a,:);
88            type_temps_compomax(2,compteurmax,15,:)=occu_type_tps(b+5,a,:);
89            type_temps_compomax(2,compteurmax,16,:)=occu_type_tps(b+6,a,:);
90            type_temps_compomax(2,compteurmax,17,:)=occu_type_tps(b+7,a,:);
91            type_temps_compomax(2,compteurmax,18,:)=occu_type_tps(b+8,a,:);
92            type_temps_compomax(2,compteurmax,19,:)=occu_type_tps(b+9,a,:);
93            type_temps_compomax(2,compteurmax,20,:)=occu_type_tps(b+10,a,:);
94            type_temps_compomax(2,compteurmax,21,:)=occu_type_tps(b+11,a,:);
95
96           type_temps_compomax(3,compteurmax,1,:)=occu_type_tps(b-11,a,:);
97            type_temps_compomax(3,compteurmax,2,:)=occu_type_tps(b-10,a,:);
98            type_temps_compomax(3,compteurmax,3,:)=occu_type_tps(b-9,a,:);
99            type_temps_compomax(3,compteurmax,4,:)=occu_type_tps(b-8,a,:);
100            type_temps_compomax(3,compteurmax,5,:)=occu_type_tps(b-7,a,:);
101            type_temps_compomax(3,compteurmax,6,:)=occu_type_tps(b-6,a,:);
102            type_temps_compomax(3,compteurmax,7,:)=occu_type_tps(b-5,a,:);
103            type_temps_compomax(3,compteurmax,8,:)=occu_type_tps(b-4,a,:);
104            type_temps_compomax(3,compteurmax,9,:)=occu_type_tps(b-3,a,:);
105            type_temps_compomax(3,compteurmax,10,:)=occu_type_tps(b-2,a,:);
106            type_temps_compomax(3,compteurmax,11,:)=occu_type_tps(b-1,a,:);
107            type_temps_compomax(3,compteurmax,12,:)=occu_type_tps(b,a,:);
108            type_temps_compomax(3,compteurmax,13,:)=occu_type_tps(b+1,a,:);
109            type_temps_compomax(3,compteurmax,14,:)=occu_type_tps(b+2,a,:);
110            type_temps_compomax(3,compteurmax,15,:)=occu_type_tps(b+3,a,:);
111            type_temps_compomax(3,compteurmax,16,:)=occu_type_tps(b+4,a,:);
112            type_temps_compomax(3,compteurmax,17,:)=occu_type_tps(b+5,a,:);
113            type_temps_compomax(3,compteurmax,18,:)=occu_type_tps(b+6,a,:);
114            type_temps_compomax(3,compteurmax,19,:)=occu_type_tps(b+7,a,:);
115            type_temps_compomax(3,compteurmax,20,:)=occu_type_tps(b+8,a,:);
116            type_temps_compomax(3,compteurmax,21,:)=occu_type_tps(b+9,a,:);
117
118
119         elseif (delta(b+1)>0 & delta(b)<0 & ind_olr(b,a)<-1.5);
120            compteurmin=compteurmin+1;
121            type_temps_compomin(1,compteurmin,1,:)=occu_type_tps(b-10,a,:);
122            type_temps_compomin(1,compteurmin,2,:)=occu_type_tps(b-9,a,:);
123            type_temps_compomin(1,compteurmin,3,:)=occu_type_tps(b-8,a,:);
124            type_temps_compomin(1,compteurmin,4,:)=occu_type_tps(b-7,a,:);
125            type_temps_compomin(1,compteurmin,5,:)=occu_type_tps(b-6,a,:);
126            type_temps_compomin(1,compteurmin,6,:)=occu_type_tps(b-5,a,:);
127            type_temps_compomin(1,compteurmin,7,:)=occu_type_tps(b-4,a,:);
128            type_temps_compomin(1,compteurmin,8,:)=occu_type_tps(b-3,a,:);
129            type_temps_compomin(1,compteurmin,9,:)=occu_type_tps(b-2,a,:);
130            type_temps_compomin(1,compteurmin,10,:)=occu_type_tps(b-1,a,:);
131            type_temps_compomin(1,compteurmin,11,:)=occu_type_tps(b,a,:);
132            type_temps_compomin(1,compteurmin,12,:)=occu_type_tps(b+1,a,:);
133            type_temps_compomin(1,compteurmin,13,:)=occu_type_tps(b+2,a,:);
134            type_temps_compomin(1,compteurmin,14,:)=occu_type_tps(b+3,a,:);
135            type_temps_compomin(1,compteurmin,15,:)=occu_type_tps(b+4,a,:);
136            type_temps_compomin(1,compteurmin,16,:)=occu_type_tps(b+5,a,:);
137            type_temps_compomin(1,compteurmin,17,:)=occu_type_tps(b+6,a,:);
138            type_temps_compomin(1,compteurmin,18,:)=occu_type_tps(b+7,a,:);
139            type_temps_compomin(1,compteurmin,19,:)=occu_type_tps(b+8,a,:);
140            type_temps_compomin(1,compteurmin,20,:)=occu_type_tps(b+9,a,:);
141            type_temps_compomin(1,compteurmin,21,:)=occu_type_tps(b+10,a,:);
142
143            type_temps_compomin(2,compteurmin,1,:)=occu_type_tps(b-9,a,:);
144            type_temps_compomin(2,compteurmin,2,:)=occu_type_tps(b-8,a,:);
145            type_temps_compomin(2,compteurmin,3,:)=occu_type_tps(b-7,a,:);
146            type_temps_compomin(2,compteurmin,4,:)=occu_type_tps(b-6,a,:);
147            type_temps_compomin(2,compteurmin,5,:)=occu_type_tps(b-5,a,:);
148            type_temps_compomin(2,compteurmin,6,:)=occu_type_tps(b-4,a,:);
149            type_temps_compomin(2,compteurmin,7,:)=occu_type_tps(b-3,a,:);
150            type_temps_compomin(2,compteurmin,8,:)=occu_type_tps(b-2,a,:);
151            type_temps_compomin(2,compteurmin,9,:)=occu_type_tps(b-1,a,:);
152            type_temps_compomin(2,compteurmin,10,:)=occu_type_tps(b,a,:);
153            type_temps_compomin(2,compteurmin,11,:)=occu_type_tps(b+1,a,:);
154            type_temps_compomin(2,compteurmin,12,:)=occu_type_tps(b+2,a,:);
155            type_temps_compomin(2,compteurmin,13,:)=occu_type_tps(b+3,a,:);
156            type_temps_compomin(2,compteurmin,14,:)=occu_type_tps(b+4,a,:);
157            type_temps_compomin(2,compteurmin,15,:)=occu_type_tps(b+5,a,:);
158            type_temps_compomin(2,compteurmin,16,:)=occu_type_tps(b+6,a,:);
159            type_temps_compomin(2,compteurmin,17,:)=occu_type_tps(b+7,a,:);
160            type_temps_compomin(2,compteurmin,18,:)=occu_type_tps(b+8,a,:);
161            type_temps_compomin(2,compteurmin,19,:)=occu_type_tps(b+9,a,:);
162            type_temps_compomin(2,compteurmin,20,:)=occu_type_tps(b+10,a,:);
163            type_temps_compomin(2,compteurmin,21,:)=occu_type_tps(b+11,a,:);
164
165            type_temps_compomin(3,compteurmin,1,:)=occu_type_tps(b-10,a,:);
166            type_temps_compomin(3,compteurmin,2,:)=occu_type_tps(b-9,a,:);
167            type_temps_compomin(3,compteurmin,3,:)=occu_type_tps(b-8,a,:);
168            type_temps_compomin(3,compteurmin,4,:)=occu_type_tps(b-7,a,:);
169            type_temps_compomin(3,compteurmin,5,:)=occu_type_tps(b-6,a,:);
170            type_temps_compomin(3,compteurmin,6,:)=occu_type_tps(b-5,a,:);
171            type_temps_compomin(3,compteurmin,7,:)=occu_type_tps(b-4,a,:);
172            type_temps_compomin(3,compteurmin,8,:)=occu_type_tps(b-3,a,:);
173            type_temps_compomin(3,compteurmin,9,:)=occu_type_tps(b-2,a,:);
174            type_temps_compomin(3,compteurmin,10,:)=occu_type_tps(b-1,a,:);
175            type_temps_compomin(3,compteurmin,11,:)=occu_type_tps(b,a,:);
176            type_temps_compomin(3,compteurmin,12,:)=occu_type_tps(b+1,a,:);
177            type_temps_compomin(3,compteurmin,13,:)=occu_type_tps(b+2,a,:);
178            type_temps_compomin(3,compteurmin,14,:)=occu_type_tps(b+3,a,:);
179            type_temps_compomin(3,compteurmin,15,:)=occu_type_tps(b+4,a,:);
180            type_temps_compomin(3,compteurmin,16,:)=occu_type_tps(b+5,a,:);
181            type_temps_compomin(3,compteurmin,17,:)=occu_type_tps(b+6,a,:);
182            type_temps_compomin(3,compteurmin,18,:)=occu_type_tps(b+7,a,:);
183            type_temps_compomin(3,compteurmin,19,:)=occu_type_tps(b+8,a,:);
184            type_temps_compomin(3,compteurmin,20,:)=occu_type_tps(b+9,a,:);
185            type_temps_compomin(3,compteurmin,21,:)=occu_type_tps(b+10,a,:);
186         end;
187      end;
188   end;         
189end;
190
191% on ne selectionne que la partie du tableau ou il y a des valeurs
192type_temps_compomin=type_temps_compomin(:,1:compteurmin,:,:);
193type_temps_compomax=type_temps_compomax(:,1:compteurmax,:,:);
194sizemin=3*compteurmin;
195sizemax=3*compteurmax;
196
197type_temps_compomin=reshape(type_temps_compomin,sizemin,21,4);
198type_temps_compomax=reshape(type_temps_compomax,sizemax,21,4);
199compteurmin
200compteurmax
201
202% on fait le test de Student
203student1=zeros(21,4);
204for a=1:21;
205    for b=1:4;
206       x=type_temps_compomin(1:sizemin,a,b);
207       y=type_temps_compomax(1:sizemax,a,b);
208       student1(a,b)=ttest(x,y);
209    end
210end
211
212
213
214% on fait la somme des types de temps sur toute la periode de temps
215% on obtent un tableau de la forme (jours-avant-apres,cluster)
216type_temps_compomin1(:,:)=sum(type_temps_compomin);
217type_temps_compomax1(:,:)=sum(type_temps_compomax);
218clear type_temps_compomin type_temps_compomax;
219
220% on fait la somme => le nbre de jour avec 1 type de temps persistant
221% pour chaque jour
222sum_kara_min=sum((type_temps_compomin1)'); %' transpose => tableau (cluster,jour)
223sum_kara_max=sum((type_temps_compomax1)'); %' transpose => tableau (cluster,jour)
224sum_kara_min=sum_kara_min'; %'
225sum_kara_max=sum_kara_max'; %'
226
227% on traduit le nbre d occurence en frequences relatives
228for a=1:21;
229   for b=1:4;
230      kara_min(a,b)=type_temps_compomin1(a,b)/sum_kara_min(a);
231      kara_max(a,b)=type_temps_compomax1(a,b)/sum_kara_max(a);
232   end;
233end;
234
235x=[-10:1:10]'; %'
236kara_diff=kara_min-kara_max;
237table_ttest=zeros(21,4);
238for a=1:21
239    for b=1:4;
240        if student1(a,b)==1;
241           table_ttest(a,b)=kara_diff(a,b);
242        else;
243           table_ttest(a,b)=NaN;
244        end;
245    end
246end
247for a=1:4;
248    subplot(2,2,a);
249    diff=kara_diff(:,a)*100;
250    diff2=table_ttest(:,a)*100;
251    jour=[-10:10]';
252    if a==1;
253       c=[1 0.55 0]; bar(jour,diff),colormap(c);
254       hold on; plot(jour,diff2,'k*');
255    elseif a==2;
256       bar(jour,diff,'g');
257       hold on; plot(jour,diff2,'k*');
258    elseif a==3;
259       bar(jour,diff,'b');
260       hold on; plot(jour,diff2,'k*');
261    else
262       bar(jour,diff,'r');
263       hold on; plot(jour,diff2,'k*');
264    end
265    set (gca,'XTick',[-10:10],'XTickLabel',[-10:10],'fontname','Arial','fontsize',6);
266    set (gca,'YTick',[-40:20:40],'YTickLabel',[-40:20:40],'fontname','Arial','fontsize',6);
267    axis([-10 10 -40 40]);
268    set(gca,'tickDir','out');
269    if a==1;
270       title('Frequence Atl Low (filtre PB) Differences min - max  Seuil 1.5','Fontsize',8,'Fontname','Arial');
271    elseif a==2;
272       title('Frequence Atl Ridge (filtre PB) Differences min - max  Seuil 1.5','Fontsize',8,'Fontname','Arial');
273    elseif a==3;
274       title('Frequence NAO- (filtre PB) Differences min - max  Seuil 1.5','Fontsize',8,'Fontname','Arial');
275    else;
276       title('Frequence Blocking (filtre PB) Differences min - max  Seuil 1.5','Fontsize',8,'Fontname','Arial');
277    end;
278end
279
280figure(1); print -depsc2 time_serie_type_tps_pb.eps;
281
Note: See TracBrowser for help on using the repository browser.