source: trunk/src/SIMULS_IRCAAM/composite_olr_AS_eof2_1030.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.0 KB
Line 
1% initialisation
2clear; close all;
3olr=zeros(122,29,64,128);
4cd('INDE')
5ncload('rlut_d.AsNQIVIV.197106-09.nc','rlut');
6olr(:,1,:,:)=rlut; clear rlut;
7
8ncload('rlut_d.AsNQIVIV.197206-09.nc','rlut');
9olr(:,2,:,:)=rlut; clear rlut;
10
11ncload('rlut_d.AsNQIVIV.197306-09.nc','rlut');
12olr(:,3,:,:)=rlut; clear rlut;
13
14ncload('rlut_d.AsNQIVIV.197406-09.nc','rlut');
15olr(:,4,:,:)=rlut; clear rlut;
16
17ncload('rlut_d.AsNQIVIV.197506-09.nc','rlut');
18olr(:,5,:,:)=rlut; clear rlut;
19
20ncload('rlut_d.AsNQIVIV.197606-09.nc','rlut');
21olr(:,6,:,:)=rlut; clear rlut;
22
23ncload('rlut_d.AsNQIVIV.197706-09.nc','rlut');
24olr(:,7,:,:)=rlut; clear rlut;
25
26ncload('rlut_d.AsNQIVIV.197806-09.nc','rlut');
27olr(:,8,:,:)=rlut; clear rlut;
28
29ncload('rlut_d.AsNQIVIV.197906-09.nc','rlut');
30olr(:,9,:,:)=rlut; clear rlut;
31
32ncload('rlut_d.AsNQIVIV.198006-09.nc','rlut');
33olr(:,10,:,:)=rlut; clear rlut;
34
35ncload('rlut_d.AsNQIVIV.198106-09.nc','rlut');
36olr(:,11,:,:)=rlut; clear rlut;
37
38ncload('rlut_d.AsNQIVIV.198206-09.nc','rlut');
39olr(:,12,:,:)=rlut; clear rlut;
40
41ncload('rlut_d.AsNQIVIV.198306-09.nc','rlut');
42olr(:,13,:,:)=rlut; clear rlut;
43
44ncload('rlut_d.AsNQIVIV.198406-09.nc','rlut');
45olr(:,14,:,:)=rlut; clear rlut;
46
47ncload('rlut_d.AsNQIVIV.198506-09.nc','rlut');
48olr(:,15,:,:)=rlut; clear rlut;
49
50ncload('rlut_d.AsNQIVIV.198606-09.nc','rlut');
51olr(:,16,:,:)=rlut; clear rlut;
52
53ncload('rlut_d.AsNQIVIV.198706-09.nc','rlut');
54olr(:,17,:,:)=rlut; clear rlut;
55
56ncload('rlut_d.AsNQIVIV.198806-09.nc','rlut');
57olr(:,18,:,:)=rlut; clear rlut;
58
59ncload('rlut_d.AsNQIVIV.198906-09.nc','rlut');
60olr(:,19,:,:)=rlut; clear rlut;
61
62ncload('rlut_d.AsNQIVIV.199106-09.nc','rlut');
63olr(:,20,:,:)=rlut; clear rlut;
64
65ncload('rlut_d.AsNQIVIV.199206-09.nc','rlut');
66olr(:,21,:,:)=rlut; clear rlut;
67
68ncload('rlut_d.AsNQIVIV.199306-09.nc','rlut');
69olr(:,22,:,:)=rlut; clear rlut;
70
71ncload('rlut_d.AsNQIVIV.199406-09.nc','rlut');
72olr(:,23,:,:)=rlut; clear rlut;
73
74ncload('rlut_d.AsNQIVIV.199506-09.nc','rlut');
75olr(:,24,:,:)=rlut; clear rlut;
76
77ncload('rlut_d.AsNQIVIV.199606-09.nc','rlut');
78olr(:,25,:,:)=rlut; clear rlut;
79
80ncload('rlut_d.AsNQIVIV.199706-09.nc','rlut');
81olr(:,26,:,:)=rlut; clear rlut;
82
83ncload('rlut_d.AsNQIVIV.199806-09.nc','rlut');
84olr(:,27,:,:)=rlut; clear rlut;
85
86ncload('rlut_d.AsNQIVIV.199906-09.nc','rlut');
87olr(:,28,:,:)=rlut; clear rlut;
88
89ncload('rlut_d.AsNQIVIV.200006-09.nc','rlut','lat','lon');
90olr(:,29,:,:)=rlut; clear rlut;
91
92cd('..');
93% selction du domaine geographique
94olr1=zeros(122,29,64,128);
95olr1(:,:,:,1:64)=olr(:,:,:,65:128);
96olr1(:,:,:,65:128)=olr(:,:,:,1:64);
97clear olr;
98%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
99
100load eof2_AS_1030.txt
101
102% on met sous la forme annee mois
103olr_eof=reshape(eof2_AS_1030,122,29); clear eof2_AS_1030;
104
105% on calcule l ecart type sur la serie temporelle de l OLR
106k=122*29;
107olrbis=reshape(olr_eof,k,1);
108olrbis=std(olrbis);
109
110% intialisation des tableaux
111olr_filtre_compomax=NaN*ones(50,31,64,128);
112olr_filtre_compomin=NaN*ones(50,31,64,128);
113
114compteurmax=0;
115compteurmin=0;
116
117for a=1:29; % boucle sur les annees
118   clear delta;
119   delta=zeros(122,1);
120   for b=1:122; % boucle sur les jours : on prepare avant   
121        if b>1;
122            delta(b)=olr_eof(b,a)-olr_eof(b-1,a);
123        end;
124   end;
125   for b=1:122; % boucle sur les jours
126      if (b>20 & b<112); % 1ere condition (laisser une marge de 10)
127% cas 1 : max deltas apres negetifs et deltas avant postifs   
128         if (delta(b+1)<0 & delta(b)>0 & olr_eof(b,a)>(olrbis));
129            compteurmax=compteurmax+1;
130          olr_filtre_compomax(compteurmax,1,:,:)=olr1(b-20,a,:,:);
131            olr_filtre_compomax(compteurmax,2,:,:)=olr1(b-19,a,:,:);
132            olr_filtre_compomax(compteurmax,3,:,:)=olr1(b-18,a,:,:);
133            olr_filtre_compomax(compteurmax,4,:,:)=olr1(b-17,a,:,:);
134            olr_filtre_compomax(compteurmax,5,:,:)=olr1(b-16,a,:,:);
135            olr_filtre_compomax(compteurmax,6,:,:)=olr1(b-15,a,:,:);
136            olr_filtre_compomax(compteurmax,7,:,:)=olr1(b-14,a,:,:);
137            olr_filtre_compomax(compteurmax,8,:,:)=olr1(b-13,a,:,:);
138            olr_filtre_compomax(compteurmax,9,:,:)=olr1(b-12,a,:,:);
139            olr_filtre_compomax(compteurmax,10,:,:)=olr1(b-11,a,:,:);
140
141            olr_filtre_compomax(compteurmax,11,:,:)=olr1(b-10,a,:,:);
142            olr_filtre_compomax(compteurmax,12,:,:)=olr1(b-9,a,:,:);
143            olr_filtre_compomax(compteurmax,13,:,:)=olr1(b-8,a,:,:);
144            olr_filtre_compomax(compteurmax,14,:,:)=olr1(b-7,a,:,:);
145            olr_filtre_compomax(compteurmax,15,:,:)=olr1(b-6,a,:,:);
146            olr_filtre_compomax(compteurmax,16,:,:)=olr1(b-5,a,:,:);
147            olr_filtre_compomax(compteurmax,17,:,:)=olr1(b-4,a,:,:);
148            olr_filtre_compomax(compteurmax,18,:,:)=olr1(b-3,a,:,:);
149            olr_filtre_compomax(compteurmax,19,:,:)=olr1(b-2,a,:,:);
150            olr_filtre_compomax(compteurmax,20,:,:)=olr1(b-1,a,:,:);
151
152            olr_filtre_compomax(compteurmax,21,:,:)=olr1(b,a,:,:);
153            olr_filtre_compomax(compteurmax,22,:,:)=olr1(b+1,a,:,:);
154            olr_filtre_compomax(compteurmax,23,:,:)=olr1(b+2,a,:,:);
155            olr_filtre_compomax(compteurmax,24,:,:)=olr1(b+3,a,:,:);
156            olr_filtre_compomax(compteurmax,25,:,:)=olr1(b+4,a,:,:);
157            olr_filtre_compomax(compteurmax,26,:,:)=olr1(b+5,a,:,:);
158            olr_filtre_compomax(compteurmax,27,:,:)=olr1(b+6,a,:,:);
159            olr_filtre_compomax(compteurmax,28,:,:)=olr1(b+7,a,:,:);
160            olr_filtre_compomax(compteurmax,29,:,:)=olr1(b+8,a,:,:);
161            olr_filtre_compomax(compteurmax,30,:,:)=olr1(b+9,a,:,:);
162            olr_filtre_compomax(compteurmax,31,:,:)=olr1(b+10,a,:,:);
163% cas 2 : min deltas apres positifs et deltas avant negatifs   
164         elseif (delta(b+1)>0 & delta(b)>0 & delta(b-1)<0 & delta(b-2)<0 & olr_eof(b,a)<(-olrbis));
165            compteurmin=compteurmin+1;
166
167            olr_filtre_compomin(compteurmin,1,:,:)=olr1(b-20,a,:,:);
168            olr_filtre_compomin(compteurmin,2,:,:)=olr1(b-19,a,:,:);
169            olr_filtre_compomin(compteurmin,3,:,:)=olr1(b-18,a,:,:);
170            olr_filtre_compomin(compteurmin,4,:,:)=olr1(b-17,a,:,:);
171            olr_filtre_compomin(compteurmin,5,:,:)=olr1(b-16,a,:,:);
172            olr_filtre_compomin(compteurmin,6,:,:)=olr1(b-15,a,:,:);
173            olr_filtre_compomin(compteurmin,7,:,:)=olr1(b-14,a,:,:);
174            olr_filtre_compomin(compteurmin,8,:,:)=olr1(b-13,a,:,:);
175            olr_filtre_compomin(compteurmin,9,:,:)=olr1(b-12,a,:,:);
176            olr_filtre_compomin(compteurmin,10,:,:)=olr1(b-11,a,:,:);
177
178            olr_filtre_compomin(compteurmin,11,:,:)=olr1(b-10,a,:,:);
179            olr_filtre_compomin(compteurmin,12,:,:)=olr1(b-9,a,:,:);
180            olr_filtre_compomin(compteurmin,13,:,:)=olr1(b-8,a,:,:);
181            olr_filtre_compomin(compteurmin,14,:,:)=olr1(b-7,a,:,:);
182            olr_filtre_compomin(compteurmin,15,:,:)=olr1(b-6,a,:,:);
183            olr_filtre_compomin(compteurmin,16,:,:)=olr1(b-5,a,:,:);
184            olr_filtre_compomin(compteurmin,17,:,:)=olr1(b-4,a,:,:);
185            olr_filtre_compomin(compteurmin,18,:,:)=olr1(b-3,a,:,:);
186            olr_filtre_compomin(compteurmin,19,:,:)=olr1(b-2,a,:,:);
187            olr_filtre_compomin(compteurmin,20,:,:)=olr1(b-1,a,:,:);
188
189            olr_filtre_compomin(compteurmin,21,:,:)=olr1(b,a,:,:);
190            olr_filtre_compomin(compteurmin,22,:,:)=olr1(b+1,a,:,:);
191            olr_filtre_compomin(compteurmin,23,:,:)=olr1(b+2,a,:,:);
192            olr_filtre_compomin(compteurmin,24,:,:)=olr1(b+3,a,:,:);
193            olr_filtre_compomin(compteurmin,25,:,:)=olr1(b+4,a,:,:);
194            olr_filtre_compomin(compteurmin,26,:,:)=olr1(b+5,a,:,:);
195            olr_filtre_compomin(compteurmin,27,:,:)=olr1(b+6,a,:,:);
196            olr_filtre_compomin(compteurmin,28,:,:)=olr1(b+7,a,:,:);
197            olr_filtre_compomin(compteurmin,29,:,:)=olr1(b+8,a,:,:);
198            olr_filtre_compomin(compteurmin,30,:,:)=olr1(b+9,a,:,:);
199            olr_filtre_compomin(compteurmin,31,:,:)=olr1(b+10,a,:,:);
200         end;
201      end;
202   end;         
203end;
204% on fait le test de Student
205nb_value=min(compteurmin,compteurmax);
206student1=zeros(31,64,128);
207for a=1:31;
208    for b=1:64;
209        for c=1:128;
210           x=olr_filtre_compomin(1:nb_value,a,b,c);
211           y=olr_filtre_compomax(1:nb_value,a,b,c);
212           student1(a,b,c)=ttest(x,y,.2);
213        end
214    end
215end
216
217
218% on fait la somme des valeurs de olr_filtreentiel sur le nbre d occurences
219% on obtent un tableau de la forme (jours-avant-apres,lon,lat)
220olr_filtre_compomin1(:,:,:)=nanmean(olr_filtre_compomin); clear olr_filtre_compomin;
221olr_filtre_compomax1(:,:,:)=nanmean(olr_filtre_compomax); clear olr_filtre_compomax;
222
223x=[-10:1:10]'; %'
224
225figure(1); orient('landscape');
226
227lat=lat';
228lon=lon-180;
229for e=1:7;
230       a=7-(e-1)+1;
231       f=2*(a-1)+1;
232       clear delta_olr_filtre_min;
233       delta_olr_filtre_min=zeros(64,128);
234       for b=1:64;
235          for c=1:128;
236             delta_olr_filtre_min(b,c)=olr_filtre_compomin1(f,b,c)-olr_filtre_compomax1(f,b,c);
237             if student1(f,b,c)==1;
238                 delta_olr_filtre_min(b,c)=delta_olr_filtre_min(b,c);
239             else;
240 %                delta_olr_filtre_min(b,c)=NaN;
241             end;
242          end;
243       end;
244       for b=1:64;
245          for c=1:128;
246             if delta_olr_filtre_min(b,c)<-50;
247                  delta_olr_filtre_min(b,c)=-50;
248             elseif delta_olr_filtre_min(b,c)>50;
249                  delta_olr_filtre_min(b,c)=50;
250             end;
251          end;
252       end
253       subplot(7,1,8-e);
254       palettecomplet
255       delta_olr_filtre_min(1,1)=-50.0001;
256       delta_olr_filtre_min(1,2)=50.0001;
257       fin=-30+24*2.5;
258       
259       clear fin
260       fin=-10+16*2.5;
261       aa=contourf(lon,lat,delta_olr_filtre_min,[-50:5:50],'LineStyle','none');
262       if e==1;
263       set (gca,'XTick',[-180:60:180],'XTickLabel',[' 180';'120W';' 60W';'   0';' 60E';'120E';' 180'],'fontname','Arial','fontsize',6);
264       else
265      set (gca,'XTick',[-180:60:180],'XTickLabel',[' ';' ';' ';' ';' ';' '],'fontname','Arial','fontsize',6);
266       end       
267       set (gca,'YTick',[-10:10:30],'YTickLabel',['10S';'  0';'10N';'20N';'30N'],'fontname','Arial','fontsize',6);
268       if e==4;
269          co=colorbar;           
270          set(co,'xtick',[-20:10:20],'xticklabel',[-20:10:20],'fontname','Arial','fontsize',6);
271       end;
272       hold on; cartemonde1;
273       set (gca,'tickDir','out');
274       axis equal
275       axis([-180 180 -20 40]);
276       if e==7;     
277      title('OLR composite EOF2 1030j simulation AS ','fontsize',8) ;
278       end
279       text(-270,10,['day = ',num2str(f-21)],'fontname','Arial','fontsize',10);
280       pos_vert=e/10;
281       set(gca,'position',[0.2 pos_vert 0.5 0.1])
282end;
283
284figure(1); print -depsc2 composite_olr_EOF2_1030j_simulation_AS_part1.eps;
285
286figure(2); orient('landscape');
287
288for e=1:7;
289       a=7-(e-1)+1+7;
290       f=2*(a-1)+1;
291       clear delta_olr_filtre_min;
292       delta_olr_filtre_min=zeros(64,128);
293       for b=1:64;
294          for c=1:128;
295             delta_olr_filtre_min(b,c)=olr_filtre_compomin1(f,b,c)-olr_filtre_compomax1(f,b,c);
296             if student1(f,b,c)==1;
297                 delta_olr_filtre_min(b,c)=delta_olr_filtre_min(b,c);
298             else;
299 %                delta_olr_filtre_min(b,c)=NaN;
300             end;
301          end;
302       end;
303       for b=1:64;
304          for c=1:128;
305             if delta_olr_filtre_min(b,c)<-50;
306                  delta_olr_filtre_min(b,c)=-50;
307             elseif delta_olr_filtre_min(b,c)>50;
308                  delta_olr_filtre_min(b,c)=50;
309             end;
310          end;
311       end
312       subplot(7,1,8-e);
313       palettecomplet
314       delta_olr_filtre_min(1,1)=-50.0001;
315       delta_olr_filtre_min(1,2)=50.0001;
316       fin=-30+24*2.5;
317       
318       clear fin
319       fin=-10+16*2.5;
320       aa=contourf(lon,lat,delta_olr_filtre_min,[-50:5:50],'LineStyle','none');
321       if e==1;
322       set (gca,'XTick',[-180:60:180],'XTickLabel',[' 180';'120W';' 60W';'   0';' 60E';'120E';' 180'],'fontname','Arial','fontsize',6);
323       else
324      set (gca,'XTick',[-180:60:180],'XTickLabel',[' ';' ';' ';' ';' ';' '],'fontname','Arial','fontsize',6);
325       end       
326       set (gca,'YTick',[-10:10:30],'YTickLabel',['10S';'  0';'10N';'20N';'30N'],'fontname','Arial','fontsize',6);
327       if e==4;
328          co=colorbar;           
329          set(co,'xtick',[-20:10:20],'xticklabel',[-20:10:20],'fontname','Arial','fontsize',6);
330       end;
331       hold on; cartemonde1;
332       set (gca,'tickDir','out');
333       axis equal
334       axis([-180 180 -20 40]);
335       if e==7;
336           title('OLR composite EOF2 1030j simulation AS','fontsize',8) ;
337       end
338       text(-270,10,['day = ',num2str(f-21)],'fontname','Arial','fontsize',10);
339       pos_vert=e/10;
340       set(gca,'position',[0.2 pos_vert 0.5 0.1])
341end;
342
343figure(2); print -depsc2 composite_olr_EOF2_1030j_simulation_AS_part2.eps;
344
345
346
Note: See TracBrowser for help on using the repository browser.