コード例 #1
0
ファイル: DataspaceHelper.cs プロジェクト: syy94/sharpHDF
        /// <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);
        }
コード例 #2
0
ファイル: DatasetHelper.cs プロジェクト: spdjudd/sharpHDF
        /// <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);
        }