[ismrmrd] 170/281: working on Matlab + ISMRMRD + HDF5 interface

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:01:11 UTC 2015


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to annotated tag ismrmrd0.5
in repository ismrmrd.

commit 91e52e7f62189d59af59347aec43c6ba7da35428
Author: Joseph Naegele <naegelejd at mail.nih.gov>
Date:   Tue Aug 27 16:28:11 2013 -0400

    working on Matlab + ISMRMRD + HDF5 interface
---
 matlab/+ismrmrd/IsmrmrdDataset.m | 87 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)

diff --git a/matlab/+ismrmrd/IsmrmrdDataset.m b/matlab/+ismrmrd/IsmrmrdDataset.m
new file mode 100644
index 0000000..fe94bc7
--- /dev/null
+++ b/matlab/+ismrmrd/IsmrmrdDataset.m
@@ -0,0 +1,87 @@
+classdef IsmrmrdDataset
+
+    properties
+        filename = '';
+        dsetname = '';
+        file = 0;
+
+        memtype_acqhdr = 0;
+        filetype_acqhdr = 0;
+        space_acqhdr = 0;
+
+        uint16_t = H5T.copy('H5T_NATIVE_UINT16');
+        uint32_t = H5T.copy('H5T_NATIVE_UINT32');
+        int32_t  = H5T.copy('H5T_NATIVE_INT32');
+        uint64_t = H5T.copy('H5T_NATIVE_UINT64');
+        float_t  = H5T.copy('H5T_NATIVE_FLOAT');
+
+    end
+
+methods
+
+function obj = IsmrmrdDataset(filename, dsetname)
+
+    if (nargin == 2)
+        obj.filename = filename;
+        obj.dsetname = dsetname;
+
+        try
+            file = H5F.open(filename);
+            %dset = H5D.open(file, dsetname);
+        catch
+            file = H5F.create(filename, 'H5F_ACC_TRUNC', 'H5P_DEFAULT', 'H5P_DEFAULT');
+            %dset = H5D.create(file, dsetname, );
+        end
+
+        obj.file = file;
+
+        % Acquisition Header
+        size_acqhdr(1) = H5T.get_size(obj.uint16_t); % version
+        size_acqhdr(2) = H5T.get_size(obj.uint64_t); % flags
+        size_acqhdr(3) = H5T.get_size(obj.uint32_t); % measurement_uid
+        size_acqhdr(4) = H5T.get_size(obj.uint32_t); % scan_counter
+        sizeof_acqhdr = sum(size_acqhdr);
+        offsets_acqhdr(1) = 0;
+        offsets_acqhdr(2:4) = cumsum(size_acqhdr(1:3));
+
+        memtype_acqhdr = H5T.create('H5T_COMPOUND', sizeof_acqhdr);
+        H5T.insert(memtype_acqhdr, 'version', offsets_acqhdr(1), obj.uint16_t);
+        H5T.insert(memtype_acqhdr, 'flags', offsets_acqhdr(2), obj.uint64_t);
+        H5T.insert(memtype_acqhdr, 'measurement_uid', offsets_acqhdr(3), obj.uint32_t);
+        H5T.insert(memtype_acqhdr, 'scan_counter', offsets_acqhdr(4), obj.uint32_t);
+
+        filetype_acqhdr = H5T.create('H5T_COMPOUND', sizeof_acqhdr);
+        H5T.insert(filetype_acqhdr, 'version', offsets_acqhdr(1), obj.uint16_t);
+        H5T.insert(filetype_acqhdr, 'flags', offsets_acqhdr(2), obj.uint64_t);
+        H5T.insert(filetype_acqhdr, 'measurement_uid', offsets_acqhdr(3), obj.uint32_t);
+        H5T.insert(filetype_acqhdr, 'scan_counter', offsets_acqhdr(4), obj.uint32_t);
+
+        obj.memtype_acqhdr = memtype_acqhdr;
+        obj.filetype_acqhdr = filetype_acqhdr;
+        obj.space_acqhdr = H5S.create_simple(1, 1, []); % 1-D
+
+    else
+        error('IsmrmrdDataset takes 2 parameters (filename, dataset)');
+    end
+end
+
+function obj = appendAcquisition(obj, hdr, data)
+    dset = H5D.create(obj.file, obj.dsetname, obj.filetype_acqhdr, obj.space_acqhdr, 'H5P_DEFAULT');
+    H5D.write(dset, obj.memtype_acqhdr, 'H5S_ALL', 'H5S_ALL', 'H5P_DEFAULT', hdr);
+    H5D.close(dset)
+end
+
+function getAcquisition
+
+end
+
+function delete(obj)
+    H5S.close(obj.space)
+    H5T.close(obj.memtype_acqhdr)
+    H5T.close(obj.datatype_acqhdr)
+    H5F.close(obj.file)
+end
+
+end
+
+end

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ismrmrd.git



More information about the debian-science-commits mailing list