bionic (1) h5math.1.gz

Provided by: h5utils_1.13-2_amd64 bug

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 single h5 file can
       contain multiple data sets; by default, h5math creates a dataset called "h5math", but this can be changed
       via  the  -d  option,  or  by using the syntax HDF5FILE:DATASET.  The -a option 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
       as d1, the second as d2, 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 -0 option will change the x/y/z origin to the center of the dataset (t is unaffected), and the -r
       res option will specify the "resolution", dividing the x/y/z coordinates by res.

       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 -n size option, where size is 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 -xyzt options.

OPTIONS

       -h     Display help on the command-line options and usage.

       -V     Print the version number and copyright info for h5math.

       -v     Verbose output.

       -a     If 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.

       -e expression
              Specify 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.

       -f filename
              Name of a text file to read the expression from, if no -e expression is  specified.   Defaults  to
              stdin.

       -x ix, -y iy, -z iz, -t it
              This  tells  h5math  to  use a particular slice of a multi-dimensional dataset.  e.g.  -x uses the
              subset (with one less dimension) at an x index of ix (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 -t option specifies a slice in the last  dimension,  whichever
              that  might  be.  See also the -0 option to shift the origin of the x/y/z slice coordinates to the
              dataset center.

       -0     Shift 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.  (-t
              coordinates 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.

       -r res Use  a  resolution  res for x/y/z (but not t) variables in the expression, so that the data "grid"
              coordinates are divided by res.  The default res is 1.

              For example, if the x dimension has 21 grid steps, setting a res of 20 will mean that x  variables
              in the expression run from 0.0 to 1.0 (or -0.5 to 0.5 if -0 is specified), instead of 0 to 20.

              -r does not affect the coordinates used for slices, which are always integers.

       -n size
              The  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: size is of the form MxNxLx... (with M, N, L being integers) and may be
              of any dimensionality.

       -d name
              Write to dataset name in the output; otherwise, the output dataset is called  "data"  by  default.
              Also  use dataset name in the input; otherwise, the first input dataset (alphabetically) in a file
              is used.  Alternatively, use the syntax HDF5FILE:DATASET (which overrides the -d option).

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.