Changeset 16 for trunk/src/mode_sahelien/composite_pluie_eof23_1030.m
- Timestamp:
- 01/06/09 10:53:18 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/mode_sahelien/composite_pluie_eof23_1030.m
r15 r16 1 % 2 1 3 %%%%%%%%%%%%%%% FICHIER pluie IRD 2 4 % ouverture / lecture du fichier … … 10 12 pluie=zeros(41,17,122,12); 11 13 12 clear v fid; fid=fopen('pluvio.79.haut','r','b'); siz=41*17*365; 13 v=fread(fid,siz,'float'); fclose(fid); 14 v=reshape(v,41,17,365); 15 clear a b c; 16 for a=1:41; 17 for b=1:17; 18 for c=1:365; 19 if v(a,b,c)>990; 20 v(a,b,c)=NaN; 14 clear v fid; 15 fid=fopen('pluvio.79.haut','r','b'); 16 siz=41*17*365; 17 v=fread(fid,siz,'float'); 18 fclose(fid); 19 v=reshape(v,41,17,365); 20 clear a b c; 21 for a=1:41; 22 for b=1:17; 23 for c=1:365; 24 if v(a,b,c)>990; 25 v(a,b,c)=NaN; 21 26 elseif v(a,b,c)<0; 22 27 v(a,b,c)=NaN; … … 35 40 for c=1:366; 36 41 if v(a,b,c)>990; 37 v(a,b,c)=NaN; 42 v(a,b,c)=NaN; 38 43 elseif v(a,b,c)<0; 39 44 v(a,b,c)=NaN; … … 52 57 for c=1:365; 53 58 if v(a,b,c)>990; 54 v(a,b,c)=NaN; 59 v(a,b,c)=NaN; 55 60 elseif v(a,b,c)<0; 56 61 v(a,b,c)=NaN; … … 69 74 for c=1:365; 70 75 if v(a,b,c)>990; 71 v(a,b,c)=NaN; 76 v(a,b,c)=NaN; 72 77 elseif v(a,b,c)<0; 73 78 v(a,b,c)=NaN; … … 86 91 for c=1:365; 87 92 if v(a,b,c)>990; 88 v(a,b,c)=NaN; 93 v(a,b,c)=NaN; 89 94 elseif v(a,b,c)<0; 90 95 v(a,b,c)=NaN; … … 105 110 for c=1:366; 106 111 if v(a,b,c)>990; 107 v(a,b,c)=NaN; 112 v(a,b,c)=NaN; 108 113 elseif v(a,b,c)<0; 109 114 v(a,b,c)=NaN; … … 122 127 for c=1:365; 123 128 if v(a,b,c)>990; 124 v(a,b,c)=NaN; 129 v(a,b,c)=NaN; 125 130 elseif v(a,b,c)<0; 126 131 v(a,b,c)=NaN; … … 139 144 for c=1:365; 140 145 if v(a,b,c)>990; 141 v(a,b,c)=NaN; 146 v(a,b,c)=NaN; 142 147 elseif v(a,b,c)<0; 143 148 v(a,b,c)=NaN; … … 156 161 for c=1:365; 157 162 if v(a,b,c)>990; 158 v(a,b,c)=NaN; 163 v(a,b,c)=NaN; 159 164 elseif v(a,b,c)<0; 160 165 v(a,b,c)=NaN; … … 173 178 for c=1:366; 174 179 if v(a,b,c)>990; 175 v(a,b,c)=NaN; 180 v(a,b,c)=NaN; 176 181 elseif v(a,b,c)<0; 177 182 v(a,b,c)=NaN; … … 190 195 for c=1:365; 191 196 if v(a,b,c)>990; 192 v(a,b,c)=NaN; 197 v(a,b,c)=NaN; 193 198 elseif v(a,b,c)<0; 194 199 v(a,b,c)=NaN; … … 207 212 for c=1:365; 208 213 if v(a,b,c)>990; 209 v(a,b,c)=NaN; 214 v(a,b,c)=NaN; 210 215 elseif v(a,b,c)<0; 211 216 v(a,b,c)=NaN; … … 222 227 clear 223 228 224 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%225 229 load pluie.mat; 226 230 % pluie dimension : lon lat jours annee (41 17 122 12) => jour annee lat lon (17 41 122 12) 227 231 228 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%229 232 load eof23_1030.txt 230 231 233 232 234 % on met sous la forme annee mois 233 235 eof23_1030=reshape(eof23_1030,122,28); 234 olr_eof=eof23_1030(:,1:12); % selection des annees avant 1990 236 olr_eof=eof23_1030(:,1:12); % selection des annees avant 1990 235 237 clear eof23_1030 236 238 237 239 % on calcule l ecart type sur la serie temporelle de l'olr 238 k=122*12; 240 k=122*12; 239 241 olrbis=reshape(olr_eof,k,1); 240 olrbis=std(olrbis); 242 olrbis=std(olrbis); 241 243 242 244 % intialisation des tableaux 243 pluie_filtre_compomax=NaN*ones(30,17,41); 245 pluie_filtre_compomax=NaN*ones(30,17,41); 244 246 pluie_filtre_compomin=NaN*ones(30,17,41); 245 247 pluie=permute(pluie,[3 4 2 1]); 246 compteurmax=0; 248 compteurmax=0; 247 249 compteurmin=0; 248 250 249 for a=1:12; % boucle sur les annees 250 clear delta; 251 % boucle sur les annees 252 for a=1:12; 253 clear delta; 251 254 delta=zeros(122,1); 252 for b=1:122; % boucle sur les jours : on prepare avant 255 % boucle sur les jours : on prepare avant 256 for b=1:122; 253 257 if b>1; 254 258 delta(b)=olr_eof(b,a)-olr_eof(b-1,a); 255 259 end; 256 260 end; 257 for b=1:122; % boucle sur les jours 258 if (b>20 && b<112); % 1ere condition (laisser une marge de 10) 259 % cas 1 : max deltas apres negetifs et deltas avant postifs 260 if (delta(b+1)<0 && delta(b)<0 && delta(b-1)>0 && delta(b-2)>0 && olr_eof(b,a)>olrbis); 261 % boucle sur les jours 262 for b=1:122; 263 % 1ere condition (laisser une marge de 10) 264 if (b>20 && b<112); 265 % cas 1 : max deltas apres negetifs et deltas avant postifs 266 if (delta(b+1)<0 && delta(b)<0 && delta(b-1)>0 && delta(b-2)>0 && olr_eof(b,a)>olrbis); 261 267 compteurmax=compteurmax+1; 262 268 pluie_filtre_compomax(compteurmax,:,:)=pluie(b,a,:,:); 263 % cas 2 : min deltas apres positifs et deltas avant negatifs 269 % cas 2 : min deltas apres positifs et deltas avant negatifs 264 270 elseif (delta(b+1)>0 && delta(b)>0 && delta(b-1)<0 && delta(b-2)<0 && olr_eof(b,a)<(-olrbis)); 265 271 compteurmin=compteurmin+1; … … 267 273 end; 268 274 end; 269 end; 275 end; 270 276 end; 271 277 … … 273 279 % on fait la somme des valeurs de pluie_filtreentiel sur le nbre d occurences 274 280 % on obtent un tableau de la forme (jours-avant-apres,lon,lat) 275 pluie_filtre_compomin1(:,:)=nanmean(pluie_filtre_compomin); clear pluie_filtre_compomin; 276 pluie_filtre_compomax1(:,:)=nanmean(pluie_filtre_compomax); clear pluie_filtre_compomax; 281 pluie_filtre_compomin1(:,:)=nanmean(pluie_filtre_compomin); 282 clear pluie_filtre_compomin; 283 pluie_filtre_compomax1(:,:)=nanmean(pluie_filtre_compomax); 284 clear pluie_filtre_compomax; 277 285 278 286 clear pluie_min pluie_max; … … 298 306 299 307 palette 300 lat=[-10:2.5:30]; lon=[-70:2.5:30]'; 308 lat=[-10:2.5:30]; 309 lon=[-70:2.5:30]'; 301 310 302 311 contourf(lon,lat,diff,[-5:0.5:5],'LineStyle','none'); 303 312 caxis([-5 5]) 304 co=colorbar('horiz'); 313 co=colorbar('horiz'); 305 314 set(co,'position',[0.15 0.26 0.3 0.02]); 306 315 set(co,'xtick',[-4:2:4],'xticklabel',[-4:2:4],'fontname','Arial','fontsize',4); 307 316 308 hold on; 309 310 317 hold on;
Note: See TracChangeset
for help on using the changeset viewer.