Files
hdf5/HDF5Examples/JAVA/TUTR/HDF5DatasetCreate.java
T
Dana Robinson 7f1e49206d Renamed COPYING to LICENSE (#4978)
This is where most people will expect to find license information. The
COPYING_LBNL_HDF5 file has also been renamed to LICENSE_LBNL_HDF5.
The licenses are unchanged.
2024-10-18 21:13:04 -07:00

193 lines
6.7 KiB
Java

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the LICENSE file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
import hdf.hdf5lib.H5;
import hdf.hdf5lib.HDF5Constants;
/**
* <p>
* Title: HDF Native Package (Java) Example
* </p>
* <p>
* Description: this example shows how to create HDF5 datasets using the
* "HDF Native Package (Java)". The example created the group structure and
* datasets:
*
* <pre>
* "/" (root)
* integer arrays
* 2D 32-bit integer 20x10
* 3D 16-bit integer 20x10x5
* float arrays
* 2D 64-bit double 20x10
* 3D 32-bit float 20x10x5
* </pre>
*
* </p>
*/
public class HDF5DatasetCreate {
private static String fname = "HDF5DatasetCreate.h5";
private static long[] dims2D = {20, 10};
private static long[] dims3D = {20, 10, 5};
private static void CreateDataset()
{
long file_id = HDF5Constants.H5I_INVALID_HID;
long group_id1 = HDF5Constants.H5I_INVALID_HID;
long group_id2 = HDF5Constants.H5I_INVALID_HID;
long dataspace_id1 = HDF5Constants.H5I_INVALID_HID;
long dataspace_id2 = HDF5Constants.H5I_INVALID_HID;
long dataset_id = HDF5Constants.H5I_INVALID_HID;
// Create a new file using default properties.
try {
file_id = H5.H5Fcreate(fname, HDF5Constants.H5F_ACC_TRUNC, HDF5Constants.H5P_DEFAULT,
HDF5Constants.H5P_DEFAULT);
}
catch (Exception e) {
e.printStackTrace();
System.err.println("Failed to create file:" + fname);
return;
}
// Create a group in the file.
try {
if (file_id >= 0) {
group_id1 = H5.H5Gcreate(file_id, "g1", HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT,
HDF5Constants.H5P_DEFAULT);
group_id2 = H5.H5Gcreate(file_id, "g2", HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT,
HDF5Constants.H5P_DEFAULT);
}
}
catch (Exception e) {
e.printStackTrace();
}
// Create the data space for the 2D dataset.
try {
dataspace_id1 = H5.H5Screate_simple(2, dims2D, null);
}
catch (Exception e) {
e.printStackTrace();
}
// Create the data space for the 3D dataset.
try {
dataspace_id2 = H5.H5Screate_simple(3, dims3D, null);
}
catch (Exception e) {
e.printStackTrace();
}
// create 2D 32-bit (4 bytes) integer dataset of 20 by 10
try {
if ((group_id1 >= 0) && (dataspace_id1 >= 0)) {
dataset_id = H5.H5Dcreate(
group_id1, "2D 32-bit integer 20x10", HDF5Constants.H5T_NATIVE_INT32, dataspace_id1,
HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT);
if (dataset_id >= 0)
H5.H5Dclose(dataset_id);
}
}
catch (Exception e) {
e.printStackTrace();
}
// create 3D 8-bit (1 byte) unsigned integer dataset of 20 by 10 by 5
try {
if ((group_id1 >= 0) && (dataspace_id2 >= 0)) {
dataset_id =
H5.H5Dcreate(group_id1, "3D 8-bit unsigned integer 20x10x5",
HDF5Constants.H5T_NATIVE_INT8, dataspace_id2, HDF5Constants.H5P_DEFAULT,
HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT);
if (dataset_id >= 0)
H5.H5Dclose(dataset_id);
}
}
catch (Exception e) {
e.printStackTrace();
}
// create 2D 64-bit (8 bytes) double dataset of 20 by 10
try {
if ((group_id2 >= 0) && (dataspace_id1 >= 0)) {
dataset_id = H5.H5Dcreate(
group_id2, "2D 64-bit double 20x10", HDF5Constants.H5T_NATIVE_DOUBLE, dataspace_id1,
HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT);
if (dataset_id >= 0)
H5.H5Dclose(dataset_id);
}
}
catch (Exception e) {
e.printStackTrace();
}
// create 3D 32-bit (4 bytes) float dataset of 20 by 10 by 5
try {
if ((group_id2 >= 0) && (dataspace_id2 >= 0)) {
dataset_id = H5.H5Dcreate(
group_id2, "3D 32-bit float 20x10x5", HDF5Constants.H5T_NATIVE_FLOAT, dataspace_id2,
HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT);
if (dataset_id >= 0)
H5.H5Dclose(dataset_id);
}
}
catch (Exception e) {
e.printStackTrace();
}
// Terminate access to the data space.
try {
if (dataspace_id2 >= 0)
H5.H5Sclose(dataspace_id2);
}
catch (Exception e) {
e.printStackTrace();
}
try {
if (dataspace_id1 >= 0)
H5.H5Sclose(dataspace_id1);
}
catch (Exception e) {
e.printStackTrace();
}
// Close the groups.
try {
if (group_id2 >= 0)
H5.H5Gclose(group_id2);
}
catch (Exception e) {
e.printStackTrace();
}
try {
if (group_id1 >= 0)
H5.H5Gclose(group_id1);
}
catch (Exception e) {
e.printStackTrace();
}
// Close the file.
try {
if (file_id >= 0)
H5.H5Fclose(file_id);
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) { HDF5DatasetCreate.CreateDataset(); }
}