Thermal Emission Spectrometer


TES-TSDR  Standard Data Product
Software Interface Specification



N. Gorelick
Arizona State University



Approved by:

______________________________
P. Christensen, Principal Investigator

______________________________
G. Mehall, Instrument Manager








July 20, 1999





CONTENTS

1.      Introduction                                  1
1.1.    Purpose and Scope of Document                 1
1.2.    Applicable Documents                          1
2.      Data Product Characteristics and Environment  1
2.1.    Instrument Overview                           1
2.2.    Data Product Overview                         1
2.3.    Standards Used in Generating Data Products    2
2.3.1.  Time Standards                                2
2.3.2.  Coordinate Systems                            2
2.3.3.  Orbit Numbers                                 2
2.3.4.  Data Storage Conventions                      3
3.      Detailed Data Product Specifications          3
3.1.    Label and Header Descriptions                 5
4.      Applicable Software                           7
4.1.    Utility Programs                              7
4.2.    Applicable PDS Software Tools                 7
A.      Appendices                                    8
A.1     TLM Table                                     8
A.2     BOL Table                                    15
A.3     CMP Table                                    18
A.4     GEO Table                                    19
A.5     IFG Table                                    24
A.6     LMB Table                                    25
A.7     OBS Table                                    28
A.8     POS Table                                    32
A.9     RAD Table                                    34
A.10    SRF Table                                    37



1.      Introduction

1.1.    Purpose and Scope of Document
This document describes the format and content of the Thermal Emission 
Spectrometer (TES) Time Sequential Data Records (TSDR) standard data  
products.

1.2.    Applicable Documents
TES Software Specification Document 642-441, Vol. 5
TES Operation User's Guide, 642-444 Vol. 5
PDS Data Dictionary, July 15, 1996, JPL D-7116, Rev D
PDS Data Preparation Workbook, Feb. 1995, Version 3.1, JPL D-7669, Part 1
Planetary Data System Standards Reference, July 1995, Version 3.2,  
JPL D-7669, 
Part 2


2.      Data Product Characteristics and Environment

2.1.    Instrument Overview
The TES instrument uses a Michelson interferometer to make infrared 
spectrometric measurements, and uses two sets of broad-band bolometric 
detectors to cover the thermal and visible bands.  Each of the three bands 
has a co-aligned array of 6 detectors arranged in a 3x2 configuration and 
each detector has a field of view of 8.3 mrad square.

In normal operation the TES completes a scan of the Michelson mirror every 2 
seconds and each of the spectrometer detectors measures the spectral 
radiance of the target at 143 wavelengths with 10-wavenumber spacing.  The 
visual and thermal bolometers integrate during the entire scan and produce 
one measurement per detector.  This 2-second scan is called a "single length"
scan.

The TES has a second operating mode in which the Michelson mirror is scanned 
twice as far over a 4-second period.  This mode is referred to as a "double 
length" scan and produces 286 spectral points with 5-wavenumber spacing for 
each of the spectrometer detectors.  During double scans the two bolometric 
channels integrate twice as long, but still produce only a single value per 
detector.

The instrument also contains software to optionally perform spectral, 
spatial, and temporal averaging of the spectrometer data.  None of these 
post-processing steps are applied to the bolometric data.

The TES has a rotating pointing mirror that allows the instrument to take 
measurements ranging from the nadir position up to and past the planet's limb
in both the fore and aft directions.  Additionally, the pointing mirror can 
be positioned to take measurements of space and of the internal reference 
surfaces and lamps contained within the body of the TES instrument.

2.2.    Data Product Overview
The TES Standard Data Product contains the raw and calibrated thermal IR 
radiance spectra, the visual and thermal bolometric radiance measurements,  
and several atmospheric and surface properties derived from this data.  Also 
included are the parameters that describe each observation, some downlinked 
diagnostic information, and the derived pointing and positional information 
calculated from the project's SPICE kernels.

The TES data are divided into the following 10 tables:

        OBS - Observation Parameters
        RAD - Raw and Calibrated Radiance Data
        BOL - Bolometer Data
        GEO - Derived Positional & Geometric Values
        POS - Raw Positional & Geometric Data
        TLM - Auxiliary Observation Parameters
        IFG - Raw Interferogram Data
        CMP - Raw Complex Data
        SRF - Derived Properties - Surface Observations
        LMB - Derived Properties - Atmospheric Limb Observations

Each table is stored in a separate file with a PDS TABLE structure (i.e.,  
using fixed-length binary records with extensions to handle the variable 
length spectra).  Every record is stored with the spacecraft time, and 
related records can be retrieved from each table using time as a common key. 
In some tables up to 6 records can be stored for a given time, one for each 
detector.  In these cases these records also include a field named 
"detector", that with the time field uniquely identifies the record.

Each scan of the instrument always produces the following data records:

        1 record in the OBS table,
        6 records in the BOL table.

Because the instrument is capable of spatially and temporally averaging the 
spectral data, the number of records in the RAD table can vary from 0 to 6 
for each scan.

There are 7 spatial averaging combinations that combine together the data 
from different detectors.  This has the net effect of reducing the number of 
active detectors, and consequently fewer spectra are downlinked.  One RAD 
record is produced for each spectrum downlinked.  The spatial masks are 
described in the DETMASK.TXT document.

If temporal averaging is applied to the spectrometer data, then the averaged 
data are associated with the first scan.  The other scans in the average 
contain no spectrometer data, but still have OBS and BOL records associated 
with them.  All other tables, with the exception of the OBS and BOL tables,  
also treat temporally averaged data as belonging to the first scan.  Each 
scan (or set of scans if temporal averaging is applied) may generate the 
following records as well:

        1 record in the IFG table,
        1 record in the CMP table,
        1 record in the TLM table.

The data contained in these tables are downlinked from the instrument only 
upon request.

If a scan targets the planet (as opposed to targeting space or an internal 
reference surface) then the following records are also generated:

        6 records in the GEO table
        0 to 6 records in the SRF table

The SRF records are only generated for those scans that actually observe the 
planet's surface. 

2.3.    Standards Used in Generating Data Products
2.3.1.  Time Standards
The time value stored with each TES-TSDR data record is the value of the 
spacecraft clock at the start of the observation, truncated to an integer 
value.  This number is equal to the number of seconds since 12:00 a.m. 
1/1/1980 GMT. 

2.3.2.  Coordinate Systems
All of the derived geometry fields that relate to longitude and latitude on 
the surface of Mars are computed using an areocentric coordinate system with 
west longitudes.  

2.3.3.  Orbit Numbers
The attached PDS labels for TES data files include the fields 
START_ORBIT_NUMBER and STOP_ORBIT_NUMBER.  These fields refer to the 
beginning and ending orbits during which the data were acquired, using the 
TES Team orbit numbering system, also known as the Orbit Counter Keeper 
(ock).  During the Orbit Insertion Phase TES ock numbers and MGS Project 
orbit numbers were identical, except that the Project counted orbits from one
periapsis to the next, while TES considered an orbit to begin at the 
spacecraft maneuver preceding periapsis, usually a difference of no more than
twenty minutes.  However, the MGS Project reset its orbit count to 1 at the 
beginning of the Mapping Phase.  TES ock numbers were not reset, in order to 
preserve the unique orbit identifier.  For TES data products acquired during 
mapping, the MGS Project mapping orbit number can be determined by 
subtracting 1683 from the TES ock number.  During mapping, both TES and the 
MGS Project consider the beginning of an orbit to occur at the descending 
equator crossing.

