% %%%%%%%%%%%%%%% FICHIER OLR % ouverture / lecture du fichier clear; fid=fopen('olr_filtre1030_bis.dat','r'); siz=144*25*3416; v=fread(fid,siz,'float'); fclose(fid); olr=reshape(v,144,25,122,28); clear v; olr1=permute(olr,[3 4 2 1]); clear olr; ncload('olr.day.mean.nc','lon','lat'); lat=lat(21:45); lon=lon-180; status=load('eof23_1030.txt'); % on met sous la forme annee mois olr_eof=reshape(eof23_1030,122,28); clear eof23_1030; % on calcule l ecart type sur la serie temporelle de l OLR k=122*28; olrbis=reshape(olr_eof,k,1); olrbis=std(olrbis); % intialisation des tableaux olr_filtre_compomax=NaN*ones(50,25,144); olr_filtre_compomin=NaN*ones(50,25,144); compteurmax=0; compteurmin=0; % boucle sur les annees for a=1:28; clear delta; delta=zeros(122,1); % boucle sur les jours : on prepare avant for b=1:122; if b>1; delta(b)=olr_eof(b,a)-olr_eof(b-1,a); end; end; % boucle sur les jours for b=1:122; % 1ere condition (laisser une marge de 10) if (b>20 && b<112); % cas 1 : max deltas apres negetifs et deltas avant postifs if (delta(b+1)<0 && delta(b)<0 && delta(b-1)>0 && delta(b-2)>0 && olr_eof(b,a)>olrbis); compteurmax=compteurmax+1; olr_filtre_compomax(compteurmax,:,:)=olr1(b,a,:,:); % cas 2 : min deltas apres positifs et deltas avant negatifs elseif (delta(b+1)>0 && delta(b)>0 && delta(b-1)<0 && delta(b-2)<0 && olr_eof(b,a)<(-olrbis)); compteurmin=compteurmin+1; olr_filtre_compomin(compteurmin,:,:)=olr1(b,a,:,:); end; end; end; end; compteurmin_eof23_1030=compteurmin; compteurmax_eof23_1030=compteurmax; % on fait la somme des valeurs de olr_filtreentiel sur le nbre d occurences % on obtent un tableau de la forme (jours-avant-apres,lon,lat) olr_filtre_compomin1(:,:)=nanmean(olr_filtre_compomin); clear olr_filtre_compomin; olr_filtre_compomax1(:,:)=nanmean(olr_filtre_compomax); clear olr_filtre_compomax; x=[-10:1:10]'; delta_olr_filtre_min=zeros(25,144); for b=1:25; for c=1:144; delta_olr_filtre_min(b,c)=olr_filtre_compomin1(b,c)-olr_filtre_compomax1(b,c); if delta_olr_filtre_min(b,c)<-25; delta_olr_filtre_min(b,c)=-25; elseif delta_olr_filtre_min(b,c)>25; delta_olr_filtre_min(b,c)=25; end; end; end delta_olr_filtre_min=flipud(delta_olr_filtre_min); sauvegrads('composite_olr_EOF23_1030',delta_olr_filtre_min,[-180 2.5 -20 2.5]); delta_olr_filtre_min=flipud(delta_olr_filtre_min); delta_olr_filtre_min(1,1)=-25.0001; delta_olr_filtre_min(1,2)=25.0001; fin=-30+24*2.5; clear fin; fin=-10+16*2.5; [cs,h]=contour(lon,lat,delta_olr_filtre_min,[5:5:25],'k'); clabel(cs,h,[10 20 30],'color','k','rotation',0,'fontsize',5); hold on; clear cs h; [cs,h]=contour(lon,lat,delta_olr_filtre_min,[-25:5:-5],'k:','Linewidth',0.3); clabel(cs,h,[-30 -20 -10],'color','k','rotation',0,'fontsize',5); cartemonde1; axis equal; axis([-80 100 -10 30]); set (gca,'XTick',[-180:60:180],'XTickLabel',[' 180';'120W';' 60W';' 0 ';' 60E';'120E';'180 '],'fontname','Arial','fontsize',6); set (gca,'YTick',[-10:10:40],'YTickLabel',['10S';' 0 ';'10N';'20N';'30N'],'fontname','Arial','fontsize',6); set (gca,'tickDir','out'); title('Composite t=0 OLR et Pluies IRD indice ITCZ reconstruit EOF23','fontsize',6); status=print('-depsc2','carte_olr_eof23.eps');