1 | % |
---|
2 | |
---|
3 | %%%%%%%%%%%%%%% FICHIER OLR |
---|
4 | % ouverture / lecture du fichier |
---|
5 | clear; |
---|
6 | |
---|
7 | fid=fopen('olr_filtre1030_bis.dat','r'); |
---|
8 | siz=144*25*3416; |
---|
9 | v=fread(fid,siz,'float'); |
---|
10 | fclose(fid); |
---|
11 | olr=reshape(v,144,25,122,28); |
---|
12 | clear v; |
---|
13 | olr1=permute(olr,[3 4 2 1]); |
---|
14 | clear olr |
---|
15 | |
---|
16 | ncload('olr.day.mean.nc','lon','lat'); |
---|
17 | |
---|
18 | lat=lat(21:45); |
---|
19 | lon=lon-180; |
---|
20 | |
---|
21 | status=load('eof24_1030.txt'); |
---|
22 | eof24_1030=status; |
---|
23 | clear status; |
---|
24 | |
---|
25 | % on met sous la forme annee mois |
---|
26 | olr_eof=reshape(eof24_1030,122,28); |
---|
27 | clear eof24_1030; |
---|
28 | |
---|
29 | % on calcule l ecart type sur la serie temporelle de l OLR |
---|
30 | k=122*28; |
---|
31 | olrbis=reshape(olr_eof,k,1); |
---|
32 | olrbis=std(olrbis); |
---|
33 | |
---|
34 | % intialisation des tableaux |
---|
35 | olr_filtre_compomax=NaN*ones(50,25,144); |
---|
36 | olr_filtre_compomin=NaN*ones(50,25,144); |
---|
37 | |
---|
38 | compteurmax=0; |
---|
39 | compteurmin=0; |
---|
40 | |
---|
41 | % boucle sur les annees |
---|
42 | for 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; |
---|
66 | end; |
---|
67 | compteurmax_eof234_1030=compteurmax; |
---|
68 | compteurmin_eof234_1030=compteurmin; |
---|
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) |
---|
72 | olr_filtre_compomin1(:,:)=nanmean(olr_filtre_compomin); |
---|
73 | clear olr_filtre_compomin; |
---|
74 | olr_filtre_compomax1(:,:)=nanmean(olr_filtre_compomax); |
---|
75 | clear olr_filtre_compomax; |
---|
76 | |
---|
77 | x=[-10:1:10]'; |
---|
78 | |
---|
79 | delta_olr_filtre_min=zeros(25,144); |
---|
80 | for 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; |
---|
89 | end |
---|
90 | delta_olr_filtre_min=flipud(delta_olr_filtre_min); |
---|
91 | sauvegrads('composite_olr_EOF234_1030',delta_olr_filtre_min,[-180 2.5 -20 2.5]); |
---|
92 | delta_olr_filtre_min=flipud(delta_olr_filtre_min); |
---|
93 | delta_olr_filtre_min(1,1)=-25.0001; |
---|
94 | delta_olr_filtre_min(1,2)=25.0001; |
---|
95 | fin=-30+24*2.5; |
---|
96 | |
---|
97 | clear fin; |
---|
98 | fin=-10+16*2.5; |
---|
99 | [cs,h]=contour(lon,lat,delta_olr_filtre_min,[5:5:25],'k'); |
---|
100 | clabel(cs,h,[10 20 30],'color','k','rotation',0,'fontsize',5); |
---|
101 | hold on; |
---|
102 | |
---|
103 | clear cs h; |
---|
104 | hold on; |
---|
105 | [cs,h]=contour(lon,lat,delta_olr_filtre_min,[-25:5:-5],'k:','Linewidth',0.3); |
---|
106 | clabel(cs,h,[-30 -20 -10],'color','k','rotation',0,'fontsize',5); |
---|
107 | |
---|
108 | cartemonde1; |
---|
109 | |
---|
110 | axis equal; |
---|
111 | axis([-80 100 -10 30]); |
---|
112 | |
---|
113 | set (gca,'XTick',[-180:60:180],'XTickLabel',[' 180';'120W';' 60W';' 0 ';' 60E';'120E';'180 '],'fontname','Arial','fontsize',6); |
---|
114 | set (gca,'YTick',[-10:10:40],'YTickLabel',['10S';' 0 ';'10N';'20N';'30N'],'fontname','Arial','fontsize',6); |
---|
115 | set (gca,'tickDir','out'); |
---|
116 | title('Composite t=0 OLR et Pluies IRD indice ITCZ reconstruit EOF234','fontsize',6); |
---|