rotatevol(1)                                                      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 (-c) 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
              quadratic.

       -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)

       -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 768.

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



BL3DEMC                              4.7.3                        rotatevol(1)