2.3.4.  Data Storage Conventions
All the TES-TSDR records are stored in binary form.  Numerical fields are 
stored using the most significant byte first (MSB),  and real numbers are 
stored using standard IEEE floating-point format.  Character and string 
fields are space padded but not null terminated.


3.      Detailed Data Product Specifications

Each table is stored with a PDS TABLE structure using fixed-length binary 
records sorted time-sequentially.  Each table file is prefixed with an ASCII 
header that describes the contents and format of the table, and a pointer 
that indicates where the binary table data start.  The description identifies
each column in the table, detailing its name, starting position (in bytes), 
size (in bytes), data type, description, and scaling factors if applicable. 
In some cases the column being described is a fixed-length array of related, 
homogeneous values (such as temperatures or voltages). For that case,  the 
column description also includes the number of items in the array and the 
size of each item.  A typical column description follows:

        OBJECT                  = COLUMN
        NAME                    = PNT_ANGLE
        DATA_TYPE               = MSB_INTEGER
        START_BYTE              = 12
        BYTES                   = 2
        SCALING_FACTOR          = .046875
        DESCRIPTION             = "Scan mirror pointing angle, 
                                   degrees from nadir."
        END_OBJECT              = COLUMN

The RAD, SRF, CMP, and IFG tables store some variable-length data.  These 
variable length records are stored in a file separate from the fixed-length 
records and are addressed from the fixed-length records with a "pointer" 
column.  Pointer columns contain the position of the variable length data, in
bytes, from the start of the file in which it is listed.  A position value 
of -1 in a pointer column indicates that there are no variable length data 
for that record.  Additional keywords in a column's description are used to 
identify it as a pointer to a variable length column, and describe the data 
in the variable length records.  These keywords are:

        VAR_DATA_TYPE
        VAR_ITEM_BYTES
        VAR_RECORD_TYPE

The VAR_DATA_TYPE and VAR_ITEM_BYTES keywords are similar to the PDS 
keywords DATA_TYPE and ITEM_BYTES, but refer to the structure of the 
variable-length data.  The VAR_RECORD_TYPE keyword identifies the overall 
format of the variable-length record.  This keyword has two possible values:

        VAR_RECORD_TYPE = VAX_VARIABLE_LENGTH
        VAR_RECORD_TYPE = Q15

The value VAX_VARIABLE_LENGTH indicates that the variable-length record has 
the size of the record in bytes, as a 2-byte integer, both before and after 
the record.  This corresponds to the VAX/VMS variable-length record format.  

Figure 1 illustrates the use of variable-length records, and how they relate 
to the fixed-length records.  In this example, the table contains 2 columns, 
one of which is a pointer to the variable-length records.  The table shows 6 
rows, but only 5 of the rows actually point to variable-length records.  The 
fourth record contains -1 in the pointer column, indicating that there are no
variable-length data for that row.

        OBJECT                  = COLUMN
            NAME                = KEY
            DATA_TYPE           = ASCII_INTEGER
            BYTES               = 1
        END_OBJECT              = COLUMN

        OBJECT                  = COLUMN
            NAME                = VDATA
            DATA_TYPE           = ASCII_INTEGER
            BYTES               = 2
            VAR_ITEM_BYTES      = 1
            VAR_RECORD_TYPE     = CHARACTER
            VAR_DATA_TYPE       = VAX_VARIABLE_LENGTH
        END_OBJECT              = COLUMN


Figure 1. An example of a variable length record.

KEY    VDATA      Byte0         37              70      88             109
1        0            ----------------------------------------------------
2       37            |         |               |       |                |
3       70            ----------------------------------------------------
4       -1                                    /           \
5       88                                   /             \
6       109                                 /               \
                                           /                 \
                                          /                   \
                                         /                     \
                                         -----------------------
                                        |   |              |   |
                                 Byte   70  72             85  87
                                          /\      /\         /\
                                         size    data       size

The Q15 format is very similar to the VAX_VARIABLE_LENGTH format; however it 
is only used to store floating point values in a compact representation.  
This format is an array of floating point mantissas stored as 2-byte signed 
integers.  These mantissas share a scaling exponent that is stored as the 
first item in the record as another 2-byte signed integer.  All the elements 
in the array must be scaled by the exponent, by multiplying them by 2 to the 
power (exp-15).  Just like the VAX_VARIABLE_LENGTH records, the Q15 records 
are also stored with the size of the record in bytes, as a 2-byte integer, 
both before and after the record.  A diagram of a complete Q15 variable 
length record is shown in figure 2.

Figure 2. A Q15 record

        record      scaling                                     record
        size        exponent                                    size
     ________________________________________________________________
    |             |             |       |       |       |     |      |
    |    N        |    exp      |  d1   |  d2   |  d3   | . . |  N   |
    |____|________|_____|_______|___|___|___|___|___|___|_____|__|___|
  byte 1    2        3      4     5   6   7   8   9  10  .  . N+3  N+4


                   f[1] = d1*2^(exp-15)
                   f[2] = d2*2^(exp-15)
                   f[3] = d3*2^(exp-15)
                      ...

The fixed-length records are stored in files with a .DAT extension.  The 
variable length records that are referenced by an individual .DAT file can 
be found in a file with the same name, but with a .VAR extension.

3.1.    Label and Header Descriptions
Each .DAT file is prefixed with an ASCII header in PDS 3.0 format.  The 
format of this header consists of sets of keyword=value pairs, followed by 
the keyword END.  A sample header is given below:

    PDS_VERSION_ID               = PDS3
    FILE_NAME                    = "OBS04101.DAT"
    RECORD_TYPE                  = FIXED_LENGTH
    RECORD_BYTES                 = 39
    FILE_RECORDS                 = 1245
    LABEL_RECORDS                = 35
    ^TABLE                       = 36
    SPACECRAFT_ID                = MGS
    INSTRUMENT_ID                = TES
    MISSION_PHASE_NAME           = "MAPPING"
    TARGET_NAME                  = MARS
    PRODUCT_ID                   = "TES04101"
    PRODUCER_ID                  = MGS_TES_TEAM
    DATA_SET_ID                  = "MGS-M-TES-3-TSDR-V1.0"
    PRODUCT_RELEASE_DATE         = 1998-08-18
    PRODUCT_CREATION_TIME        = 1998-08-18T17:30:00
    START_TIME                   = 1997-10-26T08:33:44.293
    STOP_TIME                    = 1997-10-29T06:43:30.274
    SPACECRAFT_CLOCK_START_COUNT = 562322042
    SPACECRAFT_CLOCK_STOP_COUNT  = 562574628
    START_ORBIT_NUMBER           = 28
    STOP_ORBIT_NUMBER            = 29

    OBJECT                       = TABLE
        NAME                     = OBS
        INTERCHANGE_FORMAT       = BINARY
        PRIMARY_KEY              = ( "SPACECRAFT_CLOCK_START_COUNT", 
                                     "DETECTOR_NUMBER" )
        START_PRIMARY_KEY        = ( 562322042, 1 )
        STOP_PRIMARY_KEY         = ( 562574628, 6 )
        ROWS                     = 1210

        STRUCTURE                = "OBS.FMT"
    END_OBJECT                   = TABLE
