source: trunk/ToBeReviewed/LECTURE/GRIB/read_grib_gds.pro @ 67

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

miscellaneous modifications according to cerbere.lodyc.jussieu.fr: /usr/home/smasson/SAXO_RD/

  • Property svn:executable set to *
File size: 2.1 KB
Line 
1FUNCTION read_grib_gds, num, recstart
2;
3  offset = recstart+8
4  a = assoc(num, bytarr(1, /nozero), offset-1)
5  sizepds = bit2int([binary(a[1]), binary(a[2]), binary(a[3])])
6;
7  offset = recstart+8+sizepds
8  a = assoc(num, bytarr(1, /nozero), offset-1)
9;
10  sizegds = bit2int([binary(a[1]), binary(a[2]), binary(a[3])])
11;
12  nv = (a[4])[0]
13  pv = (a[5])[0]
14;
15  gridtype = (a[6])[0]
16;
17  CASE 1 OF
18; Latitude/Longitude Grid
19; Gaussian Latitude/Longitude Grid
20    gridtype EQ 0 OR gridtype EQ 4:BEGIN
21      ni = bit2int([binary(a[7]), binary(a[8])])
22      nj = bit2int([binary(a[9]), binary(a[10])])
23;
24      la1 = bit2int([binary(a[11]), binary(a[12]), binary(a[13])], /checkneg)/1000.
25      lo1 = bit2int([binary(a[14]), binary(a[15]), binary(a[16])], /checkneg)/1000.
26;
27      resflags = binary(a[17])
28;
29      la2 = bit2int([binary(a[18]), binary(a[19]), binary(a[20])], /checkneg)/1000.
30      lo2 = bit2int([binary(a[21]), binary(a[22]), binary(a[23])], /checkneg)/1000.
31;
32      di = bit2int([binary(a[24]), binary(a[25])])/1000.
33      IF di EQ 65.5350 THEN di = -1
34;
35      IF gridtype EQ 0 THEN BEGIN
36        dj = bit2int([binary(a[26]), binary(a[27])])/1000.
37        IF dj EQ 65.5350 THEN dj = -1
38      ENDIF ELSE BEGIN
39        n = bit2int([binary(a[26]), binary(a[27])])
40      ENDELSE
41;
42      scanflags = binary(a[28])
43;
44      res = {size:sizegds, gridtype:gridtype, ni:ni, nj:nj, la1:la1, la2:la2, lo1:lo1, lo2:lo2, di:di}
45      IF gridtype EQ 0 THEN res = create_struct(res, 'dj', dj) $
46      ELSE res = create_struct(res, 'n', n)
47      RETURN, res
48    END
49; Mercator Projection Grid
50    gridtype EQ 1:
51; Gnomonic Projection Grid
52    gridtype EQ 2:
53; Lambert Conformal, secant or tangent, conical or bipolar (normal or
54; oblique) Projection Grid 
55    gridtype EQ 3:
56; Polar Stereographic Projection Grid
57    gridtype EQ 5:
58; Oblique Lambert conformal, secant or tangent, conical or bipolar,
59; projection
60    gridtype EQ 13:
61; Spherical Harmonic Coefficients
62    gridtype EQ 50:
63; Space view perspective or orthographic grid
64    gridtype EQ 90:
65; reserved - see Manual on Codes
66    ELSE:
67  ENDCASE
68;
69  RETURN, -1
70END
Note: See TracBrowser for help on using the repository browser.