[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