Properties
HDF5 property lists are collections of name-value pairs which can be passed to other HDF5 functions to control features that are typically unimportant or whose default values are usually used. In HDF5.jl, these options are typically handled by keyword arguments to such functions, which will internally create the appropriate Properties
objects, and so users will not usually be required to construct them manually.
Not all properties defined by the HDF5 library are currently available in HDF5.jl. If you require additional properties, please open an issue or pull request.
Properties
types
HDF5.AttributeCreateProperties
— TypeAttributeCreateProperties(;kws...)
Properties used when creating attributes.
char_encoding
: the character enconding, either:ascii
or:utf8
.
HDF5.FileAccessProperties
— TypeFileAccessProperties(;kws...)
Properties used when accessing files.
alignment :: Tuple{Integer, Integer}
: a(threshold, alignment)
pair: any file object greater than or equal in size to threshold bytes will be aligned on an address which is a multiple of alignment. Default values are 1, implying no alignment.driver
: the file driver used to access the file. See Drivers.driver_info
(get only)fclose_degree
: file close degree property. One of::weak
:semi
:strong
:default
libver_bounds
: a(low, high)
pair:low
sets the earliest possible format versions that the library will use when creating objects in the file;high
sets the latest format versions that the library will be allowed to use when creating objects in the file. Values can be aVersionNumber
for the hdf5 library,:earliest
, or:latest
. SeeH5P_SET_LIBVER_BOUNDS
HDF5.FileCreateProperties
— TypeFileCreateProperties(;kws...)
Properties used when creating a new File
. Inherits from ObjectCreateProperties
, with additional properties:
userblock :: Integer
: user block size in bytes. The default user block size is 0; it may be set to any power of 2 equal to 512 or greater (512, 1024, 2048, etc.). SeeH5P_SET_USERBLOCK
.track_order :: Bool
: tracks the file creation order.
HDF5.GroupCreateProperties
— TypeGroupCreateProperties(;kws...)
Properties used when creating a new Group
. Inherits from ObjectCreateProperties
, with additional options:
local_heap_size_hint :: Integer
: the anticipated maximum local heap size in bytes. SeeH5P_SET_LOCAL_HEAP_SIZE_HINT
.track_order :: Bool
: tracks the group creation order.
HDF5.DatasetCreateProperties
— TypeDatasetCreateProperties(;kws...)
Properties used when creating a new Dataset
. Inherits from ObjectCreateProperties
, with additional properties:
alloc_time
: the timing for the allocation of storage space for a dataset's raw data; one of::default
:early
: allocate all space when the dataset is created:incremental
: Allocate space incrementally, as data is written to the dataset:late
: Allocate all space when data is first written to the dataset.
See
H5P_SET_ALLOC_TIME
.chunk
: a tuple containing the size of the chunks to store each dimension. SeeH5P_SET_CHUNK
(note that this uses Julia's column-major ordering).external
: A tuple of(name,offset,size)
, SeeH5P_SET_EXTERNAL
.filters
(only valid whenlayout=:chunked
): a filter or vector of filters that are applied to applied to each chunk of a dataset, see Filters. When accessed, will return aFilters.FilterPipeline
object that can be modified in-place.layout
: the type of storage used to store the raw data for a dataset. Can be one of::compact
: Store raw data in the dataset object header in file. This should only be used for datasets with small amounts of raw data.:contiguous
: Store raw data separately from the object header in one large chunk in the file.:chunked
: Store raw data separately from the object header as chunks of data in separate locations in the file.:virtual
: Draw raw data from multiple datasets in different files.
See
H5P_SET_LAYOUT
.
The following options are shortcuts for the various filters, and are set-only. They will be appended to the filter pipeline in the order in which they appear
blosc = true | level
: set theH5Zblosc.BloscFilter
compression filter; argument can be eithertrue
, or the compression level.deflate = true | level
: set theFilters.Deflate
compression filter; argument can be eithertrue
, or the compression level.fletcher32 = true
: set theFilters.Fletcher32
checksum filter.shuffle = true
: set theFilters.Shuffle
filter.
HDF5.DatasetAccessProperties
— TypeDatasetAccessProperties(; kws...)
Properties that control access to data in external, virtual, and chunked datasets.
HDF5.DatasetTransferProperties
— TypeDatasetTransferProperties(;kws...)
Properties used when transferring data to/from datasets
dxpl_mpio
: MPI transfer mode::independent
: use independent I/O access (default),:collective
: use collective I/O access.
HDF5.LinkCreateProperties
— TypeLinkCreateProperties(;kws...)
Properties used when creating links.
char_encoding
: the character enconding, either:ascii
or:utf8
.create_intermediate_group :: Bool
: iftrue
, will create missing intermediate groups.
HDF5.ObjectCreateProperties
— TypeObjectCreateProperties(;kws...)
Properties used when creating a new object. Available options:
obj_track_times :: Bool
: governs the recording of times associated with an object. If set totrue
, time data will be recorded. SeeH5P_SET_OBJ_TRACK_TIMES
.
HDF5.StringCreateProperties
— TypeStringCreateProperties(;kws...)
HDF5.DatatypeCreateProperties
— TypeDatatypeCreateProperties(;kws...)
Drivers
File drivers determine how the HDF5 is accessed. These can be set as the driver
property in FileAccessProperties
.
HDF5.Drivers.POSIX
— TypePOSIX()
Also referred to as SEC2, this driver uses POSIX file-system functions like read and write to perform I/O to a single, permanent file on local disk with no system buffering. This driver is POSIX-compliant and is the default file driver for all systems.
HDF5.Drivers.MPIO
— TypeMPIO(comm::MPI.Comm, info::MPI.Info)
MPIO(comm::MPI.Comm; kwargs....)
The parallel MPI file driver. This requires the use of MPI.jl, and a custom HDF5 binary that has been built with MPI support.
comm
is the communicator over which the file will be opened.info
/kwargs
are MPI-IO options, and are passed toMPI_FILE_OPEN
.
External links