Making PostScript from Vector Fields: avf2ps
Keywords: userguide

Next: Vector Field File Difference: Up: Command Line Utilities Previous: Making Bitmaps from Vector

##
Making PostScript from Vector Fields: avf2ps

The avf2ps utility creates a collection of color Encapsulated PostScript files from a collection of vector field files (e.g., `.omf`, `.ovf`), which can be embedded into larger PostScript documents or printed directly on a PostScript printer. Operation of the avf2ps command is modeled after the avf2ppm command and the print dialog box in mmDisp.

Launching
The avf2ps launch command is:

    tclsh oommf.tcl avf2ps [standard options] [-config file] [-f] \
       [-filter program] [-ipat pattern] [-opatexp regexp] [-opatsub sub] \
       [-v level] [infile ...]

where

`-config file`
  User configuration file that specifies image display parameters. This file is discussed in detail below.
`-f`
  Force overwriting of existing (output) files. By default, if avf2ps tries to create a file, say `foo.ps`, that already exists, it generates instead a new name of the form `foo.ps-000`, or `foo.ps-001`, ..., or `foo.ps-999`, that doesn't exist and writes to that instead. The `-f` flag disallows alternate filename generation, and overwrites `foo.ps` instead.
`-filter program`
  Post-processing application to run on each avf2ps output file. May be a pipeline of several programs.
`-ipat pattern`
  Specify input files using a pattern with ``glob-style'' wildcards. Mostly useful in DOS.
`-opatexp regexp`
  Specify the ``regular expression'' applied to input filenames to determine portion to be replaced in generation of output filenames. The default regular expression is: `(\.[^.]?[^.]?[^.]?$|$)`
`-opatsub sub`
  The string with which to replace the portion of input filenames matched by the `-opatexp regexp` during output filename generation. The default is `.eps`.
`-v level`
  Verbosity (informational message) level, with 0 generating only error messages, and larger numbers generating additional information. The `level` value is an integer, defaulting to 1.
`infile ...`
  List of input files to process.

The file specification options, `-ipat`, `-opatexp`, and `-opatsub`, are interpreted in the same manner as for the avf2ppm application.

If you have command line PostScript processing ``filter'' programs, e.g., ghostscript, then you can use the `-filter` option to pipe the output of avf2ps through that filter before it is written to the output file specified by the `-opat*` expressions. If the processing changes the format of the file, (e.g., from PostScript to PDF), then you will likely want to specify a `-opatsub` different from the default.

Here is an example that processes all files with the `.ovf` extension, sending the output through ps2pdf (part of the ghostscript package) before saving the results in files with the extension `.pdf`:

    tclsh oommf.tcl avf2ps -ipat *.ovf -opatsub .pdf -filter "ps2pdf - -"

On Unix, either drop the `-ipat` flag, or use quotes to protect the input file specification string from expansion by the shell, as in `-ipat '*.ovf'`.

Configuration files
The details of the conversion process are specified by plain-text configuration files, in the same format as the mmDisp configuration files.

The arrays `plot_config` and `print_config` hold the configurable parameters. The default values for these arrays are read first from the main configuration file

> `oommf/app/mmdisp/scripts/avf2ps.config`

followed by the local customization file

> `oommf/app/mmdisp/scripts/local/avf2ps.config`

if it exists. Lastly, any files passed as `-config` options on the command line are input. Each of these parameters is interpreted as explained in the mmDisp documentation, except that avf2ps ignores the `misc,defaultwindowwidth` and `misc,defaultwindowheight` parameters, and the following additional parameters are available:

`arrow,outlinewidth`
  Width of a colored outline around each arrow; this can improve visibility of an arrow when it is overlayed against a background with color similar to that of the arrow. Default value is zero, meaning no outline. A value of 1 produces an outline with a recommended width, and other positive values are scaled relative to this.
`arrow,outlinecolor`
  If `arrow,outlinewidth` is positive, then this is the color of the arrow outline.
`misc,boundarypos`
  Placement of the bounding polygon, either `back` or `front`, i.e., either behind or in front of the rendered arrows and pixel elements.
`misc,matwidth`
  Specifies the width, in pixels, of a mat (frame) around the outer edge of the image. The mat is drawn in front of all other objects. To disable, set matwidth to 0.
`misc,matcolor`
  Color of the mat.
`misc,width`, `misc,height`
  Maximum width and height of the output bitmap, in pixels. If `misc,crop` is enabled, then one or both of these dimensions may be shortened.
`misc,crop`
  If disabled (0), then any leftover space in the bitmap (of dimensions `misc,width` by `misc,height`) after packing the image are filled with the background color. If enabled (1), then the bitmap is cropped to just include the image (with the margin specified by `misc,margin`). NOTE: Some movie formats require that bitmap dimensions be multiples of 8 or 16. For such purposes, you should disable `misc,crop` and specify appropriate dimensions directly with `misc,width` and `misc,height`.

The default configuration file can be used as a starting point for user configuration files. You may also use configuration files produced by the File|Write config... command in mmDisp, although any of the above avf2ps-specific parameters that you wish to use will have to be added manually, using a plain text editor. You may omit any entries that you do not want to change from the default. You may ``layer'' configuration files by specifying multiple user configuration files on the command line. These are processed from left to right, with the last value set for each entry taking precedence.

    array set plot_config {
      arrow,status       1                  misc,background     #FFFFFF
      arrow,colormap     Black-Gray-White   misc,drawboundary   1
      arrow,colorcount   0                  misc,boundarywidth  1
      arrow,quantity     z                  misc,boundarycolor  #000000
      arrow,colorphase   0.                 misc,boundarypos    front
      arrow,colorinvert  0                  misc,matwidth       0
      arrow,autosample   1                  misc,matcolor       #FFFFFF
      arrow,subsample    10                 misc,margin         10
      arrow,size         1                  misc,width          640
      arrow,antialias    1                  misc,height         480
                                            misc,crop           1
      pixel,status       1                  misc,zoom           0
      pixel,colormap     Teal-White-Red     misc,rotation       0
      pixel,colorcount   225                misc,datascale      0
      pixel,opaque       1                  misc,relcenterpt {0.5 0.5 0.5}
      pixel,quantity     x
      pixel,colorphase   0.                 viewaxis            +z
      pixel,colorinvert  0                  viewaxis,xarrowspan {}
      pixel,autosample   1                  viewaxis,xpixelspan {}
      pixel,subsample    0                  viewaxis,yarrowspan {}
      pixel,size         1                  viewaxis,ypixelspan {}
                                            viewaxis,zarrowspan {}
                                            viewaxis,zpixelspan {}
    }
    array set print_config {
      orient   landscape                    tmargin   1.0
      paper    letter                       lmargin   1.0
      hpos     center                       pwidth    6.0
      vpos     center                       pheight   6.0
      units    in                           croptoview 1
    }

Figure 6: Contents of default configuration file `avf2ps.config`. (Description.)

OOMMF Documentation Team
September 29, 2018