[ismrmrd] 44/281: Starting conversion from hdf5 struct to Acquisition object

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:00:54 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 f36b1142e00f97537b92bf9cc8420d98b1f03fae
Author: Souheil Inati <souheil.inati at nih.gov>
Date:   Tue Sep 11 13:43:02 2012 -0400

    Starting conversion from hdf5 struct to Acquisition object
---
 matlab/+ismrmrd/Acquisition.m |  8 +++++--
 matlab/testread.m             | 54 ++++++++++++++++++++++++++++++++-----------
 2 files changed, 47 insertions(+), 15 deletions(-)

diff --git a/matlab/+ismrmrd/Acquisition.m b/matlab/+ismrmrd/Acquisition.m
index 697f437..3a26fb8 100644
--- a/matlab/+ismrmrd/Acquisition.m
+++ b/matlab/+ismrmrd/Acquisition.m
@@ -12,7 +12,7 @@ classdef Acquisition
     
     % Methods
     methods
-
+        
         function obj = set.head_(obj,v)
             obj.head_ = v;
         end
@@ -22,7 +22,11 @@ classdef Acquisition
         end
         
         function obj = set.data_(obj,v)
-            obj.data_ = single(complex(v));
+            if isreal(v)
+                obj.data_ = single(v(1:2:end) + 1j*v(2:2:end));
+            else
+                obj.data_ = single(v);
+            end
         end
 
         function b = isFlagSet(obj,flag)
diff --git a/matlab/testread.m b/matlab/testread.m
index bd2f558..39c997a 100644
--- a/matlab/testread.m
+++ b/matlab/testread.m
@@ -1,34 +1,62 @@
-filename = '~/temp/testdata.h5';
+%filename = '~/temp/testdata.h5';
+filename = '~/gadgetron/ismrmrd_data/testdata.h5';
 
 % Open the HDF5 File
 file = H5F.open(filename, 'H5F_ACC_RDONLY', 'H5P_DEFAULT');
 
 % Open the xml
-dset = H5D.open(file, '/dataset/xml');
+dset_id = H5D.open(file, '/dataset/xml');
 
 % Get the dataspace
-space = H5D.get_space(dset);
+file_space_id = H5D.get_space(dset_id);
 
 % Set variable length string type
 ismrm.datatypes.xmlhead = H5T.copy('H5T_C_S1');
 H5T.set_size(ismrm.datatypes.xmlhead,'H5T_VARIABLE');
 
 % Read the data
-xmldata = H5D.read(dset, ismrm.datatypes.xmlhead, 'H5S_ALL', 'H5S_ALL', 'H5P_DEFAULT');
+xmldata = H5D.read(dset_id, ismrm.datatypes.xmlhead, 'H5S_ALL', 'H5S_ALL', 'H5P_DEFAULT');
 
 % Close the XML Header
-H5D.close (dset);
-H5S.close (space);
+H5D.close (dset_id);
+H5S.close (file_space_id);
 
 % Open the data
-dset = H5D.open(file, '/dataset/data');
-space = H5D.get_space(dset);
-H5S.get_simple_extent_dims(space);
-[~,dims,~] = H5S.get_simple_extent_dims(space);
+dset_id = H5D.open(file, '/dataset/data');
+
+% Get the number of acquisitions
+file_space_id = H5D.get_space(dset_id);
+H5S.get_simple_extent_dims(file_space_id);
+[~,dims,~] = H5S.get_simple_extent_dims(file_space_id);
 nacq = dims(1);
-% Select the first acquisition
-%data = H5D.read(dset, 'H5ML_DEFAULT', 'H5S_ALL','H5S_ALL','H5P_DEFAULT');
-data = H5D.read(dset, ismrmrd.hdf5_datatypes.getType_Acquisition, 'H5S_ALL','H5S_ALL','H5P_DEFAULT');
+
+% Read the first acquisition
+dims = [1 1];
+mem_space_id = H5S.create_simple(2,dims,[]);
+offset = [0 0];
+block = [1 1];
+H5S.select_hyperslab(file_space_id,'H5S_SELECT_SET',offset,[],[],block);
+data = H5D.read(dset_id, ismrmrd.hdf5_datatypes.getType_Acquisition, ...
+                mem_space_id, file_space_id, 'H5P_DEFAULT');
+acq1 = ismrmrd.Acquisition;
+acq1.head_ = data.head(1);
+acq1.traj_ = data.traj{1};
+acq1.data_ = data.data{1};
+
+% Read the 70th acquisition
+offset = [69 0];
+H5S.select_hyperslab(file_space_id,'H5S_SELECT_SET',offset,[],[],block);
+data = H5D.read(dset_id, ismrmrd.hdf5_datatypes.getType_Acquisition, ...
+                mem_space_id, file_space_id, 'H5P_DEFAULT');
+acq70 = ismrmrd.Acquisition;
+acq70.head_ = data.head(1);
+acq70.traj_ = data.traj{1};
+acq70.data_ = data.data{1};
+
+% Read all of the acquisitions at once
+%data = H5D.read(dset_id, ismrmrd.hdf5_datatypes.getType_Acquisition, 'H5S_ALL','H5S_ALL','H5P_DEFAULT');
+
+
 
 % Close the data
 %H5D.close (dset);

-- 
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