END

The above header consists of three primary parts: a description of the whole 
file, a pointer to the binary table data, and a set of nested PDS objects 
that identify the contents and layout of the table.

The first few lines of the header describe the overall structure of the file 
and in this case indicate that the file consists of 1,245 fixed-length 
records, 39 bytes in length.  These lines include the entire ASCII header 
which is padded with white space to occupy an integral number of records of 
this length.

The keyword TABLE is a pointer to the start of the binary data.  The number 
given with this keyword is the record number of the start of the table data. 
In this case the record number is 36, which starts at byte 1404 counting from
byte zero (35 records * 39 bytes/record).

The remainder of the header identifies the origin of the data and describes  
the table contained in the file.  The data are identified by the time they 
were acquired, as shown in the SPACECRAFT_CLOCK_START_TIME and 
SPACECRAFT_CLOCK_STOP_TIME keywords which contain the time on the first and  
last record in the file, respectively.These times are also given as UTC time
strings in the START_TIME and STOP_TIME fields

The columns within the table are specified as a collection of PDS COLUMN 
objects.  A sample column definition follows:

          OBJECT                  = COLUMN
                NAME              = POINTING_MIRROR_ANGLE
                ALIAS_NAME        = PNT_ANGLE
                DATA_TYPE         = MSB_INTEGER
                START_BYTE        = 10
                BYTES             = 2
                SCALING_FACTOR    = .046875
                DESCRIPTION       = "Scan mirror pointing angle, 
                                     degrees from nadir."
          END_OBJECT              = COLUMN

The column definitions give the name, type, and size of every field in the 
table.  In the case of this field, "pnt_angle", a scaling factor is also 
given to convert from the stored value to useful units.  A scaling offset may
also be included, but if not included, should be assumed to be zero.  Scaling
factors and offsets should be applied as follows:

         scaled_value = (stored_value * scaling_factor) + scaling_offset

Descriptions are provided for every column as well.  These descriptions are 
surrounded by quotes and may span several lines.  In the case of a 
fixed-length array, the BYTES term indicates the size of the array, and the 
two fields ITEMS and ITEM_SIZE are included to describe the number and size 
of a single element in the array.

This following column description indicates the column 
"interferogram_maximum" and is a homogeneous array of 6, 2-byte integers.

          OBJECT                  = COLUMN
                NAME              = INTERFEROGRAM_MAXIMUM
                DATA_TYPE         = MSB_INTEGER
                START_BYTE        = 29
                BYTES             = 12
                ITEMS             = 6
                ITEM_BYTES        = 2
                SCALING_FACTOR    = .000152587890625
                DESCRIPTION       = "Array of 6 interferogram maximum values"
          END_OBJECT              = COLUMN


4.      Applicable Software

4.1.    Utility Programs
The TES project has produced a software tool that not only reads the PDS 
table and the variable-length records, but is also capable of joining the 
related records among multiple tables.  This piece of software is called 
'vanilla' and is included on every volume. In addition the software is 
available via anonymous ftp from 
ftp://east.la.asu.edu/pub/software/vanilla/vanilla.tar.Z.

The vanilla program was developed for use on UNIX machines with integers in 
MSB_INTEGER format, and for PCs.

4.2.    Applicable PDS Software Tools
The TES team uses no PDS software to view, manipulate or process the data.  
However, the tables are stored using the PDS TABLE standard structure and 
any tool that understands that structure should be able to read all of the 
data except the variable-length spectra.



A.      Appendices

A.1     TLM Table

NAME                    = TLM
COLUMNS                 = 31
ROW_BYTES               = 113
DESCRIPTION             = "

    The TLM table stores the auxiliary observation parameters
    downlinked with the long packet format (see OBS Table, DATA_PACKET_TYPE).
    Records in the TLM table occur at a frequency less than or equal
    to the frequency of OBS records; that is, one (or none) per
    observation."

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_CLOCK_START_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1
    BYTES               = 4
    ALIAS_NAME          = sclk_time
    DESCRIPTION         = "The value of the spacecraft clock at the
                           beginning of the observation"
END_OBJECT              = COLUMN


