source: trunk/src/indice_flore/time_serie_histog3_max_moy.m @ 48

Last change on this file since 48 was 24, checked in by pinsard, 15 years ago

correction of usage of print function, fix side effect of load function

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