2
----------------------------------------------------------------------------
3
| Copyright (C) 2002 Emergent IT Inc. and Raytheon Systems Company |
4
----------------------------------------------------------------------------
8
#include <HE5_HdfEosDef.h>
11
/* In this program we (1) open the "ZA.he5" file, (2) attach to the */
12
/* "ZA1" za, and (3) write data to the "Spectra" fields. Also, set up */
13
/* the global, group, and local attributes */
14
/* ------------------------------------------------------------------ */
22
int attr1[4] = {1, 2, 3, 4}; /* global attribute */
23
int attr2[4] = {10, 20, 30, 40}; /* group attribute */
24
int attr3[4] = {100, 200, 300, 400}; /* local attribute */
29
char attr4[7]; /* Global 'char' attribute */
31
long attr5[4] = {1111111L,2222222L,3333333L,4444444L};/* Global 'long' attribute */
33
double attr6[4] = {1.111111,2.222222,3.333333,4.444444};/* Global 'double' attribute */
39
double plane[15][40][20];
41
const char *charname[10] = {
42
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
44
"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
45
"DDDDDDDDDDDDDDDDDDDD",
55
/* Populate spectra data array. Value = 100*(track index)+(band index) */
56
/* ------------------------------------------------------------------- */
57
for (i = 0; i < 15; i++)
59
for (j = 0; j < 40; j++)
60
for (k = 0; k < 20; k++)
61
plane[i][j][k] = (double)(j*100 + i);
65
/* Open the HDF za file, "ZA.he5" */
66
/* ----------------------------- */
67
zafid = HE5_ZAopen("ZA.he5", H5F_ACC_RDWR);
70
/* Attach the "ZA1" za */
71
/* ------------------- */
72
ZAid = HE5_ZAattach(zafid, "ZA1");
75
/* Write Spectra Field */
76
/* ------------------- */
77
start[0] = 0; count[0] = 15;
78
start[1] = 0; count[1] = 40;
79
start[2] = 0; count[2] = 20;
81
status = HE5_ZAwrite(ZAid, "Spectra", start, NULL, count, plane);
82
printf("status returned by HE5_ZAwrite(\"Spectra\"): %d\n", status);
86
status = HE5_ZAwrite(ZAid, "Test_string", start, NULL, count, charname);
87
printf("status returned by HE5_ZAwrite(\"Test_string\"): %d\n", status);
89
/* Write Global 'int' Attribute */
90
/* ---------------------------- */
92
status = HE5_ZAwriteattr(ZAid, "GlobalAttribute", H5T_NATIVE_INT, count, attr1);
93
printf("status returned by HE5_ZAwriteattr(\"GlobalAttribute\"): %d\n", status);
95
/* Write Global 'char' Attribute */
96
/* ----------------------------- */
97
strcpy(attr4,"ABCDEF");
99
status = HE5_ZAwriteattr(ZAid, "GLOBAL_CHAR_ATTR", H5T_NATIVE_CHAR, count, attr4);
100
printf("status returned by HE5_ZAwriteattr(\"GLOBAL_CHAR_ATTR\"): %d\n", status);
102
/* Write Global 'long' Attribute */
103
/* ----------------------------- */
105
status = HE5_ZAwriteattr(ZAid, "GLOBAL_LONG_ATTR", H5T_NATIVE_LONG, count, attr5);
106
printf("status returned by HE5_ZAwriteattr(\"GLOBAL_LONG_ATTR\"): %d\n", status);
108
/* Write Global 'double' Attribute */
109
/* ------------------------------- */
111
status = HE5_ZAwriteattr(ZAid, "GLOBAL_DOUBLE_ATTR", H5T_NATIVE_DOUBLE, count, attr6);
112
printf("status returned by HE5_ZAwriteattr(\"GLOBAL_DOUBLE_ATTR\"): %d\n", status);
114
/* Write Group Attribute */
115
/* --------------------- */
116
status = HE5_ZAwritegrpattr(ZAid, "GroupAttribute", H5T_NATIVE_INT, count, attr2);
117
printf("status returned by HE5_ZAwritegrpattr(\"GroupAttribute\"): %d\n", status);
119
/* Write Local Attribute */
120
/* --------------------- */
121
status = HE5_ZAwritelocattr(ZAid, "Density", "LocalAttribute", H5T_NATIVE_INT, count, attr3);
122
printf("status returned by HE5_ZAwritelocattr(\"LocalAttribute\"):%d\n", status);
127
status = HE5_ZAdetach(ZAid);
128
status = HE5_ZAclose(zafid);