File: he5_pt_readattrs.c

package info (click to toggle)
hdf-eos5 2%3A2.0-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 14,692 kB
  • sloc: ansic: 92,051; fortran: 31,463; sh: 11,395; makefile: 492
file content (116 lines) | stat: -rwxr-xr-x 3,775 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/*
 ----------------------------------------------------------------------------
 |    Copyright (C) 1999  Emergent IT Inc.  and Raytheon Systems Company    |
 ----------------------------------------------------------------------------
 */



#include <HE5_HdfEosDef.h>

int main()
{
  herr_t          status = FAIL;

  int             i, attr;
  int             attr1[5], attr2[5];

  hid_t           ptfid = FAIL, PTid = FAIL;    

  hid_t           *nt = (hid_t *)NULL;

  long            nattr, strbufsize;
    
  hsize_t         sz;
 
  char            attrlist[256] ;


  /* Open the HDF-EOS file, "Point.h5" */
  /* --------------------------------- */
  ptfid = HE5_PTopen("Point.h5", H5F_ACC_RDONLY);
  printf("File ID returned by HE5_PTopen() :       %ld \n", (long) ptfid);

  PTid = HE5_PTattach(ptfid, "FixedBuoy Point");
  printf("Point ID returned by HE5_PTattach() :    %ld \n", (long) PTid);

  nt = (hid_t *)calloc(1, sizeof(hid_t));

  /* Global attributes */
  /* ---------------- */
  printf("Global Attribute: \n");
  status = HE5_PTreadattr(PTid, "GlobalAttribute_int", &attr);
  printf("Status returned by HE5_PTreadattr() :    %d \n", status);
  printf("Attribute value:                         %d\n", attr);

  nattr = HE5_PTinqattrs(PTid, NULL, &strbufsize);
  printf("Number of attributes:                    %li\n", nattr);
  printf("Size (in bytes) of attribute list:       %li\n", strbufsize);
  nattr = HE5_PTinqattrs(PTid, attrlist, &strbufsize);
  printf("Attribute list:                          %s\n", attrlist);

  status = HE5_PTattrinfo(PTid, "GlobalAttr_Integer", nt, &sz);
  printf("Data type of attribute:                  %d\n", (int)*nt);
  printf("Number of attribute elements:            %d\n", (int)sz);


  /* Group attributes */
  /* ---------------- */
  printf("\n");
  printf("Group Attribute: \n");
  status = HE5_PTreadgrpattr(PTid, "GroupAttribute", attr1);
  printf("Status returned by HE5_PTreadgrpattr() : %d \n", status);
  printf("Attribute values: \n");
  for (i = 0; i < 5; i++)
    {
	  printf("\t\t %d \n", attr1[i]);
    }    
  nattr = HE5_PTinqgrpattrs(PTid, NULL, &strbufsize);
  printf("Number of attributes:                    %li\n", nattr);
  printf("Size (in bytes) of attribute list:       %li\n", strbufsize);
  nattr = HE5_PTinqgrpattrs(PTid, attrlist, &strbufsize);
  printf("Attribute list:                          %s\n", attrlist);

  status = HE5_PTgrpattrinfo(PTid, "GroupAttribute", nt, &sz);
  printf("Data type of attribute:                  %d\n",(int)*nt);
  printf("Number of attribute elements:            %d\n", (int)sz);

  /* Local attributes */
  /* ---------------- */
  printf("\n");
  printf("Local Attribute: \n");
  status = HE5_PTreadlocattr(PTid, "Observations", "LocalAttribute", attr2);
  printf("Status returned by HE5_PTreadlocattr() : %d \n", status);
  printf("Attribute values: \n");
  for (i = 0; i < 5; i++)
    {
	  printf("\t\t %d \n", attr2[i]);
    }    
  nattr = HE5_PTinqlocattrs(PTid, "Observations", NULL, &strbufsize);
  printf("Number of attributes:                    %li\n", nattr);
  printf("Size (in bytes) of attribute list:       %li\n", strbufsize);
  nattr = HE5_PTinqlocattrs(PTid, "Observations", attrlist, &strbufsize);
  printf("Attribute list:                          %s\n", attrlist);

  status = HE5_PTlocattrinfo(PTid, "Observations", "LocalAttribute", nt, &sz);
  printf("Data type of attribute:                  %d\n", (int)*nt);
  printf("Number of attribute elements:            %d\n", (int)sz);


  free(nt);
	
  status = HE5_PTdetach(PTid);
  printf("Status returned by HE5_PTdetach() :      %d \n", status);

  status = HE5_PTclose(ptfid);
  printf("Status returned by HE5_PTclose() :       %d \n", status);

  return 0;
}