[comp.archives] [pixutils] VICAR

baalke@kelvin.jpl.nasa.gov (Ron Baalke) (06/29/91)

Archive-name: astro/magellan/magellan-images/1991-06-26
Archive-directory: ames.arc.nasa.gov:/pub/SPACE/VICAR/ [128.102.18.3]
Original-posting-by: baalke@kelvin.jpl.nasa.gov (Ron Baalke)
Original-subject: VICAR
Reposted-by: emv@msen.com (Edward Vielmetti, MSEN)


     At then end of this posting is a detailed description of the VICAR format
used by the Image Processing Lab at JPL.  This will give people the ability to
write software on other computer platforms to read and display VICAR images,
like the Magellan images I've recently uploaded to Ames.

     Also, I've compiled a list of software that will currently display images
in the VICAR format.  If you know of any other programs that should be on the
list, then let me know, and I'll maintain an updated list.

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

-- MSEN Archive Service file verification
ames.arc.nasa.gov
total 48051
-rw-r--r--  1 1045      1006304 Jun 17 13:42 test25rm.img
-rw-r--r--  1 1045      1006304 Jun 17 13:41 test25pvo.img
-rw-r--r--  1 1045         2426 Jun 17 13:41 test25.txt
-rw-r--r--  1 1045         1178 Jun 17 13:40 sifflows.txt
-rw-r--r--  1 1045       621600 Jun 17 13:40 sifflows.img
-rw-r--r--  1 1045         1625 Jun 17 13:40 pandora.txt
-rw-r--r--  1 1045       918528 Jun 17 13:40 pandora.img
-rw-r--r--  1 1045         1518 Jun 17 13:40 ovda.txt
-rw-r--r--  1 1045      1180310 Jun 17 13:40 ovda.img
-rw-r--r--  1 1045         1038 Jun 17 13:39 navka.txt
-rw-r--r--  1 1045      2521800 Jun 17 13:39 navka.img
-rw-r--r--  1 1045         1850 Jun 17 13:35 mead.txt
-rw-r--r--  1 1045      1312000 Jun 17 13:35 mead.img
-rw-r--r--  1 1045         1698 Jun 17 13:34 lakshmif.txt
-rw-r--r--  1 1045       822584 Jun 17 13:34 lakshmif.img
-rw-r--r--  1 1045          908 Jun 17 13:34 hestia.txt
-rw-r--r--  1 1045      1422603 Jun 17 13:34 hestia.img
-rw-r--r--  1 1045         1487 Jun 17 13:33 gulamons.txt
-rw-r--r--  1 1045       914328 Jun 17 13:33 gulamons.img
-rw-r--r--  1 1045         1387 Jun 17 13:33 golubold.txt
-rw-r--r--  1 1045      1025145 Jun 17 13:33 golubold.img
-rw-r--r--  1 1045         1387 Jun 17 13:33 golubnew.txt
-rw-r--r--  1 1045      1025145 Jun 17 13:33 golubnew.img
-rw-r--r--  1 1045         1019 Jun 17 13:32 flows.txt
-rw-r--r--  1 1045      3616434 Jun 17 13:32 flows.img
-rw-r--r--  1 1045         1299 Jun 17 13:31 barton.txt
-rw-r--r--  1 1045      2626020 Jun 17 13:31 barton.img
-rw-r--r--  1 1045         2392 Jun 17 13:30 arachcom.txt
-rw-r--r--  1 1045       971880 Jun 17 13:30 arachcom.img
-rw-r--r--  1 1045          891 Jun 17 13:29 ammavaru.txt
-rw-r--r--  1 1045      1312000 Jun 17 13:29 ammavaru.img
-rw-r--r--  1 1045         1330 Jun 17 13:29 alcott.txt
-rw-r--r--  1 1045      1049600 Jun 17 13:29 alcott.img
drwxrwxrwx  2 1045          512 Jun 17 12:47 tmp
-rw-r--r--  1 ftp          2400 Mar 21 08:55 tick.txt
-rw-r--r--  1 ftp          1436 Mar 21 08:55 ovdan.txt
-rw-r--r--  1 ftp          1233 Mar 21 08:55 ovdac.txt
-rw-r--r--  1 ftp          2406 Mar 21 08:55 lavin.txt
-rw-r--r--  1 ftp          1458 Mar 21 08:55 alpha.txt
-rw-r--r--  1 1045      2347458 Mar 13 17:14 tick.img
-rw-r--r--  1 1045      3147776 Mar 13 17:04 ovdan.img
-rw-r--r--  1 1045      1049600 Mar 13 16:58 alpha.img
-rw-r--r--  1 1045      1574400 Mar 13 16:57 ovdac.img
-rw-r--r--  1 1045      1049600 Mar 13 16:56 lavin.img
-rw-r--r--  1 1045      1050624 Mar 13 13:08 bahet.img
-rw-r--r--  1 1045      1049600 Mar 13 13:08 pancakes.img
-rw-r--r--  1 1045         1470 Mar 13 13:07 pancakes.txt
-rw-r--r--  1 1045         1356 Mar 13 13:06 bahet.txt
-rw-r--r--  1 1045         2389 Feb 28 21:06 lavinia.txt
-rw-r--r--  1 1045      1049600 Feb 28 21:06 lavinia.img
-rw-r--r--  1 1045         1689 Feb 28 21:05 arach.txt
-rw-r--r--  1 1045      1049600 Feb 28 21:05 arach.img
-rw-r--r--  1 1045         2542 Feb 15 18:47 saca.txt
-rw-r--r--  1 1045      2829400 Feb 15 18:47 saca.img
-rw-r--r--  1 1045         2422 Feb 15 18:46 perspect.txt
-rw-r--r--  1 1045      1049600 Feb 15 18:46 perspect.img
-rw-rw-r--  1 108          1636 Jan 31 15:45 x-cut.txt
-rw-rw-r--  1 108          1470 Jan 31 15:44 pan10.txt
-rw-rw-r--  1 108          2169 Jan 31 15:44 oddimpact.txt
-rw-rw-r--  1 108          1218 Jan 31 15:44 gumby.txt
-rw-rw-r--  1 108           941 Jan 31 15:44 golubkina.txt
-rw-rw-r--  1 108          1986 Jan 31 15:44 dsntall.txt
-rw-rw-r--  1 108          1476 Jan 31 15:44 dsnall.txt
-rw-rw-r--  1 108          1112 Jan 31 15:44 channel.txt
-rw-rw-r--  1 108       1175230 Jan 30 15:31 channel.img
-rw-rw-r--  1 108       1002000 Jan 30 15:27 pan10.img
-rw-rw-r--  1 108       1050624 Jan 30 15:23 dsntall.img
-rw-rw-r--  1 108       1049600 Jan 30 15:17 gumby.img
-rw-rw-r--  1 108       1049600 Jan 30 15:10 oddimpact.img
-rw-rw-r--  1 108        866304 Jan 24 14:44 x-cut.img
-rw-rw-r--  1 108       1049633 Jan 23 17:55 golubkina.img
-rw-rw-r--  1 108       1049600 Jan 23 17:55 dsnall.img
found magellan-images ok
ames.arc.nasa.gov:/pub/SPACE/VICAR/