source: trunk/src/mode_sahelien/composite_olr_eof23_1030_filtre.m @ 91

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

add semi-colon after end everywhere

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