OBJECT                  = COLUMN
    NAME                = AUXILIARY_DIAGNOSTIC_TEMPS
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 5
    BYTES               = 24
    ITEMS               = 12
    ITEM_BYTES          = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = aux_temps
    DESCRIPTION         = "Array of 12 auxiliary temperatures,
                           Read from internal instrument thermistors.
                               1: T5 - Black Body 1
                               2: T6 - Black Body 2
                               3: T7 - Black Body 3
                               4: T8 - Bolometric Black Body Reference 
                                       (spare)
                               5: T9 - Electronics
                               6: T10 - Power Supply
                               7: T11 - Telescope Field Stop
                               8: T12 - Interferometer Fixed Mirror
                               9: T13 - Interferometer Beamsplitter
                              10: T14 - Interferometer Motor
                              11: T15 - Primary Mirror
                              12: T16 - Secondary Mirror"
    UNIT                = "K"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = INTERFEROGRAM_MAXIMUM
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 29
    BYTES               = 12
    ITEMS               = 6
    ITEM_BYTES          = 2
    SCALING_FACTOR      = 0.000152587890625
    ALIAS_NAME          = ifgm_max
    DESCRIPTION         = "Array of 6 interferogram maximum values, 
                           one for each spectrometer detector.
                           Scaling factor is 5.0/32768 V"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = INTERFEROGRAM_MINIMUM
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 41
    BYTES               = 12
    ITEMS               = 6
    ITEM_BYTES          = 2
    SCALING_FACTOR      = 0.000152587890625
    ALIAS_NAME          = ifgm_min
    DESCRIPTION         = "Array of 6 interferogram minimum values, 
                           one for each spectrometer detector.
                           Scaling factor is 5.0/32768 V"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = ONBOARD_PROCESSING_EVENT_LOG
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 53
    BYTES               = 12
    ITEMS               = 6
    ITEM_BYTES          = 2
    ALIAS_NAME          = dsp_log
    DESCRIPTION         = "Array of digital signal processor event logs,  
                           16-bit mask, one for each spectrometer detector.  
                           See TES User's Guide for details"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_1
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 65
    BYTES               = 1
    SCALING_FACTOR      = 3.90625
    ALIAS_NAME          = V1
    DESCRIPTION         = "Electronic power supply load current"
    UNIT                = "mA"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_2
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 66
    BYTES               = 1
    SCALING_FACTOR      = 1.95312
    ALIAS_NAME          = V2
    DESCRIPTION         = "Mechanic power supply load current"
    UNIT                = "mA"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_3
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 67
    BYTES               = 1
    SCALING_FACTOR      = 0.278906
    ALIAS_NAME          = V3
    DESCRIPTION         = "Diagnostic voltage P26V2.
                           +26v: Pointing mirror motor."
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_4
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 68
    BYTES               = 1
    SCALING_FACTOR      = 0.278906
    ALIAS_NAME          = V4
    DESCRIPTION         = "Diagnostic voltage P28V2.
                           +28v: Interferometer motor."
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_5
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 69
    BYTES               = 1
    SCALING_FACTOR      = 4.45312
    OFFSET              = -17.00000
    ALIAS_NAME          = V5
    DESCRIPTION         = "Pointing mirror motor current"
    UNIT                = "mA"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_6
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 70
    BYTES               = 1
    SCALING_FACTOR      = 0.652344
    ALIAS_NAME          = V6
    DESCRIPTION         = "Interferometer motor current"
    UNIT                = "mA"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_7
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 71
    BYTES               = 1
    SCALING_FACTOR      = 0.119457
    ALIAS_NAME          = V7
    DESCRIPTION         = "Diagnostic voltage P10V1.
                           +10v: Servo Electronics"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_8
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 72
    BYTES               = 1
    SCALING_FACTOR      = -0.103067
    ALIAS_NAME          = V8
    DESCRIPTION         = "Diagnostic voltage N10V1.
                           -10v: Servo Electronics"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_9
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 73
    BYTES               = 1
    SCALING_FACTOR      = 0.15576
    ALIAS_NAME          = V9
    DESCRIPTION         = "Diagnostic voltage P16V1.
                           +16v: Analog MUX and A/D"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_10
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 74
    BYTES               = 1
    SCALING_FACTOR      = -0.15625
    ALIAS_NAME          = V10
    DESCRIPTION         = "Diagnostic voltage N16V1.
                           -16v: Analog MUX and A/D"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_11
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 75
    BYTES               = 1
    SCALING_FACTOR      = 0.0976055
    ALIAS_NAME          = V11
    DESCRIPTION         = "Diagnostic voltage P10V2.
                           +10v: Heaters"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_12
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 76
    BYTES               = 1
    SCALING_FACTOR      = -0.0985813
    ALIAS_NAME          = V12
    DESCRIPTION         = "Diagnostic voltage N10V2.
                           -10v: Heaters"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_13
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 77
    BYTES               = 1
    SCALING_FACTOR      = 0.976562
    ALIAS_NAME          = V13
    DESCRIPTION         = "Albedo Calibration Lamps current"
    UNIT                = "mA" 
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_14
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 78
    BYTES               = 1
    SCALING_FACTOR      = 0.0648437
    ALIAS_NAME          = V14
    DESCRIPTION         = "Neon lamps current"
    UNIT                = "mA" 
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_15
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 79
    BYTES               = 1
    SCALING_FACTOR      = 0.045727
    ALIAS_NAME          = V15
    DESCRIPTION         = "Diagnostic voltage P5V1.
                           +5v: Servo electronics and DSP"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_16
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 80
    BYTES               = 1
    SCALING_FACTOR      = 0.0480992
    ALIAS_NAME          = V16
    DESCRIPTION         = "Diagnostic voltage P5V2.
                           Control processor and BIU."
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_17
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 81
    BYTES               = 1
    SCALING_FACTOR      = 0.0478277
    ALIAS_NAME          = V17
    DESCRIPTION         = "Diagnostic voltage P5V3.
                           +5v: Analog MUX, A/D, Timing sequencer"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_18
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 82
    BYTES               = 1
    SCALING_FACTOR      = 0.0488039
    ALIAS_NAME          = V18
    DESCRIPTION         = "Diagnostic voltage P5V4.
                           +5v: Fringe and ZPD circuit"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_19
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 83
    BYTES               = 1
    SCALING_FACTOR      = 0.141966
    ALIAS_NAME          = V19
    DESCRIPTION         = "Diagnostic voltage P15V1.
                           +15v Amplifiers"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DIAGNOSTIC_TELEMETRY_20
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 84
    BYTES               = 1
    SCALING_FACTOR      = -0.149688
    ALIAS_NAME          = V20
    DESCRIPTION         = "Diagnostic voltage N15V1.
                           -15v Amplifiers"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = NEON_LAMP
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 85
    BYTES               = 1
    ALIAS_NAME          = neon_lamp
    DESCRIPTION         = "Control interferometer neon lamp in use, 
                           primary (1) or backup(2)"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = NEON_GAIN
    DATA_TYPE           = CHARACTER
    START_BYTE          = 86
    BYTES               = 1
    ALIAS_NAME          = neon_gain
    DESCRIPTION         = "Control interferometer neon lamp gain, 
                           (L)ow or (H)igh"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = NEON_AMPLITUDE
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 87
    BYTES               = 1
    ALIAS_NAME          = neon_amp
    DESCRIPTION         = "Control interferogram signal amplitude at zero
                           path difference (zpd)"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = NEON_ZPD
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 88
    BYTES               = 2
    ALIAS_NAME          = neon_zpd
    DESCRIPTION         = "Control interferogram zero path difference (zpd)
                           location measured in counts from start of scan"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = INTERFEROGRAM_ZPD
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 90
    BYTES               = 12
    ITEMS               = 6
    ITEM_BYTES          = 2
    ALIAS_NAME          = ifgm_zpd
    DESCRIPTION         = "IR interferogram zero path difference (zpd) 
                           location measured from start of scan"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = INTERFEROGRAM_END
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 102
    BYTES               = 12
    ITEMS               = 6
    ITEM_BYTES          = 2
    ALIAS_NAME          = ifgm_end
    DESCRIPTION         = "Number of extra counts at end of each IR
                           interferogram"
END_OBJECT              = COLUMN




A.2      BOL Table

NAME                    = BOL
COLUMNS                 = 10
ROW_BYTES               = 28
DESCRIPTION             = "

    The BOL table contains the raw and calibrated visual and thermal 
    bolometer measurements, and several properties derived from these
    measurements.

    Six BOL records are generated for each instrument scan, one for
    each detector.  When spectrometer data are temporally averaged, 
    there can be up to 4 scans of bolometer data."

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_CLOCK_START_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1
    BYTES               = 4
    ALIAS_NAME          = sclk_time
    DESCRIPTION         = "The value of the spacecraft clock at the
                           beginning of the observation"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DETECTOR_NUMBER
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 5
    BYTES               = 1
    ALIAS_NAME          = detector
    DESCRIPTION         = "The number of the detector that made 
                           the observation. Detectors are numbered
                           from 1 to 6"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = TEMPORAL_INTEGRATION_SCAN_NUMBER
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 6
    BYTES               = 1
    ALIAS_NAME          = tic_count
    DESCRIPTION         = "The number of the scan from the set of temporally
                           averaged scans"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = RAW_VISUAL_BOLOMETER
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 7
    BYTES               = 2
    SCALING_FACTOR      = .000152587890625
    ALIAS_NAME          = vbol
    DESCRIPTION         = "Raw visual bolometer data, per detector.
                           Scaling factor is 5.0/2^15."
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = RAW_THERMAL_BOLOMETER
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 9
    BYTES               = 2
    SCALING_FACTOR      = .000152587890625
    ALIAS_NAME          = tbol
    DESCRIPTION         = "Raw thermal bolometer data, per detector,
                           Scaling factor is 5.0/2^15."
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = CALIBRATED_VISUAL_BOLOMETER
    DATA_TYPE           = IEEE_REAL
    START_BYTE          = 11
    BYTES               = 4
    ALIAS_NAME          = cal_vbol
    DESCRIPTION         = "Calibrated visual bolometric radiance."
    UNIT                = "watt cm-2 stradian-1 micron-1"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = LAMBERT_ALBEDO
    DATA_TYPE           = IEEE_REAL
    START_BYTE          = 15
    BYTES               = 4
    ALIAS_NAME          = lambert_alb
    DESCRIPTION         = "Lambertian albedo, derived from visual bolometer"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = BOLOMETRIC_THERMAL_INERTIA
    DATA_TYPE           = IEEE_REAL
    START_BYTE          = 19
    BYTES               = 4
    ALIAS_NAME          = ti_bol
    DESCRIPTION         = "Thermal inertia, derived from thermal bolometer"
    UNIT                = "J m-2 s-1/2 K-1"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = BOLOMETRIC_BRIGHTNESS_TEMP
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 23
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = brightness_temp_bol
    DESCRIPTION         = "Temperature observed by the thermal bolometer, 
                           assuming the target is radiating as a black body"
    UNIT                = "K" 
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = BOLOMETER_CALIBRATION_ID
    DATA_TYPE           = CHARACTER
    START_BYTE          = 25
    BYTES               = 4
    ALIAS_NAME          = version_id
    DESCRIPTION         = "Calibration algorithm version ID for bolometer 
                           data"
