bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
grid_unlim.cc
1
2#include <HE5_HdfEosDef.h>
3
4#define BUFSIZE 256
5
6int 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/*
153References
154 [1] hdfeos5/testdrivers/grid/TestGrid.c
155*/
156
157
158
159
160
161
162
163
164
165
166