[svn-r769] H5.intro.html

Revised and extended hyperslab selection image.
	Added section "Selecting a union of hyperslabs."
IH_map*.gif  (6 new files)
	New images for "Intro to HDF5."
	As a composite, these replace H5.intro.datamap.gif.
H5.intro.datamap.gif
	Removed.  Replaced by the composite IH_map*.gif.

RM_H5RA.html  (new file)
RM_H5Front.html
Tools.html
Ragged.html
H5.user.html
	Changed all H5R functions to H5RA.
	Changed Ragged Array API references from H5R to H5RA.
	Changed links to RM_H5R.html to RM_H5RA.html.
RM_H5R.html
	Removed.  Replaced by RM_H5RA.html.
This commit is contained in:
Frank Baker 1998-10-20 22:33:19 -05:00
parent cf65d53dc8
commit ca9639706e
13 changed files with 465 additions and 40 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@ -4,7 +4,7 @@
<META NAME="Generator" CONTENT="Microsoft Word 97">
<TITLE>Introduction to HDF5</TITLE>
</HEAD>
<BODY LINK="#0000ff" VLINK="#800080">
<BODY LINK="#0000ff" VLINK="#800080" bgcolor="#FFFFFF">
<!--
@ -373,7 +373,23 @@ status_n = H5Sget_simple_extent_dims(dataspace, dims_out);
printf("rank %d, dimensions %d x %d \n", rank, dims_out[0], dims_out[1]);</PRE>
</CODE><H4><A NAME="_Toc429885316">Reading and writing a portion of a dataset</A></H4>
<P>In the previous discussion, we describe how to access an entire dataset with one write (or read) operation. HDF5 also supports access to portions (or selections) of a dataset in one read/write operation. Currently selections are limited to hyperslabs and the lists of independent points. Both types of selection will be discussed in the following sections. Several sample cases of selection reading/writing are shown on the following figure.
<p align=center><img src="H5.intro.datamap.gif"></p>
<center>
<table bgcolor="#FFFFFF" border=1>
<tr><td align=center>
<img src="IH_mapHead.gif">
</tr></td><tr><td align=center>
<img src="IH_map1.gif">
</tr></td><tr><td align=center>
<img src="IH_map2.gif">
</tr></td><tr><td align=center>
<img src="IH_map3.gif">
</tr></td><tr><td align=center>
<img src="IH_map4.gif">
</tr></td><tr><td align=center>
<img src="IH_mapFoot.gif">
</tr></td>
</table>
</center>
</B><P>In example (a) a single hyperslab is read from the midst of a two-dimensional array in a file and stored in the corner of a smaller two-dimensional array in memory. In (b) a regular series of blocks is read from a two-dimensional array in the file and stored as a contiguous sequence of values at a certain offset in a one-dimensional array in memory. In (c) a sequence of points with no regular pattern is read from a two-dimensional array in a file and stored as a sequence of points with no regular pattern in a three-dimensional array in memory.
<P>As these examples illustrate, whenever we perform partial read/write operations on the data, the following information must be provided: file dataspace, file dataspace selection, memory dataspace and memory dataspace selection. After the required information is specified, actual read/write operation on the portion of data is done in a single call to the HDF5 read/write functions H5Dread(write).
<H5><A NAME="_Toc429885317">Selecting hyperslabs</A></H5>
@ -998,6 +1014,7 @@ ret = H5Dwrite(dataset, H5T_NATIVE_INT, mid2, fid, H5P_DEFAULT, values);
<P>&nbsp;
</FONT><P>After these operations, the file dataspace will have the following values:
<center>
<TABLE BORDER CELLSPACING=1 CELLPADDING=7 WIDTH=460>
<TR><TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<B><CODE><P>53</B></CODE></TD>
@ -1156,8 +1173,416 @@ ret = H5Dwrite(dataset, H5T_NATIVE_INT, mid2, fid, H5P_DEFAULT, values);
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
</TR>
</TABLE>
</center>
<P><A HREF="#WriteSelected"><FONT FACE="Times">Example 3</FONT></A><FONT FACE="Times"> contains a complete program that performs these subsetting operations.
<H5><A NAME="_SelectUnion">Selecting a union of hyperslabs</A></H5>
</font>
The HDF5 Library allows the user to select a union of hyperslabs and
write or read the selection into another selection. The shapes of
the two selections may differ, but the number of elements must be equal.
<p>
Suppose that we want to read two overlapping hyperslabs from the dataset
written in the previous example into a union of hyperslabs in the memory
dataset. This exercise is illustrated in the two figures immediately below.
Note that the memory dataset has a different shape from the previously
written dataset. Similarly, the selection in the memory dataset
could have a different shape than the selected union of hyperslabs in
the original file; for simplicity, we will preserve the selection's shape
in this example.
<p>
<center>
<b>Selection of a union of hyperslabs in a file dataset</b><br>
<TABLE BORDER CELLSPACING=1 CELLPADDING=7 WIDTH=460>
<TR><TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<B><CODE><P>53</B></CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>1</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>2</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>3</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>4</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>5</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>6</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>7</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>8</CODE></TD>
</TR>
<TR><TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>9</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">
<CODE><P>10</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">
<CODE><P>11</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">
<CODE><P>12</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>13</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>14</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>15</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>16</CODE></TD>
</TR>
<TR><TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>17</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">
<CODE><P>18</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#88FF88">
<CODE><P>19</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#88FF88">
<CODE><P>20</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>21</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44" border=1>
<CODE><P>22</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>23</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>24</CODE></TD>
</TR>
<TR><TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">
<B><CODE><P>59</B></CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#88FF88">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#88FF88">
<B><CODE><P>61</B></CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
</TR>
<TR><TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>25</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>26</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>27</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>28</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>29</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>30</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>31</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>32</CODE></TD>
</TR>
<TR><TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>33</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>34</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>35</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>36</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<B><CODE><P>67</B></CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>37</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>38</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>39</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>40</CODE></TD>
</TR>
<TR><TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>41</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>42</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>43</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>44</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>45</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>46</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>47</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>
<CODE><P>48</CODE></TD>
</TR>
<TR><TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
</TR>
</TABLE>
<font size=-1><i>(Note: The above table highlights hyperslab selections
with green, blue, and yellow <br> shading. This shading may not
appear properly in black-and-white printed copies.)</i></font>
</center>
<p>
<center>
<b>Selection of a union of hyperslabs in a memory dataset</b><br>
<font size=-1>Blank cells in this figure actually contain values written
when the dataset was initialized.</font>
<TABLE BORDER CELLSPACING=1 CELLPADDING=7 WIDTH=345>
<TR>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">
<CODE><P>10</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">
<CODE><P>11</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">
<CODE><P>12</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
</TR>
<TR>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">
<CODE><P>18</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#88FF88">
<CODE><P>19</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#88FF88">
<CODE><P>20</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>21</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44" border=1>
<CODE><P>22</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
</TR>
<TR>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#44FFFF">
<B><CODE><P>59</B></CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#88FF88">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#88FF88">
<B><CODE><P>61</B></CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
</TR>
<TR>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>27</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>28</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>29</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>30</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
</TR>
<TR>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>35</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>36</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<B><CODE><P>67</B></CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>37</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>38</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
</TR>
<TR>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>43</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>44</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>45</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1 bgcolor="#FFFF44">
<CODE><P>46</CODE></TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
</TR>
<TR>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
</TR>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
<TD WIDTH="8%" VALIGN="TOP" HEIGHT=1>&nbsp;</TD>
</TR>
</TABLE>
<font size=-1><i>(Note: The above table highlights hyperslab selections
with green, blue, and yellow <br> shading. This shading may not
appear properly in black-and-white printed copies.)</i></font>
</center>
<p>
The following lines of code show the required steps.
<p>
First obtain the dataspace identifier for the dataset in the file.
<pre>
/*
* Get dataspace of the open dataset.
*/
fid = H5Dget_space(dataset);
</pre>
Then select the hyperslab with the size 3x4 and
the left upper corner at the position (1,2):
<pre>
/*
* Select first hyperslab for the dataset in the file. The following
* elements are selected:
* 10 0 11 12
* 18 0 19 20
* 0 59 0 61
*
*/
start[0] = 1; start[1] = 2;
block[0] = 1; block[1] = 1;
stride[0] = 1; stride[1] = 1;
count[0] = 3; count[1] = 4;
ret = H5Sselect_hyperslab(fid, H5S_SELECT_SET, start, stride, count, block);
</pre>
Now select the second hyperslab with the size 6x5 at the position (2,4),
and create the union with the first hyperslab.
<pre>
/*
* Add second selected hyperslab to the selection.
* The following elements are selected:
* 19 20 0 21 22
* 0 61 0 0 0
* 27 28 0 29 30
* 35 36 67 37 38
* 43 44 0 45 46
* 0 0 0 0 0
* Note that two hyperslabs overlap. Common elements are:
* 19 20
* 0 61
*/
start[0] = 2; start[1] = 4;
block[0] = 1; block[1] = 1;
stride[0] = 1; stride[1] = 1;
count[0] = 6; count[1] = 5;
ret = H5Sselect_hyperslab(fid, H5S_SELECT_OR, start, stride, count, block);
</pre>
Note that when we add the selected hyperslab to the union, the
second argument to the <code>H5Sselect_hyperslab</code> function
has to be <code>H5S_SELECT_OR</code> instead of <code>H5S_SELECT_SET</code>.
Using <code>H5S_SELECT_SET</code> would be reset the selection to
the second hyperslab.
<p>
Now define the memory dataspace and select the union of the hyperslabs
in the memory dataset.
<pre>
/*
* Create memory dataspace.
*/
mid = H5Screate_simple(MSPACE_RANK, mdim, NULL);
/*
* Select two hyperslabs in memory. Hyperslabs has the same
* size and shape as the selected hyperslabs for the file dataspace.
*/
start[0] = 0; start[1] = 0;
block[0] = 1; block[1] = 1;
stride[0] = 1; stride[1] = 1;
count[0] = 3; count[1] = 4;
ret = H5Sselect_hyperslab(mid, H5S_SELECT_SET, start, stride, count, block);
start[0] = 1; start[1] = 2;
block[0] = 1; block[1] = 1;
stride[0] = 1; stride[1] = 1;
count[0] = 6; count[1] = 5;
ret = H5Sselect_hyperslab(mid, H5S_SELECT_OR, start, stride, count, block);
</pre>
Finally we can read the selected data from the file dataspace to the selection
in memory with one call to the <code>H5Dread</code> function.
<pre>
ret = H5Dread(dataset, H5T_NATIVE_INT, mid, fid, H5P_DEFAULT, matrix_out);
</pre>
<P>
<A HREF="#WriteSelected">Example 3</a> includes this code along with
the previous selection example.
</FONT><H4><A NAME="_Toc429885319">Creating compound datatypes</A></H4>
<B><P>Properties of compound datatypes. </B>A compound datatype is similar to a struct in C or a common block in Fortran. It is a collection of one or more atomic types or small arrays of such types. To create and use of a compound datatype you need to refer to various <i>properties</i> of the data compound datatype:
@ -2765,7 +3190,7 @@ attr_info(hid_t loc_id, const char *name, void *opdata)
<tr><td align=left valign=top>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 11 September 1998
Last modified: 20 October 1998
</td><td align=right valign=top>
<a href="Copyright.html">Copyright</a>&nbsp;&nbsp;

