rotatevol(1) General Commands Manual rotatevol(1)
NAME
rotatevol - to rotate 3-dimensional data to arbitrary angles
SYNOPSIS
rotatevol [options] input_file output_file
DESCRIPTION
This program will rotate all or part of a three-dimension volume of
data. The rotations may be by any angles about the three axes. Tilt
angles and origin information in the header are properly maintained so
that the new data stack will have a coordinate system congruent with
the old one.
Before running the program, examine the data set to determine what
rotations you desire. The overall rotation of the data set is speci-
fied by tilt angles for three successive rotations about the the 3
axes, with rotation first around Z, then around Y, then around X. Pos-
itive angles give counterclockwise rotations (looking down an axis
toward the origin). This is the same way that angles are specified and
acted on in the Slicer window of 3dmod, so you can use the Slicer to
determine your desired angles, as long as the data volume is not being
viewed with Y and Z flipped. If you only want part of the data set,
determine the center of the region that you want to extract. This
region is specified by the index coordinates of that point in the input
file.
OPTIONS
Rotatevol uses the PIP package for input (see the manual page for
pip) and can take input interactively for options that existed when
it was converted, to maintain compatibility with old command files.
The following options can be specified either as command line arguments
(with the -) or one per line in a command file or parameter file (with-
out the -). Options can be abbreviated to unique letters; the cur-
rently valid abbreviations for short names are shown in parentheses.
-input (-i) OR -InputFile File name
Input image file to rotate
-output (-ou) OR -OutputFile File name
Output file for rotated volume
-tempdir (-t) OR -TemporaryDirectory Text string
Directory to use for temporary files. The default is that the
temporary files will be placed in the current directory.
-size (-s) OR -OutputSizeXYZ Three integers
X, Y, Z dimensions of the output file (default is size of input
file)
-center (-ce) OR -RotationCenterXYZ Three floats
X, Y, Z index coordinates of the center of the region to be
rotated (Default is center of input file). This location will
be placed in the center of the output volume. Coordinates are
numbered from zero.
-angles (-a) OR -RotationAnglesZYX Three floats
Angles to rotate about Z, Y, and X axes. Rotations will be
applied in that order; first around Z, then Y, then X.
-back (-b) OR -BackRotate
Back-transform the volume by using the inverse of the transfor-
mation specified by the entered angles.
-order (-or) OR -InterpolationOrder Integer
Order of interpolation to use. Currently only quadratic (2) and
linear (1) interpolation are available; the default is quadrat-
ic.
-query (-q) OR -QuerySizeNeeded
With this entry, the program will compute the size of the output
volume needed to contain the whole original volume after rota-
tion. It will just print the sizes in X, Y, and Z then exit.
-fill (-f) OR -FillValue Floating point
Value to fill regions without image data (default is file mean)
-chunk (-ch) OR -ChunkSizesForHDF Three integers
Size of chunks in X, Y, and Z for output to an HDF file orga-
nized in chunks. Storing data this way will prevent the need to
output cubes of transformed data to scratch files and read them
back in to make the final output, when the volume is too large
to fit in the allowed memory. Enter 0,0,0 for the default size,
which is for chunks the same size as the cubes that would ordi-
narily be written to scratch files, and for no chunks at all if
data are being handled in one cube per layer. If a specific
size is entered for one or more axes, then the program will
first determine the division into cubes, and then make the chunk
size be the minimum of the cube size and the specified value for
each axis. When using chunks, the memory is limited to 15000
megabytes even if a larger value is entered.
-memory (-m) OR -MemoryLimit Integer
Amount of memory to allocate for the major arrays needed by the
program, in megabytes. This always includes memory for input
images and may include memory for a stack of output slices,
depending on the orientation of the output. The default is the
minimum of system memory minus 1 GB, 60% of system memory, and
12 GB for system memory up to 30 GB, and 40% of system memory
above 30 GB, but at least 768 MB.
-verbose (-v) OR -VerboseOutput Integer
1 for diagnostic output
-param (-p) OR -ParameterFile Parameter file
Read parameter entries as keyword-value pairs from a parameter
file.
-help (-h) OR -usage
Print help output
-StandardInput
Read parameter entries from standard input.
INTERACTIVE INPUT
If the program is started with no command line arguments, it reverts to
interactive input with the following entries:
Name of the input file with data to be rotated
Name of the output file for rotated data
Path name of directory (for example, /usr/tmp) where temporary files
can be placed, or Return to have files placed in the current
directory
X, Y, and Z dimensions of the output file
Index coordinates of the center of the region to be rotated in the
input file, or / to use the coordinates of the center of the file
Rotations around the Z, Y, and X axes
The program can work on an arbitrarily large volume. It reconstructs a
series of rectangular sub-regions of the output volume. For each
region, it reads into memory a rectangular region from the input volume
that contains all of the image area that rotates into that region of
output volume. It then uses linear or triquadratic interpolation to
find each pixel of the output subvolume, and writes the subvolume to a
scratch file if necessary. When all of the regions in one layer are
done, it reads back data from the scratch files and assembles each sec-
tion in that layer.
HISTORY
Written by David Mastronarde 7/25/91
Converted to PIP/autodoc 10/10/03
Converted to Fortran 95, parallelized with OpenMP, 6/14/09
BUGS
Email bug reports to mast at colorado dot edu.
IMOD 5.2.6 rotatevol(1)