[ismrmrd] 153/281: Updated readme file
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:01:09 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 821a46098f593ab2e1fd72afaf861ccd07962fd7
Author: Michael S. Hansen <michael.hansen at nih.gov>
Date: Sat Jul 6 12:48:45 2013 -0400
Updated readme file
---
README.html | 73 +++++++++++++++++++++++++++++++++-------------------------
doc/README.rst | 14 +++++------
2 files changed, 48 insertions(+), 39 deletions(-)
diff --git a/README.html b/README.html
index 9b18e91..654c2e0 100644
--- a/README.html
+++ b/README.html
@@ -418,7 +418,7 @@ wget https://sourceforge.net/projects/ismrmrd/files/src/ismrmrd_latest.zip
<h2><a class="toc-backref" href="#id5">Linux installation</a></h2>
<p>The dependencies mentioned above should be included in most linux distributions. On Ubuntu you can install all required dependencies with:</p>
<pre class="literal-block">
-sudo apt-get install libhdf5-serial-dev h5utils cmake cmake-curses-gui libboost-dev libboost-thread-dev libboost-system-dev libxerces-c-dev xsdcxx doxygen git
+sudo apt-get install libhdf5-serial-dev h5utils cmake cmake-curses-gui libboost-all-dev libxerces-c-dev xsdcxx doxygen git
</pre>
<p>After installation of dependencies, the library can be installed with:</p>
<pre class="literal-block">
@@ -633,7 +633,7 @@ msbuild .\ISMRMRD.sln /p:Configuration=Release
<h2><a class="toc-backref" href="#id10">Fixed Data structures</a></h2>
<p>Each raw data acquisition is preceded by the following fixed layout structure:</p>
<pre class="literal-block">
-struct AcquisitionHeader
+typedef struct AcquisitionHeader
{
uint16_t version; /**< First unsigned int indicates the version */
uint64_t flags; /**< bit field with flags */
@@ -659,12 +659,12 @@ struct AcquisitionHeader
EncodingCounters idx; /**< Encoding loop counters, see above */
int32_t user_int[ISMRMRD_USER_INTS]; /**< Free user parameters */
float user_float[ISMRMRD_USER_FLOATS]; /**< Free user parameters */
-};
+} AcquisitionHeader;
</pre>
<p>Where EncodingCounters are defined as:</p>
<pre class="literal-block">
-struct EncodingCounters {
+typedef struct EncodingCounters {
uint16_t kspace_encode_step_1; /**< e.g. phase encoding line number */
uint16_t kspace_encode_step_2; /**< e.g. partition encodning number */
uint16_t average; /**< e.g. signal average number */
@@ -675,7 +675,7 @@ struct EncodingCounters {
uint16_t set; /**< e.g. flow encodning set */
uint16_t segment; /**< e.g. segment number for segmented acquisition */
uint16_t user[ISMRMRD_USER_INTS]; /**< Free user parameters */
-};
+} EncodingCounters;
</pre>
<p>The interpretation of some of these fields may vary from sequence to sequence, i.e. for a Cartesian sequence, <tt class="docutils literal">kspace_encode_step_1</tt> would be the phase encoding step, for a spiral sequence where phase encoding direction does not make sense, it would be the spiral interleave number. The <tt class="docutils literal">encoding_space_ref</tt> enables the user to tie an acquisition to a specific encoding space (see above) in case there are multiple, e.g. in s [...]
@@ -702,34 +702,34 @@ float* data_; //Actual data, elements = head_.number_of_samples*head_
<p>This suggested memory layout is only a suggestion. The HDF5 interface (see below) can be used to read the data into many different data structures. In fact, the user can choose to read only part of the header or not read the data, etc.</p>
<p>As mentioned above, the ISMRMRD format also suggests a way to store reconstructed images (or maybe image data used for calibration). An <tt class="docutils literal">ImageHeader</tt> structure is defined in <tt class="docutils literal">ismrmrd.h</tt>:</p>
<pre class="literal-block">
-struct ImageHeader
+typedef struct ImageHeader
{
- uint16_t version; /**< First unsigned int indicates the version */
- uint64_t flags; /**< bit field with flags */
- uint32_t measurement_uid; /**< Unique ID for the measurement */
- uint16_t matrix_size[3]; /**< Pixels in the 3 spatial dimensions */
- float field_of_view[3]; /**< Size (in mm) of the 3 spatial dimensions */
- uint16_t channels; /**< Number of receive channels */
- float position[ISMRMRD_POSITION_LENGTH]; /**< Three-dimensional spatial offsets from isocenter */
- float read_dir[ISMRMRD_DIRECTION_LENGTH]; /**< Directional cosines of the readout/frequency encoding */
- float phase_dir[ISMRMRD_DIRECTION_LENGTH]; /**< Directional cosines of the phase */
- float slice_dir[ISMRMRD_DIRECTION_LENGTH]; /**< Directional cosines of the slice direction */
- float patient_table_position[ISMRMRD_POSITION_LENGTH]; /**< Patient table off-center */
- uint16_t average; /**< e.g. signal average number */
- uint16_t slice; /**< e.g. imaging slice number */
- uint16_t contrast; /**< e.g. echo number in multi-echo */
- uint16_t phase; /**< e.g. cardiac phase number */
- uint16_t repetition; /**< e.g. dynamic number for dynamic scanning */
- uint16_t set; /**< e.g. flow encodning set */
- uint32_t acquisition_time_stamp; /**< Acquisition clock */
- uint32_t physiology_time_stamp[ISMRMRD_PHYS_STAMPS]; /**< Physiology time stamps, e.g. ecg, breating, etc. */
- uint16_t image_data_type; /**< e.g. unsigned short, float, complex float, etc. */
- uint16_t image_type; /**< e.g. magnitude, phase, complex, real, imag, etc. */
- uint16_t image_index; /**< e.g. image number in series of images */
- uint16_t image_series_index; /**< e.g. series number */
- int32_t user_int[ISMRMRD_USER_INTS]; /**< Free user parameters */
- float user_float[ISMRMRD_USER_FLOATS]; /**< Free user parameters */
-};
+ uint16_t version; /**< First unsigned int indicates the version */
+ uint64_t flags; /**< bit field with flags */
+ uint32_t measurement_uid; /**< Unique ID for the measurement */
+ uint16_t matrix_size[3]; /**< Pixels in the 3 spatial dimensions */
+ float field_of_view[3]; /**< Size (in mm) of the 3 spatial dimensions */
+ uint16_t channels; /**< Number of receive channels */
+ float position[ISMRMRD_POSITION_LENGTH]; /**< Three-dimensional spatial offsets from isocenter */
+ float read_dir[ISMRMRD_DIRECTION_LENGTH]; /**< Directional cosines of the readout/frequency encoding */
+ float phase_dir[ISMRMRD_DIRECTION_LENGTH]; /**< Directional cosines of the phase */
+ float slice_dir[ISMRMRD_DIRECTION_LENGTH]; /**< Directional cosines of the slice direction */
+ float patient_table_position[ISMRMRD_POSITION_LENGTH]; /**< Patient table off-center */
+ uint16_t average; /**< e.g. signal average number */
+ uint16_t slice; /**< e.g. imaging slice number */
+ uint16_t contrast; /**< e.g. echo number in multi-echo */
+ uint16_t phase; /**< e.g. cardiac phase number */
+ uint16_t repetition; /**< e.g. dynamic number for dynamic scanning */
+ uint16_t set; /**< e.g. flow encodning set */
+ uint32_t acquisition_time_stamp; /**< Acquisition clock */
+ uint32_t physiology_time_stamp[ISMRMRD_PHYS_STAMPS]; /**< Physiology time stamps, e.g. ecg, breating, etc. */
+ uint16_t image_data_type; /**< e.g. unsigned short, float, complex float, etc. */
+ uint16_t image_type; /**< e.g. magnitude, phase, complex, real, imag, etc. */
+ uint16_t image_index; /**< e.g. image number in series of images */
+ uint16_t image_series_index; /**< e.g. series number */
+ int32_t user_int[ISMRMRD_USER_INTS]; /**< Free user parameters */
+ float user_float[ISMRMRD_USER_FLOATS]; /**< Free user parameters */
+} ImageHeader;
</pre>
<p>In a similar fashion to the raw data acquisition data, the intention is to store a header followed by the image data. Since image data can be in several different format (e.g. float, complex, etc.), the memory layout is less well defined but can be described as:</p>
@@ -1224,6 +1224,7 @@ std::streambuf::setg (b, b, e);
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="userParameterLong" type="userParameterLongType"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="userParameterDouble" type="userParameterDoubleType"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="userParameterBase64" type="userParameterBase64Type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -1364,6 +1365,13 @@ std::streambuf::setg (b, b, e);
</xs:all>
</xs:complexType>
+ <xs:complexType name="userParameterBase64Type">
+ <xs:all>
+ <xs:element name="name" type="xs:string"/>
+ <xs:element name="value" type="xs:base64Binary"/>
+ </xs:all>
+ </xs:complexType>
+
<xs:complexType name="measurementInformationType">
<xs:all>
<xs:element minOccurs="1" name="seriesDate" type="xs:date"/>
@@ -1382,6 +1390,7 @@ std::streambuf::setg (b, b, e);
</xs:restriction>
</xs:simpleType>
</xs:element>
+ <xs:element minOccurs="0" name="initialSeriesNumber" type="xs:long"/>
<xs:element minOccurs="0" name="protocolName" type="xs:string"/>
<xs:element minOccurs="0" name="seriesDescription" type="xs:string"/>
</xs:all>
diff --git a/doc/README.rst b/doc/README.rst
index a2ee62d..d983db1 100644
--- a/doc/README.rst
+++ b/doc/README.rst
@@ -71,7 +71,7 @@ Linux installation
The dependencies mentioned above should be included in most linux distributions. On Ubuntu you can install all required dependencies with::
- sudo apt-get install libhdf5-serial-dev h5utils cmake cmake-curses-gui libboost-dev libboost-thread-dev libboost-system-dev libxerces-c-dev xsdcxx doxygen git
+ sudo apt-get install libhdf5-serial-dev h5utils cmake cmake-curses-gui libboost-all-dev libxerces-c-dev xsdcxx doxygen git
After installation of dependencies, the library can be installed with::
@@ -230,15 +230,15 @@ Each raw data acquisition is preceded by the following fixed layout structure:
.. include:: ../ismrmrd.h
:literal:
- :start-line: 133
- :end-line: 160
+ :start-line: 134
+ :end-line: 161
Where EncodingCounters are defined as:
.. include:: ../ismrmrd.h
:literal:
- :start-line: 117
- :end-line: 129
+ :start-line: 118
+ :end-line: 130
The interpretation of some of these fields may vary from sequence to sequence, i.e. for a Cartesian sequence, ``kspace_encode_step_1`` would be the phase encoding step, for a spiral sequence where phase encoding direction does not make sense, it would be the spiral interleave number. The ``encoding_space_ref`` enables the user to tie an acquisition to a specific encoding space (see above) in case there are multiple, e.g. in situations where a calibration scan may be integrated in the acq [...]
@@ -271,8 +271,8 @@ As mentioned above, the ISMRMRD format also suggests a way to store reconstructe
.. include:: ../ismrmrd.h
:literal:
- :start-line: 196
- :end-line: 224
+ :start-line: 197
+ :end-line: 225
In a similar fashion to the raw data acquisition data, the intention is to store a header followed by the image data. Since image data can be in several different format (e.g. float, complex, etc.), the memory layout is less well defined but can be described as::
--
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