View File

@ -38,7 +38,7 @@
Configuration Parameters</a> -
A list of HDF5 environment variables and configuration parameters.
<li><a href="Ragged.html">Ragged Arrays</a> -
A guide to the H5R interface.
A guide to the H5RA interface.
&nbsp;&nbsp;<em><font color=red>(Experimental)</font></em>
</ul>

BIN
doc/html/IH_map1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
doc/html/IH_map2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
doc/html/IH_map3.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
doc/html/IH_map4.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
doc/html/IH_mapFoot.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
doc/html/IH_mapHead.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -15,7 +15,7 @@ HDF5 Reference Manual&nbsp;
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
<!--
<a href="RM_H5R.html">H5R</a>&nbsp;&nbsp;
<a href="RM_H5RA.html">H5RA</a>&nbsp;&nbsp;
-->
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;
@ -52,7 +52,7 @@ tools required to meet specific aspects of the HDF5 data-handling requirements.
-->
<!--
<hr>
<li>Experimental interface:<a href="RM_H5R.html">Ragged Arrays</a>&nbsp;&nbsp; -- The <strong>H5R</strong> API for ragged arrays.
<li>Experimental interface:<a href="RM_H5RA.html">Ragged Arrays</a>&nbsp;&nbsp; -- The <strong>H5RA</strong> API for ragged arrays.
-->
@ -69,7 +69,7 @@ HDF5 Reference Manual&nbsp;
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
<!--
<a href="RM_H5R.html">H5R</a>&nbsp;&nbsp;
<a href="RM_H5RA.html">H5RA</a>&nbsp;&nbsp;
-->
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;

