1 | ;----------------------------------------------- |
---|
2 | ; Define field plot attributes min/max |
---|
3 | ; EG 4/10/99 |
---|
4 | ;----------------------------------------------- |
---|
5 | FUNCTION fld_pltext, var_name, plttyp, dimplot, hotyp |
---|
6 | |
---|
7 | @common |
---|
8 | @com_eg |
---|
9 | |
---|
10 | ; arguments var_name = variable name, |
---|
11 | ; plttyp = plot type |
---|
12 | ; dimplot = dimension of plot (1,2) |
---|
13 | ; outputs structure |
---|
14 | ; define variable plot attributes (min/max) |
---|
15 | |
---|
16 | fldextr = {name:'', assos:'', min: 0.0, max: 0.0, homin:0.0, homax:0.0, min1d:0.0, max1d:0.0, dmax:0.0} |
---|
17 | |
---|
18 | ; name of defaults files |
---|
19 | |
---|
20 | file_mmx = 'fld_glo_mmx.def' |
---|
21 | |
---|
22 | ; min/max |
---|
23 | print,' ' |
---|
24 | print,' Reading minmax of ',var_name,' from : ', file_mmx |
---|
25 | |
---|
26 | spawn, 'grep -i "\ '+var_name+' " '+hom_def+file_mmx, line |
---|
27 | line = strcompress(strtrim(line[0], 2)) |
---|
28 | length = strlen(line) |
---|
29 | |
---|
30 | IF length EQ 0 THEN BEGIN |
---|
31 | print, ' *** no min & max found for field ', var_name, $ |
---|
32 | ' in file fld_glo_mmx.def' |
---|
33 | fldextr.min = min(field.data(where(field.data NE valmask))) |
---|
34 | fldextr.max = max(field.data(where(field.data NE valmask))) |
---|
35 | fldextr.homin = fldextr.min |
---|
36 | fldextr.homax = fldextr.max |
---|
37 | fldextr.min1d = fldextr.min |
---|
38 | fldextr.max1d = fldextr.max |
---|
39 | fldextr.dmax = max([abs(fldextr.min), abs(fldextr.max)]) |
---|
40 | fldextr.assos = var_name |
---|
41 | ENDIF ELSE BEGIN |
---|
42 | argvar = str_sep(line, ' ') |
---|
43 | IF strmid(argvar[1], 0, 1) EQ '@' THEN BEGIN |
---|
44 | ; get info from other variable |
---|
45 | friend_name = strmid(argvar[1], 1, strlen(argvar[1])-1) |
---|
46 | print, ' -> linked to ', friend_name |
---|
47 | fldextr = fld_pltext(friend_name, plttyp, dimplot, hotyp) |
---|
48 | fldextr.assos = friend_name |
---|
49 | ENDIF ELSE BEGIN |
---|
50 | fldextr.min = float(argvar[1]) |
---|
51 | fldextr.max = float(argvar[2]) |
---|
52 | fldextr.homin = !VALUES.F_NAN |
---|
53 | fldextr.homax = !VALUES.F_NAN |
---|
54 | fldextr.min1d = !VALUES.F_NAN |
---|
55 | fldextr.max1d = !VALUES.F_NAN |
---|
56 | fldextr.dmax = !VALUES.F_NAN |
---|
57 | IF n_elements(argvar) GE 5 THEN BEGIN |
---|
58 | fldextr.homin = float(argvar[3]) |
---|
59 | fldextr.homax = float(argvar[4]) |
---|
60 | ENDIF |
---|
61 | IF n_elements(argvar) GE 7 THEN BEGIN |
---|
62 | fldextr.min1d = float(argvar[5]) |
---|
63 | fldextr.max1d = float(argvar[6]) |
---|
64 | ENDIF |
---|
65 | IF free_1d_minmax EQ 'yes' THEN BEGIN |
---|
66 | IF hotyp EQ 't' THEN BEGIN |
---|
67 | fldextr.homin = !VALUES.F_NAN |
---|
68 | fldextr.homax = !VALUES.F_NAN |
---|
69 | ENDIF |
---|
70 | fldextr.min1d = !VALUES.F_NAN |
---|
71 | fldextr.max1d = !VALUES.F_NAN |
---|
72 | ENDIF |
---|
73 | IF n_elements(argvar) GE 8 THEN BEGIN |
---|
74 | fldextr.dmax = float(argvar[7]) |
---|
75 | ENDIF |
---|
76 | tempvar = SIZE(TEMPORARY(argvar)) |
---|
77 | fldextr.assos = var_name |
---|
78 | ENDELSE |
---|
79 | ENDELSE |
---|
80 | |
---|
81 | fldextr.name = var_name |
---|
82 | |
---|
83 | return, fldextr |
---|
84 | END |
---|