[ismrmrd] 156/177: Removed references to block mode. Decided to not implement ragged images/arrays.

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


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

ghisvail-guest pushed a commit to annotated tag v1.1.0.beta.1
in repository ismrmrd.

commit 73d51715f390a30966f387b2f5896c6ef69075a6
Author: Souheil Inati <souheil.inati at nih.gov>
Date:   Tue Oct 21 17:42:48 2014 -0400

    Removed references to block mode.  Decided to not implement ragged images/arrays.
---
 examples/c/main.c                            |  4 +--
 include/ismrmrd/dataset.h                    | 33 ++++++------------
 libsrc/dataset.c                             | 45 ++-----------------------
 libsrc/dataset.cpp                           | 50 ++++++++++++++--------------
 utilities/generate_cartesian_shepp_logan.cpp |  7 ++--
 utilities/recon_cartesian_2d.cpp             |  2 +-
 6 files changed, 44 insertions(+), 97 deletions(-)

diff --git a/examples/c/main.c b/examples/c/main.c
index 202fb8b..d4947a5 100644
--- a/examples/c/main.c
+++ b/examples/c/main.c
@@ -137,11 +137,11 @@ int main(void)
     
     printf("Image Version: %d\n", im.head.version);
     printf("Image String: %s\n", im.attribute_string);
-    ismrmrd_append_image(&dataset2, "testimages", 1, &im);
+    ismrmrd_append_image(&dataset2, "testimages", &im);
     for (loc=0; loc < 256*256*4*8; loc++) {
         ((float*)im.data)[loc] = 2.0;
     }
-    ismrmrd_append_image(&dataset2, "testimages", 1, &im);
+    ismrmrd_append_image(&dataset2, "testimages", &im);
                          
     /* Clean up */
     /* This frees the internal memory of the acquisitions */
