bes  Updated for version 3.20.6
grid_unlim.cc
1 
2 #include <HE5_HdfEosDef.h>
3 
4 #define BUFSIZE 256
5 
6 int main()
7 {
8  FILE *fp;
9 
10  herr_t status = FAIL;
11 
12  hid_t gdfidc_simple = FAIL;
13  hid_t GDid_UTM = FAIL;
14 
15  int i, j;
16  int ZoneCode;
17  int SphereCode;
18  int tilerank, tilecode;
19  int compcode = 4;
20  int compparm[5] = { 0, 0, 0, 0, 0};
21 
22  long index = 0;
23  long xdim = 0;
24  long ydim = 0;
25 
26  float veg[200][120];
27 
28  double uplft[2] = {0, 0};
29  double lowrgt[2] = {0, 0};
30  double *ProjParm;
31 
32  hssize_t start[2] = { 0, 0 };
33 
34  hsize_t ndims = 0;
35  hsize_t edge[2] = {1, 1 };
36  hsize_t dims[8] = {0, 0, 0, 0, 0, 0, 0, 0 };
37  hsize_t tiledims[8];
38 
39  size_t size = 0;
40 
41  /* Fill veg array */
42  for (i = 0; i < 200; i++)
43  for (j = 0; j < 120; j++)
44  veg[i][j] = (float)(10+i);
45 
46 
47  gdfidc_simple = HE5_GDopen("SimpleGrid.h5", H5F_ACC_TRUNC);
48 
49  xdim = 120;
50  ydim = 200;
51 
52  uplft[0] = -512740.28306;
53  uplft[1] = 2733747.62890;
54 
55  lowrgt[0] = -12584.57301;
56  lowrgt[1] = 1946984.64021;
57 
58  GDid_UTM = HE5_GDcreate(gdfidc_simple, "UTM", xdim, ydim, uplft, lowrgt);
59  if (GDid_UTM == FAIL)
60  {
61  printf("HE5_GDcreate fails. \n");
62  return -1;
63  }
64 
65  ZoneCode = -13;
66  SphereCode = 0;
67 
68  for (i = 0; i < 16; i++)
69  {
70  ProjParm[i] = 0.0;
71  }
72 
73  status = HE5_GDdefproj(GDid_UTM, HE5_GCTP_UTM, ZoneCode, SphereCode, ProjParm);
74 
75  status = HE5_GDdefpixreg( GDid_UTM, HE5_HDFE_CORNER);
76 
77  status = HE5_GDdeforigin(GDid_UTM, HE5_HDFE_GD_UL );
78 
79  status = HE5_GDdefdim(GDid_UTM, "Unlim", H5S_UNLIMITED);
80 
81  HE5_GDdetach(GDid_UTM);
82  status = HE5_GDclose(gdfidc_simple);
83  gdfidc_simple = HE5_GDopen("SimpleGrid.h5", H5F_ACC_RDWR);
84  GDid_UTM=HE5_GDattach(gdfidc_simple, "UTM");
85 
86  tilerank = 2;
87  tiledims[0] = 10;
88  tiledims[1] = 10;
89  compparm[0] = 5;
90 
91  status = HE5_GDdeftile(GDid_UTM, HE5_HDFE_TILE, tilerank, tiledims);
92 
93  status = HE5_GDdefcomp(GDid_UTM, compcode, compparm);
94 
95  status = HE5_GDdeffield(GDid_UTM,"Vegetation","YDim,XDim","Unlim,Unlim",H5T_NATIVE_FLOAT,0);
96 
97  HE5_GDdetach(GDid_UTM);
98  status = HE5_GDclose(gdfidc_simple);
99  gdfidc_simple = HE5_GDopen("SimpleGrid.h5", H5F_ACC_RDWR);
100  GDid_UTM=HE5_GDattach(gdfidc_simple, "UTM");
101 
102  edge[0] = 200;
103  edge[1] = 120;
104 
105  status = HE5_GDwritefield(GDid_UTM, "Vegetation", start, NULL, edge, veg);
106  if (status == FAIL)
107  {
108  printf("HE5_GDwritefield fails \n");
109  return -1;
110  }
111 
112  status = HE5_GDdetach(GDid_UTM);
113 
114 
115  GDid_UTM = HE5_GDattach(gdfidc_simple,"UTM");
116  if (GDid_UTM == FAIL)
117  {
118  printf("HE5_GDattach fails. \n");
119  return -1;
120  }
121 
122  start[0] = 100;
123  start[1] = 200;
124 
125  edge[0] = 200;
126  edge[1] = 120;
127 
128 
129 /*
130  start[0] = 100;
131  start[1] = 119;
132 
133  edge[0] = 200;
134  edge[1] = 120;
135 */
136 
137  status = HE5_GDwritefield(GDid_UTM, "Vegetation", start, NULL, edge, veg);
138  if (status == FAIL)
139  {
140  printf("HE5_GDwritefield fails \n");
141  return -1;
142  }
143 
144  status = HE5_GDdetach(GDid_UTM);
145 
146  status = HE5_GDclose(gdfidc_simple);
147 
148  return status;
149 
150 }
151 
152 /*
153 References
154  [1] hdfeos5/testdrivers/grid/TestGrid.c
155 */
156 
157 
158 
159 
160 
161 
162 
163 
164 
165 
166