[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