/// <summary> /// /// </summary> /// <returns></returns> public static Hdf5Dataspace GetDataspace(Hdf5Identifier _datasetId) { var dataspaceId = H5D.get_space(_datasetId.Value).ToId(); int rank = H5S.get_simple_extent_ndims(dataspaceId.Value); ulong[] dims = new ulong[rank]; ulong[] maxDims = new ulong[rank]; H5S.get_simple_extent_dims(dataspaceId.Value, dims, maxDims); Hdf5Dataspace dataspace = new Hdf5Dataspace { Id = dataspaceId, NumberOfDimensions = rank }; for (int i = 0; i < dims.Length; i++) { Hdf5DimensionProperty property = new Hdf5DimensionProperty { CurrentSize = dims[i], //MaximumSize = maxDims[i] }; dataspace.DimensionProperties.Add(property); } H5S.close(dataspaceId.Value); return(dataspace); }
/// <summary> /// Assumes that dataset already open /// </summary> /// <param name="_fileId"></param> /// <param name="_datasetId"></param> /// <param name="_fullPath"></param> /// <returns></returns> public static Hdf5Dataset LoadDataset(Hdf5Identifier _fileId, Hdf5Identifier _datasetId, string _fullPath) { Hdf5DataType datatype = TypeHelper.GetDataTypeFromDataset(_datasetId); Hdf5Dataspace dataspace = DataspaceHelper.GetDataspace(_datasetId); Hdf5Dataset dataset = new Hdf5Dataset(_fileId, _datasetId, _fullPath) { Dataspace = dataspace, DataType = datatype }; return(dataset); }