Changeset 16 for trunk/src/mode_sahelien/composite_olr_eof234_1030_filtre.m
- Timestamp:
- 01/06/09 10:53:18 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/mode_sahelien/composite_olr_eof234_1030_filtre.m
r15 r16 1 % 2 1 3 2 4 %%%%%%%%%%%%%%% FICHIER OLR 3 5 % ouverture / lecture du fichier 4 clear; 6 clear; 5 7 6 8 fid=fopen('olr_filtre1030_bis.dat','r'); … … 8 10 v=fread(fid,siz,'float'); 9 11 fclose(fid); 10 olr=reshape(v,144,25,122,28); clear v; 11 olr1=permute(olr,[3 4 2 1]); clear olr 12 olr=reshape(v,144,25,122,28); 13 clear v; 14 olr1=permute(olr,[3 4 2 1]); 15 clear olr 12 16 13 17 cd('..'); … … 17 21 cd('mode_sahelien'); 18 22 19 20 21 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%22 23 load eof24_1030.txt 23 24 24 25 25 26 % on met sous la forme annee mois 26 olr_eof=reshape(eof24_1030,122,28); clear eof24_1030; 27 olr_eof=reshape(eof24_1030,122,28); 28 clear eof24_1030; 27 29 28 30 % on calcule l ecart type sur la serie temporelle de l OLR 29 k=122*28; 31 k=122*28; 30 32 olrbis=reshape(olr_eof,k,1); 31 olrbis=std(olrbis); 33 olrbis=std(olrbis); 32 34 33 35 % intialisation des tableaux 34 olr_filtre_compomax=NaN*ones(50,25,144); 36 olr_filtre_compomax=NaN*ones(50,25,144); 35 37 olr_filtre_compomin=NaN*ones(50,25,144); 36 38 37 compteurmax=0; 39 compteurmax=0; 38 40 compteurmin=0; 39 41 40 for a=1:28; % boucle sur les annees 41 clear delta; 42 % boucle sur les annees 43 for a=1:28; 44 clear delta; 42 45 delta=zeros(122,1); 43 for b=1:122; % boucle sur les jours : on prepare avant 46 % boucle sur les jours : on prepare avant 47 for b=1:122; 44 48 if b>1; 45 49 delta(b)=olr_eof(b,a)-olr_eof(b-1,a); 46 50 end; 47 51 end; 48 for b=1:122; % boucle sur les jours 49 if (b>20 && b<112); % 1ere condition (laisser une marge de 10) 50 % cas 1 : max deltas apres negetifs et deltas avant postifs 51 if (delta(b+1)<0 && delta(b)<0 && delta(b-1)>0 && delta(b-2)>0 && olr_eof(b,a)>olrbis); 52 % boucle sur les jours 53 for b=1:122; 54 % 1ere condition (laisser une marge de 10) 55 if (b>20 && b<112); 56 % cas 1 : max deltas apres negetifs et deltas avant postifs 57 if (delta(b+1)<0 && delta(b)<0 && delta(b-1)>0 && delta(b-2)>0 && olr_eof(b,a)>olrbis); 52 58 compteurmax=compteurmax+1; 53 59 olr_filtre_compomax(compteurmax,:,:)=olr1(b,a,:,:); 54 % cas 2 : min deltas apres positifs et deltas avant negatifs 60 % cas 2 : min deltas apres positifs et deltas avant negatifs 55 61 elseif (delta(b+1)>0 && delta(b)>0 && delta(b-1)<0 && delta(b-2)<0 && olr_eof(b,a)<(-olrbis)); 56 62 compteurmin=compteurmin+1; … … 58 64 end; 59 65 end; 60 end; 66 end; 61 67 end; 62 68 compteurmax_eof234_1030=compteurmax; … … 66 72 % on fait la somme des valeurs de olr_filtreentiel sur le nbre d occurences 67 73 % on obtent un tableau de la forme (jours-avant-apres,lon,lat) 68 olr_filtre_compomin1(:,:)=nanmean(olr_filtre_compomin); clear olr_filtre_compomin; 69 olr_filtre_compomax1(:,:)=nanmean(olr_filtre_compomax); clear olr_filtre_compomax; 74 olr_filtre_compomin1(:,:)=nanmean(olr_filtre_compomin); 75 clear olr_filtre_compomin; 76 olr_filtre_compomax1(:,:)=nanmean(olr_filtre_compomax); 77 clear olr_filtre_compomax; 70 78 71 x=[-10:1:10]'; %'79 x=[-10:1:10]'; 72 80 73 81 delta_olr_filtre_min=zeros(25,144); … … 90 98 91 99 92 clear fin; fin=-10+16*2.5; 100 clear fin; 101 fin=-10+16*2.5; 93 102 [cs,h]=contour(lon,lat,delta_olr_filtre_min,[5:5:25],'k'); 94 103 clabel(cs,h,[10 20 30],'color','k','rotation',0,'fontsize',5); 95 104 hold on; 96 105 97 clear cs h; hold on 106 clear cs h; 107 hold on; 98 108 [cs,h]=contour(lon,lat,delta_olr_filtre_min,[-25:5:-5],'k:','Linewidth',0.3); 99 109 clabel(cs,h,[-30 -20 -10],'color','k','rotation',0,'fontsize',5); … … 101 111 cartemonde1; 102 112 103 axis equal; axis([-80 100 -10 30]); 113 axis equal; 114 axis([-80 100 -10 30]); 104 115 105 116 set (gca,'XTick',[-180:60:180],'XTickLabel',[' 180';'120W';' 60W';' 0 ';' 60E';'120E';'180 '],'fontname','Arial','fontsize',6);
Note: See TracChangeset
for help on using the changeset viewer.