     o VICAR (VAX/VMS).

       The image processing program used at JPL.  Has been under continuous
       development since the 1960's.  Available from the Computer Software
       Management and Information Center (COSMIC) for $4000 and requires a
       license agreement.  Contact COSMIC at the following for more details:

            COSMIC
            The University of Georgia
            382 East Broad Street
            Athens, GA  30602

            Telephone: (404) 542-3265

            Email: cosmic@uga.bitnet (bitnet)
                   service@cossack.cosmic.uga.edu (internet)

     o IMDISP (IBM PC).

       Written by myself and Mike Martin at JPL, and Archie Warnock at Goddard
       Space Flight Center.  Available via anonymous ftp at ames.arc.nasa.gov
       [128.102.18.3] in the pub/SPACE/SOFTWARE directory, under the file
       imdisp56.zip.  IMDISP is on the GRIPS 2 CDROM, and can also be obtained
       free from the National Space Science Data Center (NSSDC) at the Goddard
       Space Flight Center:

            National Space Science Data Center
            Request Coordination Office
            Goddard Space Flight Center
            Code 633
            Greenbelt, MD  20771

            Telephone: (301) 286-6695

            Email address:   request@nssdca.gsfc.nasa.gov

       Incidently, this is also the same place you can get the Voyager and
       Magellan CDROMs.

     o PixelPusher (Macintosh).

       Written by Dan Stanfill at JPL.  Available on the GRIPS 2 CDROM, and I'm
       working on making it available via anonymous ftp.

     o xloadimage (Sun).

       Written by Herr Frost.  Available via anonymous ftp at
       export.lcs.mit.edu [18.30.0.238] in the contrib directory.  The patches
       to support VICAR are in a separate file at convex.com [130.168.1.1] and
       are in pub/xl.3.0.1.patches.Z.  Anthony Datri wrote the VICAR patches.

                         *************
      ___    _____     ___
     /_ /|  /____/ \  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov
     | | | |  __ \ /| | | |     Jet Propulsion Lab |
  ___| | | | |__) |/  | | |__   M/S 301-355        | "Imagination is more
 /___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | important than knowledge"
 |_____|/  |_|/       |_____|/                     | Albert Einstein

===========================================================================

                       VICAR2 IMAGE FILE FORMAT


1  Introduction

    This document describes the format of a simple two-dimensional
VICAR2 image and the attached label.

2  VICAR2 File Format

    A VICAR2 image file in its simplest form is a file with fixed-length
records containing binary data and an ASCII label.  The label takes up
one or more records at the beginning of the file, and is further
described in section 3 below.  The image data begins on the next record
boundary after the label.   There is one record per image line, and the
number of bytes in a record is equal to the number of bytes in one image
line.  The image data can be any one of the following data types,
indicated by a keyword in the image label:

        BYTE:    8 bits = VAX byte
        HALF:    16 bits = 2 bytes = VAX word = Fortran INTEGER*2
        FULL:    32 bits = 4 bytes = VAX longword = Fortran INTEGER*4
        REAL:    32 bits = 4 bytes = VAX longword = Fortran REAL*4
        DOUB:    64 bits = 8 bytes = VAX quadword = Fortran REAL*8
        COMPLEX: 64 bits = 8 bytes = VAX quadword = Fortran COMPLEX*8

3  VICAR2 Label Format

    The VICAR2 label is in the form of an ASCII character string,
beginning at the first byte in the first record in the file.  The label
may take up one or more records at the beginning of the file.  If the
character string does not completely fill the final label record, the
remaining bytes in the record are set to the ASCII null value,
hexadecimal 00.

    In some cases there may be an additional label record at the end of
the file, following the image data.  This is indicated when the keyword
EOL has the value 1 (see description of keywords below).

3.1  The Keyword=Value Format

    The label uses the KEYWORD=VALUE format for storing information