END_OBJECT              = COLUMN


A.3     CMP Table

NAME                    = CMP
COLUMNS                 = 3
ROW_BYTES               = 9
DESCRIPTION             = "

    The CMP table contains the real and complex data from the FFT.
    The complex data is only downlinked when requested and can only
    be requested for a single detector per observation.

    The CMP array contains 286 points (143 real, 143 complex) for a
    short scan (OBS Table, SCAN_LENGTH = 1), and 572 points (286 real, 286
    complex) for a long scan (OBS Table, SCAN_LENGTH = 2)."

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_CLOCK_START_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1
    BYTES               = 4
    ALIAS_NAME          = sclk_time
    DESCRIPTION         = "The value of the spacecraft clock at the
                           beginning of the observation"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DETECTOR_NUMBER
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 5
    BYTES               = 1
    ALIAS_NAME          = detector
    DESCRIPTION         = "The number of the spectrometer detector that
                          made the observation. Detectors are numbered 
                          from 1 to 6"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = FFT_COMPLEX_DATA
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 6
    BYTES               = 4
    VAR_DATA_TYPE       = MSB_INTEGER
    VAR_ITEM_BYTES      = 2
    VAR_RECORD_TYPE     = Q15
    ALIAS_NAME          = complex
    DESCRIPTION         = "The real and imaginary parts of the FFT. This 
                           column is the pointer to the data."
    UNIT                = "Transformed Volts"
END_OBJECT              = COLUMN




A.4     GEO Table

NAME                    = GEO
COLUMNS                 = 20
ROW_BYTES               = 43
DESCRIPTION             = "

    The GEO table contains information about the sun/spacecraft/target
    geometry in a format that is easily searched.  These values are
    computed for every scan other than those used to calibrate the
    instrument.  If a viewing vector does not intersect the target body
    (i.e., an atmospheric observation), then most of the geometry is 
    calculated relative to the point on the viewing vector closest to the 
    body (i.e., the tangent point).  If the closest point lies behind the 
    spacecraft, fill values are used."

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_CLOCK_START_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1
    BYTES               = 4
    ALIAS_NAME          = sclk_time
    DESCRIPTION         = "The value of the spacecraft clock at the
                           beginning of the observation"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DETECTOR_NUMBER
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 5
    BYTES               = 1
    ALIAS_NAME          = detector
    DESCRIPTION         = "The number of the spectrometer detector that
                           made the observation. Detectors are numbered 
                           from 1 to 6"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = LONGITUDE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 6
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    DESCRIPTION         = "Areocentric west longitude of target point"
    UNIT                = "DEGREE"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = LATITUDE
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 8
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    DESCRIPTION         = "Areocentric latitude of target point"
    UNIT                = "DEGREE"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = PHASE_ANGLE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 10
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = phase
    DESCRIPTION         = "Angle between the spacecraft, the target point 
                           and the sun"
    UNIT                = "DEGREE"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = EMISSION_ANGLE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 12
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = emission
    DESCRIPTION         = "Angle between the spacecraft, the target point and
                          the surface normal vector at the target"
    UNIT                = "DEGREE"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = INCIDENCE_ANGLE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 14
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = incidence
    DESCRIPTION         = "Angle between the sun, the target point and the
                           surface normal vector at the target"
    UNIT                = "DEGREE"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = PLANETARY_PHASE_ANGLE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 16
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = planetary_phase
    DESCRIPTION         = "Angle between the spacecraft, the center of the
                           target body and the sun"
    UNIT                = "DEGREE"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SOLAR_LONGITUDE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 18
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    DESCRIPTION         = "Planetocentric longitude of the sun"
    UNIT                = "DEGREE"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SUB_SPACECRAFT_LONGITUDE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 20
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = sub_sc_lon
    DESCRIPTION         = "Areocentric west longitude of sub-spacecraft 
                           point"
    UNIT                = "DEGREE"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SUB_SPACECRAFT_LATITUDE
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 22
    BYTES               = 2    
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = sub_sc_lat
    DESCRIPTION         = "Areocentric latitude of sub-spacecraft point"
    UNIT                = "DEGREE"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SUB_SOLAR_LONGITUDE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 24
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = sub_solar_lon
    DESCRIPTION         = "Areocentric west longitude of the sub-solar point"
    UNIT                = "DEGREE"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SUB_SOLAR_LATITUDE
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 26
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = sub_solar_lat
    DESCRIPTION         = "Areocentric latitude of the sub-solar point"
    UNIT                = "DEGREE"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = TARGET_DISTANCE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 28
    BYTES               = 2
    DESCRIPTION         = "Distance from the spacecraft to the target point"
    UNIT                = "KM"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = TARGET_ALTITUDE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 30
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = height
    DESCRIPTION         = "Distance from the surface to the target point.
                           This value is non-zero only for atmospheric
                           targets"
    UNIT                = "KM"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_ALTITUDE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 32
    BYTES               = 2
    ALIAS_NAME          = altitude
    DESCRIPTION         = "Distance from the spacecraft to the sub-spacecraft
                           point on the surface"
    UNIT                = "KM"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = LOCAL_TIME
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 34
    BYTES               = 2
    SCALING_FACTOR      = 0.001
    DESCRIPTION         = "Local time at target, in decimal Martian hours. 
                           The Martian day is divided into 24 equal hours."
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SOLAR_DISTANCE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 36
    BYTES               = 2
    SCALING_FACTOR      = 10000
    DESCRIPTION         = "Distance from the center of the sun to the center
                           of the target body"
    UNIT                = "KM"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = PLANETARY_ANGULAR_RADIUS
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 38
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = angular_semidiameter
    DESCRIPTION         = "Smallest angular radius of Mars as viewed from 
                           the spacecraft."
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = GEOMETRY_CALIBRATION_ID
    DATA_TYPE           = CHARACTER
    START_BYTE          = 40
    BYTES               = 4
    ALIAS_NAME          = version_id
    DESCRIPTION         = "Version ID of geometry algorithm used"
END_OBJECT              = COLUMN


A.5     IFG Table

