source: trunk/ToBeReviewed/PLOTS/DIVERS/determineminmax.pro @ 37

Last change on this file since 37 was 37, checked in by pinsard, 18 years ago

upgrade of PLOTS/DIVERS according to cerbere.lodyc.jussieu.fr: /usr/home/smasson/SAXO_RD/ : files

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.2 KB
Line 
1;------------------------------------------------------------
2;------------------------------------------------------------
3;------------------------------------------------------------
4;+
5; NAME:determineminmax
6;
7; PURPOSE:determiner le min et le max d''un tableau masque
8;
9; CATEGORY: delestage de l''ecriture de plt, pltz, pltt
10;
11; CALLING SEQUENCE:determineminmax, tab, mask, vraimin, vraimax
12;
13; INPUTS:
14;
15;       tab: le tableau dont il faut determiner le min et le max
16;       mask: le tableau de masque
17;
18; KEYWORD PARAMETERS:
19;
20;       minin et maxin deux scalaire qui s''il ne sont pas definits
21;       prennent la valeur de vraimin et vraimax
22;
23;       /ZEROMIDDLE: fo force the middle of the colorbar to be equal
24;       to 0 (force max=max(abs([min,max])) and min=-max)
25;
26; OUTPUTS:
27;
28;       vraimin et vraimax: le min et le max du tableau
29;
30; COMMON BLOCKS:
31;       common.pro
32;
33; SIDE EFFECTS:degarde si le champ est constant sur la mer
34;
35; RESTRICTIONS:
36;
37; EXAMPLE:
38;
39; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
40;                       11/12/98
41;-
42;------------------------------------------------------------
43;------------------------------------------------------------
44;------------------------------------------------------------
45PRO determineminmax, tab, mask, vraimin, vraimax, glam, gphi, MAXIN = maxin, MININ = minin, INTERVALLE = intervalle, usetri = usetri, ZEROMIDDLE = zeromiddle, _extra = ex
46@common
47;-----------------------------------------------------------------------------
48;-----------------------------------------------------------------------------
49; type de grille verticale:
50  if vargrid EQ 'W' then nz = nzw ELSE nz = nzt
51; liste des points mer
52  if (size(mask))[0] EQ 3 then mer = mask[*, *, 0] $
53  ELSE mer = mask
54; si key_irregular eq 1, on masque aussi les points qui ne rentrent
55; pas ds le domaine geographique definit par lon1,lon2,lat1,lat2
56  if keyword_set(key_irregular) AND n_elements(glam) NE 0 AND n_elements(gphi) NE 0 then begin
57    dom =   where(glam LT lon1 OR glam GT lon2 OR gphi LT lat1 OR gphi GT lat2)
58    if dom[0] NE -1 then mer[dom] = 0
59  endif
60;
61  mer = where(mer eq 1)
62;
63  if mer[0] eq -1 then begin
64    ras = report('Il n''y a que de la terre sur le dessin!')
65    vraimax = 0
66    vraimin = 0
67    maxin = vraimax+1
68    minin = vraimin-1
69    usetri = 0
70    return
71  endif
72; ma et mi : max et min sur les points mer
73  vraimax = max(tab(mer), min = vraimin, _extra = ex)
74  sameminmax = testvar(var = minin) EQ testvar(var = maxin)
75  if n_elements(maxin) EQ 0 OR sameminmax then maxin = vraimax
76  if n_elements(minin) EQ 0 OR sameminmax then BEGIN
77    if keyword_set(intervalle) then minin = floor(vraimin/intervalle)*intervalle $
78    ELSE minin = vraimin
79  endif
80  if vraimin eq vraimax then BEGIN
81    IF size(vraimin, /type) EQ 1 THEN vraimin = fix(vraimin)
82    question = ['Warning: constant filed, same value everywhere : ' + strtrim(vraimin, 2) +'!', 'Shall we make the plot?']
83    answer = report(question, /default_no, /question)
84    if answer then begin
85      maxin = vraimax+1
86      minin = vraimin-1
87    endif ELSE tab = -1
88  ENDIF
89  IF keyword_set(zeromiddle) THEN BEGIN
90      maxin = max(abs([minin, maxin]))
91      minin = -maxin
92  ENDIF
93
94
95  return
96end
Note: See TracBrowser for help on using the repository browser.