Text File

From: baalke@kelvin.jpl.nasa.gov (Ron Baalke) Newsgroups: comp.graphics Subject: VICAR Keywords: VICAR, JPL Date: 26 Jun 91 13:44:38 GMT Reply-To: baalke@kelvin.jpl.nasa.gov Organization: Jet Propulsion Laboratory News-Software: VAX/VMS VNEWS 1.3-4 Nntp-Posting-Host: kelvin.jpl.nasa.gov

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