NAME                    = IFG
COLUMNS                 = 3
ROW_BYTES               = 9
DESCRIPTION             = "

    The IFG table contains the raw interferogram data.  The
    interferogram data is only downlinked when requested and
    can only be requested for a single detector per observation.

    The IFG array contains 1600 points for a short scan
    (OBS Table, SCAN_LENGTH = 1), and 3200 points for a long scan
    (OBS Table, SCAN_LENGTH = 2)."

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_CLOCK_START_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1
    BYTES               = 4
    ALIAS_NAME          = sclk_time
    DESCRIPTION         = "The value of the spacecraft clock at the
                           beginning of the observation"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DETECTOR_NUMBER
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 5
    BYTES               = 1
    ALIAS_NAME          = detector
    DESCRIPTION         = "The number of the spectrometer detector that
                           made the observation. Detectors are
                           numbered from 1 to 6"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = INTERFEROGRAM_DATA
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 6
    BYTES               = 4
    VAR_DATA_TYPE       = MSB_INTEGER
    VAR_ITEM_BYTES      = 2
    VAR_RECORD_TYPE     = Q15
    ALIAS_NAME          = ifgm
    DESCRIPTION         = "Raw interferogram data"
    UNIT                = "VOLTS"
END_OBJECT              = COLUMN



A.6      LMB Table

NAME                    = LMB
COLUMNS                 = 8
ROW_BYTES               = 1592
DESCRIPTION             = "

   The LMB table contains values derived from spectra that look at the limb 
   of Mars.  It contains one record for each limb set - sequential 
   observations that view the limb at different altitudes.  See the limb 
   parameters quality word for information on the validity of calculated  
   variables. The aerosol information may include data from surface 
   observations taken at other times of the same geographic location. 

   The uncertainty array provides error information for surface radiance 
   spectrum values taken near the same time."

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_CLOCK_START_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1
    BYTES               = 4
    ALIAS_NAME          = sclk_time
    DESCRIPTION         = "The value of the spacecraft clock at the
                           beginning of the observation"
END_OBJECT              = COLUMN


OBJECT                  = COLUMN
    NAME                = AEROSOL_OPACITY_PROFILE_LIMB
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 5
    BYTES               = 76
    ITEMS               = 38
    ITEM_BYTES          = 2
    SCALING_FACTOR      = 0.001
    ALIAS_NAME          = opacity_profile
    DESCRIPTION         = "Aerosol integrated normal optical depth from
                           infinity to each of 38 pressures at TBD microns."
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = AEROSOL_OPACITY_SPECTRUM_LIMB
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 81
    BYTES               = 572
    ITEMS               = 286
    ITEM_BYTES          = 2
    SCALING_FACTOR      = 0.001
    ALIAS_NAME          = opacity_spectrum
    DESCRIPTION         = "Aerosol column optical depth spectrum 
                           to surface"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = AEROSOL_SNG_SCAT_ALB_SPECTRUM
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 653
    BYTES               = 572
    ITEMS               = 286
    ITEM_BYTES          = 2
    SCALING_FACTOR      = 0.001
    ALIAS_NAME          = ss_albedo
    DESCRIPTION         = "Aerosol single scattering albedo spectrum at 
                           pressure level indicated in aerosol_sng_
                           scat_pres_level_ind column."
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = AEROSOL_SNG_SCAT_PRES_LEVEL_IND
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1225
    BYTES               = 1
    ALIAS_NAME          = ss_pressure
    DESCRIPTION         = "Pressure Level index (1-38) of the pressure 
                           level to which the single scattering albedo 
                           spectrum pertains.
                           Pressure level is chosen where the tangent 
                           optical depth is approximately unity."
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = LIMB_TEMPERATURE_PROFILE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1226
    BYTES               = 76
    ITEMS               = 38
    ITEM_BYTES          = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = limb_pt
    DESCRIPTION         = "Atmospheric temperature profile at 38 pressures
                           derived from limb set observation"
    UNIT                = "K"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SURFACE_RAD_SPECTRUM_UNCERTAINTY
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1302
    BYTES               = 286
    ITEMS               = 286
    ITEM_BYTES          = 1
    ALIAS_NAME          = srs_uncertainty
    DESCRIPTION         = "Percent uncertainty in surface radiance spectrum."
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = LIMB_PARAMETERS_QUALITY
    DATA_TYPE           = MSB_UNSIGNED_INTEGER    
    START_BYTE          = 1588
    BYTES               = 4
    ALIAS_NAME          = lmb_quality
    DESCRIPTION         = "32-bit data quality word. Bits TBD"
END_OBJECT              = COLUMN





A.7     OBS Table

NAME                    = OBS
COLUMNS                 = 20
ROW_BYTES               = 42
DESCRIPTION             = "

    The OBS table stores the state of the instrument at the start of each
    observation.  One OBS record is generated for each observation."

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_CLOCK_START_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1
    BYTES               = 4
    ALIAS_NAME          = sclk_time
    DESCRIPTION         = "The value of the spacecraft clock at the
                           beginning of the observation"
END_OBJECT              = COLUMN


