[17] | 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'); |
---|
[22] | 17 | |
---|
[17] | 18 | lat=lat(21:45); |
---|
| 19 | lon=lon-180; |
---|
| 20 | |
---|
[23] | 21 | status=load('eof24_1030.txt'); |
---|
[24] | 22 | eof24_1030=status; |
---|
| 23 | clear status; |
---|
[17] | 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; |
---|
[26] | 89 | end; |
---|
[17] | 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); |
---|