Provided by: h5utils_1.13-2_amd64

**NAME**

h5math - combine/create HDF5 files with math expressions

**SYNOPSIS**

h5math[OPTION]...OUTPUT-HDF5FILE[INPUT-HDF5FILES...]

**DESCRIPTION**

h5math takes any number of HDF5 files as input, along with a mathematical expression, and combines them to produce a new HDF5 file. HDF5 is a free, portable binary format and supporting library developed by the National Center for Supercomputing Applications at the University of Illinois in Urbana-Champaign. A singleh5file can contain multiple data sets; by default,h5mathcreates a dataset called "h5math", but this can be changed via the-doption, or by using the syntaxHDF5FILE:DATASET. The-aoption can be used to append new datasets to an existing HDF5 file. The same syntax is used to specify the dataset used in the input file(s); by default, the first dataset (alphabetically) is used. A simple example of h5math's usage is: h5math -e "d1 + 2*d2" out.h5 foo.h5 bar.h5:blah which produces a new file, out.h5, by adding the first dataset in foo.h5 with twice the "blah" dataset in bar.h5. In the expression (specified by-e), the first input dataset (from left to right) is referred to asd1, the second asd2, and so on. In addition to input datasets, you can also use the x/y/z coordinates of each point in the expression, referenced by "x" "y" and "z" variables (for the first three dimensions) as well as a "t" variable that refers to the last dimension. By default, these are integers starting at 0 at the corner of the dataset, but the-0option will change the x/y/z origin to the center of the dataset (t is unaffected), and the-rresoption will specify the "resolution", dividing the x/y/z coordinates byres. All of the input datasets must have the same dimensions, which are also the dimensions of the output. If there are no input files, and you are defining the output purely by a mathematical formula, you can specify the dimensions of the output explicitly via the-nsizeoption, wheresizeis e.g. "2x2x2". Sometimes, however, you want to use only a smaller-dimensional "slice" of multi- dimensional data. To do this, you specify coordinates in one (or more) slice dimension(s), via the-xyztoptions.

**OPTIONS**

-hDisplay help on the command-line options and usage.-VPrint the version number and copyright info for h5math.-vVerbose output.-aIf the HDF5 output file already exists, append the data as a new dataset rather than overwriting the file (the default behavior). An existing dataset of the same name within the file is overwritten, however.-eexpressionSpecify the mathematical expression that is used to construct the output (generally in " quotes to group the expression as one item in the shell), in terms of the variables for the input datasets and the coordinates as described above. Expressions use a C-like infix notation, with most standard operators and mathematical functions (+, sin, etc.) being supported. This functionality is provided (and its features determined) by GNU libmatheval.-ffilenameName of a text file to read the expression from, if no-eexpression is specified. Defaults to stdin.-xix,-yiy,-ziz,-titThis tellsh5mathto use a particular slice of a multi-dimensional dataset. e.g.-xuses the subset (with one less dimension) at an x index ofix(where the indices run from zero to one less than the maximum index in that direction). Here, x/y/z correspond to the first/second/third dimensions of the HDF5 dataset. The-toption specifies a slice in the last dimension, whichever that might be. See also the-0option to shift the origin of the x/y/z slice coordinates to the dataset center.-0Shift the origin of the x/y/z slice coordinates to the dataset center, so that e.g. -0 -x 0 (or more compactly -0x0) returns the central x plane of the dataset instead of the edge x plane. (-tcoordinates are not affected.) This also shifts the origin of the x/y/z variables in the expression so that 0 is the center of the dataset.-rresUse a resolutionresfor x/y/z (but not t) variables in the expression, so that the data "grid" coordinates are divided byres. The defaultresis 1. For example, if the x dimension has 21 grid steps, setting aresof 20 will mean that x variables in the expression run from 0.0 to 1.0 (or -0.5 to 0.5 if-0is specified), instead of 0 to 20.-rdoes not affect the coordinates used for slices, which are always integers.-nsizeThe output dataset must be the same size as the input datasets. If there are no input datasets (if you are defining the output purely by a formula), then you must specify the output size manually with this option:sizeis of the form MxNxLx... (with M, N, L being integers) and may be of any dimensionality.-dnameWrite to datasetnamein the output; otherwise, the output dataset is called "data" by default. Also use datasetnamein the input; otherwise, the first input dataset (alphabetically) in a file is used. Alternatively, use the syntaxHDF5FILE:DATASET(which overrides the-doption).

**BUGS**

Send bug reports to S. G. Johnson, stevenj@alum.mit.edu.

**AUTHORS**

Written by Steven G. Johnson. Copyright (c) 2005 by the Massachusetts Institute of Technology.