OBJECT                  = COLUMN
    NAME                = ORBIT_NUMBER
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 5
    BYTES               = 2
    ALIAS_NAME          = orbit
    DESCRIPTION         = "The project supplied orbit number"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = ORBIT_COUNTER_KEEPER
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 7
    BYTES               = 2
    ALIAS_NAME          = ock
    DESCRIPTION         = "Sequential count of the number of orbital
                           Revolutions since orbit insertion. This number
                           is identical to the project supplied orbit
                           up until the first time it is reset to zero."
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = INSTRUMENT_TIME_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 9
    BYTES               = 4
    ALIAS_NAME          = ick
    DESCRIPTION         = "The number of two-second intervals that have 
                           elapsed since the start of the orbit. The 
                           two-second interval is the smallest time unit 
                           defined by the instrument and equals the time to 
                           complete a single length scan."
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = TEMPORAL_AVERAGE_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 13
    BYTES               = 1
    ALIAS_NAME          = tic
    DESCRIPTION         = "The number of two-second scans averaged into 
                           this observation.  Valid values are 1, 2 and 4"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = MIRROR_POINTING_ANGLE
    DATA_TYPE           = MSB_INTEGER
    START_BYTE          = 14
    BYTES               = 2
    SCALING_FACTOR      = .046875
    ALIAS_NAME          = pnt_angle
    DESCRIPTION         = "Scan mirror pointing angle, degrees from nadir
                           about the spacecraft's +Y axis."
    UNIT                = "DEGREE"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = IMC_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 16
    BYTES               = 1
    ALIAS_NAME          = pnt_imc
    DESCRIPTION         = "The number of image motion compensation steps 
                           used."
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = OBSERVATION_TYPE
    DATA_TYPE           = CHARACTER
    START_BYTE          = 17
    BYTES               = 1
    ALIAS_NAME          = pnt_view
    DESCRIPTION         = "The observation classification.  Coarsely 
                           identifies the type of observation as one of the 
                           following: 
                               B=Internal black body reference surface,
                               1=Visual Bolometer calibration lamp 1,
                               2=Visual Bolometer calibration lamp 2,
                               D=Planet, Day side, 
                               N=Planet, Night side, 
                               L=Planet, limb,
                               S=Space"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SCAN_LENGTH
    DATA_TYPE           = CHARACTER
    START_BYTE          = 18
    BYTES               = 1
    ALIAS_NAME          = scan_len
    DESCRIPTION         = "Length of scan
                           1 = single length scans (~10 wavenumber spacing),
                           2 = double length scans (~5 wavenumber spacing)"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DATA_PACKET_TYPE
    DATA_TYPE           = CHARACTER
    START_BYTE          = 19
    BYTES               = 1
    ALIAS_NAME          = pckt_type
    DESCRIPTION         = "Downlink packet format
                           S = short packets (no auxiliary info)
                           L = long packets (auxiliary info included)"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SCHEDULE_TYPE
    DATA_TYPE           = CHARACTER
    START_BYTE          = 20
    BYTES               = 1
    ALIAS_NAME          = schedule_type
    DESCRIPTION         = "Schedule type being executed:
                           T = Real time plan,
                           C = Record plan,
                           O = Overlay"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SPECTROMETER_GAIN
    DATA_TYPE           = CHARACTER
    START_BYTE          = 21
    BYTES               = 1
    ALIAS_NAME          = spc_gain
    DESCRIPTION         = "Spectrometer amplifier gain channel number,
                           1 = ~1
                           2 = ~2
                           3 = ~4
                           4 = ~8"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = VISUAL_BOLOMETER_GAIN
    DATA_TYPE           = CHARACTER
    START_BYTE          = 22
    BYTES               = 1
    ALIAS_NAME          = vbol_gain
    DESCRIPTION         = "Visual bolometer amplifier gain setting,
                            L = Low setting,
                            H = High setting"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = THERMAL_BOLOMETER_GAIN
    DATA_TYPE           = CHARACTER
    START_BYTE          = 23
    BYTES               = 1
    ALIAS_NAME          = tbol_gain
    DESCRIPTION         = "Thermal bolometer amplifier gain setting,
                            L = Low setting,
                            H = High setting"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = PREPROCESSOR_DETECTOR_NUMBER
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 24
    BYTES               = 1
    ALIAS_NAME          = comp_pp
    DESCRIPTION         = "Precompressor reference detector number. The
                           spectrum from each detector within a single ICK
                           is subtracted from the spectrum of this detector
                           prior to data compression to reduce signal 
                           entropy"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DETECTOR_MASK
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 25
    BYTES               = 1
    ALIAS_NAME          = det_mask
    DESCRIPTION         = "Spatial detector mask number, one of eight 
                           possible combinations in which the spectra from 
                           the six TES detectors can be co-added prior to 
                           transmission to Earth. Varies from no combination 
                           (all detectors separate) to all detectors co-added
                           into a single spectrum.
                           See TES Software User's Guide for details"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = OBSERVATION_CLASSIFICATION
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 26
    BYTES               = 4
    ALIAS_NAME          = class
    DESCRIPTION         = "Numeric classification of intended target.
                           See ancillary Class table for specific values"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = OBSERVATION_QUALITY
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 30
    BYTES               = 4
    ALIAS_NAME          = quality
    DESCRIPTION         = "32-bit observation quality word.   Bits TBD"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = PRIMARY_DIAGNOSTIC_TEMPERATURES
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 34
    BYTES               = 8
    ITEMS               = 4
    ITEM_BYTES          = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = temps
    DESCRIPTION         = "Primary diagnostic temperatures:
                          temps[1] = T1 = Visual Bolometer Detector Package
                          temps[2] = T2 = Thermal Bolometer Detector Package
                          temps[3] = T3 = Spectrometer Detector Package
                          temps[4] = T4 = Thermal Bolometer Black Body
                          Reference"
    UNIT                = "K"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = FFT_START_INDEX
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 42
    BYTES               = 1
    ALIAS_NAME          = fft_start_index
    DESCRIPTION         = "This parameter specifies the index into the FFT
                           output array that was used as the first band of
                           the downlinked spectral range."
END_OBJECT              = COLUMN


A.8     POS Table

NAME                    = POS
COLUMNS                 = 7
ROW_BYTES               = 70
DESCRIPTION             = "

    The POS table stores the positions of the spacecraft and sun 
    relative to the planet, the spacecraft's orientation quaternion, 
    and the Mars body quaternion, all relative to the J2000 system.

    These data are initially derived from the project's SPICE kernels,
    but may be corrected from various other sources.  This table
    may also include interpolated values where SPICE data were unavailable."

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_CLOCK_START_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1
    BYTES               = 4
    ALIAS_NAME          = sclk_time
    DESCRIPTION         = "The value of the spacecraft clock at the
                          beginning of the observation"
END_OBJECT              = COLUMN


OBJECT                  = COLUMN
    NAME                = EPHEMERIS_TIME
    DATA_TYPE           = IEEE_REAL
    START_BYTE          = 5
    BYTES               = 8
    ALIAS_NAME          = et
    DESCRIPTION         = "Ephemeris time, seconds since 1/1/2000"
    UNIT                = "Seconds"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_POSITION
    DATA_TYPE           = IEEE_REAL
    START_BYTE          = 13
    BYTES               = 12
    ITEMS               = 3
    ITEM_BYTES          = 4
    ALIAS_NAME          = pos
    DESCRIPTION         = "Spacecraft position vector relative to Mars
                           in the J2000 reference frame"
    UNIT                = "KM"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SUN_POSITION
    DATA_TYPE           = IEEE_REAL
    START_BYTE          = 25
    BYTES               = 12
    ITEMS               = 3
    ITEM_BYTES          = 4
    ALIAS_NAME          = sun
    DESCRIPTION         = "Sun position vector relative to Mars in the J2000
                           reference frame"
    UNIT                = "KM"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_QUATERNION
    DATA_TYPE           = IEEE_REAL
    START_BYTE          = 37
    BYTES               = 16
    ITEMS               = 4
    ITEM_BYTES          = 4
    ALIAS_NAME          = quat
    DESCRIPTION         = "Spacecraft pointing quaternion in the J2000
                           reference frame"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = MARS_QUATERNION
    DATA_TYPE           = IEEE_REAL
    START_BYTE          = 53
    BYTES               = 16
    ITEMS               = 4
    ITEM_BYTES          = 4
    ALIAS_NAME          = qbody
    DESCRIPTION         = "Mars body quaternion in the J2000 reference frame"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = POSITION_SOURCE_ID
    DATA_TYPE           = CHARACTER
    START_BYTE          = 69
    BYTES               = 2
    ITEMS               = 2
    ITEM_BYTES          = 1
    ALIAS_NAME          = id
    DESCRIPTION         = "2-character source ID.
                           First character is source of positions.
                           Second character is source of pointing.
                           See ancillary table for details."
END_OBJECT              = COLUMN



A.9      RAD Table