about the image.  A list of standard keywords is given in section 3.3.
The maximum length of a keyword is 8 characters.  A keyword is written
in all capital letters and is followed by an equals sign (=), which is
in turn followed by the value for the keyword.  There are no spaces on
either side of the equals sign.  The value is followed by one or more
spaces, in order to separate one KEYWORD=VALUE pair from the next.  Here
is an example of one label item following another:

        RECSIZE=1024  NL=1324

    A keyword value may be one of four data types:

        INTEGER         A positive or negative integer including 0 which
                        does not contain a decimal point.
        REAL            A positive or negative number with a decimal
                        point and, optionally, an exponential (E+06, for
                        instance).
        DOUBLE          A real number with enough digits to make it
                        double-precision.
        STRING          A string delimited by single quotation marks (')
                        containing any printable ASCII characters and
                        spaces EXCEPT the single quotation mark.  The
                        maximum length of a string is 512 characters,
                        and the minimum length is 1 character.

    The first keyword in the label is always LBLSIZE, which specifies
the total number of bytes in the label, including any null bytes at the
end.  Thus LBLSIZE will always be a multiple of the file's record size.

3.2  Two Parts of a VICAR2 Label

    A label has two sections, the system label items and the history
label items.  History label items are added to the label during
processing with VICAR software.  It is possible for a label to contain
no history label items.  If history label items do exist, they always
occur at the end of the label, following the last system label item.
The beginning of the history label section is marked by the occurrence
of the keyword TASK.

    Thus, the system section of the label begins with the keyword
LBLSIZE, and ends in one of these three ways:

    o with the appearance of the keyword TASK, which marks the
      beginning of the history section of the label, OR

    o with the appearance of an ASCII null value, hexadecimal 00, which
      marks the end of the VICAR2 label (in which case there are no history
      label items), OR

    o after the number of characters specified by LBLSIZE (in which
      case there are no history label items).

3.3  Standard Label Keywords

    Here is a table of standard VICAR2 label keywords, divided into
system label items and history label items.  Those marked with an
asterisk (*) are required to be present in order for the VICAR image
processing software to be able to process the label.  LBLSIZE will
always be the first keyword in the label.  The other system keywords may
follow in any order.

                    STANDARD VICAR2 LABEL KEYWORDS

                          SYSTEM LABEL ITEMS

      KEYWORD        TYPE         MEANING

      LBLSIZE*       integer      The length in bytes of the VICAR
                                  label, including null bytes at the
                                  end.

      BUFSIZE*       integer      The default blocksize used when the
                                  file is written to tape.


      DIM            integer      The dimension of the file (for flat
                                  files, always 2).

      EOL            integer      EOL=1 indicates that an end-of-file
                                  label exists.  In most cases EOL=0;
                                  i.e., there is no end-of-file label.

      FORMAT*        character    The data type of a sample.  Valid
                                  values are: BYTE, HALF (16-bit
                                  integer), FULL (32-bit integer), REAL
                                  (32-bit floating-point), DOUB (64-bit
                                  floating-point) and COMPLEX (2 32-bit
                                  floating-points).

      HOST           character    Type of host computer.  The only
                                  current legal value is 'VAX-VMS'.

      INTFMT         character    The integer format for the file.  The
                                  only current legal value is 'LOW'.

      N1             integer      Same as NL for simple files.

      N2             integer      Same as NS for simple files.

      N3             integer      Same as NB for simple files.

      N4             integer      Always 0 for simple files.

      NB             integer      The number of bands.  For simple
                                  files, always 1.

      NBB            integer      Number of bytes in the binary prefix
                                  to each line.  Always 0 for simple
                                  files.

      NL*            integer      The number of lines in the image.

      NLB            integer      The number of lines of binary header.
                                  Always 0 for simple files.

      NS*            integer      The number of samples per image line.

      ORG            character    The organization of the file.  For
                                  simple files this is always BSQ (band
                                  sequential).

      REALFMT        character    The real format for the file.  The
                                  only current legal value is 'VAX'.

      RECSIZE*       integer      The number of bytes per record; i.e.,
                                  NS*LEN, where LEN is the number of
                                  bytes per sample as follows:

                                     FORMAT:         LEN:
                                     BYTE              1
                                     HALF              2
                                     REAL,FULL         4
                                     DOUB,COMPLEX      8


                          HISTORY LABEL ITEMS

      KEYWORD        TYPE         MEANING

      DAT_TIM        character    The date and time the program was run.
                                  The format is DOW MON DD HH:MM:SS
                                  YYYY, where

                                     DOW = day of week (Mon, Tue, Wed,
                                     etc.),
                                     MON = month (Jan, Feb, Mar, etc.),
                                     DD = day of month,
                                     HH:MM:SS = hours, minutes, seconds,
                                     YYYY = year.

                                  An example of a date and time in this
                                  format is 'Mon Jan 11 21:51:55 1990'.

      TASK           character    The name of a VICAR program that has
                                  processed the file's data.

      USER           character    The identifier of the user that
                                  invoked the program represented by the
                                  preceding TASK keyword.

      The history label section may also contain other keywords that are
specific to the program that was run.  These are sometimes called user
labels.  They are informational only; they are not interpreted by VICAR
software, but they are copied from input file to output file with the
other label keywords.
                        *******************



