source: trunk/src/mode_sahelien/composite_olr_eof234_1030_filtre.m @ 15

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

modification according to mlint diagnostic

File size: 3.5 KB
Line 
1
2%%%%%%%%%%%%%%% FICHIER OLR
3% ouverture / lecture du fichier
4clear;
5
6fid=fopen('olr_filtre1030_bis.dat','r');
7siz=144*25*3416;
8v=fread(fid,siz,'float');
9fclose(fid);
10olr=reshape(v,144,25,122,28); clear v;
11olr1=permute(olr,[3 4 2 1]); clear olr
12
13cd('..');
14ncload('olr.day.mean.nc','lon','lat');
15lat=lat(21:45);
16lon=lon-180;
17cd('mode_sahelien');
18
19
20
21%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
22load eof24_1030.txt
23
24
25% on met sous la forme annee mois
26olr_eof=reshape(eof24_1030,122,28); clear eof24_1030;
27
28% on calcule l ecart type sur la serie temporelle de l OLR
29k=122*28;
30olrbis=reshape(olr_eof,k,1);
31olrbis=std(olrbis);
32
33% intialisation des tableaux
34olr_filtre_compomax=NaN*ones(50,25,144);
35olr_filtre_compomin=NaN*ones(50,25,144);
36
37compteurmax=0;
38compteurmin=0;
39
40for a=1:28; % boucle sur les annees
41   clear delta;
42   delta=zeros(122,1);
43   for b=1:122; % boucle sur les jours : on prepare avant   
44        if b>1;
45            delta(b)=olr_eof(b,a)-olr_eof(b-1,a);
46        end;
47   end;
48   for b=1:122; % boucle sur les jours
49      if (b>20 && b<112); % 1ere condition (laisser une marge de 10)
50% cas 1 : max deltas apres negetifs et deltas avant postifs   
51         if (delta(b+1)<0 && delta(b)<0 && delta(b-1)>0 && delta(b-2)>0 && olr_eof(b,a)>olrbis);
52            compteurmax=compteurmax+1;
53            olr_filtre_compomax(compteurmax,:,:)=olr1(b,a,:,:);
54% cas 2 : min deltas apres positifs et deltas avant negatifs   
55         elseif (delta(b+1)>0 && delta(b)>0 && delta(b-1)<0 && delta(b-2)<0 && olr_eof(b,a)<(-olrbis));
56            compteurmin=compteurmin+1;
57            olr_filtre_compomin(compteurmin,:,:)=olr1(b,a,:,:);
58         end;
59      end;
60   end;         
61end;
62compteurmax_eof234_1030=compteurmax;
63compteurmin_eof234_1030=compteurmin;
64
65
66% on fait la somme des valeurs de olr_filtreentiel sur le nbre d occurences
67% on obtent un tableau de la forme (jours-avant-apres,lon,lat)
68olr_filtre_compomin1(:,:)=nanmean(olr_filtre_compomin); clear olr_filtre_compomin;
69olr_filtre_compomax1(:,:)=nanmean(olr_filtre_compomax); clear olr_filtre_compomax;
70
71x=[-10:1:10]'; %'
72
73delta_olr_filtre_min=zeros(25,144);
74for b=1:25;
75    for c=1:144;
76        delta_olr_filtre_min(b,c)=olr_filtre_compomin1(b,c)-olr_filtre_compomax1(b,c);
77        if delta_olr_filtre_min(b,c)<-25;
78            delta_olr_filtre_min(b,c)=-25;
79        elseif delta_olr_filtre_min(b,c)>25;
80            delta_olr_filtre_min(b,c)=25;
81        end;
82    end;
83end
84delta_olr_filtre_min=flipud(delta_olr_filtre_min);
85sauvegrads('composite_olr_EOF234_1030',delta_olr_filtre_min,[-180 2.5 -20 2.5]);
86delta_olr_filtre_min=flipud(delta_olr_filtre_min);
87delta_olr_filtre_min(1,1)=-25.0001;
88delta_olr_filtre_min(1,2)=25.0001;
89fin=-30+24*2.5;
90
91
92clear fin; fin=-10+16*2.5;
93[cs,h]=contour(lon,lat,delta_olr_filtre_min,[5:5:25],'k');
94clabel(cs,h,[10 20 30],'color','k','rotation',0,'fontsize',5);
95hold on;
96
97clear cs h; hold on
98[cs,h]=contour(lon,lat,delta_olr_filtre_min,[-25:5:-5],'k:','Linewidth',0.3);
99clabel(cs,h,[-30 -20 -10],'color','k','rotation',0,'fontsize',5);
100
101cartemonde1;
102
103axis equal; axis([-80 100 -10 30]);
104
105set (gca,'XTick',[-180:60:180],'XTickLabel',[' 180';'120W';' 60W';'  0 ';' 60E';'120E';'180 '],'fontname','Arial','fontsize',6);
106set (gca,'YTick',[-10:10:40],'YTickLabel',['10S';' 0 ';'10N';'20N';'30N'],'fontname','Arial','fontsize',6);
107set (gca,'tickDir','out');
108title('Composite t=0 OLR et Pluies IRD indice ITCZ reconstruit EOF234','fontsize',6);
Note: See TracBrowser for help on using the repository browser.