![]() |
HDF User’s GuideVersion 4.2r4 |
[Top] [Prev][Next] |
an_ex1.c#include "hdf.h" main( ) { int32 file_id; intn status; static char file_label[] = "This is a file label."; static char file_desc[] = "This is a file description."; /* Open the HDF file to write the annotations. */ file_id = Hopen("Example1.hdf", DFACC_CREATE, 0); /* Write the label to the file. */ status = DFANaddfid(file_id, file_label); /* Write the description to the file. */ status = DFANaddfds(file_id, file_desc, strlen(file_desc)); /* Close the file. */ status = Hclose(file_id); }an_ex1.fPROGRAM CREATE ANNOTATION character*50 file_label, file_desc integer daafid, daafds, status, file_id, hopen, hclose integer*4 DFACC_CREATE parameter (DFACC_CREATE = 4) file_label = "This is a file label." file_desc = "This is a file description." C Open the HDF file to write the annotations. file_id = hopen(`Example1.hdf', DFACC_CREATE, 0) C Write the label to the file. status = daafid(file_id, file_label) C Write the description to the file. status = daafds(file_id, file_desc, 26) C Close the file. status = hclose(file_id) endan_ex2.c#include "hdf.h" #define X_LENGTH 3 #define Y_LENGTH 2 #define Z_LENGTH 5 main( ) { /* Create the data array. */ static float32 sds_data[X_LENGTH][Y_LENGTH][Z_LENGTH] = { 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 }; /* * Create the array that will hold the dimensions of * the data array. */ int32 dims[3] = {X_LENGTH, Y_LENGTH, Z_LENGTH}; intn refnum, status; static char object_desc[] = "This is an object description."; static char object_label[] = "This is an object label."; /* Write the data to the HDF file. */ status = DFSDadddata("Example1.hdf", 3, dims, (VOIDP)sds_data); /* Get the reference number for the newly written data set. */ refnum = DFSDlastref( ); /* Assign the object label to the scientific data set. */ status = DFANputlabel("Example1.hdf", DFTAG_NDG, refnum, \ object_label); /* Assign the object description to the scientific data set. */ status = DFANputdesc("Example1.hdf", DFTAG_NDG, refnum, \ object_desc, strlen(object_desc)); }an_ex2.fPROGRAM ANNOTATE OBJECT integer dsadata, dims(3), status, refnum integer daplab, dapdesc, dslref integer*4 DFTAG_NDG, X_LENGTH, Y_LENGTH, Z_LENGTH parameter(DFTAG_NDG = 720, + X_LENGTH = 5, + Y_LENGTH = 2, + Z_LENGTH = 3) C Create the data array. real*4 sds_data(X_LENGTH, Y_LENGTH, Z_LENGTH) data sds_data / + 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 / C Create the array the will hold the dimensions of the data array. data dims /X_LENGTH, Y_LENGTH, Z_LENGTH/ C Write the data to the HDF file. ref = dsadata(`Example1.hdf', 3, dims, sds_data) C Get the reference number for the newly written data set. refnum = dslref( ) C Assign the object label to the scientific data set. status = daplab(`Example1.hdf', DFTAG_NDG, refnum, + `This is an object label.') C Assign an object description to the scientific data set. status = dapdesc(`Example1.hdf', DFTAG_NDG, refnum, + `This is an object description.', 30) endan_ex3.c#include "hdf.h" main( ) { int32 file_id, file_label_len; char *file_label; intn status; /* Open the HDF file containing the annotation. */ file_id = Hopen("Example1.hdf", DFACC_READ, 0); /* Determine the length of the file label. */ file_label_len = DFANgetfidlen(file_id, 1); /* Allocated memory for the file label buffer. */ file_label = HDgetspace(file_label_len); /* Read the file label. */ file_label_len = DFANgetfid(file_id, file_label, file_label_len, 1); /* Close the file */ status = Hclose(file_id); }an_ex3.fPROGRAM GET ANNOTATION integer status, file_id, label_length integer hopen, hclose, dagfidl, dagfid character file_label(50) integer*4 DFACC_READ parameter(DFACC_READ = 1) C Open the HDF file containing the file label. file_id = hopen("Example1.hdf", DFACC_READ, 0) C Determine the length of the file label. label_length = dagfidl(file_id, 1) C Read the file label. status = dagfid(file_id, file_label, label_length, 1) C Close the HDF file. status = hclose(file_id) endan_ex4.c#include "hdf.h" main( ) { intn desc_length = -1, status; char desc[50]; int32 file_id; uint16 tag = 0, ref = 0; uint32 find_offset, find_length; /* Open the file and initialize the searching parameters to 0. */ file_id = Hopen("Example1.hdf", DFACC_READ, 0); /* * Start a sequential forward search for the first reference * number assigned to a scientific data set. */ while (Hfind(file_id, DFTAG_NDG, DFREF_WILDCARD, &tag, &ref, \ &find_offset, &find_length, DF_FORWARD) != FAIL) { /* * After discovering a valid reference number, check for an * object description by returning the length of the description. * If the inquiry fails, continue searching for the next valid * reference number assigned to a scientific data set. */ if ((desc_length = DFANgetdesclen("Example1.hdf", tag, ref)) \ == FAIL) break; /* * If a description exists and it will fit in the description buffer, * print it. */ if (desc_length != FAIL && desc_length <= 50) { status = DFANgetdesc("Example1.hdf", tag, ref, desc, desc_length); printf("Description: %s\n", desc); } } /* Close the file. */ status = Hclose(file_id); }an_ex5.c#include "hdf.h" #define LISTSIZE 20 main( ) { int i, num_of_labels, start_position = 1, list_length = 10; uint16 ref_list[LISTSIZE]; char label_list[DFS_MAXLEN*LISTSIZE-1]; /* Get the total number of labels in the "Example1.hdf" file. */ num_of_labels = DFANlablist("Example1.hdf", DFTAG_NDG, ref_list, \ label_list, list_length, DFS_MAXLEN, \ start_position); /* * Print the reference numbers and label names for each label * in the list. */ for (i = 0; i < num_of_labels; i++) printf("\n\t%d\tRef number: %d\tLabel: %s", i+1, ref_list[i], \ label_list - (i * 13)); printf("\n"); }an_ex5.fPROGRAM GET LABEL LIST integer dallist integer*4 DFTAG_NDG, LISTSIZE, DFS_MAXLEN parameter (DFTAG_NDG = 720, + LISTSIZE = 20, + DFS_MAXLEN = 255) character*60 label_list(DFS_MAXLEN*LISTSIZE) integer i, num_of_labels, start_position, ref_list(DFS_MAXLEN) start_position = 1 num_of_labels = dallist(`Example1.hdf', DFTAG_NDG, ref_list, + label_list, 10, DFS_MAXLEN, + start_position) do 10 i = 1, num_of_labels print *,' Ref number: `,ref_list(i), + ` Label: `,label_list(i) 10 continue end
HDF4.2r4 - February 2009 Copyright |
The HDF Group www.hdfgroup.org ![]() |