source: trunk/PROGRAMMES/carte_SST.m @ 41

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

usage of contour instead of contoutf when octave 3.2.2 is running

  • Property svn:keywords set to Id
File size: 8.1 KB
Line 
1%CARTE_SST Ce programme permet de visualiser les cartes mensuelles moyennes de temperature de surface
2%
3% Date: Avril-Mai 2008
4% Auteur: juliette.mignot@locean-ipsl.upmc.fr
5% Contexte Ecole d'ete ENVI-STAT 2008
6
7%+
8%
9% module
10% ======
11%
12% ``carte_SST``
13%
14% DESCRIPTION
15% ===========
16%
17% ``carte_SST`` visualise les cartes mensuelles moyennes de température
18% de surface.
19%
20% ``carte_SST`` lit les fichiers
21% ``../DONNEES/lsmask_tropatl_PacandMedblancs.mat``
22% et ``../DONNEES/skt.mon.tropatl.mat``.
23%
24% ``carte_SST`` calcule les moyennes mensuelles de SST dans
25% l'Atlantique tropical a partir d'un champ mensuel de 60 ans
26% fourni en entree
27%
28% ``carte_SST`` affiche à l'écran les moyennes mensuelles de SST.
29%
30% ``carte_SST`` sauve cette image dans ``./carte_SST.ps``.
31%
32% EXAMPLES
33% ========
34%
35% ::
36%
37% >> tpacpandreg_startup
38% >> carte_SST
39%
40% SEE ALSO
41% ========
42%
43% tpacpandreg_startup.m_
44%
45% .. _tpacpandreg_startup.m : tpacpandreg_startup.m.html
46%
47% initfig.m_
48%
49% .. _initfig.m : initfig.m.html
50%
51% whorldmap.m_
52%
53% .. _whorldmap.m : whorldmap.m.html
54%
55% colorbartype.m_
56%
57% .. _colorbartype.m : colorbartype.m.html
58%
59% contlab.m_
60%
61% .. _contlab.m : contlab.m.html
62%
63% TODO
64% ====
65%
66% improve description
67%
68% is there any way to call worldmap only once or at least read coast.m only
69% once
70%
71% KNOWN PROBLEMS
72% ==============
73%
74% - fplod 2009-09-21T11:57:50Z aedon.locean-ipsl.upmc.fr (Darwin)
75%
76%   * Postcript affreux sous octave 3.2.2 : tout est tassé dans le coin
77%     bas gauche !
78%
79% - fplod 2009-08-26T08:46:48Z aedon.locean-ipsl.upmc.fr (Darwin)
80%
81%   * ne fonctionne pas sous octave 3.2.2 à cause de ``contourf``
82%     ::
83%     error: gnuplot (as of v4.2) only supports 3D filled triangular patches
84%     error: called from:
85%     error:   /usr/local_linux/octave/64/3.2.2//share/octave/3.2.2/m/plot/__go_draw_axes__.m at line 563, column 6
86%     error:   /usr/local_linux/octave/64/3.2.2//share/octave/3.2.2/m/plot/__go_draw_figure__.m at line 93, column 3
87%     error:   /usr/local_linux/octave/64/3.2.2//share/octave/3.2.2/m/plot/gnuplot_drawnow.m at line 88, column 5
88%     error:   /usr/local_linux/octave/64/3.2.2//share/octave/3.2.2/m/plot/print.m at line 696, column 7
89%     error:   /.autofs/home/fplod/incas/tpoctave/tpacpandreg_ws/PROGRAMMES/carte_SST.m at line 212, column 1
90%
91%
92% EVOLUTIONS
93% ==========
94%
95% $Id$
96%
97% - fplod 2009-09-21T11:50:23Z aedon.locean-ipsl.upmc.fr (Darwin)
98%
99%   * octave 3.2.2 contourf problem is not solved (see KNOWN PROBLEMS) but a
100%     workaround allows (``contour`` instead of ``contourf``) to run this
101%     script till end.
102%
103% - fplod 2009-08-26T09:00:11Z aedon.locean-ipsl.upmc.fr (Darwin)
104%
105%   * titre: nom de chaque mois
106%   * remplacement de ``eps`` par ``ps`` pour pouvoir imprimer les figures
107%     produites par ``octave``
108%
109%     Dans le fichier .eps produit par ``octave`` on pouvait lire
110%     ``!PS-Adobe-2.0 EPSF-2.0``.
111%
112%     Aucun message d'erreur n'apparaît suite à la demande d'impression
113%     ``zeus$ lpr -o job-sheets='none' carte_SST.ps``, mais aucune feuille ne
114%     sort.
115%
116%     Pour info dans le fichier .eps produit par matlab, on pouvait lire
117%     ``%!PS-Adobe-2.0 EPSF-1.2``. Aucun souci d'impression avec ce fichier !
118%
119%     En remplaçant ``eps`` par ``ps``, on n'a plus de souci d'impression.
120%
121%
122% - jmignot 2009-08-25
123%
124%   * suppression d'appel à contlab et colorbartype sous octave
125%
126% - fplod 2009-08-25T10:40:16Z aedon.locean-ipsl.upmc.fr (Darwin)
127%
128%   * modif commentaires liée au dernier chgt de Juliette
129%
130% - jmignot 2009-08-25
131%
132%   * remplacement de ``colorbar`` par ``colorbartype``
133%     parce pas beau ni en matlab ni en octave (dégradé, noir et blanc dans
134%     les .jpg)
135%   * contraintes sur les limites x et y de axes car matlab et octave ne
136%     fixent pas les même limites par défaut
137%   * utilisation de ``contlab`` pour ++
138%
139% - fplod 2009-08-17T12:39:51Z aedon.locean-ipsl.upmc.fr (Darwin)
140%
141%   * add header
142%   * répertoire de données relatifs au répertoire courant
143%   * suppression de ``clear all`` présent dans ``tpacpandreg_startup.m``
144%   * contournement pb octave pour ``contourf`` :
145%     Dans le fil de discussion [Pkg-octave-devel] Bug#492223: octave3.0: contourf only accepts vector X and Y if same+++,
146%     je comprends que j'ai affaire à un bug de octave 3.0 (donc à surveiller
147%     pour les prochaines versions) qui ne veut pas faire de contourf si les
148%     variables X et Y n'ont pas la même dimension et c'est le cas ici
149%     (lat = 42x1, lon= 70x1 vue avec size).
150%     http://lists.alioth.debian.org/pipermail/pkg-octave-devel/2008-July/004672.html
151%   * sauvegarde de la figure dans ``./carte_SST.eps``
152%
153%-
154
155%%
156%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
157%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
158%%%%              CHARGEMENT ET PREPARATION DES DONNEES
159%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
160
161nannees=60;
162
163   repertoire=[ '..' filesep 'DONNEES' filesep ] % a adapter a chaque cas: chemin d acces aux donnees
164
165%Mask
166%-----
167   file='lsmask_tropatl_PacandMedblancs.mat'
168   load([repertoire file]);
169% Data
170%--------
171  repertoire2=[repertoire 'MAT' filesep] % a adapter a chaque cas: chemin d acces aux donnees
172  file=['skt.mon.tropatl.mat']
173  load([repertoire2 file]); % chargement des donnees
174  tab=permute(tab,[2 3 1]); % permutation des dimensions pour organiser le tableau sous la forme [lat lon temps]
175
176% Application du masque
177%----------------------
178% le masque donne les positions des continents et des oceans
179mask3D=repmat(mask,[1 1 size(tab,3)]);
180tab(mask3D~=0)=NaN;
181
182%---------------------------------------------------
183%  MANIPULATIONS TEMPORELLES: MOYENNES
184%---------------------------------------------------
185tab=reshape(tab,size(tab,1),size(tab,2),12,nannees); %organisation du tableau sous la forme [lat lon mois annees]
186
187% Construction de moyennes mensuelles
188%---------------------------------------
189tab_mens=squeeze(mean(tab,4));
190
191
192%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
193%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
194%%%%               TRACE
195%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
196%parametres geographiques du graphe
197  geo=[-100 20 -30 30]; %[lonmin lonmax latmin latmax];
198  yti=[-30:10:30]; xti=[-100:30:20]; %labels de latitude et de longitude
199
200               
201% Variabilité saisonnière
202%-------------------------
203%niveaux de couleurs
204lev=[0:1:30];%contours a tracer, en unite du champ a dessiner, ici
205             %la SST en degC
206             %a adapter eventuellement
207clip_lev=[20 30];%definit les limites des couleurs: bleu fonce au
208                 %rouge fonce
209             %a adapter eventuellement
210
211
212ifigure=1;
213figure(ifigure);
214clf();
215initfig;
216for iplot=1:12
217  subplot(4,3,iplot)
218  if (run_octave == 0)
219   x=lon;
220   y=lat;
221  else
222   [x,y]=meshgrid(lon,lat);
223  end
224  z=squeeze(tab_mens(:,:,iplot));
225  if (run_octave == 0)
226   contourf(x,y,z,lev)
227  else
228   switch OCTAVE_VERSION
229    case {'3.0.2','3.0.5'}
230     contourf(x,y,z,lev)
231    case {'3.2.2'}
232     contour(x,y,z,lev)
233    otherwise
234     contourf(x,y,z,lev)
235   end
236  end
237  caxis(clip_lev)
238  hold on
239  whorldmap
240
241  % limites géographiques et labels de longitude et de latitude
242  ylim([geo(3) geo(4)])
243  xlim([geo(1) geo(2)])
244  set(gca, 'Xtick', xti, 'Ytick', yti);
245  if (run_octave == 0)
246    [longstr, latstr] = contlab(xti, yti);
247    set(gca, 'Xticklabel', longstr, 'Yticklabel', latstr);
248  end;
249  if iplot>=10
250    xlabel('longitude')
251  end;
252  if iplot==1|iplot==4|iplot==7|iplot==10
253    ylabel('latitude')
254  end;
255
256  %titre: nom de chaque mois
257  cmois = datestr(datenum([2000 iplot 1 00 00 00]), 'mmm');
258  title(cmois);
259  clear cmois;
260
261end;
262
263%barre de couleur
264if (run_octave == 0)
265  pos=[.2 .03 .6 .013];
266  hpal=jet(100); %carte des couleurs: du bleu au rouge par defaut.
267  colorbartype(pos,lev,1,clip_lev,hpal,0)
268  title('SST mensuelle moyenne en degC')
269else
270 colorbar('East') %colorbar par defaut
271end;
272
273% sauvegarde de la figure
274printer='ps';
275print_printer=['-d', printer];
276fullfilename=['./', mfilename, '.', printer];
277clear printer;
278print(print_printer,fullfilename);
279clear print_printer;
280clear fullfilename;
Note: See TracBrowser for help on using the repository browser.