Changeset 142 for trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltz.pro
- Timestamp:
- 07/21/06 14:47:49 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltz.pro
r134 r142 3 3 ;------------------------------------------------------------ 4 4 ;+ 5 ; NAME: 6 ; PLTZ 7 ; 8 ; PURPOSE: 9 ; trace des graphes verticaux 10 ; 11 ; CATEGORY: 12 ; Graphics 13 ; 14 ; CALLING SEQUENCE: 15 ; pltz, champ [,min[, max]] 16 ; 17 ; INPUTS: 18 ; champ: le champ dont on veut faire la coupe verticale champ 19 ; peut etre de 2 types: 20 ; 1) un tableau 2d ou 3d. 21 ; Si le champ est 2d undiquer avec le mot cle boxzoom les 22 ; delimitations geographiques de la boxzoom. Si le chyamp est 23 ; 3d, on extrait la section et on moyenne eventuellement avant 24 ; de faire le plot 25 ; 2) une structure repondant aux critaire specifies par 26 ; litchamp.pro. cf. IDL> xhelp,'litchamp'. le tableau contenu 27 ; ds la structure doit etre 2 ou 3d cf cas 1) si dessus 5 ; 6 ; @file_comments 7 ; Trace vertical graphs. 8 ; 9 ; @categories 10 ; Graphics 11 ; 12 ; @param TAB 13 ; The field whose we want to make a vertical cut can be 2 kind of thing: 14 ; 1) An 2d or 3d array. 15 ; If the field is 2d, indicate, with the keyword BOXZOOM, geographic delineations of the boxzoom. 16 ; If the field is 3d, we extract the section on we average possibly before to do the plot. 17 ; 2) a structure respecting all criterions specified by litchamp.pro. 18 ; See IDL> xhelp,'litchamp'. The array contin in the structure must be 2 or 3d (See case 1) 28 19 ; 29 20 ; ces arguments ne sont pas obligatoires: … … 35 26 ; des contours. Par defaut on prend le min de tab1 (sur les pts mer) 36 27 ; 37 ; KEYWORD PARAMETERS: 38 ; 39 ; BOXZOOM:vecteur indiquant la zone geographique sur laquelle doit etre 40 ; faite la coupe. Si BOXZOOM a : 41 ; 1 element : l''extraction est faite sur [lon1, lon2, lat1, lat2, 0.,boxzoom[0]] 42 ; 2 elements: l''extraction est faite sur [lon1, lon2, lat1, lat2, boxzoom[0],boxzoom[1]] 43 ; 4 elements: l''extraction est faite sur [Boxzoom, 0, 200] 44 ; 5 elements: l''extraction est faite sur [Boxzoom[0:3], 0, Boxzoom[4]] 45 ; 6 elements: l''extraction est faite sur Boxzoom 46 ; 47 ; Ou lon1, lon2,lat1,lat2 sont les variables globales 48 ; definies lors du dernier domdef! 49 ; 50 ; CB_TITLE: le titre de la colorbar 51 ; 52 ; CB_SUBTITLE: le soustitre de la colorbar 53 ; 54 ; CB_CHARSIZE: The character size of the color bar annotations 55 ; 56 ; CONTINTERVALLE: lorsque CONTOUR est active, valeur d'un 57 ; intervalle entre deux isolignes traces par un trait. Il peut ainsi 58 ; etre different de celui specifie par INTERVALLE 59 ; qui, cas ce cas, ne controle que les isolignes coloriees en 60 ; couleurs. Si aucun min n''est specifie, on choisit un contour min qui va 61 ; bien avec l''intervalle specifie!. Si ce mot cle n''est pas 62 ; specifie, on trace 20 isolignes du min au max. 63 ; 64 ; CONTLABEL: un entier n. lorsque CONTOUR est active, si n 65 ; different de 0, choisit le type de label correspondant aux cas n 66 ; pour les isolignes tracees par un trait. Pour specifier le type de 67 ; label du contour en couleur, utiliser LABEL 68 ; 69 ; CONTMAX: lorsque CONTOUR est active, valeur maximum que l''on 70 ; veut prendre en compte dans le trace des isolignes traces par un 71 ; trait. Par defaut on prend le max (sur les pts mer) 72 ; du tableau passe ds le mot cle CONTOUR. 73 ; 74 ; COAST_COLOR: the color of the coastline. 75 ; defaut value is 0 => black 76 ; 77 ; COAST_THICK: the thickness of the coastline. 78 ; defaut value is 1 79 ; 80 ; /CONT_NOFILL: activer pour ne pas remplir les points masques 81 ; pour les laisser en transparent! 82 ; Rq: on trace qd meme le contour du mask 83 ; 84 ; CONT_COLOR: the color of the continent. defaut value is 85 ; (!d.n_colors - 1) < 255 => white 86 ; 87 ; CONTMIN: lorsque CONTOUR est active, valeur minimum que l''on 88 ; veut prendre en compte dans le trace des isolignes traces par un 89 ; trait. Par defaut on prend le max (sur les pts mer) 90 ; du tableau passe ds le mot cle CONTOUR. 91 ; 92 ; CONTNLEVEL: lorsque CONTOUR est active, nombre de contours 93 ; trace par un trait a dessiner (actif si 94 ; CONTLABEL=0) par defaut =20. 95 ; 96 ; CONTOUR: si on veut tracer les contours d'un champ different que celui 97 ; que l''on dessin en couleur (par ex E-P en couleur et QSR en 98 ; contours). Doit etre un champ reponadnt aux meme caracteristiques 99 ; que l''argument numero 1 de pltz 100 ; 101 ; ENDPOINTS: mot clef specifiant que l'on veut faire une coupe 102 ; verticale en diagonale. les coordonnees des extremites de 103 ; celle-ci sont alors definies les 4 elements du vecteur 104 ; ENDPOINTS: [x1,y1,x2,y2] qui sont les coordonnees 105 ; 106 ; INTERVALLE: valeur d''un intervalle entre deux isolignes. Si 107 ; aucun min n''est specifie, on choisit un contour min qui va bien 108 ; avec l'intervalle specifie!. Si ce mot cle n''est pas specifie, on 109 ; trace 20 isolignes du min au max. Rq: Qd CONTOUR est active 110 ; INTERVALLE ne specifie que intervalle entre 2 isolignes coloriees en 111 ; couleur. Pour specifier l''intervalle entre 2 isolignes traces par un trait 112 ; utiliser CONTINTERVALLE. 113 ; 114 ; /INV: inverse le vecteur couleur utilisee pour colorier le graphe 115 ; (sans toucher au noir, au blanc et a la palette utilisee) 116 ; 117 ; ZRATIO: lorsque le dessin presente une partie zoomee, rapport de 118 ; taille entre la partie zommee, hz (hauteur zoom), et le dessin entier, ht 119 ; (hauteur total). Par defaut =2./3 120 ; 121 ; LABEL: un entier n. si n different de 0, choisit le type de 122 ; label correspondant aux cas n. cf label.pro 123 ; Rq: Qd CONTOUR est active, ne specifie le type de label que pour les 124 ; isolignes coloriees en couleur. Pour celles tracees par un trait 125 ; utiliser CONTLABEL. 126 ; 127 ; /LANDSCAPE: oblige la feuille ou la fenetre a etre en position 128 ; "allongee" 129 ; 130 ; LCT: entier designant le numero de la palette de couleur que 131 ; l''on veut utiliser pour le plot. 132 ; 133 ; MAXIN: permet de specifier la valeur maximum que l''on veut 134 ; prendre en compte dans le trace des contours a l''aide d''un 135 ; mot cle plutot que par l''argument max. Si l''argument et le 136 ; mot cle sont specifies en meme temps, c''est la valeur 137 ; specifiee par le mot cle qui est retenue. 138 ; 139 ; MININ: permet de specifier la valeur minimum que l''on veut 140 ; prendre en compte dans le trace des contours a l''aide d''un 141 ; mot cle plutot que par l''argument min. Si l''argument et le 142 ; mot cle sont specifies en meme temps, c''est la valeur 143 ; specifiee par le mot cle qui est retenue. 144 ; 145 ; NLEVEL: nombre de contours a dessiner. par defaut =20. actif si 146 ; LABEL=0 ou n'est pas specifie. 147 ; 148 ; /NOCOLORBAR: activer si on ne veut pas de colorbar 149 ; 150 ; /NOCONTOUR: activer si on ne veut pas de contour mais juste 151 ; les couleurs 152 ; 153 ; /NOFILL: activer si on veut juste les contours en noir et 154 ; blanc sur fond blanc 155 ; 156 ; /NOERASE: activer pour faire un dessin a l''ecran sans creer 157 ; une nouvelle fenetre 158 ; 159 ; /NOTRI: pour forcer a ne pas utiliser de triangulation. 160 ; 161 ; OVERPLOT: pour faire un plt par dessus un autre. Rq: 162 ; contrairemnet a l''utilisation de CONTOUR, 163 ; l''utilisation de ce mot clef ne modifie pas la legende ou/et 164 ; la barre de couleur. 165 ; 166 ; PETITDESSIN: vecteur de 3 ou 4 elements, applique pour faire un 167 ; dessin sur une petite portion de feuille ou d''ecran. il delimite 168 ; la zone ds laquelle va etre fait le dessin 169 ; si il a 4 elements: 170 ; il est alors constitute des coordonnees -exprime en cm reperes par 171 ; rapport au coin en bas a gauche de la feuille ou de la fenetre 172 ; (en portrait comme en landscape)- du coin en bas a 173 ; gauche et du coin en haut a droite de la zone de dessin. 174 ; si il a 3 elements: 175 ; Ds ce cas, on divise la fenetre ou l''ecran en PETITDESSIN[0] 176 ; colonnes, en PETITDESSIN[1] lignes le dessin se faisant ds la 177 ; case numero PETITDESSIN[2].La numerotation commencant en haut 178 ; a gauche par le numero 1 et suivant apres dans le sens de 179 ; l''ecriture. 180 ; Par defaut on fait un dessin occupant la plus grande place possible 181 ; tout en concervant le rapport d''aspect (sauf qd REMPLI est active) 182 ; 183 ; /PORTRAIT: oblige la feuille ou la fenetre a etre en position 184 ; "debout" 185 ; 186 ; /POST: faire une sortie postscript. Ne marche que si on fait 187 ; un seul dessin sur la feuille. Si on fait plusieurs dessins, 188 ; utiliser @ps ou plein2dessins 189 ; 190 ; /REMPLI:oblige le dessin a occuper l'espace maximum definit 191 ; par petitdessin 192 ; 193 ; /SIN: activer ce mot cle si l''on veut que l'' axe des x soit 194 ; trace en sinus de la latitude qd on fait une coupe 'yz' 195 ; 196 ; /STRICTFILL: activer ce mot clef pour que le remplissage des 197 ; contours ce fasse precisement entre le min et le max specifie 198 ; en laissant en banc les valeurs inferieurs au min specifie et 199 ; superieurs au max specifie. 200 ; 201 ; STYLE: style de tracer a adopter pour dessiner les isolignes par 202 ; defaut style=0. cf style.pro 203 ; 204 ; /TRANS: fait un postscript (active /post automatiquement) et l'imprime 205 ; -si on le desire- sur un transparant 206 ; 207 ; UNLABSUR: entier n. specifant qu''on ne labelle qu''un 208 ; contour sur n. Par defaut unlabsur=2 209 ; 210 ; /UNSUR2: si on veut tracer un countour sur deux. par defaut trace 211 ; tous les contours 212 ; 213 ; WINDOW: nimero de la fenetre ou l'on veut faire le graphe (permet 214 ; d'ouvrir plusieurs fenetres). par defaut on ouvre 'IDL0' 215 ; 216 ; /WDEPTH: to specify that the field is at W depth instad of T 217 ; depth (automatically activated if vargrid eq 'W') 218 ; 219 ; /XZ: force a faire une coupe xz 220 ; 221 ; /YZ: force a faire une coupe yz 222 ; 223 ; YXASPECT: rapport d'echelle entre y et x (par ex: =1 pour un repere 224 ; presque orthonorme, =2 si l'axe des y est environ deux fois plus dilate 225 ; que celui des x). Par defaut on adapte pour occupe une grande partie de 226 ; la feuille en sortie postScript ou pour cree une fenetre pas trop etiree 28 ; @keyword BOXZOOM 29 ; Vector indicating the geographic zone on which we want to cut the map. 30 ; If BOXZOOM has : 31 ; 1 element : The extraction is made on [lon1, lon2, lat1, lat2, 0.,boxzoom[0]] 32 ; 2 elements: The extraction is made on [lon1, lon2, lat1, lat2, boxzoom[0],boxzoom[1]] 33 ; 4 elements: The extraction is made on [Boxzoom, 0, max([gdept, gdepw])] 34 ; 5 elements: The extraction is made on [Boxzoom[0:3], 0, Boxzoom[4]] 35 ; 6 elements: The extraction is made on Boxzoom 36 ; 37 ; Where lon1, lon2,lat1,lat2 are global variables defined at the last domdef! 38 ; 39 ; @keyword CONTINTERVALLE 40 ; When CONTOUR is activated, it is the value between 2 isolines 41 ; traced by a trait. So it can be different from the one specified by INTERVALLE which, 42 ; in this case, does not control colored isolines in color anymore. If there is noone 43 ; specified min, we choose a contour min which goes well with the specified interval! 44 ; If this keyword is not specified, we trace 20 isolines from the min to the max. 45 ; 46 ; @keyword CONTLABEL 47 ; It is an integer n. When CONTOUR is actvated, if n 48 ; is different of 0, choose the label type corresponding to n cases for 49 ; the traced by a traitisolines. To specify the type of label of the 50 ; colored contour, use LABEL 51 ; 52 ; @keyword CONTMAX 53 ; When CONTOUR is activated, max value we want to consider in the isoline 54 ; traced by a trait's line. By default, we take the max (on ocean points) of the array 55 ; passed in the keyword CONTOUR. 56 ; 57 ; @keyword CONTMIN 58 ; When CONTOUR is activated, min value we want to consider in the isoline 59 ; traced by a trait's line. By default, we take the min (on ocean points) of the array 60 ; passed in the keyword CONTOUR. 61 ; 62 ; @keyword CONTNLEVEL 63 ; When CONTOUR is activated, it is the numbre of contours 64 ; traced by a trait for drawing (active if 65 ; CONTLABEL=0) by default=20. 66 ; 67 ; @keyword CONTOUR 68 ; If we want to trace contours of a different field than the one 69 ; whose we have the colored drawing (by examlpe E-P in color and QSR in contours). 70 ; It must be a field respecting same caracteristics than the argument number one of plt. 71 ; 72 ; @keyword ENDPOINTS 73 ; keyword specifing that we want to make a vertical cut in diagonal. Then coorinated of extremities 74 ; of these one are difined by the 4 elements of the vector ENDPOINTS: [x1,y1,x2,y2] which are 75 ; coordinates. 76 ; 77 ; @keyword INTERVALLE 78 ; Value of an internal between to isoline. If there is none specified min, 79 ; we choose a min contour which goes well with the specified interval!. If this keyword is not 80 ; specified, we trace 20 isoline from the min to the max. Comment: When CONTOUR is activated, 81 ; INTERVALLE only specify the interval between 2 colored isoline. To specify the interval 82 ; between 2 isolines traced by a trait, use CONTINTERVALLE. 83 ; 84 ; @keyword INV 85 ; Invert the color vector used to color the graph 86 ; (without use the black, the white and the used palette) 87 ; 88 ; @keyword ZRATIO 89 ; When the drawing has a zoomed part, it is the size rapport between the zoomed part, 90 ; hz (zoom height), and the whole drawing, ht (total height). By default =2./3 91 ; 92 ; @keyword LABEL 93 ; It is an integer n. If n different of 0, it choose the label's type 94 ; corresponding to cases n. cf label.pro 95 ; Comment: When CONTOUR is activated, it only specify the label's type for colored isolines. 96 ; For tese one traced by a trait, use CONTLABEL. 97 ; 98 ; @keyword MAXIN 99 ; Allows to specify the max value we want to consider in the drawing of contour 100 ; helping by the keyword instead of the argument max. If the argument and the keyword are 101 ; specified in the same time, it is the value specified by the keyword which is retained. 102 ; 103 ; @keyword MININ 104 ; Allows to specify the min value we want to consider in the drawing of contour 105 ; helping by the keyword instead of the argument min. If the argument and the keyword are 106 ; specified in the same time, it is the value specified by the keyword which is retained. 107 ; 108 ; @keyword NLEVEL 109 ; Number of contour to draw by default =20. active if 110 ; LABEL=0 or is not specified. 227 111 ; 228 ; /WDEPTH: to specify that the field is at W depth instad of T 229 ; depth (automatically activated if vargrid eq 'W') 230 ; 231 ; ZOOM: profondeur jusqu'a laquelle on fait un zoom. par defaut 200m ou 232 ; la profondeur maximale si elle est inf a 200 233 ; 234 ; /ZEROMIDDLE: fo force the middle of the colorbar to be equal 235 ; to 0 (force max=max(abs([min,max])) and min=-max) 236 ; 237 ; OUTPUTS: 238 ; 239 ; COMMON BLOCKS: 240 ; common.pro 241 ; 242 ; SIDE EFFECTS: 243 ; 244 ; RESTRICTIONS: 245 ; 246 ; EXAMPLE: 247 ; 248 ; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr) 249 ; 7/1999 250 ; Sebastien Masson 08/02/2000 checkfield and 251 ; notri keyword. 112 ; @keyword NOTRI 113 ; To force not to use the triangulation. Beware, in this case, the 114 ; drawing only works if the grid is undeformed (It means that each point of a longitude 115 ; give one latitude and each point of a latitude give one longitude) exept if we use 116 ; the keyword CELL_FILL=2. 117 ; Comment: if the field contain points !values.f_nan, then we even do a triangulation. 118 ; 119 ; @keyword OVERPLOT 120 ; To make a plot over an other one. 121 ; Comment: Contrarily to the use of CONTOUR or VECTEUR, the use of this keyword 122 ; does not the caption and/or the color bar. 123 ; 124 ; @keyword SIN 125 ; Activate this keyword if we want the x axis to be traced in sinus of the 126 ; latitude when we make a drawing f(y) 127 ; 128 ; @keyword STRICTFILL 129 ; Activate this keyword to that the filling of contours be 130 ; precisely done between the min and the max specified letting values inferior at the 131 ; specified min and values superior at the specified max in white. 132 ; 133 ; @keyword STYLE 134 ; Contour's style to adopt to draw isolines(by default, style=0. see style.pro) 135 ; 136 ; @keyword WDEPTH 137 ; To specify that the field is at W depth instead of T 138 ; depth (automatically activated if vargrid eq 'W') 139 ; 140 ; @keyword XZ 141 ; Force to make a cut following xz 142 ; 143 ; @keyword YZ 144 ; Force to make a cut following yz 145 ; 146 ; @keyword ZOOM 147 ; Depth where i can make our maximum zoom. By default 200m or max depth if it is inferior at 200m 148 ; 149 ; @uses 150 ; common.pro 151 ; 152 ; @history 153 ; Sebastien Masson (smasson@lodyc.jussieu.fr) 154 ; 7/1999 155 ; Sebastien Masson 08/02/2000 checkfield and 156 ; notri keyword. 157 ; 158 ; @version 159 ; $Id$ 160 ; 161 ; @todo seb L.20 à 26, L.215 à 221 162 ; 252 163 ;- 253 164 ;------------------------------------------------------------ … … 277 188 ENDIF 278 189 ;-------------------------------------------------------------- 279 tempsun = systime(1) ; pour key_performance280 ;------------------------------------------------------------ 281 ;-------------------------------------------------------------- 282 ; 1 ere partie: initialisation et petits calculs...283 ;-------------------------------------------------------------- 284 ; on ne reinitialise pas qd on rapelle pltz en boucle pour utiliser contour190 tempsun = systime(1) ; For key_performance 191 ;------------------------------------------------------------ 192 ;-------------------------------------------------------------- 193 ; 1st part: initialization small calculations... 194 ;-------------------------------------------------------------- 195 ; Comment: we do not reinitializate when we call back plt in loop to use contour. 285 196 if n_elements(contour) ne 4 AND NOT keyword_set(overplot) then reinitplt 286 197 ; 287 198 if n_elements(contour) ne 4 THEN saveboxparam, 'boxparam4pltz.dat' 288 199 ;-------------------------------------------------------------- 289 ; lecture du champ200 ; Reading of the field. 290 201 ;-------------------------------------------------------------- 291 202 if n_elements(giventype) NE 0 then type = giventype … … 352 263 z2d = reverse(z2d, 2) 353 264 ;----------------------------------------------------------------------------- 354 ; determination du mi:min et du ma:max de tab1 ainsi que de max: max et355 ; min: min pour le dessin.265 ; Determination of the mi:min and of the ma:max of z2d in the same way 266 ; as max: max and min: min for the drawing. 356 267 ;----------------------------------------------------------------------------- 357 268 nan = total(finite(z2d, /nan)) < 1 358 ; faudra-t-il faire un autoscale ???269 ; Do we need to do an autoscale ??? 359 270 autoscale = testvar(var = min) EQ testvar(var = max) AND NOT keyword_set(intervalle) 360 271 determineminmax, z2d, mask, mi, ma, MININ = min, MAXIN = max, nan = nan, INTERVALLE = intervalle, _extra = ex 361 272 if z2d[0] EQ -1 THEN GOTO, sortie 362 ; on fait un autoscale si besoin273 ; We do an autoscale if needed. 363 274 if autoscale then autoscale, min, max, intervalle 364 275 ;-------------------------------------------------------------- 365 276 ;-------------------------------------------------------------- 366 ; 2 eme partie: dessin277 ; 2nd part: drawing 367 278 ;-------------------------------------------------------------- 368 279 ;-------------------------------------------------------------- … … 372 283 ;------------------------------------------------------------ 373 284 ;-------------------------------------------------------------- 374 ; choi x deslabels285 ; choice of labels 375 286 ;----------------------------------------------------------- 376 287 if keyword_set(intervalle) AND NOT keyword_set(label) then label = 1 … … 379 290 , INTERVALLE = intervalle, strictfill = strictfill 380 291 ;-------------------------------------------------------------- 381 ; choi x destyle292 ; choice of style 382 293 ;----------------------------------------------------------- 383 294 if not keyword_set(style) then style = 0 … … 385 296 if keyword_set(inv) then colnumb = reverse(colnumb) 386 297 ;----------------------------------------------------------- 387 ; definition desaxes298 ; definition of axes 388 299 ;---------------------------------------------------------- 389 300 if NOT keyword_set(overplot) THEN axe, type, SIN = sin, _EXTRA = ex 390 301 !y.range = [-1, 0] 391 302 ;-------------------------------------------------------------- 392 ; extrapolation des donnees sur les terres et seuillage303 ; extrapolation of datas on lands and specifying of the min/max value 393 304 ;-------------------------------------------------------------- 394 305 ; define masknan … … 403 314 , mask = mask*masknan, /basique $ 404 315 , /fillxdir, _extra = ex) 405 ; if some lines contains no data(the bottom line for ex) it must be316 ; if some lines contains no field (the bottom line for ex) it must be 406 317 ; also filled with 8 neighbourg method 407 318 IF (where(total(mask*masknan, 1) EQ 0))[0] NE -1 THEN $ … … 459 370 , REALSECTION = realsection, USETRI = usetri, _extra = ex 460 371 ;------------------------------------------------------------ 461 ; r appelle de pltz en boucle qd contour est active462 ;------------------------------------------------------------ 463 if n_elements(contour) eq 4 then BEGIN ; c''est la 2eme fois que je passe dspltt464 contour = {mietma:[mi, ma], unit:varunit, inter:intervalle} ; je renvoie le min, le max et l''unite372 ; recall of pltz in loop when contour is activated 373 ;------------------------------------------------------------ 374 if n_elements(contour) eq 4 then BEGIN ; It is the second time I pass in pltt 375 contour = {mietma:[mi, ma], unit:varunit, inter:intervalle} ; I send back the min, the max and the unity 465 376 return 466 377 endif … … 479 390 ;------------------------------------------------------------ 480 391 ;------------------------------------------------------------ 481 ; 3 eme partie: dessin du cadre, legendes, colorbar...392 ; 3rd part: drawing of the frame, caption, colorbar... 482 393 ;------------------------------------------------------------ 483 394 if keyword_set(overplot) then BEGIN 484 !y.range = [zoom, profmin] ; on repasse en coordonees physiques!395 !y.range = [zoom, profmin] ; We get back on physic coordinates 485 396 plot, [0], [0], /nodata, /noerase, title = '', subtitle = '', xstyle = 5, ystyle = 5 486 397 GOTO, fini 487 398 endif 488 399 ;------------------------------------------------------------ 489 ; legendes + affichage de celles-ci400 ; Caption + dysplay of them 490 401 ;------------------------------------------------------------ 491 402 legende, mi, ma, type, CONTOUR = pourlegende, INTERVALLE = intervalle, DIREC = direc, endpoints = endpoints, _EXTRA = ex 492 403 if type eq 'yz' then xaxe = 'lataxe' else xaxe = 'lonaxe' 493 404 if keyword_set(sin) OR NOT key_onearth then xaxe = '' 494 ; cadre applique par defaut405 ; Frame applied by default 495 406 plot, [xxaxis[0], xxaxis[n_elements(xxaxis)-1]], [-zratio, -zratio], /noerase $ 496 407 , xstyle = 1+4*(keyword_set(endpoints) AND ((type EQ 'xz' AND lat1 NE lat2) OR (type EQ 'yz' AND lon1 NE lon2))) $ 497 408 , xtickformat = xaxe, _extra = ex 498 ; ajout d'un axe ds le cas ou l'on utilise endpoints409 ; Add of an axis in the case of we use endpoints 499 410 if keyword_set(endpoints) then addaxe, endpoints, type, posfenetre, _EXTRA = ex 500 411 ;------------------------------------------------------------ 501 ; axe y en 1 ou 2 parties412 ; Y axis in 1 or 2 part 502 413 ;------------------------------------------------------------ 503 414 if n_elements(ex) NE 0 then BEGIN 504 ; pour ne plus mettre de titre415 ; To do not put title anymore 505 416 if (where(tag_names(ex) EQ 'TITLE'))[0] NE -1 then ex.TITLE = ' ' 506 ; pour ne plus mettre de sous titre417 ; To do not put subtitle anymore 507 418 if (where(tag_names(ex) EQ 'SUBTITLE'))[0] NE -1 then ex.SUBTITLE = ' ' 508 ; pour n''avoir q''unytitle419 ; To have just one ytitle 509 420 if (where(tag_names(ex) EQ 'YTITLE'))[0] NE -1 then BEGIN 510 421 ytitle = ex.YTITLE … … 518 429 , position = posfenetre+[0, 0, 0, -hzoom], _extra = ex, title = '', subtitle = '', ytitle = '' 519 430 ; 520 !y.range = [zoom, profmin] ; on repasse en coordonees physiques!431 !y.range = [zoom, profmin] ; We get back in physic coordinates! 521 432 plot, [0], [0], /nodata, /noerase, ystyle = 1, _extra = ex $ 522 433 , title = '', subtitle = '', ytitle = '', position = posfenetre+[0, htotal-hzoom, 0, 0] 523 434 ;------------------------------------------------------------ 524 ; pour ecrire le ytitle...435 ; to write the ytitle... 525 436 ;------------------------------------------------------------ 526 437 if !d.name EQ 'PS' then $ … … 539 450 540 451 ;------------------------------------------------------------ 541 ; barre de couleur452 ; colorbar 542 453 ;------------------------------------------------------------ 543 454 colnumb = colnumb[0:ncontour-1-keyword_set(strictfill)] … … 546 457 ;------------------------------------------------------------ 547 458 ;------------------------------------------------------------ 548 ; 4 eme partie: impression eventuelle459 ; 4th part: possible print 549 460 ;------------------------------------------------------------ 550 461 ;------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.