NAME                    = RAD
COLUMNS                 = 9
ROW_BYTES               = 24
DESCRIPTION             = "

    The RAD table contains the raw and calibrated observed radiances.
    For each observation there can be up to 6 RAD records, one for each
    active spectrometer detector.  If the Temporal Integration Count
    (OBS Table, TEMPORAL_AVERAGE_COUNT) is greater than 1, then the data
    represent the average of the measurements from that many scans.

    The instrument can apply a programmable spectral mask to the raw
    data causing neighboring channels to be averaged; however, this
    feature is used only when downlink bandwidth is limited.  When
    spectrally masked data are received, the averaged-out channels are
    replaced with the averaged value to expand the spectra back to its
    original size.  The spectral-mask that was used to perform the
    averaging is kept in this table.

    The raw spectra are compressed for downlink.  The original
    bit-packed compression header, containing the size of the
    compressed data and the compression mode used, is kept in this
    table in order to be used to evaluate the performance of the compressor."

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_CLOCK_START_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1
    BYTES               = 4
    ALIAS_NAME          = sclk_time
    DESCRIPTION         = "The value of the spacecraft clock at the
                          beginning of the observation"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DETECTOR_NUMBER
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 5
    BYTES               = 1
    ALIAS_NAME          = detector
    DESCRIPTION         = "The number of the spectrometer detector that
                          made the observation. Detectors are numbered 
                          from 1 to 6"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SPECTRAL_MASK
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 6
    BYTES               = 1
    ALIAS_NAME          = spectral_mask
    DESCRIPTION         = "ID number of spectral mask applied.  
                           See ancillary Masks table"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = COMPRESSION_MODE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 7
    BYTES               = 2
    ALIAS_NAME          = cmode
    DESCRIPTION         = "16-bit compression header of original data
                           containing the size and compression mode of the 
                           original compressed data.  See TES Users Guide."
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = RAW_RADIANCE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 9
    BYTES               = 4
    VAR_DATA_TYPE       = MSB_INTEGER
    VAR_ITEM_BYTES      = 2
    VAR_RECORD_TYPE     = Q15
    ALIAS_NAME          = raw_rad
    DESCRIPTION         = "Raw spectral radiance"
    UNIT                = "transformed volts"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = CALIBRATED_RADIANCE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 13
    BYTES               = 4
    VAR_DATA_TYPE       = MSB_INTEGER
    VAR_ITEM_BYTES      = 2
    VAR_RECORD_TYPE     = Q15
    ALIAS_NAME          = cal_rad
    DESCRIPTION         = "Calibrated spectral radiance"
    UNIT                = "watts cm-2 steradian-1 wavenumber-1"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DETECTOR_TEMPERATURE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 17
    BYTES               = 2
    ALIAS_NAME          = tdet
    DESCRIPTION         = "Derived temperature of the detector, used to
                           remove instrument radiance in calibration
                           algorithm"
    UNIT                = "K"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = TARGET_TEMPERATURE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 19
    BYTES               = 2
    ALIAS_NAME          = target_temp
    DESCRIPTION         = "Derived temperature of the observed target"
    UNIT                = "K"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = RADIANCE_CALIBRATION_ID
    DATA_TYPE           = CHARACTER
    START_BYTE          = 21
    BYTES               = 4
    ALIAS_NAME          = version_id
    DESCRIPTION         = "Calibration algorithm version id for spectral 
                          data."
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = QULITY
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 25
    BYTES               = 4
    ALIAS_NAME          = quality
    DESCRIPTION         = "Quality word, bits TBD"
END_OBJECT              = COLUMN



A.10     SRF Table

NAME                    = SRF
COLUMNS                 = 11
ROW_BYTES               = 109
DESCRIPTION             = "

   The SRF table contains values derived from spectra that include Mars in 
   the field of view.  It contains one record for each valid calibrated 
   radiance spectrum that includes the planet and for which any valid 
   quantities could be derived.  See the surface parameters quality word for 
   information on the validity of calculated variables.

   The surface spectrum with the atmosphere removed is contained in a 
   variable length array.  See the SURFACE_RAD_SPECTRUM_UNCERTAINTY column 
   in the LMB table at the time nearest the observation for a measure of the 
   error in these values.

   For observations that target a body other than Mars (e.g., Phobos and 
   Deimos), there will be no data in this table."

OBJECT                  = COLUMN
    NAME                = SPACECRAFT_CLOCK_START_COUNT
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 1
    BYTES               = 4
    ALIAS_NAME          = sclk_time
    DESCRIPTION         = "The value of the spacecraft clock at the
                           beginning of the observation"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DETECTOR_NUMBER
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 5
    BYTES               = 1
    ALIAS_NAME          = detector
    DESCRIPTION         = "The number of the spectrometer detector that
                           made the observation. Detectors are
                           numbered from 1 to 6"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SPECTRAL_THERMAL_INERTIA
    DATA_TYPE           = IEEE_REAL
    START_BYTE          = 6
    BYTES               = 4
    ALIAS_NAME          = ti_spc
    DESCRIPTION         = "Thermal inertia, derived from spectrometer data"
    UNIT                = "J m-2 s-1/2 K-1"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = DOWN_WELLING_FLUX
    DATA_TYPE           = IEEE_REAL
    START_BYTE          = 10
    BYTES               = 4
    ALIAS_NAME          = dw_flux
    DESCRIPTION         = "Atmospheric down-welling flux" 
    UNIT                = "watts cm-2"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SURFACE_PRESSURE
    DATA_TYPE           = IEEE_REAL
    START_BYTE          = 14
    BYTES               = 4
    ALIAS_NAME          = srf_pressure
    DESCRIPTION         = "Surface pressure estimate from lookup table,
                           based on topography and seasonal pressure 
                           variation"
    UNIT                = "mBar"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SPECTRAL_SURFACE_TEMPERATURE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 18
    BYTES               = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = srf_temp_spc
    DESCRIPTION         = "Surface temperature, derived from spectrometer 
                           data.  See users guide (process.asc or 
                           process.pdf) for more information. "
    UNIT                = "K"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = NADIR_TEMPERATURE_PROFILE
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 20
    BYTES               = 76
    ITEMS               = 38
    ITEM_BYTES          = 2
    SCALING_FACTOR      = 0.01
    ALIAS_NAME          = nadir_pt
    DESCRIPTION         = "Atmospheric pressure/temperature profile from 
                           Nadir observation.  Array of temperatures at 
                           38 given pressures"
    UNIT                = "K"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = AEROSOL_OPACITY_NADIR
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 96
    BYTES               = 2
    SCALING_FACTOR      = 0.001
    ALIAS_NAME          = optical_depth
    DESCRIPTION         = "Aerosol normal optical depth to surface at TBD
                          microns.  Use surface pressure to scale to 
                          surface."
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SURFACE_PARAMETERS_QUALITY
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 98
    BYTES               = 4
    ALIAS_NAME          = srf_quality
    DESCRIPTION         = "32-bit data quality word, per detector.  
                           Bits TBD"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SURFACE_RADIANCE    
    DATA_TYPE           = MSB_UNSIGNED_INTEGER
    START_BYTE          = 102
    BYTES               = 4
    VAR_DATA_TYPE       = MSB_INTEGER
    VAR_ITEM_BYTES      = 2
    VAR_RECORD_TYPE     = Q15
    ALIAS_NAME          = srf_radiance
    DESCRIPTION         = "Derived surface radiance"
    UNIT                = "watts cm-2 steradian-1 wavenumber-1"
END_OBJECT              = COLUMN

OBJECT                  = COLUMN
    NAME                = SURFACE_CALIBRATION_ID
    DATA_TYPE           = CHARACTER
    START_BYTE          = 106
    BYTES               = 4
    ALIAS_NAME          = version_id
    DESCRIPTION         = "Surface Atmosphere Separation Algorithm version 
                           ID"
END_OBJECT              = COLUMN