%

% initialisation
clear;
close all;
olr=zeros(122,30,64,128);

ncload('rlut_d.TrNQIVIV.197106-09.nc','rlut');
olr(:,1,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.197206-09.nc','rlut');
olr(:,2,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.197306-09.nc','rlut');
olr(:,3,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.197406-09.nc','rlut');
olr(:,4,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.197506-09.nc','rlut');
olr(:,5,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.197606-09.nc','rlut');
olr(:,6,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.197706-09.nc','rlut');
olr(:,7,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.197806-09.nc','rlut');
olr(:,8,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.197906-09.nc','rlut');
olr(:,9,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.198006-09.nc','rlut');
olr(:,10,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.198106-09.nc','rlut');
olr(:,11,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.198206-09.nc','rlut');
olr(:,12,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.198306-09.nc','rlut');
olr(:,13,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.198406-09.nc','rlut');
olr(:,14,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.198506-09.nc','rlut');
olr(:,15,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.198606-09.nc','rlut');
olr(:,16,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.198706-09.nc','rlut');
olr(:,17,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.198806-09.nc','rlut');
olr(:,18,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.198906-09.nc','rlut');
olr(:,19,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.199006-09.nc','rlut');
olr(:,20,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.199106-09.nc','rlut');
olr(:,21,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.199206-09.nc','rlut');
olr(:,22,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.199306-09.nc','rlut');
olr(:,23,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.199406-09.nc','rlut');
olr(:,24,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.199506-09.nc','rlut');
olr(:,25,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.199606-09.nc','rlut');
olr(:,26,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.199706-09.nc','rlut');
olr(:,27,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.199806-09.nc','rlut');
olr(:,28,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.199906-09.nc','rlut');
olr(:,29,:,:)=rlut; clear rlut;

ncload('rlut_d.TrNQIVIV.200006-09.nc','rlut','lat','lon');
olr(:,30,:,:)=rlut; clear rlut;

% selction du domaine geographique
olr1=zeros(122,30,64,128);
olr1(:,:,:,1:64)=olr(:,:,:,65:128);
olr1(:,:,:,65:128)=olr(:,:,:,1:64);
clear olr;

status=load('eof1_TR_30100.txt');
eof1_TR_30100=status;
clear status;

% on met sous la forme annee mois
olr_eof=reshape(eof1_TR_30100,122,30);
clear eof1_TR_30100;

% on calcule l ecart type sur la serie temporelle de l OLR
k=122*30;
olrbis=reshape(olr_eof,k,1);
olr_std=std(olrbis);
olr_moy=mean(olrbis);

for a=1:3660;
     olrbis(a)=(olrbis(a)-olr_moy)/olr_std;
end;

% intialisation des tableaux
olr_filtre_compomax=NaN*ones(50,31,64,128);
olr_filtre_compomin=NaN*ones(50,31,64,128);

compteurmax=0;
compteurmin=0;

% boucle sur les annees
for a=1:30;
   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);

         if (delta(b+1)<0 && delta(b)>0 && olr_eof(b,a)>1);
            compteurmax=compteurmax+1;
            olr_filtre_compomax(compteurmax,1,:,:)=olr1(b-20,a,:,:);
            olr_filtre_compomax(compteurmax,2,:,:)=olr1(b-19,a,:,:);
            olr_filtre_compomax(compteurmax,3,:,:)=olr1(b-18,a,:,:);
            olr_filtre_compomax(compteurmax,4,:,:)=olr1(b-17,a,:,:);
            olr_filtre_compomax(compteurmax,5,:,:)=olr1(b-16,a,:,:);
            olr_filtre_compomax(compteurmax,6,:,:)=olr1(b-15,a,:,:);
            olr_filtre_compomax(compteurmax,7,:,:)=olr1(b-14,a,:,:);
            olr_filtre_compomax(compteurmax,8,:,:)=olr1(b-13,a,:,:);
            olr_filtre_compomax(compteurmax,9,:,:)=olr1(b-12,a,:,:);
            olr_filtre_compomax(compteurmax,10,:,:)=olr1(b-11,a,:,:);

            olr_filtre_compomax(compteurmax,11,:,:)=olr1(b-10,a,:,:);
            olr_filtre_compomax(compteurmax,12,:,:)=olr1(b-9,a,:,:);
            olr_filtre_compomax(compteurmax,13,:,:)=olr1(b-8,a,:,:);
            olr_filtre_compomax(compteurmax,14,:,:)=olr1(b-7,a,:,:);
            olr_filtre_compomax(compteurmax,15,:,:)=olr1(b-6,a,:,:);
            olr_filtre_compomax(compteurmax,16,:,:)=olr1(b-5,a,:,:);
            olr_filtre_compomax(compteurmax,17,:,:)=olr1(b-4,a,:,:);
            olr_filtre_compomax(compteurmax,18,:,:)=olr1(b-3,a,:,:);
            olr_filtre_compomax(compteurmax,19,:,:)=olr1(b-2,a,:,:);
            olr_filtre_compomax(compteurmax,20,:,:)=olr1(b-1,a,:,:);

            olr_filtre_compomax(compteurmax,21,:,:)=olr1(b,a,:,:);
            olr_filtre_compomax(compteurmax,22,:,:)=olr1(b+1,a,:,:);
            olr_filtre_compomax(compteurmax,23,:,:)=olr1(b+2,a,:,:);
            olr_filtre_compomax(compteurmax,24,:,:)=olr1(b+3,a,:,:);
            olr_filtre_compomax(compteurmax,25,:,:)=olr1(b+4,a,:,:);
            olr_filtre_compomax(compteurmax,26,:,:)=olr1(b+5,a,:,:);
            olr_filtre_compomax(compteurmax,27,:,:)=olr1(b+6,a,:,:);
            olr_filtre_compomax(compteurmax,28,:,:)=olr1(b+7,a,:,:);
            olr_filtre_compomax(compteurmax,29,:,:)=olr1(b+8,a,:,:);
            olr_filtre_compomax(compteurmax,30,:,:)=olr1(b+9,a,:,:);
            olr_filtre_compomax(compteurmax,31,:,:)=olr1(b+10,a,:,:);

         elseif (delta(b+1)>0 && delta(b)<0 && olr_eof(b,a)<-1);
            compteurmin=compteurmin+1;

            olr_filtre_compomin(compteurmin,1,:,:)=olr1(b-20,a,:,:);
            olr_filtre_compomin(compteurmin,2,:,:)=olr1(b-19,a,:,:);
            olr_filtre_compomin(compteurmin,3,:,:)=olr1(b-18,a,:,:);
            olr_filtre_compomin(compteurmin,4,:,:)=olr1(b-17,a,:,:);
            olr_filtre_compomin(compteurmin,5,:,:)=olr1(b-16,a,:,:);
            olr_filtre_compomin(compteurmin,6,:,:)=olr1(b-15,a,:,:);
            olr_filtre_compomin(compteurmin,7,:,:)=olr1(b-14,a,:,:);
            olr_filtre_compomin(compteurmin,8,:,:)=olr1(b-13,a,:,:);
            olr_filtre_compomin(compteurmin,9,:,:)=olr1(b-12,a,:,:);
            olr_filtre_compomin(compteurmin,10,:,:)=olr1(b-11,a,:,:);

            olr_filtre_compomin(compteurmin,11,:,:)=olr1(b-10,a,:,:);
            olr_filtre_compomin(compteurmin,12,:,:)=olr1(b-9,a,:,:);
            olr_filtre_compomin(compteurmin,13,:,:)=olr1(b-8,a,:,:);
            olr_filtre_compomin(compteurmin,14,:,:)=olr1(b-7,a,:,:);
            olr_filtre_compomin(compteurmin,15,:,:)=olr1(b-6,a,:,:);
            olr_filtre_compomin(compteurmin,16,:,:)=olr1(b-5,a,:,:);
            olr_filtre_compomin(compteurmin,17,:,:)=olr1(b-4,a,:,:);
            olr_filtre_compomin(compteurmin,18,:,:)=olr1(b-3,a,:,:);
            olr_filtre_compomin(compteurmin,19,:,:)=olr1(b-2,a,:,:);
            olr_filtre_compomin(compteurmin,20,:,:)=olr1(b-1,a,:,:);

            olr_filtre_compomin(compteurmin,21,:,:)=olr1(b,a,:,:);
            olr_filtre_compomin(compteurmin,22,:,:)=olr1(b+1,a,:,:);
            olr_filtre_compomin(compteurmin,23,:,:)=olr1(b+2,a,:,:);
            olr_filtre_compomin(compteurmin,24,:,:)=olr1(b+3,a,:,:);
            olr_filtre_compomin(compteurmin,25,:,:)=olr1(b+4,a,:,:);
            olr_filtre_compomin(compteurmin,26,:,:)=olr1(b+5,a,:,:);
            olr_filtre_compomin(compteurmin,27,:,:)=olr1(b+6,a,:,:);
            olr_filtre_compomin(compteurmin,28,:,:)=olr1(b+7,a,:,:);
            olr_filtre_compomin(compteurmin,29,:,:)=olr1(b+8,a,:,:);
            olr_filtre_compomin(compteurmin,30,:,:)=olr1(b+9,a,:,:);
            olr_filtre_compomin(compteurmin,31,:,:)=olr1(b+10,a,:,:);
         end;
      end;
   end;
end;
% on fait le test de Student
nb_value=min(compteurmin,compteurmax);
student1=zeros(31,64,128);
for a=1:31;
    for b=1:64;
        for c=1:128;
           x=olr_filtre_compomin(1:nb_value,a,b,c);
           y=olr_filtre_compomax(1:nb_value,a,b,c);
           student1(a,b,c)=ttest(x,y,.2);
        end;
    end;
end;

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]';

figure(1);
orient('landscape');

lat=lat';
lon=lon-180;
for e=1:7;
       a=7-(e-1)+1;
       f=2*(a-1)+1;
       clear delta_olr_filtre_min;
       delta_olr_filtre_min=zeros(64,128);
       for b=1:64;
          for c=1:128;
             delta_olr_filtre_min(b,c)=olr_filtre_compomin1(f,b,c)-olr_filtre_compomax1(f,b,c);
             if student1(f,b,c)==1;
                 delta_olr_filtre_min(b,c)=delta_olr_filtre_min(b,c);
             else
 %                delta_olr_filtre_min(b,c)=NaN;
             end;
          end;
       end;
       for b=1:64;
          for c=1:128;
             if delta_olr_filtre_min(b,c)<-50;
                  delta_olr_filtre_min(b,c)=-50;
             elseif delta_olr_filtre_min(b,c)>50;
                  delta_olr_filtre_min(b,c)=50;
             end;
          end;
       end;
       subplot(7,1,8-e);
       palette
       delta_olr_filtre_min(1,1)=-50.0001;
       delta_olr_filtre_min(1,2)=50.0001;
       fin=-30+24*2.5;

       clear fin
       fin=-10+16*2.5;
       aa=contourf(lon,lat,delta_olr_filtre_min,[-50:5:50],'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:30],'YTickLabel',['10S';'  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 -20 40]);
       if e==7;
          title('OLR composite EOF1 30100j simulation TR','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_olr_EOF1_30100j_simulation_TR_part1.eps');

figure(2);
orient('landscape');

for e=1:7;
       a=7-(e-1)+1+7;
       f=2*(a-1)+1;
       clear delta_olr_filtre_min;
       delta_olr_filtre_min=zeros(64,128);
       for b=1:64;
          for c=1:128;
             delta_olr_filtre_min(b,c)=olr_filtre_compomin1(f,b,c)-olr_filtre_compomax1(f,b,c);
             if student1(f,b,c)==1;
                 delta_olr_filtre_min(b,c)=delta_olr_filtre_min(b,c);
             else
 %                delta_olr_filtre_min(b,c)=NaN;
             end;
          end;
       end;
       for b=1:64;
          for c=1:128;
             if delta_olr_filtre_min(b,c)<-50;
                  delta_olr_filtre_min(b,c)=-50;
             elseif delta_olr_filtre_min(b,c)>50;
                  delta_olr_filtre_min(b,c)=50;
             end;
          end;
       end;
       subplot(7,1,8-e);
       palette
       delta_olr_filtre_min(1,1)=-50.0001;
       delta_olr_filtre_min(1,2)=50.0001;
       fin=-30+24*2.5;

       clear fin
       fin=-10+16*2.5;
       aa=contourf(lon,lat,delta_olr_filtre_min,[-50:5:50],'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:30],'YTickLabel',['10S';'  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 -20 40]);
       if e==7;
          title('OLR composite EOF1 30100j simulation TR','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(2);
print('-depsc2','composite_olr_EOF1_30100j_simulation_TR_part2.eps');
