% %%%%%%%%%%%%%%% FICHIER pluie IRD % ouverture / lecture du fichier clear; close all; % on selectionne les mois d ete (attention aux annees bixestiles!) siz1=31+28+31+30+31+1; siz1bis=31+28+31+30+31+30+31+31+30; pluie=zeros(41,17,122,12); clear v fid; fid=fopen('pluvio.79.haut','r','b'); siz=41*17*365; v=fread(fid,siz,'float'); fclose(fid); v=reshape(v,41,17,365); clear a b c; for a=1:41; for b=1:17; for c=1:365; if v(a,b,c)>990; v(a,b,c)=NaN; elseif v(a,b,c)<0; v(a,b,c)=NaN; end; end; end; end; pluie(:,:,:,1)=v(:,:,siz1:siz1bis); % 1979 clear v fid; fid=fopen('pluvio.80.haut','r','b'); siz=41*17*366; v=fread(fid,siz,'float'); fclose(fid); v=reshape(v,41,17,366); clear a b c; for a=1:41; for b=1:17; for c=1:366; if v(a,b,c)>990; v(a,b,c)=NaN; elseif v(a,b,c)<0; v(a,b,c)=NaN; end; end; end; end; pluie(:,:,:,2)=v(:,:,siz1+1:siz1bis+1); % 1980 clear v fid; fid=fopen('pluvio.81.haut','r','b'); siz=41*17*365; v=fread(fid,siz,'float'); fclose(fid); v=reshape(v,41,17,365); clear a b c; for a=1:41; for b=1:17; for c=1:365; if v(a,b,c)>990; v(a,b,c)=NaN; elseif v(a,b,c)<0; v(a,b,c)=NaN; end; end; end; end; pluie(:,:,:,3)=v(:,:,siz1:siz1bis); % 1981 clear v fid; fid=fopen('pluvio.82.haut','r','b'); siz=41*17*365; v=fread(fid,siz,'float'); fclose(fid); v=reshape(v,41,17,365); clear a b c; for a=1:41; for b=1:17; for c=1:365; if v(a,b,c)>990; v(a,b,c)=NaN; elseif v(a,b,c)<0; v(a,b,c)=NaN; end; end; end; end; pluie(:,:,:,4)=v(:,:,siz1:siz1bis); % 1982 clear v fid; fid=fopen('pluvio.83.haut','r','b'); siz=41*17*365; v=fread(fid,siz,'float'); fclose(fid); v=reshape(v,41,17,365); clear a b c; for a=1:41; for b=1:17; for c=1:365; if v(a,b,c)>990; v(a,b,c)=NaN; elseif v(a,b,c)<0; v(a,b,c)=NaN; end; end; end; end; pluie(:,:,:,5)=v(:,:,siz1:siz1bis); % 1983 clear v fid; fid=fopen('pluvio.84.haut','r','b'); siz=41*17*366; v=fread(fid,siz,'float'); fclose(fid); v=reshape(v,41,17,366); clear a b c; for a=1:41; for b=1:17; for c=1:366; if v(a,b,c)>990; v(a,b,c)=NaN; elseif v(a,b,c)<0; v(a,b,c)=NaN; end; end; end; end; pluie(:,:,:,6)=v(:,:,siz1+1:siz1bis+1); % 1984 clear v fid; fid=fopen('pluvio.85.haut','r','b'); siz=41*17*365; v=fread(fid,siz,'float'); fclose(fid); v=reshape(v,41,17,365); clear a b c; for a=1:41; for b=1:17; for c=1:365; if v(a,b,c)>990; v(a,b,c)=NaN; elseif v(a,b,c)<0; v(a,b,c)=NaN; end; end; end; end; pluie(:,:,:,7)=v(:,:,siz1:siz1bis); % 1985 clear v fid; fid=fopen('pluvio.86.haut','r','b'); siz=41*17*365; v=fread(fid,siz,'float'); fclose(fid); v=reshape(v,41,17,365); clear a b c; for a=1:41; for b=1:17; for c=1:365; if v(a,b,c)>990; v(a,b,c)=NaN; elseif v(a,b,c)<0; v(a,b,c)=NaN; end; end; end; end; pluie(:,:,:,8)=v(:,:,siz1:siz1bis); % 1986 clear v fid; fid=fopen('pluvio.87.haut','r','b'); siz=41*17*365; v=fread(fid,siz,'float'); fclose(fid); v=reshape(v,41,17,365); clear a b c; for a=1:41; for b=1:17; for c=1:365; if v(a,b,c)>990; v(a,b,c)=NaN; elseif v(a,b,c)<0; v(a,b,c)=NaN; end; end; end; end; pluie(:,:,:,9)=v(:,:,siz1:siz1bis); % 1987 clear v fid; fid=fopen('pluvio.88.haut','r','b'); siz=41*17*366; v=fread(fid,siz,'float'); fclose(fid); v=reshape(v,41,17,366); clear a b c; for a=1:41; for b=1:17; for c=1:366; if v(a,b,c)>990; v(a,b,c)=NaN; elseif v(a,b,c)<0; v(a,b,c)=NaN; end; end; end; end; pluie(:,:,:,10)=v(:,:,siz1:siz1bis); % 1988 clear v fid; fid=fopen('pluvio.89.haut','r','b'); siz=41*17*365; v=fread(fid,siz,'float'); fclose(fid); v=reshape(v,41,17,365); clear a b c; for a=1:41; for b=1:17; for c=1:365; if v(a,b,c)>990; v(a,b,c)=NaN; elseif v(a,b,c)<0; v(a,b,c)=NaN; end; end; end; end; pluie(:,:,:,11)=v(:,:,siz1:siz1bis); % 1989 clear v fid; fid=fopen('pluvio.90.haut','r','b'); siz=41*17*365; v=fread(fid,siz,'float'); fclose(fid); v=reshape(v,41,17,365); clear a b c; for a=1:41; for b=1:17; for c=1:365; if v(a,b,c)>990; v(a,b,c)=NaN; elseif v(a,b,c)<0; v(a,b,c)=NaN; end; end; end; end; pluie(:,:,:,12)=v(:,:,siz1:siz1bis); % 1990 clear siz sizbis; clear v; status=load('eof24_1030.txt'); eof24_1030=status; clear status; % on met sous la forme annee mois ind_olr=reshape(eof24_1030,122,28); clear v; % on selectionne les annees de 1979 a 2000 ind_olr1=ind_olr(:,1:12); clear ind_olr; k=122*12; ind_olr=ind_olr1; clear ind_olr1; % on calcule l ecart type sur la serie entiere de l OLR ind_olr1=reshape(ind_olr, k,1); ind_olr2=std(ind_olr1); clear ind_olr1; % intialisation des tableaux pluie_filtre_compomax=NaN*ones(30,31,17,41); pluie_filtre_compomin=NaN*ones(30,31,17,41); pluie=permute(pluie,[3 4 2 1]); compteurmax=0; compteurmin=0; % boucle sur les annees for a=1:12; clear delta; delta=zeros(122,1); % boucle sur les jours : on prepare avant for b=1:122; if b>1; delta(b)=ind_olr(b,a)-ind_olr(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 && ind_olr(b,a)>ind_olr2); compteurmax=compteurmax+1; pluie_filtre_compomax(compteurmax,1,:,:)=pluie(b-20,a,:,:); pluie_filtre_compomax(compteurmax,2,:,:)=pluie(b-19,a,:,:); pluie_filtre_compomax(compteurmax,3,:,:)=pluie(b-18,a,:,:); pluie_filtre_compomax(compteurmax,4,:,:)=pluie(b-17,a,:,:); pluie_filtre_compomax(compteurmax,5,:,:)=pluie(b-16,a,:,:); pluie_filtre_compomax(compteurmax,6,:,:)=pluie(b-15,a,:,:); pluie_filtre_compomax(compteurmax,7,:,:)=pluie(b-14,a,:,:); pluie_filtre_compomax(compteurmax,8,:,:)=pluie(b-13,a,:,:); pluie_filtre_compomax(compteurmax,9,:,:)=pluie(b-12,a,:,:); pluie_filtre_compomax(compteurmax,10,:,:)=pluie(b-11,a,:,:); pluie_filtre_compomax(compteurmax,11,:,:)=pluie(b-10,a,:,:); pluie_filtre_compomax(compteurmax,12,:,:)=pluie(b-9,a,:,:); pluie_filtre_compomax(compteurmax,13,:,:)=pluie(b-8,a,:,:); pluie_filtre_compomax(compteurmax,14,:,:)=pluie(b-7,a,:,:); pluie_filtre_compomax(compteurmax,15,:,:)=pluie(b-6,a,:,:); pluie_filtre_compomax(compteurmax,16,:,:)=pluie(b-5,a,:,:); pluie_filtre_compomax(compteurmax,17,:,:)=pluie(b-4,a,:,:); pluie_filtre_compomax(compteurmax,18,:,:)=pluie(b-3,a,:,:); pluie_filtre_compomax(compteurmax,19,:,:)=pluie(b-2,a,:,:); pluie_filtre_compomax(compteurmax,20,:,:)=pluie(b-1,a,:,:); pluie_filtre_compomax(compteurmax,21,:,:)=pluie(b,a,:,:); pluie_filtre_compomax(compteurmax,22,:,:)=pluie(b+1,a,:,:); pluie_filtre_compomax(compteurmax,23,:,:)=pluie(b+2,a,:,:); pluie_filtre_compomax(compteurmax,24,:,:)=pluie(b+3,a,:,:); pluie_filtre_compomax(compteurmax,25,:,:)=pluie(b+4,a,:,:); pluie_filtre_compomax(compteurmax,26,:,:)=pluie(b+5,a,:,:); pluie_filtre_compomax(compteurmax,27,:,:)=pluie(b+6,a,:,:); pluie_filtre_compomax(compteurmax,28,:,:)=pluie(b+7,a,:,:); pluie_filtre_compomax(compteurmax,29,:,:)=pluie(b+8,a,:,:); pluie_filtre_compomax(compteurmax,30,:,:)=pluie(b+9,a,:,:); pluie_filtre_compomax(compteurmax,31,:,:)=pluie(b+10,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 && ind_olr(b,a)<(-ind_olr2)); compteurmin=compteurmin+1; pluie_filtre_compomin(compteurmin,1,:,:)=pluie(b-20,a,:,:); pluie_filtre_compomin(compteurmin,2,:,:)=pluie(b-19,a,:,:); pluie_filtre_compomin(compteurmin,3,:,:)=pluie(b-18,a,:,:); pluie_filtre_compomin(compteurmin,4,:,:)=pluie(b-17,a,:,:); pluie_filtre_compomin(compteurmin,5,:,:)=pluie(b-16,a,:,:); pluie_filtre_compomin(compteurmin,6,:,:)=pluie(b-15,a,:,:); pluie_filtre_compomin(compteurmin,7,:,:)=pluie(b-14,a,:,:); pluie_filtre_compomin(compteurmin,8,:,:)=pluie(b-13,a,:,:); pluie_filtre_compomin(compteurmin,9,:,:)=pluie(b-12,a,:,:); pluie_filtre_compomin(compteurmin,10,:,:)=pluie(b-11,a,:,:); pluie_filtre_compomin(compteurmin,11,:,:)=pluie(b-10,a,:,:); pluie_filtre_compomin(compteurmin,12,:,:)=pluie(b-9,a,:,:); pluie_filtre_compomin(compteurmin,13,:,:)=pluie(b-8,a,:,:); pluie_filtre_compomin(compteurmin,14,:,:)=pluie(b-7,a,:,:); pluie_filtre_compomin(compteurmin,15,:,:)=pluie(b-6,a,:,:); pluie_filtre_compomin(compteurmin,16,:,:)=pluie(b-5,a,:,:); pluie_filtre_compomin(compteurmin,17,:,:)=pluie(b-4,a,:,:); pluie_filtre_compomin(compteurmin,18,:,:)=pluie(b-3,a,:,:); pluie_filtre_compomin(compteurmin,19,:,:)=pluie(b-2,a,:,:); pluie_filtre_compomin(compteurmin,20,:,:)=pluie(b-1,a,:,:); pluie_filtre_compomin(compteurmin,21,:,:)=pluie(b,a,:,:); pluie_filtre_compomin(compteurmin,22,:,:)=pluie(b+1,a,:,:); pluie_filtre_compomin(compteurmin,23,:,:)=pluie(b+2,a,:,:); pluie_filtre_compomin(compteurmin,24,:,:)=pluie(b+3,a,:,:); pluie_filtre_compomin(compteurmin,25,:,:)=pluie(b+4,a,:,:); pluie_filtre_compomin(compteurmin,26,:,:)=pluie(b+5,a,:,:); pluie_filtre_compomin(compteurmin,27,:,:)=pluie(b+6,a,:,:); pluie_filtre_compomin(compteurmin,28,:,:)=pluie(b+7,a,:,:); pluie_filtre_compomin(compteurmin,29,:,:)=pluie(b+8,a,:,:); pluie_filtre_compomin(compteurmin,30,:,:)=pluie(b+9,a,:,:); pluie_filtre_compomin(compteurmin,31,:,:)=pluie(b+10,a,:,:); end; end; end; end; % on fait la somme des valeurs de pluie_filtreentiel sur le nbre d occurences % on obtent un tableau de la forme (jours-avant-apres,lon,lat) pluie_filtre_compomin1(:,:,:)=nanmean(pluie_filtre_compomin); clear pluie_filtre_compomin; pluie_filtre_compomax1(:,:,:)=nanmean(pluie_filtre_compomax); clear pluie_filtre_compomax; figure(1); orient('landscape'); figure(2); orient('landscape'); figure(3); orient('landscape'); for e=1:7; a=7-(e-1)+1; f=2*(a-1)+1; clear pluie_min pluie_max; pluie_min=zeros(17,41); pluie_max=zeros(17,41); pluie_min(:,:)=pluie_filtre_compomin1(f,:,:); pluie_max(:,:)=pluie_filtre_compomax1(f,:,:); for b=1:17; for c=1:41; if pluie_min(b,c)<0; pluie_min(b,c)=0; elseif pluie_min(b,c)>10; pluie_min(b,c)=10; end; if pluie_max(b,c)<0; pluie_max(b,c)=0; elseif pluie_max(b,c)>10; pluie_max(b,c)=10; end; end; end; pluie_min(1,1)=-0.0001; pluie_min(1,2)=10.0001; pluie_max(1,1)=-0.0001; pluie_max(1,2)=10.0001; lat=[-10:2.5:30]; lon=[-70:2.5:30]'; figure(1); subplot(7,1,8-e); palette aa=contourf(lon,lat,pluie_min,[0:0.5:10],'LineStyle','none'); if e==1; set (gca,'XTick',[-180:60:180],'XTickLabel',[' 180';'120W';' 60W';' 0';' 60E';'120E';' 180'],'fontname','Arial','fontsize',6); else set (gca,'XTick',[-180:60:180],'XTickLabel',[' ';' ';' ';' ';' ';' '],'fontname','Arial','fontsize',6); end; set (gca,'YTick',[-10:10:40],'YTickLabel',[' ';' 0';'10N';'20N';'30N';' '],'fontname','Arial','fontsize',6); if e==4; co=colorbar; set (co,'xtick',[-20:10:20],'xticklabel',[-20:10:20],'fontname','Arial','fontsize',6); end; hold on; cartemonde1; set (gca,'tickDir','out'); axis equal; axis([-180 180 -10 40]); if e==7; title('Pluie IRD : composite min (mode sahelien)','fontsize',8); end; text(-270,10,['day = ',num2str(f-21)],'fontname','Arial','fontsize',10); pos_vert=e/10; set (gca,'position',[0.2 pos_vert 0.5 0.1]); % *************************** figure(2); subplot(7,1,8-e); palette aa=contourf(lon,lat,pluie_max,[0:0.5:10],'LineStyle','none'); if e==1; set (gca,'XTick',[-180:60:180],'XTickLabel',[' 180';'120W';' 60W';' 0';' 60E';'120E';' 180'],'fontname','Arial','fontsize',6); else set (gca,'XTick',[-180:60:180],'XTickLabel',[' ';' ';' ';' ';' ';' '],'fontname','Arial','fontsize',6); end; set (gca,'YTick',[-10:10:40],'YTickLabel',[' ';' 0';'10N';'20N';'30N';' '],'fontname','Arial','fontsize',6); if e==4; co=colorbar; set (co,'xtick',[-20:10:20],'xticklabel',[-20:10:20],'fontname','Arial','fontsize',6); end; hold on; cartemonde1; set (gca,'tickDir','out'); axis equal; axis([-180 180 -10 40]); if e==7; title('Pluies IRD : composite max (mode Sahelien)','fontsize',8); end; text(-270,10,['day = ',num2str(f-21)],'fontname','Arial','fontsize',10); pos_vert=e/10; set (gca,'position',[0.2 pos_vert 0.5 0.1]); %******************************************** figure(3); subplot(7,1,8-e); palette diff=pluie_min-pluie_max; diff(1,1)=-5.01; diff(1,2)=5.01; aa=contourf(lon,lat,diff,[-5:0.5:5],'LineStyle','none'); if e==1; set (gca,'XTick',[-180:60:180],'XTickLabel',[' 180';'120W';' 60W';' 0';' 60E';'120E';' 180'],'fontname','Arial','fontsize',6); else set (gca,'XTick',[-180:60:180],'XTickLabel',[' ';' ';' ';' ';' ';' '],'fontname','Arial','fontsize',6); end; set (gca,'YTick',[-10:10:40],'YTickLabel',[' ';' 0';'10N';'20N';'30N';' '],'fontname','Arial','fontsize',6); if e==4; co=colorbar; set (co,'xtick',[-20:10:20],'xticklabel',[-20:10:20],'fontname','Arial','fontsize',6); end; hold on; cartemonde1; set (gca,'tickDir','out'); axis equal; axis([-180 180 -10 40]); if e==7; title('Pluie IRD : differences composite min - max (mode Sahelien)','fontsize',8); end; text(-270,10,['day = ',num2str(f-21)],'fontname','Arial','fontsize',10); pos_vert=e/10; set (gca,'position',[0.2 pos_vert 0.5 0.1]); end; figure(1); print('-depsc2','composite_pluie_min_mode_sahel1.eps'); figure(2); print('-depsc2','composite_pluie_max_mode_sahel1.eps'); figure(3); print('-depsc2','composite_pluie_diff_mode_sahel1.eps'); close all figure(1); orient('landscape'); figure(2); orient('landscape'); figure(3); orient('landscape'); for e=1:7; a=7-(e-1)+7; f=2*(a-1)+1; clear pluie_min pluie_max; pluie_min=zeros(17,41); pluie_max=zeros(17,41); pluie_min(:,:)=pluie_filtre_compomin1(f,:,:); pluie_max(:,:)=pluie_filtre_compomax1(f,:,:); for b=1:17; for c=1:41; if pluie_min(b,c)<0; pluie_min(b,c)=0; elseif pluie_min(b,c)>10; pluie_min(b,c)=10; end; if pluie_max(b,c)<0; pluie_max(b,c)=0; elseif pluie_max(b,c)>10; pluie_max(b,c)=10; end; end; end; pluie_min(1,1)=-0.0001; pluie_min(1,2)=10.0001; pluie_max(1,1)=-0.0001; pluie_max(1,2)=10.0001; lat=[-10:2.5:30]; lon=[-70:2.5:30]'; figure(1); subplot(7,1,8-e); palette aa=contourf(lon,lat,pluie_min,[0:0.5:10],'LineStyle','none'); if e==1; set (gca,'XTick',[-180:60:180],'XTickLabel',[' 180';'120W';' 60W';' 0';' 60E';'120E';' 180'],'fontname','Arial','fontsize',6); else set (gca,'XTick',[-180:60:180],'XTickLabel',[' ';' ';' ';' ';' ';' '],'fontname','Arial','fontsize',6); end; set (gca,'YTick',[-10:10:40],'YTickLabel',[' ';' 0';'10N';'20N';'30N';' '],'fontname','Arial','fontsize',6); if e==4; co=colorbar; set (co,'xtick',[-20:10:20],'xticklabel',[-20:10:20],'fontname','Arial','fontsize',6); end; hold on; cartemonde1; set (gca,'tickDir','out'); axis equal; axis([-180 180 -10 40]); if e==7; title('Pluie IRD : composite min (mode Sahelien)','fontsize',8); end; text(-270,10,['day = ',num2str(f-21)],'fontname','Arial','fontsize',10); pos_vert=e/10; set (gca,'position',[0.2 pos_vert 0.5 0.1]); % *************************** figure(2); subplot(7,1,8-e); palette aa=contourf(lon,lat,pluie_max,[0:0.5:10],'LineStyle','none'); if e==1; set (gca,'XTick',[-180:60:180],'XTickLabel',[' 180';'120W';' 60W';' 0';' 60E';'120E';' 180'],'fontname','Arial','fontsize',6); else set (gca,'XTick',[-180:60:180],'XTickLabel',[' ';' ';' ';' ';' ';' '],'fontname','Arial','fontsize',6); end; set (gca,'YTick',[-10:10:40],'YTickLabel',[' ';' 0';'10N';'20N';'30N';' '],'fontname','Arial','fontsize',6); if e==4; co=colorbar; set (co,'xtick',[-20:10:20],'xticklabel',[-20:10:20],'fontname','Arial','fontsize',6); end; hold on; cartemonde1; set (gca,'tickDir','out'); axis equal; axis([-180 180 -10 40]); if e==7; title('Pluie IRD : composite max (mode Sahelien)','fontsize',8); end; text(-270,10,['day = ',num2str(f-21)],'fontname','Arial','fontsize',10); pos_vert=e/10; set (gca,'position',[0.2 pos_vert 0.5 0.1]); %******************************************** figure(3); subplot(7,1,8-e); palette diff=pluie_min-pluie_max; diff(1,1)=-5.01; diff(1,2)=5.01; aa=contourf(lon,lat,diff,[-5:0.5:5],'LineStyle','none'); if e==1; set (gca,'XTick',[-180:60:180],'XTickLabel',[' 180';'120W';' 60W';' 0';' 60E';'120E';' 180'],'fontname','Arial','fontsize',6); else set (gca,'XTick',[-180:60:180],'XTickLabel',[' ';' ';' ';' ';' ';' '],'fontname','Arial','fontsize',6); end; set (gca,'YTick',[-10:10:40],'YTickLabel',[' ';' 0';'10N';'20N';'30N';' '],'fontname','Arial','fontsize',6); if e==4; co=colorbar; set (co,'xtick',[-20:10:20],'xticklabel',[-20:10:20],'fontname','Arial','fontsize',6); end; hold on; cartemonde1; set (gca,'tickDir','out'); axis equal; axis([-180 180 -10 40]); if e==7; title('Pluie IRD : differences composites min -max (mode Sahelien)','fontsize',8); end; text(-270,10,['day = ',num2str(f-21)],'fontname','Arial','fontsize',10); pos_vert=e/10; set (gca,'position',[0.2 pos_vert 0.5 0.1]); end; figure(1); print('-depsc2','composite_pluie_min_mode_sahel2.eps'); figure(2); print('-depsc2','composite_pluie_max_mode_sahel2.eps'); figure(3); print('-depsc2','composite_pluie_diff_mode_sahel2.eps');