source: trunk/RESULTATS/carteetstd_SST.m @ 29

Last change on this file since 29 was 29, checked in by pinsard, 15 years ago

typo in headers

  • Property svn:keywords set to Id
File size: 10.6 KB
Line 
1%CARTEETSTD_SST permet de visualiser les cartes mensuelles moyennes
2% de temperature de surface       
3% ainsi que les cartes annuelles moyennes et les écart type
4% correspondants
5
6% Date: Avril-Mai 2008
7% Auteur: juliette.mignot@locean-ipsl.upmc.fr
8% Contexte Ecole d'ete ENVI-STAT 2008
9%+
10%
11% module
12% ======
13%
14% ``carteetstd_SST``
15%
16% DESCRIPTION
17% ===========
18%
19% ``carteetstd_SST`` permet de visualiser les cartes mensuelles moyennes
20% de temperature de surface
21% ainsi que les cartes annuelles moyennes et les écart type
22% correspondants.
23%
24% ``carteetstd_SST`` lit les fichiers
25% ``../DONNEES/lsmask_tropatl_PacandMedblancs.mat``
26% et ``../DONNEES/skt.mon.tropatl.mat``.
27%
28% ``carteetstd_SST`` calcule les moyennes mensuelles d'une part et
29% les moyennes interannuelles d'autre part de la SST dans
30% l'Atlantique tropical à partir d'un champ mensuel de 60 ans
31% fourni en entrée.
32%
33% ``carteetstd_SST`` affiche à l'écran les 12 valeurs de moyennes
34% mensuelles (figure 1), une sélection de 12 valeurs annuelles
35% moyennes (figure 2) et les écart-type mensuels et interannuels
36% (figure 3).
37%
38% ``carteetstd_SST`` sauve ces images dans ``./carteetstd_SST_[123].ps``.
39%
40% EXAMPLES
41% ========
42%
43% ::
44%
45% >> addpath('../PROGRAMMES/')
46% >> tpacpandreg_startup
47% >> carteetstd_SST
48%
49% SEE ALSO
50% ========
51%
52% tpacpandreg_startup.m_
53%
54% .. _tpacpandreg_startup.m : tpacpandreg_startup.m.html
55%
56% initfig.m_
57%
58% .. _initfig.m : initfig.m.html
59%
60% whorldmap.m_
61%
62% .. _whorldmap.m : whorldmap.m.html
63%
64% colorbartype.m_
65%
66% .. _colorbartype.m : colorbartype.m.html
67%
68% contlab.m_
69%
70% .. _contlab.m : contlab.m.html
71%
72%
73% KNOWN PROBLEMS
74% ==============
75%
76% pb avec les diacritiques à l'impression de .ps dans le titres des figures
77% sous octave : é se transforme en o barré.
78%
79% TODO
80% ====
81%
82% improve description
83%
84% EVOLUTIONS
85% ==========
86%
87% $Id$
88%
89% - fplod 2009-08-26T09:56:51Z aedon.locean-ipsl.upmc.fr (Darwin)
90%   
91%   * nom des mois à la place du numéro dans les titres
92%   * remplacement de ``eps`` par ``ps`` pour pouvoir imprimer les figures
93%     produites par ``octave``
94%
95%
96% - jmignot 2009-08-25
97%
98%   * suppression d'appel à contlab et colorbartype sous octave
99%
100% - fplod 2009-08-25T10:40:16Z aedon.locean-ipsl.upmc.fr (Darwin)
101%
102%   * modif commentaires liée au dernier chgt de Juliette
103%
104% - jmignot 2009-08-25
105%
106%   * remplacement de ``colorbar`` par ``colorbartype``
107%     parce pas beau ni en matlab ni en octave (dégradé, noir et blanc dans
108%     les .jpg)
109%   * contraintes sur les limites x et y de axes car matlab et octave ne
110%     fixent pas les même limites par défaut
111%   * utisation de ``contlab`` pour ++
112%
113% - fplod 2009-08-17T12:39:51Z aedon.locean-ipsl.upmc.fr (Darwin)
114%
115%   * add header
116%   * répertoire de données relatifs au répertoire courant
117%   * suppression de ``clear all`` présent dans ``tpacpandreg_startup.m``
118%   * contournement pb octave pour ``contourf`` :
119%     Dans le fil de discussion [Pkg-octave-devel] Bug#492223: octave3.0: contourf only accepts vector X and Y if same+++,
120%     je comprends que j'ai affaire à un bug de octave 3.0 (donc à surveiller
121%     pour les prochaines versions) qui ne veut pas faire de contourf si les
122%     variables X et Y n'ont pas la même dimension et c'est le cas ici
123%     (lat = 42x1, lon= 70x1 vue avec size).
124%     http://lists.alioth.debian.org/pipermail/pkg-octave-devel/2008-July/004672.html
125%   * sauvegarde de la figure dans ``./carteetstd_SST.eps``
126%   * ajout de ``clf`` après les appels à ``figure`` sinon sous
127%     octave (pas sous matlab?) on retrouve des subplots de la figure 2 dans
128%     la figure 3 !
129%
130%-
131
132%%
133%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
134%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
135%%%%              CHARGEMENT ET PREPARATION DES DONNEES
136%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
137
138nannees=60;
139
140repertoire=[ '..' filesep 'DONNEES' filesep ] % a adapter a chaque cas: chemin d acces aux donnees
141
142%Mask
143%------
144file='lsmask_tropatl_PacandMedblancs.mat'
145   load([repertoire file]);
146% Data
147%--------
148  repertoire2=[repertoire 'MAT' filesep] % a adapter a chaque cas: chemin d acces aux donnees
149  file=['skt.mon.tropatl.mat']
150  load([repertoire2 file]); % chargement des donnees
151  tab=permute(tab,[2 3 1]); % permutation des dimensions pour organiser le tableau sous la forme [lat lon temps]
152
153% Application du masque
154%----------------------
155% le masque donne les positions des continents et des oceans
156mask3D=repmat(mask,[1 1 size(tab,3)]);
157tab(mask3D~=0)=NaN;
158
159%---------------------------------------------------
160%  MANIPULATIONS TEMPORELLES: MOYENNES
161%---------------------------------------------------
162tab=reshape(tab,size(tab,1),size(tab,2),12,nannees); %organisation du tableau sous la forme [lat lon mois années]
163
164% Construction de moyennes annuelles
165%---------------------------------------
166tab_an=squeeze(mean(tab,3));
167
168% Construction de moyennes mensuelles
169%---------------------------------------
170tab_mens=squeeze(mean(tab,4));
171
172%calcul des écart-types
173%------------------------
174%écart-type mensuel moyen:
175std_mens=squeeze(std(tab_mens,0,3));
176
177%écart-type interannuel moyen:
178std_an=squeeze(std(tab_an,0,3));
179
180%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
181%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
182%%%%               TRACE
183%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
184%parametres geographiques du graphe
185  geo=[-100 20 -30 30]; %[lonmin lonmax latmin latmax];
186  yti=[-30:10:30]; xti=[-100:30:20]; %labels de latitude et de longitude
187
188                 
189% Variabilité saisonnière
190%-------------------------
191%niveaux de couleurs
192lev=[0:1:30];%contours a tracer, en unite du champ a dessiner, ici
193             %la SST en degC
194clip_lev=[20 30];%definit les limites des couleurs: bleu fonce au
195                 %rouge fonce
196
197
198ifigure=1;
199figure(ifigure);
200clf();
201initfig;
202for iplot=1:12
203  subplot(4,3,iplot)
204  if (run_octave == 0)
205   x=lon;
206   y=lat;
207  else
208   [x,y]=meshgrid(lon,lat);
209  end
210  z=squeeze(tab_mens(:,:,iplot));
211  contourf(x,y,z,lev)
212  caxis(clip_lev)
213  hold on
214  whorldmap
215
216  % limites geographies et labels de longitude et de latitude
217  ylim([geo(3) geo(4)])
218  xlim([geo(1) geo(2)])
219  set(gca, 'Xtick', xti, 'Ytick', yti)
220  if (run_octave == 0)
221   [longstr, latstr] = contlab(xti, yti);
222   set(gca, 'Xticklabel', longstr, 'Yticklabel', latstr)
223  end;
224  if iplot>=10
225    xlabel('longitude')
226  end;
227  if iplot==1|iplot==4|iplot==7|iplot==10
228    ylabel('latitude')
229  end;
230 
231  %titre: nom de chaque mois
232  cmois = datestr(datenum([2000 iplot 1 00 00 00]), 'mmm');
233  title(cmois);
234  clear cmois;
235 
236end;
237
238%barre de couleur
239if (run_octave == 0)
240  pos=[.2 .03 .6 .013];
241  hpal=jet(100); %carte des couleurs: du bleu au rouge par defaut.
242  colorbartype(pos,lev,1,clip_lev,hpal,0);
243  title('SST mensuelle moyenne en degC')
244else
245  colorbar('East') %colorbar par defaut
246end;
247
248% sauvegarde de la figure
249printer='ps';
250print_printer=['-d', printer];
251fullfilename=['./',mfilename,'_',num2str(ifigure),'.',printer];
252clear printer;
253print(print_printer,fullfilename);
254clear print_printer;
255clear fullfilename;
256
257
258% Variabilité interannuelle
259%-------------------------
260%niveaux de couleurs
261lev=[0:1:30];%contours a tracer, en unite du champ a dessiner, ici
262             %la SST en degC
263clip_lev=[20 30];%definit les limites des couleurs: bleu fonce au
264                 %rouge fonce
265
266% Cartes individuelles
267
268ifigure=ifigure+1;
269figure(ifigure);
270clf();
271initfig;
272for iplot=1:5:60 
273  subplot(4,3,((iplot-1)/5)+1) 
274    if (run_octave == 0)
275   x=lon;
276   y=lat;
277  else
278   [x,y]=meshgrid(lon,lat);
279  end
280  z=squeeze(tab_an(:,:,iplot));
281  contourf(x,y,z,lev)
282  caxis(clip_lev)
283  hold on
284  whorldmap
285
286  % limites geographies et labels de longitude et de latitude
287  ylim([geo(3) geo(4)])
288  xlim([geo(1) geo(2)])
289  set(gca, 'Xtick', xti, 'Ytick', yti)
290  if (run_octave == 0)
291   [longstr, latstr] = contlab(xti, yti);
292   set(gca, 'Xticklabel', longstr, 'Yticklabel', latstr)
293  end;
294  if iplot>=10
295    xlabel('longitude')
296  end;
297  if iplot==1|iplot==4|iplot==7|iplot==10
298    ylabel('latitude')
299  end;
300
301  %titre: numéro de l'année
302  title(['annee ' num2str(iplot+1948-1)])
303end;
304
305%barre de couleur
306if (run_octave == 0)
307  pos=[.2 .03 .6 .013];
308  hpal=jet(100); %carte des couleurs: du bleu au rouge par defaut.
309  colorbartype(pos,lev,1,clip_lev,hpal,0);
310  title('SST mensuelle moyenne en degC')
311else
312  colorbar('East') %colorbar par defaut
313end;
314
315% sauvegarde de la figure
316printer='ps';
317print_printer=['-d', printer];
318fullfilename=['./',mfilename,'_',num2str(ifigure),'.',printer];
319clear printer;
320print(print_printer,fullfilename);
321clear print_printer;
322clear fullfilename;
323
324
325% écart type
326%-----------
327
328
329%trace
330ifigure=ifigure+1;
331figure(ifigure);
332clf();
333initfig;
334
335%écart-type mensuel moyen
336
337%niveaux de couleurs
338lev=[0:.4:5];
339clip_lev=[0 3.6];
340
341subplot(2,2,1)
342if (run_octave == 0)
343 x=lon;
344 y=lat;
345else
346 [x,y]=meshgrid(lon,lat);
347end
348z=std_mens;
349contourf(x,y,z,lev)
350caxis([clip_lev])
351hold on
352whorldmap
353  % limites geographies et labels de longitude et de latitude
354  ylim([geo(3) geo(4)])
355  xlim([geo(1) geo(2)])
356  set(gca, 'Xtick', xti, 'Ytick', yti)
357  if (run_octave == 0)
358   [longstr, latstr] = contlab(xti, yti);
359   set(gca, 'Xticklabel', longstr, 'Yticklabel', latstr)
360  end;
361  xlabel('longitude')
362  ylabel('latitude')
363
364title('ecart-type mensuel moyen')
365%barre de couleur
366if (run_octave == 0)
367  pos=[.1 .5 .35 .013];
368  hpal=jet(100); %carte des couleurs: du bleu au rouge par defaut.
369  colorbartype(pos,lev,1,clip_lev,hpal,0);
370  title('degC')
371else
372  colorbar('East') %colorbar par defaut
373end;
374
375
376
377%écart-type interannuel  moyen
378
379%niveaux de couleurs
380lev=[0:.05:.7];%la variabilite interannuelle est moins forte que la
381               %variabilite saisonniere moyenne.
382clip_lev=[0.2 .55];
383
384subplot(2,2,2)
385z=std_an;
386contourf(x,y,z,lev)
387caxis(clip_lev)
388hold on
389whorldmap
390  % limites geographies et labels de longitude et de latitude
391  ylim([geo(3) geo(4)])
392  xlim([geo(1) geo(2)])
393  set(gca, 'Xtick', xti, 'Ytick', yti)
394  if (run_octave == 0)
395   [longstr, latstr] = contlab(xti, yti);
396   set(gca, 'Xticklabel', longstr, 'Yticklabel', latstr)
397  end;
398  xlabel('longitude')
399  ylabel('latitude')
400
401title('écart-type interannuel')
402%barre de couleur
403if (run_octave == 0)
404  pos=[.55 .5 .35 .013];
405  hpal=jet(100); %carte des couleurs: du bleu au rouge par defaut.
406  colorbartype(pos,lev,1,clip_lev,hpal,0);
407  title('degC')
408else
409  colorbar('East') %colorbar par defaut
410end;
411
412
413
414% sauvegarde de la figure
415printer='ps';
416print_printer=['-d', printer];
417fullfilename=['./',mfilename,'_',num2str(ifigure),'.',printer];
418clear printer;
419print(print_printer,fullfilename);
420clear print_printer;
421clear fullfilename;
Note: See TracBrowser for help on using the repository browser.