View File

@ -1,6 +1,6 @@
<html>
<head><title>
HDF5/H5R Draft API Specification
HDF5/H5RA Draft API Specification
</title></head>
<body>
@ -15,7 +15,7 @@ HDF5/H5R Draft API Specification
<a href="RM_H5F.html">H5F</a>&nbsp;&nbsp;
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
H5R&nbsp;&nbsp;
H5RA&nbsp;&nbsp;
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;
<a href="RM_H5Z.html">H5Z</a>&nbsp;&nbsp;
@ -27,14 +27,14 @@ H5R&nbsp;&nbsp;
<hr>
<center>
<h1>H5R: Ragged Array Interface</h1>
<h1>H5RA: Ragged Array Interface</h1>
</center>
<h2>Ragged Array API Functions</h2>
<table border=1>
<tr><th align=left>
<font color=red>
The H5R Interface is strictly experimental at this time;
The H5RA Interface is strictly experimental at this time;
the interface may change dramatically or support for ragged arrays
may be unavailable in future in releases. As a result, future releases
may be unable to retrieve data stored with this interface.
@ -50,14 +50,14 @@ These functions enable the user to store and retrieve data in ragged arrays.
<table border=0>
<tr><td valign=top>
<ul>
<li><a href="#Ragged-Create">H5Rcreate</a>
<li><a href="#Ragged-Open">H5Ropen</a>
<li><a href="#Ragged-Close">H5Rclose</a>
<li><a href="#Ragged-Create">H5RAcreate</a>
<li><a href="#Ragged-Open">H5RAopen</a>
<li><a href="#Ragged-Close">H5RAclose</a>
</ul>
</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td valign=top>
<ul>
<li><a href="#Ragged-Write">H5Rwrite</a>
<li><a href="#Ragged-Read">H5Rread</a>
<li><a href="#Ragged-Write">H5RAwrite</a>
<li><a href="#Ragged-Read">H5RAread</a>
</ul>
</td></tr>
</table>
@ -68,16 +68,16 @@ These functions enable the user to store and retrieve data in ragged arrays.
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Ragged-Create">H5Rcreate</a>
<dt><strong>Name:</strong> <a name="Ragged-Create">H5RAcreate</a>
<dt><strong>Signature:</strong>
<dd><em> </em> <code>H5Rcreate</code>(<em> </em> <code> </code>,
<dd><em> </em> <code>H5RAcreate</code>(<em> </em> <code> </code>,
<em> </em> <code> </code>,
<em> </em> <code> </code>
)
<dt><strong>Purpose:</strong>
<dd>
<dt><strong>Description:</strong>
<dd><code>H5Rcreate</code>
<dd><code>H5RAcreate</code>
<dt><strong>Parameters:</strong>
<dl>
<dt><em> </em> <code> </code>
@ -95,16 +95,16 @@ These functions enable the user to store and retrieve data in ragged arrays.
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Ragged-Open">H5Ropen</a>
<dt><strong>Name:</strong> <a name="Ragged-Open">H5RAopen</a>
<dt><strong>Signature:</strong>
<dd><em> </em> <code>H5Ropen</code>(<em> </em> <code> </code>,
<dd><em> </em> <code>H5RAopen</code>(<em> </em> <code> </code>,
<em> </em> <code> </code>,
<em> </em> <code> </code>
)
<dt><strong>Purpose:</strong>
<dd>
<dt><strong>Description:</strong>
<dd><code>H5Ropen</code>
<dd><code>H5RAopen</code>
<dt><strong>Parameters:</strong>
<dl>
<dt><em> </em> <code> </code>
@ -122,16 +122,16 @@ These functions enable the user to store and retrieve data in ragged arrays.
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Ragged-Close">H5Rclose</a>
<dt><strong>Name:</strong> <a name="Ragged-Close">H5RAclose</a>
<dt><strong>Signature:</strong>
<dd><em> </em> <code>H5Rclose</code>(<em> </em> <code> </code>,
<dd><em> </em> <code>H5RAclose</code>(<em> </em> <code> </code>,
<em> </em> <code> </code>,
<em> </em> <code> </code>
)
<dt><strong>Purpose:</strong>
<dd>
<dt><strong>Description:</strong>
<dd><code>H5Rclose</code>
<dd><code>H5RAclose</code>
<dt><strong>Parameters:</strong>
<dl>
<dt><em> </em> <code> </code>
@ -149,16 +149,16 @@ These functions enable the user to store and retrieve data in ragged arrays.
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Ragged-Write">H5Rwrite</a>
<dt><strong>Name:</strong> <a name="Ragged-Write">H5RAwrite</a>
<dt><strong>Signature:</strong>
<dd><em> </em> <code>H5Rwrite</code>(<em> </em> <code> </code>,
<dd><em> </em> <code>H5RAwrite</code>(<em> </em> <code> </code>,
<em> </em> <code> </code>,
<em> </em> <code> </code>
)
<dt><strong>Purpose:</strong>
<dd>
<dt><strong>Description:</strong>
<dd><code>H5Rwrite</code>
<dd><code>H5RAwrite</code>
<p>
Datatype conversion takes place at the time of a read or write
and is automatic. See the
@ -184,16 +184,16 @@ These functions enable the user to store and retrieve data in ragged arrays.
<hr>
<dl>
<dt><strong>Name:</strong> <a name="Ragged-Read">H5Rread</a>
<dt><strong>Name:</strong> <a name="Ragged-Read">H5RAread</a>
<dt><strong>Signature:</strong>
<dd><em> </em> <code>H5Rread</code>(<em> </em> <code> </code>,
<dd><em> </em> <code>H5RAread</code>(<em> </em> <code> </code>,
<em> </em> <code> </code>,
<em> </em> <code> </code>
)
<dt><strong>Purpose:</strong>
<dd>
<dt><strong>Description:</strong>
<dd><code>H5Rread</code>
<dd><code>H5RAread</code>
<p>
Datatype conversion takes place at the time of a read or write
and is automatic. See the
@ -227,7 +227,7 @@ These functions enable the user to store and retrieve data in ragged arrays.
<a href="RM_H5F.html">H5F</a>&nbsp;&nbsp;
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
H5R&nbsp;&nbsp;
H5RA&nbsp;&nbsp;
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;
<a href="RM_H5Z.html">H5Z</a>&nbsp;&nbsp;

View File

@ -10,7 +10,7 @@
<table border=1>
<tr><th align=left>
<font color=red>
The H5R Interface is strictly experimental at this time;
The H5RA Interface is strictly experimental at this time;
the interface may change dramatically or support for ragged arrays
may be unavailable in future in releases. As a result, future releases
may be unable to retrieve data stored with this interface.
@ -67,7 +67,7 @@ Do not create any archives using this interface!</center>
<h2>2. Opening and Closing</h2>
<dl>
<dt><code>hid_t H5Rcreate (hid_t <em>location</em>, const char
<dt><code>hid_t H5RAcreate (hid_t <em>location</em>, const char
*<em>name</em>, hid_t <em>type</em>, hid_t
<em>plist</em>)</code>
<dd>This function creates a new ragged array by creating the
@ -81,7 +81,7 @@ Do not create any archives using this interface!</center>
cannot be created.
<br><br>
<dt><code>hid_t H5Ropen (hid_t <em>location</em>, const char
<dt><code>hid_t H5RAopen (hid_t <em>location</em>, const char
*<em>name</em>)</code>
<dd>This function opens a ragged array by opening the specified
group and the component datasets (which should not be accessed
@ -89,7 +89,7 @@ Do not create any archives using this interface!</center>
be opened.
<br><br>
<dt><code>herr_t H5Rclose (hid_t <em>array</em>)</code>
<dt><code>herr_t H5RAclose (hid_t <em>array</em>)</code>
<dd>All ragged arrays should be closed by calling this
function. The group and component datasets will be closed
automatically by the library.
@ -104,7 +104,7 @@ Do not create any archives using this interface!</center>
number of rows on which to operate.
<dl>
<dt><code>herr_t H5Rwrite (hid_t <em>array_id</em>, hssize_t
<dt><code>herr_t H5RAwrite (hid_t <em>array_id</em>, hssize_t
<em>start_row</em>, hsize_t <em>nrows</em>, hid_t
<em>type</em>, hsize_t <em>size</em>[], void
*<em>buf</em>[])</code>
@ -119,7 +119,7 @@ Do not create any archives using this interface!</center>
the first row on which to operate.
<br><br>
<dt><code>herr_t H5Rread (hid_t <em>array_id</em>, hssize_t
<dt><code>herr_t H5RAread (hid_t <em>array_id</em>, hssize_t
<em>start_row</em>, hsize_t <em>nrows</em>, hid_t
<em>type</em>, hsize_t <em>size</em>[], void
*<em>buf</em>[])</code>

View File

@ -16,7 +16,7 @@ HDF5/Tools Draft API Specification
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
<!--
<a href="RM_H5R.html">H5R</a>&nbsp;&nbsp;
<a href="RM_H5RA.html">H5RA</a>&nbsp;&nbsp;
-->
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;
@ -243,7 +243,7 @@ These tools enable the user to examine HDF5 files interactively.
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
<!--
<a href="RM_H5R.html">H5R</a>&nbsp;&nbsp;
<a href="RM_H5RA.html">H5RA</a>&nbsp;&nbsp;
-->
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;