A class representing a three-dimensional brain image backed by an HDF5 dataset.
H5NeuroVol objects provide efficient storage and access for large-scale
brain imaging data in the HDF5 format.
Details
The H5NeuroVol class inherits a space slot from
NeuroVol-class, which specifies the spatial domain
(dimensions, orientation, etc.). Data I/O is performed by reading/writing
subsets of the HDF5 dataset, allowing efficient handling of large 3D volumes.
Slots
h5objAn instance of class
H5Filefrom the hdf5r package, representing the underlying HDF5 file containing the brain image data.
Inheritance
H5NeuroVol inherits from:
NeuroVol-class: Base class for 3D brain volumesArrayLike3D-class: Interface for 3D array-like operations
See also
NeuroVol-class for the base 3D brain volume class.
H5File for details on HDF5 file objects.
Examples
if (FALSE) { # \dontrun{
if (requireNamespace("neuroim2", quietly = TRUE) &&
requireNamespace("hdf5r", quietly = TRUE) &&
exists("H5NeuroVol", where = "package:fmristore") && # Check if constructor is available
!is.null(fmristore:::create_minimal_h5_for_H5NeuroVol)) { # Check helper
# Setup: Create a temporary HDF5 file using a helper
# The helper creates a dataset named "data/elements" by default.
temp_h5_path <- NULL
h5_vol <- NULL
tryCatch({
temp_h5_path <- fmristore:::create_minimal_h5_for_H5NeuroVol(dims = c(5L, 5L, 3L))
# Create an H5NeuroVol object using the constructor
# The constructor defaults to dataset_name = "data/elements" if not specified
# and if a NeuroSpace is not given, it reads it from /space in the HDF5 file.
h5_vol <- fmristore::H5NeuroVol(file_name = temp_h5_path)
print(h5_vol)
# Access a subset of the data
subset_data <- h5_vol[1:2, 1:2, 1]
print(subset_data)
}, error = function(e) {
message("H5NeuroVol example failed: ", e$message)
}, finally = {
# Close HDF5 handle owned by H5NeuroVol object
if (!is.null(h5_vol) && inherits(h5_vol, "H5NeuroVol")) {
try(close(h5_vol), silent = TRUE)
}
# Cleanup temporary file
if (!is.null(temp_h5_path) && file.exists(temp_h5_path)) {
unlink(temp_h5_path)
}
})
} else {
message("Skipping H5NeuroVol example: fmristore, neuroim2, hdf5r, or helper not available.")
}
} # }