diff options
Diffstat (limited to 'doc/html/h5s.examples')
-rw-r--r-- | doc/html/h5s.examples | 347 |
1 files changed, 0 insertions, 347 deletions
diff --git a/doc/html/h5s.examples b/doc/html/h5s.examples deleted file mode 100644 index 688382f..0000000 --- a/doc/html/h5s.examples +++ /dev/null @@ -1,347 +0,0 @@ -Example 1: Create a simple fixed size 3-D dataspace in memory and on disk and - copy the entire dataset to disk. - -{ - hid_t file; /* File ID */ - hid_t dataset; /* Dataset ID */ - hid_t mem_space, file_space; /* Dataspaces for memory and the file */ - uint8 *buf; /* Buffer for data */ - hsize_t curr_dims[3]={3,4,5}; /* Dimensions of the dataset */ - - /* Create file */ - file = H5Fcreate("example1.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); - - /* Create dataspace for dataset in the file */ - /* Selection for dataspace defaults to entire space */ - file_space=H5Screate(H5S_SIMPLE); - - /* Set the extent & type of the dataset's dataspace */ - H5Sset_extent_simple(file_space,3,curr_dims,curr_dims); - - /* Create the dataspace for the dataset in memory */ - /* Selection for dataspace defaults to entire space */ - mem_space=H5Screate(H5S_SIMPLE); - - /* Set the extent & type of the memory dataspace */ - H5Sset_extent_simple(mem_space,3,curr_dims,curr_dims); - - /* Create the dataset on disk */ - dataset=H5Dcreate(file,"Dataset",H5T_NATIVE_UINT8,file_space,H5P_DEFAULT); - - /* Write the dataset to the file */ - H5Dwrite(dataset,H5T_NATIVE_UINT8,mem_space,file_space,H5P_DEFAULT,buf); - - /* Close dataspaces */ - H5Sclose(mem_space); - H5Sclose(file_space); - - /* Close dataset & file */ - H5Dclose(dataset); - H5Fclose(file); -} - - -Example 2: Create a simple fixed size 3-D dataspace in memory and on disk and - copy a hyperslab to disk. The hyperslab blocks are packed and - contiguous in memory, but are scattered when written to the dataset - on disk. - -{ - hid_t file; /* File ID */ - hid_t dataset; /* Dataset ID */ - hid_t mem_space, file_space; /* Dataspaces for memory and the file */ - uint8 *buf; /* Buffer for data */ - hsize_t start[3]={3,4,5}; /* Start of hyperslab */ - hsize_t stride[3]={1,2,2}; /* Stride for hyperslab */ - hsize_t count[3]={3,3,3}; /* Hyperslab block count in each dimension */ - hsize_t block[3]={2,2,2}; /* Hyperslab block size in each dimension */ - hsize_t curr_dims[3]={13,14,15}; /* Dimensions of the dataset */ - - /* Create file */ - file = H5Fcreate("example2.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); - - /* Create dataspace for dataset in the file */ - /* Selection for dataspace defaults to entire space */ - file_space=H5Screate(H5S_SIMPLE); - - /* Set the extent & type of the dataset's dataspace */ - H5Sset_extent_simple(file_space,3,curr_dims,curr_dims); - - /* Set the hyperslab selection for a file dataspace */ - H5Sselect_hyperslab(file_space,H5S_SELECT_SET,start,stride,count,block); - - /* Create the dataspace for the dataset in memory */ - /* Selection for dataspace defaults to entire space */ - mem_space=H5Screate(H5S_SIMPLE); - - /* Set the extent & type of the memory dataspace */ - /* Compute the memory dimensions based on the hyperslab blocks to write */ - for(i=0; i<3; i++) - curr_dims[i]=count[i]*block[i]; - H5Sset_extent_simple(mem_space,3,curr_dims,curr_dims); - - /* Create the dataset on disk */ - dataset=H5Dcreate(file,"Dataset",H5T_NATIVE_UINT8,file_space,H5P_DEFAULT); - - /* Write the hyperslab to the file */ - H5Dwrite(dataset,H5T_NATIVE_UINT8,mem_space,file_space,H5P_DEFAULT,buf); - - /* Close dataspaces */ - H5Sclose(mem_space); - H5Sclose(file_space); - - /* Close dataset & file */ - H5Dclose(dataset); - H5Fclose(file); -} - - -Example 3: Create a simple fixed size 3-D dataspace in memory and on disk and - copy a specific selection of points (with a particular order) to - disk. The memory and file dataspaces are different sizes, but the number - of points selected are the same. - -{ - hid_t file; /* File ID */ - hid_t dataset; /* Dataset ID */ - hid_t mem_space, file_space; /* Dataspaces for memory and the file */ - uint8 *buf; /* Buffer for data */ - hsize_t elements[5][3]; /* Dataspace elements selected */ - hsize_t curr_dims[3]={13,14,15}; /* Dimensions of the dataset */ - - /* Create file */ - file = H5Fcreate("example3.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); - - /* Create dataspace for dataset in the file */ - /* Selection for dataspace defaults to entire space */ - file_space=H5Screate(H5S_SIMPLE); - - /* Set the extent & type of the dataset's dataspace */ - H5Sset_extent_simple(file_space,3,curr_dims,curr_dims); - - /* Set the elements for the selection in the file dataspace */ - elements[0]={0,2,4}; /* Yes, I know this won't compile.. :-) */ - elements[1]={3,4,1}; - elements[2]={9,8,3}; - elements[3]={7,2,0}; - elements[4]={6,5,8}; - H5Sselect_elements(file_space,H5S_SELECT_SET,5,elements); - - /* Create the dataspace for the dataset in memory */ - /* Selection for dataspace defaults to entire space */ - mem_space=H5Screate(H5S_SIMPLE); - - /* Set the extent & type of the memory dataspace */ - curr_dims={23,15,18}; /* This won't compile either :-) */ - H5Sset_extent_simple(mem_space,3,curr_dims,curr_dims); - - /* Set the elements for the selection in the file dataspace */ - elements[0]={9,2,1}; - elements[1]={13,1,12}; - elements[2]={4,1,7}; - elements[3]={0,12,0}; - elements[4]={20,10,17}; - H5Sselect_elements(mem_space,H5S_SELECT_SET,5,elements); - - /* Create the dataset on disk */ - dataset=H5Dcreate(file,"Dataset",H5T_NATIVE_UINT8,file_space,H5P_DEFAULT); - - /* Write the hyperslab to the file */ - H5Dwrite(dataset,H5T_NATIVE_UINT8,mem_space,file_space,H5P_DEFAULT,buf); - - /* Close dataspaces */ - H5Sclose(mem_space); - H5Sclose(file_space); - - /* Close dataset & file */ - H5Dclose(dataset); - H5Fclose(file); -} - - -Example 4: Create a simple fixed size 3-D dataspace in memory and on disk and - build up selection hyperslab selections to copy from memory to disk. The - selection is the same for both dataspaces, but a different offset is used, - to illustrate the selection offsets. - -{ - hid_t file; /* File ID */ - hid_t dataset; /* Dataset ID */ - hid_t mem_space, file_space; /* Dataspaces for memory and the file */ - uint8 *buf; /* Buffer for data */ - hsize_t start[3]; /* Start of hyperslab */ - hsize_t stride[3]; /* Stride for hyperslab */ - hsize_t count[3]; /* Hyperslab block count in each dimension */ - hsize_t block[3]; /* Hyperslab block size in each dimension */ - hssize_t offset[3]; /* Selection offset */ - hsize_t curr_dims[3]={13,14,15}; /* Dimensions of the dataset */ - - /* Create file */ - file = H5Fcreate("example4.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); - - /* Create dataspace for dataset in the file */ - /* Selection for dataspace defaults to entire space */ - file_space=H5Screate(H5S_SIMPLE); - - /* Set the extent & type of the dataset's dataspace */ - H5Sset_extent_simple(file_space,3,curr_dims,curr_dims); - - /* Build up the selection with a series of hyperslab selections */ - start={0,2,4}; /* Again, this won't compile.. :-) */ - stride={1,1,1}; - count={6,5,8}; - block={1,1,1}; - - /* Set the first selection, union the rest in */ - H5Sselect_hyperslab(file_space,H5S_SELECT_SET,start,stride,count,block); - - /* initialize the second hyperslab */ - start={10,9,1}; /* Again, this won't compile.. :-) */ - stride={1,1,1}; - count={2,3,10}; - block={1,1,1}; - - /* Union the second hyperslab into the file dataspace's selection */ - H5Sselect_hyperslab(file_space,H5S_SELECT_UNION,start,stride,count,block); - - /* initialize the third hyperslab */ - start={3,10,5}; /* Again, this won't compile.. :-) */ - stride={1,1,1}; - count={8,2,6}; - block={1,1,1}; - - /* Union the final hyperslab into the file dataspace's selection */ - H5Sselect_hyperslab(file_space,H5S_SELECT_UNION,start,stride,count,block); - - /* Create the dataspace for the dataset in memory */ - /* Selection for dataspace defaults to entire space */ - mem_space=H5Screate(H5S_SIMPLE); - - /* Set the extent & type of the memory dataspace */ - curr_dims={23,15,18}; /* This won't compile either :-) */ - H5Sset_extent_simple(mem_space,3,curr_dims,curr_dims); - - /* Copy the selection from the file dataspace */ - H5Sselect_op(mem_space,H5S_SELECT_COPY,file_space); - - /* Adjust the offset of the selection in the memory dataspace */ - offset={1,1,1}; - H5Soffset_simple(mem_space,offset); - - /* Create the dataset on disk */ - dataset=H5Dcreate(file,"Dataset",H5T_NATIVE_UINT8,file_space,H5P_DEFAULT); - - /* Write the hyperslab to the file */ - H5Dwrite(dataset,H5T_NATIVE_UINT8,mem_space,file_space,H5P_DEFAULT,buf); - - /* Close dataspaces */ - H5Sclose(mem_space); - H5Sclose(file_space); - - /* Close dataset & file */ - H5Dclose(dataset); - H5Fclose(file); -} - - -Example 5: Same as example 1 (create a simple fixed size 3-D dataspace in memory and on disk and - copy the entire dataset to disk), except that the selection order is changed - for the memory dataspace, to change between FORTRAN and C array ordering. - -{ - hid_t file; /* File ID */ - hid_t dataset; /* Dataset ID */ - hid_t mem_space, file_space; /* Dataspaces for memory and the file */ - uint8 *buf; /* Buffer for data */ - hsize_t order[3]; /* Dimension ordering for selection */ - hsize_t curr_dims[3]={3,4,5}; /* Dimensions of the dataset */ - - /* Create file */ - file = H5Fcreate("example5.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); - - /* Create dataspace for dataset in the file */ - /* Selection for dataspace defaults to entire space and C array order */ - file_space=H5Screate(H5S_SIMPLE); - - /* Set the extent & type of the dataset's dataspace */ - H5Sset_extent_simple(file_space,3,curr_dims,curr_dims); - - /* Create the dataspace for the dataset in memory */ - /* Selection for dataspace defaults to entire space and C array order */ - mem_space=H5Screate(H5S_SIMPLE); - - /* Set the extent & type of the memory dataspace */ - H5Sset_extent_simple(mem_space,3,curr_dims,curr_dims); - - /* Change selection ordering to FORTRAN order for memory dataspace */ - order={0,1,2}; - H5Sselect_order(mem_space,order); - - /* Create the dataset on disk */ - dataset=H5Dcreate(file,"Dataset",H5T_NATIVE_UINT8,file_space,H5P_DEFAULT); - - /* Write the dataset to the file */ - H5Dwrite(dataset,H5T_NATIVE_UINT8,mem_space,file_space,H5P_DEFAULT,buf); - - /* Close dataspaces */ - H5Sclose(mem_space); - H5Sclose(file_space); - - /* Close dataset & file */ - H5Dclose(dataset); - H5Fclose(file); -} - - -Example 6: Create a stored dataspace on disk and use the H5Ssubspace function - create a dataspace located within that space. - -{ - hid_t file; /* File ID */ - hid_t space1, space2; /* Dataspace IDs */ - hsize_t start[3]; /* Start of hyperslab */ - hsize_t count[3]; /* Hyperslab block count in each dimension */ - hsize_t curr_dims[3]={13,14,15};/* Dimensions of the dataset */ - - /* Create file */ - file = H5Fcreate("example6.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); - - /* Create dataspace #1 */ - space1=H5Screate(H5S_SIMPLE); - - /* Set the extent & type of dataspace #1 */ - H5Sset_extent_simple(space1,3,curr_dims,curr_dims); - - /* Store dataspace #1 on disk */ - H5Scommit(file,"/Dataspaces/Dataspace #1",space1); - - /* Select a contiguous hyperslab in dataspace #1 to create dataspace #2 with */ - start={0,2,4}; - count={6,5,8}; - - /* - * Use stride and block set to NULL to get contiguous, single element sized - * hyperslab. The stride and block parameters could also be set to all - * 1's, but this is simpler and easier. - */ - H5Sselect_hyperslab(space1,H5S_SELECT_SET,start,NULL,count,NULL); - - /* Create dataspace #2 as a dataspace located within dataspace #1 */ - space2=H5Ssubspace(space1); - - /* Store dataspace #2 on disk also */ - H5Scommit(file,"/Dataspaces/Dataspace #2",space2); - - /* - * space1 & space2 can be used to create datasets, etc. Any datasets - * created with space2 can have their dataspace queried to find the parent - * dataspace and the location within the parent dataspace - */ - - /* Close dataspaces */ - H5Sclose(space1); - H5Sclose(space2); - - /* Close file */ - H5Fclose(file); -} |