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/