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

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

replace fcommands save, load and print by function calls

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