diff --git a/include/ismrmrd/dataset.h b/include/ismrmrd/dataset.h
index fd33a79..365d034 100644
--- a/include/ismrmrd/dataset.h
+++ b/include/ismrmrd/dataset.h
@@ -17,14 +17,6 @@ extern "C" {
 #endif
 
 /**
- * Image and Array storage block modes
- */
-enum ISMRMRD_BlockModes {
-    ISMRMRD_BLOCKMODE_ARRAY,
-    ISMRMRD_BLOCKMODE_BLOB
-};
-    
-/**
  *   Interface for accessing an ISMRMRD Data Set stored on disk in HDF5 format.
  *
  *   A given ISMRMRD dataset if assumed to be stored under one group name in the
@@ -95,18 +87,16 @@ EXPORTISMRMRD uint32_t ismrmrd_get_number_of_acquisitions(const ISMRMRD_Dataset
  *
  *  Please consult @See ISMRMRD_Image struct for details.
  *
- *  Images can be stored in one of two ways.  In either case headers and attribute strings are stored
- *  separatey for each of image.   This allows for easy viewing and reading in other applications.
+ *  Headers and attribute strings are stored separately from the data.
+ *  This allows for easy viewing and reading in other applications.
  *
- *  Method 1: Images of the same size can be appended to "grow" an array.
+ *  Images of the same size can be appended to "grow" an array.
  *    e.g. 20 images of size (256, 256, 4, 16), i.e. 4 slice and 16 channels, can be appended
  *    one at a time to make a (256, 256, 4, 16, 20) array in the file.
  *
- *  Method 2: Images of different sizes can be appended individually.
- *
  */
 EXPORTISMRMRD int ismrmrd_append_image(const ISMRMRD_Dataset *dset, const char *varname,
-                                       const int block_mode, const ISMRMRD_Image *im);
+                                       const ISMRMRD_Image *im);
 
 /**
  *   Reads an image stored with appendImage.
@@ -126,16 +116,13 @@ EXPORTISMRMRD uint32_t ismrmrd_get_number_of_images(const ISMRMRD_Dataset *dset,
  *  Please consult @See NDArray struct for details.
  *
  *  Arrays contain simple data elements such as float, double, etc.
- *  Arrays can be stored in one of two ways to allow for easy viewing in other applications.
  *
- *  Method 1: Arrays of the same size can be appended to "grow" an array,
+ *  Arrays of the same size can be appended to "grow" an array,
  *    e.g. 3D arrays of size (K,L,M) can be appended to grow a 4D array of size (K,L,M,N).
  *
- *  Method 2:Arrays of varying dimensionality and size can be appended as blobs of data.
- *
  */
 EXPORTISMRMRD int ismrmrd_append_array(const ISMRMRD_Dataset *dset, const char *varname,
-                                       const int block_mode, const ISMRMRD_NDArray *arr);
+                                       const ISMRMRD_NDArray *arr);
 
 /**
  *  Reads an array from the data file.
@@ -171,13 +158,13 @@ public:
     void readAcquisition(uint32_t index, Acquisition &acq);
     uint32_t getNumberOfAcquisitions();
     // Images
-    template <typename T> void appendImage(const std::string &var, const ISMRMRD_BlockModes blockmode, const Image<T> &im);
-    void appendImage(const std::string &var, const ISMRMRD_BlockModes blockmode, const ISMRMRD_Image *im);
+    template <typename T> void appendImage(const std::string &var, const Image<T> &im);
+    void appendImage(const std::string &var, const ISMRMRD_Image *im);
     template <typename T> void readImage(const std::string &var, uint32_t index, Image<T> &im);
     uint32_t getNumberOfImages(const std::string &var);
     // NDArrays
-    template <typename T> void appendNDArray(const std::string &var, const ISMRMRD_BlockModes blockmode, const NDArray<T> &arr);
-    void appendNDArray(const std::string &var, const ISMRMRD_BlockModes blockmode, const ISMRMRD_NDArray *arr);
+    template <typename T> void appendNDArray(const std::string &var, const NDArray<T> &arr);
+    void appendNDArray(const std::string &var, const ISMRMRD_NDArray *arr);
     template <typename T> void readNDArray(const std::string &var, uint32_t index, NDArray<T> &arr);
     uint32_t getNumberOfNDArrays(const std::string &var);
 
diff --git a/libsrc/dataset.c b/libsrc/dataset.c
index 9c3bdea..53431a6 100644
--- a/libsrc/dataset.c
+++ b/libsrc/dataset.c
@@ -159,20 +159,6 @@ typedef struct HDF5_Acquisition
     hvl_t data;
 } HDF5_Acquisition;
 
-typedef struct HDF5_NDArrayBlob
-{
-    uint16_t version;
-    uint16_t data_type;
-    uint16_t ndim;
-    uint16_t dims[ISMRMRD_NDARRAY_MAXDIM];
-    hvl_t data;
-} HDF5_NDArrayBlob;
-
-static hid_t get_hdf5type_char(void) {
-    hid_t datatype = H5Tcopy(H5T_NATIVE_CHAR);
-    return datatype;
-}
-
 static hid_t get_hdf5type_uint16(void) {
     hid_t datatype = H5Tcopy(H5T_NATIVE_UINT16);
     return datatype;
@@ -423,31 +409,6 @@ static hid_t get_hdf5type_image_attribute_string(void) {
     return datatype;
 }
     
-static hid_t get_hdf5type_ndarrayblob(void) {
-    hid_t datatype, vartype, vlvartype;
-    herr_t h5status;
-    hsize_t arraydims[1];
-    
-    datatype = H5Tcreate(H5T_COMPOUND, sizeof(HDF5_NDArrayBlob));
-    h5status = H5Tinsert(datatype, "version", HOFFSET(HDF5_NDArrayBlob, version), H5T_NATIVE_UINT16);
-    h5status = H5Tinsert(datatype, "data_type", HOFFSET(HDF5_NDArrayBlob, data_type), H5T_NATIVE_UINT16);
-    arraydims[0] = ISMRMRD_NDARRAY_MAXDIM;
-    vartype = H5Tarray_create2(H5T_NATIVE_UINT16, 1, arraydims);
-    h5status = H5Tinsert(datatype, "dims", HOFFSET(HDF5_NDArrayBlob, dims), vartype);
-    vartype = get_hdf5type_char();
-    vlvartype = H5Tvlen_create(vartype);
-    h5status = H5Tinsert(datatype, "data", HOFFSET(HDF5_NDArrayBlob, data), vlvartype);
-    
-    H5Tclose(vartype);
-    H5Tclose(vlvartype);
-    
-    if (h5status < 0) {
-        ISMRMRD_PUSH_ERR(ISMRMRD_FILEERROR, "Failed get NDArrayBlob data type");
-    }
-    
-    return datatype;
-}
-
 static hid_t get_hdf5type_ndarray(uint16_t data_type) {
     
     hid_t hdfdatatype = -1;
@@ -1023,8 +984,7 @@ int ismrmrd_read_acquisition(const ISMRMRD_Dataset *dset, uint32_t index, ISMRMR
     return ISMRMRD_NOERROR;
 }
 
-int ismrmrd_append_image(const ISMRMRD_Dataset *dset, const char *varname,
-                         const int block_mode, const ISMRMRD_Image *im) {
+int ismrmrd_append_image(const ISMRMRD_Dataset *dset, const char *varname, const ISMRMRD_Image *im) {
     int status;
     hid_t datatype;
     char *path, *headerpath, *attrpath, *datapath;
@@ -1113,8 +1073,7 @@ uint32_t ismrmrd_get_number_of_images(const ISMRMRD_Dataset *dset, const char *v
     return numimages;
 }
 
-int ismrmrd_append_array(const ISMRMRD_Dataset *dset, const char *varname,
-                         const int block_mode, const ISMRMRD_NDArray *arr) {
+int ismrmrd_append_array(const ISMRMRD_Dataset *dset, const char *varname, const ISMRMRD_NDArray *arr) {
     int status;
     hid_t datatype;
     uint16_t ndim, *dims;
diff --git a/libsrc/dataset.cpp b/libsrc/dataset.cpp
index 135c63a..2d8b0a2 100644
--- a/libsrc/dataset.cpp
+++ b/libsrc/dataset.cpp
@@ -78,30 +78,30 @@ uint32_t Dataset::getNumberOfAcquisitions()
 }
 
 // Images
-template <typename T>void Dataset::appendImage(const std::string &var, const ISMRMRD_BlockModes blockmode, const Image<T> &im)
+template <typename T>void Dataset::appendImage(const std::string &var, const Image<T> &im)
 {
-    int status = ismrmrd_append_image(&dset_, var.c_str(), blockmode, reinterpret_cast<const ISMRMRD_Image*>(&im));
+    int status = ismrmrd_append_image(&dset_, var.c_str(), reinterpret_cast<const ISMRMRD_Image*>(&im));
     if (status != ISMRMRD_NOERROR) {
         throw std::runtime_error(build_exception_string());
     }
 }
 
-void Dataset::appendImage(const std::string &var, const ISMRMRD_BlockModes blockmode, const ISMRMRD_Image *im)
+void Dataset::appendImage(const std::string &var, const ISMRMRD_Image *im)
 {
-    int status = ismrmrd_append_image(&dset_, var.c_str(), blockmode, im);
+    int status = ismrmrd_append_image(&dset_, var.c_str(), im);
     if (status != ISMRMRD_NOERROR) {
         throw std::runtime_error(build_exception_string());
     }
 }
 // Specific instantiations
-template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const ISMRMRD_BlockModes blockmode, const Image<uint16_t> &im);
-template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const ISMRMRD_BlockModes blockmode, const Image<int16_t> &im);
-template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const ISMRMRD_BlockModes blockmode, const Image<uint32_t> &im);
-template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const ISMRMRD_BlockModes blockmode, const Image<int32_t> &im);
-template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const ISMRMRD_BlockModes blockmode, const Image<float> &im);
-template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const ISMRMRD_BlockModes blockmode, const Image<double> &im);
-template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const ISMRMRD_BlockModes blockmode, const Image<complex_float_t> &im);
-template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const ISMRMRD_BlockModes blockmode, const Image<complex_double_t> &im);
+template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const Image<uint16_t> &im);
+template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const Image<int16_t> &im);
+template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const Image<uint32_t> &im);
+template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const Image<int32_t> &im);
+template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const Image<float> &im);
+template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const Image<double> &im);
+template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const Image<complex_float_t> &im);
+template EXPORTISMRMRD void Dataset::appendImage(const std::string &var, const Image<complex_double_t> &im);
 
 
 template <typename T> void Dataset::readImage(const std::string &var, uint32_t index, Image<T> &im) {
@@ -119,27 +119,27 @@ uint32_t Dataset::getNumberOfImages(const std::string &var)
 
 
 // NDArrays
-template <typename T> void Dataset::appendNDArray(const std::string &var, const ISMRMRD_BlockModes blockmode, const NDArray<T> &arr)
+template <typename T> void Dataset::appendNDArray(const std::string &var, const NDArray<T> &arr)
 {
-    int status = ismrmrd_append_array(&dset_, var.c_str(), blockmode, static_cast<const ISMRMRD_NDArray*>(&arr));
+    int status = ismrmrd_append_array(&dset_, var.c_str(), static_cast<const ISMRMRD_NDArray*>(&arr));
     if (status != ISMRMRD_NOERROR) {
         throw std::runtime_error(build_exception_string());
     }
 }
 
 // Specific instantiations
-template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const ISMRMRD_BlockModes blockmode, const NDArray<uint16_t> &arr);
-template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const ISMRMRD_BlockModes blockmode, const NDArray<int16_t> &arr);
-template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const ISMRMRD_BlockModes blockmode, const NDArray<uint32_t> &arr);
-template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const ISMRMRD_BlockModes blockmode, const NDArray<int32_t> &arr);
-template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const ISMRMRD_BlockModes blockmode, const NDArray<float> &arr);
-template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const ISMRMRD_BlockModes blockmode, const NDArray<double> &arr);
-template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const ISMRMRD_BlockModes blockmode, const NDArray<complex_float_t> &arr);
-template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const ISMRMRD_BlockModes blockmode, const NDArray<complex_double_t> &arr);
-
-void Dataset::appendNDArray(const std::string &var, const ISMRMRD_BlockModes blockmode, const ISMRMRD_NDArray *arr)
+template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const NDArray<uint16_t> &arr);
+template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const NDArray<int16_t> &arr);
+template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const NDArray<uint32_t> &arr);
+template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const NDArray<int32_t> &arr);
+template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const NDArray<float> &arr);
+template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const NDArray<double> &arr);
+template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const NDArray<complex_float_t> &arr);
+template EXPORTISMRMRD void Dataset::appendNDArray(const std::string &var, const NDArray<complex_double_t> &arr);
+
+void Dataset::appendNDArray(const std::string &var, const ISMRMRD_NDArray *arr)
 {
-    int status = ismrmrd_append_array(&dset_, var.c_str(), blockmode, arr);
+    int status = ismrmrd_append_array(&dset_, var.c_str(), arr);
     if (status != ISMRMRD_NOERROR) {
         throw std::runtime_error(build_exception_string());
     }
diff --git a/utilities/generate_cartesian_shepp_logan.cpp b/utilities/generate_cartesian_shepp_logan.cpp
index de6d216..fdc670a 100644
--- a/utilities/generate_cartesian_shepp_logan.cpp
+++ b/utilities/generate_cartesian_shepp_logan.cpp
@@ -1,3 +1,4 @@
+
 /*
  * generate_cartesian_shepp_logan.cpp
  *
@@ -202,9 +203,9 @@ int main(int argc, char** argv)
 	d.writeHeader(xml_header);
 
         //Write out some arrays for convenience
-        d.appendNDArray("phantom", ISMRMRD_BLOCKMODE_ARRAY, *phantom);
-        d.appendNDArray("csm", ISMRMRD_BLOCKMODE_ARRAY, *coils);
-        d.appendNDArray("coil_images", ISMRMRD_BLOCKMODE_ARRAY, coil_images);
+        d.appendNDArray("phantom", *phantom);
+        d.appendNDArray("csm", *coils);
+        d.appendNDArray("coil_images", coil_images);
         
 	return 0;
 }
diff --git a/utilities/recon_cartesian_2d.cpp b/utilities/recon_cartesian_2d.cpp
index c6a627d..691e262 100644
--- a/utilities/recon_cartesian_2d.cpp
+++ b/utilities/recon_cartesian_2d.cpp
@@ -142,7 +142,7 @@ int main(int argc, char** argv)
     //And so on
     
     //Let's write the reconstructed image into the same data file
-    d.appendImage("myimage", ISMRMRD::ISMRMRD_BLOCKMODE_ARRAY, img_out);
+    d.appendImage("myimage", img_out);
 
     return 0;
 }

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