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

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

remove trailing blanks, split lines with multiple statements

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