~ubuntu-branches/ubuntu/lucid/hdf-eos5/lucid

« back to all changes in this revision

Viewing changes to samples/he5_za_writedata.c

  • Committer: Bazaar Package Importer
  • Author(s): Alastair McKinstry
  • Date: 2009-08-17 23:07:29 UTC
  • Revision ID: james.westby@ubuntu.com-20090817230729-gzbwp1ny01hv2nlk
Tags: upstream-5.1.12.dfsg.1
ImportĀ upstreamĀ versionĀ 5.1.12.dfsg.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 ----------------------------------------------------------------------------
 
3
 |    Copyright (C) 2002   Emergent IT Inc. and Raytheon Systems Company    |
 
4
 ----------------------------------------------------------------------------
 
5
 */
 
6
 
 
7
 
 
8
#include  <HE5_HdfEosDef.h>
 
9
 
 
10
 
 
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
/*  ------------------------------------------------------------------ */
 
15
 
 
16
 
 
17
int main()
 
18
{
 
19
  herr_t          status = FAIL;
 
20
 
 
21
  int             i, j, k;
 
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  */
 
25
 
 
26
  hid_t           zafid = FAIL;
 
27
  hid_t           ZAid  = FAIL;
 
28
 
 
29
  char            attr4[7]; /* Global 'char' attribute */
 
30
 
 
31
  long            attr5[4] = {1111111L,2222222L,3333333L,4444444L};/* Global 'long' attribute   */ 
 
32
 
 
33
  double          attr6[4] = {1.111111,2.222222,3.333333,4.444444};/* Global 'double' attribute */
 
34
 
 
35
  hssize_t        start[3];
 
36
    
 
37
  hsize_t         count[3];
 
38
 
 
39
  double          plane[15][40][20];
 
40
 
 
41
  const char *charname[10] = {
 
42
        "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
 
43
        "BBBBBBBBBBBBBBBB",
 
44
        "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
 
45
        "DDDDDDDDDDDDDDDDDDDD",
 
46
        "EEEEEEEE",
 
47
        "FFFFFFFFFFFFF",
 
48
        "GGGGGGGGGGGGG",
 
49
        "HHHHHHHHHH",
 
50
        "IIIIIII",
 
51
        "JJJJJJJJJJJJJ"
 
52
      };
 
53
 
 
54
 
 
55
  /* Populate spectra data array. Value = 100*(track index)+(band index) */
 
56
  /* ------------------------------------------------------------------- */
 
57
  for (i = 0; i < 15; i++)
 
58
  {
 
59
          for (j = 0; j < 40; j++)
 
60
                for (k = 0; k < 20; k++)
 
61
                  plane[i][j][k] = (double)(j*100 + i);
 
62
  }
 
63
        
 
64
        
 
65
  /* Open the HDF za file, "ZA.he5" */
 
66
  /* ----------------------------- */
 
67
  zafid = HE5_ZAopen("ZA.he5", H5F_ACC_RDWR);
 
68
  if (zafid != FAIL)
 
69
        {
 
70
          /* Attach the "ZA1" za */
 
71
          /* ------------------- */
 
72
          ZAid = HE5_ZAattach(zafid, "ZA1");
 
73
          if (ZAid != FAIL)
 
74
                {
 
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;
 
80
                        
 
81
                  status = HE5_ZAwrite(ZAid, "Spectra", start, NULL, count, plane);
 
82
                  printf("status returned by HE5_ZAwrite(\"Spectra\"):           %d\n", status);
 
83
 
 
84
            start[0] = 0;
 
85
            count[0] = 10;
 
86
                  status = HE5_ZAwrite(ZAid, "Test_string", start, NULL, count, charname);
 
87
                  printf("status returned by HE5_ZAwrite(\"Test_string\"):              %d\n", status);
 
88
            
 
89
                  /* Write Global 'int' Attribute */
 
90
                  /* ---------------------------- */
 
91
                  count[0] = 4;
 
92
                  status = HE5_ZAwriteattr(ZAid, "GlobalAttribute", H5T_NATIVE_INT, count, attr1);
 
93
                  printf("status returned by HE5_ZAwriteattr(\"GlobalAttribute\"):    %d\n", status);
 
94
 
 
95
                  /* Write Global 'char' Attribute */
 
96
                  /* ----------------------------- */
 
97
                  strcpy(attr4,"ABCDEF");
 
98
                  count[0] = 6;
 
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);
 
101
                        
 
102
                  /* Write Global 'long' Attribute */
 
103
                  /* ----------------------------- */
 
104
                  count[0] = 4;
 
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);
 
107
 
 
108
                  /* Write Global 'double' Attribute */
 
109
                  /* ------------------------------- */
 
110
                  count[0] = 4;
 
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);
 
113
 
 
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);
 
118
 
 
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);
 
123
 
 
124
                }
 
125
        }
 
126
        
 
127
  status = HE5_ZAdetach(ZAid);
 
128
  status = HE5_ZAclose(zafid);
 
129
 
 
130
  return 0;
 
131
}
 
132
 
 
133
 
 
134
 
 
135
 
 
136
 
 
137
 
 
138
 
 
139
 
 
140