
  =========================================================================
  =========================================================================
  == [DISCLAIMER]: THIS SOFTWARE AND ANY ACCOMPANYING DOCUMENTATION IS   ==
  == RELEASED "AS IS".  THE U.S. GOVERNMENT MAKES NO WARRANTY OF ANY     ==
  == KIND, EXPRESS OR IMPLIED, CONCERNING THIS SOFTWARE AND ANY          ==
  == ACCOMPANYING DOCUMENTATION, INCLUDING, WITHOUT LIMITATION, ANY      ==
  == WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  ==
  == IN NO EVENT WILL THE U.S. GOVERNMENT BE LIABLE FOR ANY DAMAGES      ==
  == ARISING OUT OF THE USE, OR INABILITY TO USE, THIS SOFTWARE OR ANY   ==
  == ACCOMPANYING DOCUMENTATION, EVEN IF INFORMED IN ADVANCE OF THE      ==
  == POSSIBLITY OF SUCH DAMAGES.                                         ==
  =========================================================================
  =========================================================================  

******************************************************************************
*                          File: adts884.doc                                 *
*                        Author: John F. Querns, Veridian Inc (Veda)         *
*                          Date: 12 June 1997                                *
*                         Phone: (937) 255-1116, Ext 2818                    *
*                         email: jquerns@mbvlab.wpafb.af.mil                 *
*                                                                            *
******************************************************************************

  The purpose of this file is to provide you (i.e. the user) with information
regarding "8-8-4 formatted data" generated by the MIT/Lincoln Laboratory Ad-
vanced Detection Technology (ADT) Project Image Formation Processor (IFP), 
using the ATRWG file structure.

The HELP information presented below was gleaned from two sources:

  (1)  Notes from the briefing given by Carl E. Frost to the 12 April 1990 
       ADTS Radar Data Users Meeting.  The presentation was entitled "ADTS 
       Data Packages, Formats, and Media."

  (2)  Personal research...



******************************************************************************
******************************************************************************
**                             [ADTS MISSION TAPES]                         **
******************************************************************************
******************************************************************************

 
  ADTS images are usually distributed via tape media (e.g. 8mm).  Each
  tape holds several files [FRAMES] for a specific PASS of a particular
  MISSION.  For example, a tape might be named:

                  " M90P4F0-129.ATR "

        MISSION ==>  90 (this is usually to year flown)
        PASS    ==>   4
        FRAMES  ==> 130 (that is, there are 130 FRAMES, labeled 0 to 129)



******************************************************************************
******************************************************************************
**                        [ADTS IMAGE FILES (or FRAMES)]                    **
******************************************************************************
******************************************************************************


  When ADTS Synthetic Aperture Radar (SAR) image data is collected, 8-8-4
  images are generated and stored for each of four polarizations:

                HH --> Horizontal TX, Horizontal RX
                HV --> Horizontal TX, Vertical   RX
                VH --> Vertical   TX, Horizontal RX
                VV --> Vertical   TX, Vertical   RX
 
  The illustration below shows the general format or layout for a specific
  ADTS image file (or FRAME).  Remember that a typical MISSION tape can hold
  hundreds of these FRAME files.  As you can see, each "file" contains four
  sub-files (or sub-frames), one for each polarization image.  Each frame also
  contains a MISSION header plus one IMAGE header for each polarization.  Most
  ADTS 4-subimage FRAME files follow this exact layout:
           
                                                                        
    |   [FRAME 0] --> {HH Sub-frame} --> [...... HH IMAGE HEADER .....]    |
    |                                    [...... MISSION HEADER ......]    |
    |                                    [****** HH 8-8-4 IMAGE ******]    |
    |                                    [.............EOF............]    |
    |                                                                      |
    |                 {HV Sub-frame} --> [...... HV IMAGE HEADER .....]    |
    |                                    [****** HV 8-8-4 IMAGE ******]    |
    |                                    [.............EOF............]    |
    |                                                                      |
    |                 {VH Sub-frame} --> [...... VH IMAGE HEADER .....]    |
    |                                    [****** VH 8-8-4 IMAGE ******]    |
    |                                    [.............EOF............]    |
    |                                                                      |
    |                 {VV Sub-frame} --> [...... VV IMAGE HEADER .....]    |
    |                                    [****** VV 8-8-4 IMAGE ******]    |
    |                                    [.............EOF............]    |
    |                                                                      |
    |   [FRAME 1] --> (and so on)....                                      |
    |______________________________________________________________________|

    NOTE: Some ADTS files do not contain the mission header that comes after
          the HH polarization image header.  In addition some ADTS files are
          already parceled (or chipped) out and contain only one image with
          its image header..



******************************************************************************
******************************************************************************
**                              [ADTS IMAGE HEADERS]                        **
******************************************************************************
******************************************************************************


  An ADTS frame file usually consists of 4 sub-frame files, one for each 
  polarization.  Each polarization image is preceded by an IMAGE HEADER,
  known as "HEADER 1".  Each polarization image MAY also be followed by an
  additional header, called "HEADER 2".  Although this is generally true,
  most ADTS files have a "HEADER 2" (also known as the MISSION HEADER) ONLY
  for the first polarization image (i.e. HH).  See APPENDIX A below for an
  example of an image with an IMAGE HEADER (Header-1) followed by a MISSION
  HEADER (Header-2), as well as an example of of one with only an IMAGE
  HEADER (Header-1). 

    [HEADER-1]:  

    An octal dump (using the UNIX command, "od -a {file} | more"), shows
    Header-1 to be a  128-byte ASCII header padded out with NULLs so that
    the size of the header is equivalent to one image record.

    NOTE:  The briefing by Frost indicates that Header-1 can
           be configured as a C structure where only the first
           four fields are ASCII and the rest (13) are 4-byte
           long integers.  

           ___________________________________________________________
          |                                                           |
          |   struct record1                                          | 
          |   {                                                       |
          |    char country[5];     /* Country of origin        */    |
          |    char lab[5];         /* Orig laboratory...       */    |
          |    char date[9];        /*Date generated (yy mm dd) */    |
          |    char data_name[9];   /* Data identifier (name)   */    |
          |    long nrecords;       /* Records in this file     */    |
          |    long header2_len;    /* Bytes in header 2        */    |
          |    long reclen;         /* Bytes per record in file */    |
          |    long pixent;         /* Entries per pixel        */    |
          |    long ibytes;         /* Bytes per integer entry  */    |
          |    long mbytes;         /* Bytes per entry mantissa */    |
          |    long ebytes;         /* Bytes per entry exponent */    |
          |    long nsamps;         /* Samples per image line   */    |
          |    long nlines;         /* Lines per image          */    |
          |    long data_val_type;  /* Imagery data value type  */    |
          |    long aux_data_type;  /* Aux data type            */    |
          |    long header2_fmt;    /* Header 2 format          */    |
          |    long lines_per_rec;  /* Image lines per record   */    |
          |   };                                                      |
          |___________________________________________________________|
         
           However, none of the images examined thus far follow this
           structure.

           Sullivan, in his C routine, "rd884.c", uses the following
           code fragment to read Header-1 data from an ADTS frame
           file.  His code somewhat follows Frost's model in that
           he reads 4 ASCII arrays followed by 13 longs.  Note that he
           also reads from STDIN:

            {from Thomas D. Sullivan's "rd884.c"}
            ______________________________________________________
           |                                                      |
           |   /* Read and echo header1 */                        |
           |   if ( fgets(country,5,stdin) == NULL ) break;       |
           |      fgets(lab,5,stdin);                             |
           |      fgets(date,9,stdin);                            |
           |      fgets(data_name,9,stdin);                       |
           |      scanf("%d%d%d%d%d%d%d%d%d%d%d%d%d",             |
           |            &nrecords,&header2_len,&reclen,&pixent,   |
           |            &ibytes,&mbytes,&ebytes,&nsamps,&nlines,  |
           |            &data_value_type,&aux_data_type,          |
           |            &header2_fmt,&lines_per_rec);             |
           |______________________________________________________|
 
            This code fragment actually works quite well.  One reason
            is that, even though all of the 13 integer values that
            follow the character arrays are stored as an 8-character
            ASCII string, they are right-justified in the string and
            are converted to long integers in the same way that the
            C routine "atol" converts strings of ASCII numbers.  Since
            the Header-1 value ARE stored as ASCII strings, it follows
            that one could use the following code fragment, along with
            "atol", to extract the header-1 values:

            Create a temporary 9-character buffer, "tmpbuf":

              ______________________________________
             |                                      |
             |        fgets(country,5,stdin);       |
             |        fgets(lab,5,stdin);           |
             |        fgets(date,9,stdin);          |
             |        fgets(data_name,9,stdin);     |
             |                                      |
             |        fgets(tmpbuf,9, stdin);       |
             |        nrecords = atol(tmpbuf);      |
             |                                      |
             |        fgets(tmpbuf,9, stdin);       |
             |        header2_len = atol(tmpbuf);   |
             |                                      |
             |        fgets(tmpbuf,9, stdin);       |
             |        reclen = atol(tmpbuf);        |
             |                                      |
             |            ...and so on...           |
             |______________________________________|       
    
              If you declared a separate file pointer using the FILE 
              declarator, just substitute it for "stdin" in the above code.

              Both of these code fragments work.  The second is longer,
              but it follows more closely how the data is stored.

      Header-1 contains the following ASCII entries:

           [USA LL47]  Country/Laboratory of origin
           [89 04 28]  Date recorded (YY MM DD format)
       (a) [P3F19HH ]  Data Name
       (b) [     515]  Number of records in this file
       (c) [    7857]  Number of bytes in HEADER-2
       (d) [    6156]  Bytes per Image Record
       (e) [       3]  Entries per image sample
           [       0]  Bytes per integer entry
           [       2]  Bytes per mantissa of an entry (real & imaginary)
           [       1]  Bytes per exponent of an entry
       (f) [    2048]  Number of data samples per image line
       (g) [     512]  Number of image lines
           [       1]  Imagery data type (1 for complex data)
           [     884]  Auxiliary data type 
           [       0]  Format of Header-2 
       (h) [       1]  Image line(s) per tape record

       Header-1 NOTES:
       **************

       (a)  The DATA NAME field for an ADTS image usually contains the
            following elements as part of the name:

            DATA NAME = "Pass #" + "Frame #" + "Polarization"
                 
       (b)  This field shows the TOTAL number of records in the particular 
            polarization image, including HEADER records.  To calculate the
            number of HEADER records, subtract the number of images lines (g)
            from this field amount.  Since HEADER-1 is ALWAYS one record long,
            HEADER-2 comprises the other header records.

       (c)  This field shows the number of bytes in Header-2.  Note that for
            the other polarization sub-images, this value is usually 0.

       (d)  This value includes the 3 header and 1 trailer pixels contained
            in each line:

             Record Length = (3 * h0) + (3 * h1) + (3 * h2) +
                              (3 * number of data samples)  +
                                       (3 * tr)

                         <or> reclen = ( 3 * (nsamps + 4) )

             Example: Given the number of data samples = 2048, the bytes
                      per image record = (3 * (2048 + 4)) = 6156 bytes.

        (e)  States that 8-8-4 pixels are 3-bytes long.

        (f)  Only states number of "data" pixels in image line.  It does not
             include 4 header pixels in value.

        (g)  Can be used to compute number of header records.

        (h)  Grayscale images have 1 image line per record.  However, color
             images MAY have up to 3 image lines per record.


    [HEADER-2]:

    Header-2 is also an ASCII header with a length as specified in Header-1.
    The ADTS Header-2 is also known as the MISSION header because it contains
    all mission-related information for the frame.  It contains separate lines
    of comments, as well as comments incorporated with header information
    lines.  Header-2 parameters are described below:

        * NAME Field 
     
          -- 32 columns
          -- Values are left-justified in field
          -- Upper-case, numbers, and underscores

        * SEPARATOR Field 

          -- 2 columns ('= ')

        * VALUE Field

          -- 24+ columns
          -- Character values are delimited by (') and left-justified.  They
             may extend to end of line (i.e. > 24)
          -- Numerical values are right-justified and read with Fortran F24.0
             format (if using Fortran).  If using C, you might want to grab
             whole line and parse.

       * COMMENTS Field

          -- Comments follow '!' character and may be included after the
             VALUE field
 
    So a particular Header-2 contains, as a minimum 58 columns of data.
    Most ADTS Header-2s contains around 66 comment lines that precede
    the actual header data.  This comment section stores an explanation
    of the ADTS 8-8-4 image formation.  It also contains information about
    calculating the RCS and the backscatter coefficient value from complex
    pixel data.  Other comment lines are inserted, where necessary, to
    expand on a field explanation.

    The following NAME fields can be found in most ADTS image files:

        [GENERAL FIELDS]                  [CONVERSION/RESOLUTION FIELDS]

          SITE_NAME                         SIGMA_0_TO_RCS
          SITE_GROUP                        SAMPLE_TYPE
          ATRWG DATE                        SAMPLE_SPACING
          MISSION_NUMBER                    LINE_TYPE
          PASS_NUMBER                       LINE_SPACING
          FRAME_NUMBER
          POLARIZATION_TYPE               [RANGE BIN OFFSET FIELDS]
          MODE_NAME       
          WHICH_SIDE_LOOKING                RANGE_BEAM_CENTER
          SAMPLES_PER_LINE                  RANGE_ANTENNA_DB
          LINES_PER_FRAME
          FRAME_TIME
          PIXEL_INTENSITY_UNITS
        
        [POLARIMETRIC BALANCE INFO FIELDS]

          HV_VH_AMP_IMBALANCE       HV_VH_PHASE_IMBALANCE
          HV_VH_RANGE_AMP_SLOPE     HV_VH_RANGE_PHASE_SLOPE
          HV_VH_XRANGE_AMP_SLOPE    HV_VH_XRANGE_PHASE_SLOPE
          HV_VH_AMP_RESIDUAL        HV_VH_PHASE_RESIDUAL

        [GEOGRAPHICAL REFERENCE ORIGIN FIELDS]

          GPS_REF_NUMBER            REFERENCE_ELEVATION
          REFERENCE_LATITUDE        REFERENCE_LONGITUDE

        [PLATFORM DYNAMICS FIELDS]

          PLATFORM_GROUND_HEADING   PLATFORM_GROUND_SPEED
          PLATFORM_NORTH            PLATFORM_EAST
          PLATFORM_DOWN

        [BORESIGHT GEOMETRY FIELDS]

          BORESIGHT_HEADING         BORESIGHT_DEPRESSION_ANGLE
          BORESIGHT_RANGE 
        
          IMAGE_CENTER_NORTH        IMAGE_CENTER_EAST
          IMAGE_CENTER_DOWN         IMAGE_CENTER_LINE
          IMAGE_CENTER_SAMPLE


     GROUND TRUTH:
     ------------

     Some ADTS images contain object-specific ground truth information following 
     the general mission parameters information above.  For example, images in
     Mission 78, Pass 8 (M78P8) contain ground truth for armored vehicles and
     reference reflectors in the scene.
     scene.

     The layout of the target-specific truth data is as follows (Sample data is
     shown for example purposes): 
          

     MISSION NUMBER:  78
     SITE GROUP:  ARMOR

      
                                        GROUND TRUTH TABLE
                                        ------------------

    GROUND TRUTH REFLECTORS
    -----------------------

                                            NOM HH
    REFLECTOR  STAKE  REFLECTOR  REFLECTOR   RCS    POINT  ROLL  DEPR  POLE  STAKE   STAKE   STAKE
       ID NO     NO     TYPE      PURPOSE   (DBSM)  ANGLE ANGLE ANGLE   HT   NORTH    EAST    DOWN

     LL073        1    HEMISPH    REGIST     31.1    0.0   0.0   35.0  0.0   766.89 -452.23   3.88


    GROUND TRUTH TARGETS
    --------------------
                                                         TGT
    TGT   TGT     TGT   TGT   CAMO  # CAMO  CAMO    POLE REF  TGT    TGT    TGT
     ID  HEADING PITCH  ROLL  TYPE  LAYERS  DESCRIP TYPE  PT NORTH  EAST   DOWN


    10A  319.0   -1.0   0.0           0             NONE LF  814.6 -484.2   4.2

    
    TARGET DESCRIPTION
    ------------------

    TGT                  TGT              TGT       TGT      TGT
     ID             DESCRIPTION         LENGTH     WIDTH    HEIGHT

    10A             M-55 HOWITZER        7.91       3.58     3.47


     
    EXPLANATIONS (SOME):
    -------------------

    a) DISTANCES are in METERS
       TIMES are in SECONDS 
       ANGLES are in DEGREES
       HEADINGS are CW from TRUE NORTH
       LATITUDE in DECIMAL DEGREES (NORTH positive)
       LONGITUDE in DECIMAL DEGREES (EAST positive)

    b) "TGT REF PT" refers to location on vehicle where ground truth taken:

             LF --> LEFT FRONT     RF --> RIGHT FRONT
             LR --> LEFT REAR      RR --> RIGHT REAR

    c) Typical scenes have 9-13 reference reflectors which consist of:

             HEMISPHERIC reflectors
             TRIHEDRAL reflectors


******************************************************************************
******************************************************************************
**                          [8-8-4 FORMATTED IMAGES]                        **
******************************************************************************
******************************************************************************


   (a) There are two types of ADTS image pixels (or words): HEADER & DATA.
       Each ADTS pixel is 3-bytes long.

       -- HEADER pixels contain control information (pixel or word
          validity, if pixel is a header or data pixel, parity data,
          frame tags, line numbers, and polarization. 

       -- DATA pixels contain the actual SAR data in a special compressed
          complex data format known as "8-8-4".  The 8-8-4 DATA format 
          pixel is composed of three bytes.
          
          Byte 1 --> [EXPONENT  ]: It is 4-bit unsigned and is found in the
                                   4 least significant bits of the byte. The
                                   4 most significant bits are to be ignored.
  
          Byte 2 --> [INPHASE   ]: Holds the REAL integer mantissa and is
                                   8-bit, 2's complement.
           
          Byte 3 --> [QUADRATURE]: Holds the IMAGINARY integer mantissa and
                                   is 8-bit, 2's complement.    

   (b) There are 3 HEADER pixels at the start of each image line, and one
       TRAILER (i.e. header) pixel at the end of each image line.  These
       HEADER and TRAILER pixels are not part of the image.  The following
       drawing shows the layout of an 8-8-4 IMAGE DATA FILE.  It is 
       followed by a drawing showing the layout of a specific 8-8-4 IMAGE
       DATA RECORD (or image line): 



                          [8-8-4 IMAGE DATA FILE FORMAT]

     <----- HEADER PIXELS ----> <----------- DATA PIXELS ---------> TRAILER
     _________________________________________________________________________
     |B1|B2|B3|B1|B2|B3|B1|B2|B3|B1|B2|B3|B1|B2|B3|B1|B2|B3|B1|B2|B3|B1|B2|B3|
     |--------|--------|--------|--------|--------|--------|--------|--------|
   L0|________|________|________|________|________|________|________|________|
   L1|________|________|________|________|________|________|________|________|
   L2|________|________|________|________|________|________|________|________|
     |________|________|________|________|________|________|________|________|
     |________|________|________|________|________|________|________|________|
     |________|________|________|________|________|________|________|________|
     |________|________|________|________|________|________|________|________|
L[N-1]  H0        H1      H2       D0       D1        D2     D[N-1]     H3


                         [8-8-4 IMAGE DATA RECORD LAYOUT]
  
     _______________________________________________________________________
    |                       |                       |                       | 
    |<------ BYTE 1 ------->|<-------- BYTE 2 ----->|<------- BYTE 3 ------>|
    |_______________________|_______________________|_______________________|
    |           |     |     |                       |                       |
    | V  C  X  P| H  #|     |                       |                       |
    |___________|_____|_____|_______________________|_______________________|
    |23 22 21 20|19 18|17 16|15 14 13|12 11 10 09 08|07 06 05 04 03 02 01 00|
    |___________|_____|_____|________|______________|_______________________|
    |           |     |              |                                      |
 H0 | 1  1  X  P| 0  0| X  F  L  P  T|<------------ LINE NUMBER ----------->|
    |___________|_____|______________|______________________________________|
    |           |     |                             |                       |
 H1 | 1  1  X  P| 0  1| X  X  X  X  X  X  X  X  X  X|<----- FRAME TAG ----->|
    |___________|_____|_____________________________|_______________________|
    |           |     |                                                     |
 H2 | 1  1  X  P| 1  0| X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X|
    |___________|_____|_____________________________________________________|
    |           |           |                       |                       |
 D  | 1  0  X  P|<---EXP--->|<--------- I --------->|<--------- Q --------->|
    |           |(Unsigned) |(Signed 2's Complement)|(Signed 2's Complement)|
    |___________|___________|_______________________|_______________________|
    |           |     |                                                     |
 TR | 1  1  X  P| 1  1| X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X|
    |___________|_____|_____________________________________________________|
                                 
    [8-8-4 IMAGE RECORD LAYOUT KEY]:

           V   --> [1] implies valid HEADER or DATA pixel
                   [ ] (i.e. space) implies invalid HEADER or DATA pixel
           C   --> [1] implies that pixel is a CONTROL (i.e. header) pixel
                   [0] implies that pixel is a DATA pixel
           X   --> Ignored 
           P   --> Parity bit (ODD)
           H#  --> Header number (0, 1, 2, and 3)
           F   --> First line of frame (F = 1)
           L   --> Last line of frame (L = 1)
           PT  --> Polarization
           EXP --> Exponent (4-bit unsigned number), lower 4-bits of Byte 1
           I   --> INPHASE or REAL part of complex pixel data
           Q   --> QUADRATURE or IMAGINARY part of complex pixel data

  
[8-8-4 DATA CONVERSION]

   (c) The VALUE of each pixel's REAL & IMAGINARY MANTISSA component is
       computed by:            

          ________________________________________________________________ 
         |                                                                |
         |  VALUE = BSCALE * MANTISSA * (2**EXPONENT) + BZERO             |  
         |                                                                |
         |  where -> BSCALE = 2.44140625E-04 (i.e. 1/4096 scaling factor) |
         |           BZERO  = 0.0            (i.e. pixel value offset   ) |
         |________________________________________________________________|


       The resulting UNITLESS complex pixel values are the square root of
       SIGMA-0, which is known as the "backscattering coefficient".  The
       BACKSCATTERING COEFFICIENT is defined as:

             SIGMA-0 = (Radar Cross Section (RCS), Sq-meters) /
                       (Radar Resolution Cell Ground Area, Sq-meters)

       To obtain SIGMA-0 from the computed pixel values, you must multiply
       each complex pixel pixel value by its complex conjugate value.  The
       square root of the backscatter coefficient (i.e. SIGMA-0) converts
       pixel intensity to the square root of the RCS.

       To obtain the RCS value in square meters, first multiply each pixel
       value by a supplied conversion factor. Then, multiply the result by
       its complex conjugate value.  This conversion factor (SIGMA_0_TO_RCS)
       is supplied with the MISSION HEADER (i.e. Header 2)  of each ADTS frame 
       file.  


******************************************************************************
******************************************************************************
**                               [APPENDIX A]                               **
**                          (Example ADTS Headers)                          **
******************************************************************************
******************************************************************************

    The following example headers were extracted from FRAME 110 of PASS 4 of
    MISSION 90.  They include an IMAGE HEADER (Header-1) for an HH 
    polarization image followed by a MISSION HEADER (Header-2) based on
    information extracted from Header-1.  Following this is the HV 
    polarization IMAGE HEADER (Header-1) from the same frame.  Note that 
    the HV Header-1 indicates that there is no Header-2 data.  That is, the
    Header-2 length is 0.


[Header 1 <HH>] for ADTS File: [m90p4f110.884] 

      Country of Origin         =   [USA ]
      Originating Laboratory    =   [LL47]
      Date Data Generated       =   [89 06 05]
      Data Name                 =   [P4F110HH] 
      Num of Records in File    =   [515]
      Header 2 Length           =   [6501]
      Bytes per Record          =   [6156]
      Entries per Pixel         =   [3]
      Bytes per Integer Entry   =   [0]
      Bytes per Entry Mantissa  =   [2]
      Bytes per Entry Exponent  =   [1]
      Samples per Image Line    =   [2048]
      Lines per Image           =   [512]
      Image Data Value Type     =   [1]
      Auxiliary Data Type       =   [884]
      Header 2 Format           =   [0]
      Image Lines per Record    =   [1]
   

[Header 2 <HH>] for ADTS File: [m90p4f110.884] 

!*******************************************************************************
!
!THE CONTENTS OF THIS TAPE ARE CLASSIFIED: UNCLASSIFIED                
!
!                    THIS FILE CONTAINS AN ADTS SAR IMAGE
!
!THE PURPOSE OF THIS FILE IS TO TRANSMIT 8-8-4 FORMAT DATA GENERATED BY
!THE MIT/LINCOLN LABORATORY ADVANCED DETECTION TECHNOLOGY (ADT) PROJECT 
!IMAGE FORMATION PROCESSOR (IFP), USING THE ATRWG FILE STRUCTURE.
!
!No distribution of this data shall be made to DTIC.
!
!Transmittal outside the Department of Defense, other than initial distribution
!to DoD contractors, must have prior approval of the Lincoln Laboratory Program
!Manager. 
!
!No secondary distribution is authorized without prior written approval of the
!Lincoln Laboratory Program Manager. 
!
!This work is being performed under Air Force Contract No.  F19628-90-C-0002. 
!
!****************************************************************V12*7-FEB-1991
!
!                               8-8-4 DATA FORMAT
!
!THIS DATA IS IN THE 8-8-4 COMPRESSED COMPLEX DATA FORMAT
!EACH IMAGE ELEMENT IS COMPOSED OF THESE COMPLEX PIXEL COMPONENTS.
!THE 8-8-4 DATA FORMAT PIXEL IS COMPOSED OF THREE BYTES:
!BYTE ONE CONTAINS THE EXPONENT:  4-BIT UNSIGNED IN 4 LSBITS          (XXXXEEEE)
!    THE FOUR MOST SIGNIFICANT BITS ARE TO BE IGNORED
!BYTE TWO CONTAINS THE REAL INTEGER MANTISSA:  8-BIT 2'S COMPLEMENT   (RRRRRRRR)
!BYTE THREE CONTAINS THE IMAGINARY INTEGER MANTISSA:  8-BIT 2'S COMP  (IIIIIIII)
!FOR REAL AND IMAGINARY COMPONENTS:
!
!               VALUE = BSCALE * MANTISSA * (2**EXPONENT) + BZERO
!
!BSCALE  =       2.44140625E-04          ! BSCALE = 1/4096 PIXEL SCALING FACTOR
!BZERO   =       0.0                     ! PIXEL VALUE OFFSET
!
!THERE ARE THREE HEADER PIXELS AT THE START OF EACH IMAGE LINE, AND ONE TRAILER
!PIXEL AT THE END OF EACH IMAGE LINE.  THESE HEADER AND TRAILER PIXELS ARE NOT
!PART OF THE IMAGE. 
!
!                               IMAGE PIXEL UNITS
!
!THE RESULTING UNITLESS COMPLEX PIXEL VALUES ARE THE SQUARE ROOT OF SIGMA-0
!WHICH IS THE BACKSCATTERING COEFFICIENT.  THE BACKSCATTERING COEFFICIENT IS
!DEFINED AS THE RADAR CROSS SECTION OF A RADAR RESOLUTION CELL IN SQUARE METERS
!DIVIDED BY THE GROUND AREA OF THAT RADAR RESOLUTION CELL IN SQUARE METERS. TO
!OBTAIN SIGMA-0 FROM THESE PIXEL VALUES, EACH PIXEL VALUE IS TO BE MULTIPLIED
!BY ITS COMPLEX CONJUGATE. 
!
!TO OBTAIN THE RADAR CROSS SECTION VALUE IN SQUARE METERS, EACH PIXEL VALUE IS
!TO BE FIRST MULTIPLIED BY THE SIGMA_0_TO_RCS CONVERSION VALUE PROVIDED BELOW,
!THEN THE RESULTING COMPLEX VALUE IS TO BE MULTIPLIED BY ITS COMPLEX CONJUGATE. 
!
!*******************************************************************************
!UNITS OF MEASURE:
!  DISTANCES IN METERS
!  TIMES IN SECONDS
!  ANGLES IN DEGREES
!  HEADINGS CW FROM TRUE NORTH
!  LATITUDE IN DECIMAL DEGREES (NORTH POSITIVE)
!  LONGITUDE IN DECIMAL DEGREES (EAST POSITIVE)
!DATA READ FORMATS:
!  THE FOLLOWING ENTRIES ARE COMPOSED FROM FIELDS CONTAINED IN THE ADTS RADAR 
!  DATA DATABASE.  EACH ENTRY CONSISTS OF A 32 CHARACTER PARAMETER NAME FIELD 
!  FOLLOWED BY '= ',   AND THEN A 24 CHARACTER PARAMETER VALUE FIELD.
!  CHARACTER DATA IS DELIMITED BY APOSTROPHES (') - LEFT JUSTIFIED
!  NUMERICAL DATA IS FORTRAN F24.0 - RIGHT JUSTIFIED TO ACCOMODATE G_FLOATING 
!  FOR LATITUDE AND LONGITUDE.  COMMENTS FOLLOW THE '!' CHARACTER.
!<--------------32-------------> 2<----------24---------->
SITE_NAME                       = 'STOCKBRIDGE NY - 1       '
SITE_GROUP                      = 'TAG 3          '
ATRWG_DATE                      = '89 06 05' ! YY MM DD
MISSION_NUMBER                  =                       90
PASS_NUMBER                     =                        4
FRAME_NUMBER                    =                      110
POLARIZATION_TYPE               = 'HH'
MODE_NAME                       = 'SAR STRIPMAP 375    '
WHICH_SIDE_LOOKING              = 'L'
SAMPLES_PER_LINE                =                     2048
LINES_PER_FRAME                 =                      512
FRAME_TIME                      = '16:46:39.77' ! GMT
PIXEL_INTENSITY_UNITS           = 'COMPLEX METERS / METER'

! - THE SQUARE ROOT OF SIGMA-0 OR BACKSCATTER COEFFICIENT
! - CONVERTS PIXEL INTENSITY TO SQUARE ROOT OF RCS
SIGMA_0_TO_RCS                  =               0.35686177 ! METERS

SAMPLE_TYPE                     = 'RANGE'
SAMPLE_SPACING                  =               0.22870000
LINE_TYPE                       = 'CROSSRANGE'
LINE_SPACING                    =               0.22870000

! - RANGE BIN OFFSET FROM BEAM CENTER TO 10DB POINTS
RANGE_BEAM_CENTER               =                     1142
RANGE_ANTENNA_10DB              =                     1654

! - POLARIMETRIC BALANCE INFORMATION
HV_VH_AMP_IMBALANCE             =                   0.0942 ! DB
HV_VH_PHASE_IMBALANCE           =                  -0.2964 ! DEG
HV_VH_RANGE_AMP_SLOPE           =                   0.1523 ! DB/RANGE SWATH
HV_VH_RANGE_PHASE_SLOPE         =                   1.2779 ! DEG/RANGE SWATH
HV_VH_XRANGE_AMP_SLOPE          =                   0.1265 ! DB/XRANGE SWATH
HV_VH_XRANGE_PHASE_SLOPE        =                   4.0957 ! DEG/XRANGE SWATH
HV_VH_AMP_RESIDUAL              =                   0.4099 ! DB
HV_VH_PHASE_RESIDUAL            =                   3.3582 ! DEG

! - GEOGRAPHICAL REFERENCE (ORIGIN FOR NORTH EAST AND DOWN COORDINATES)
GPS_REF_NUMBER                  =                        0
REFERENCE_LATITUDE              =              43.02870178
REFERENCE_LONGITUDE             =             -75.65001678
REFERENCE_ELEVATION             =                   356.05

! - PLATFORM DYNAMICS
PLATFORM_GROUND_HEADING         =                  -120.96
PLATFORM_GROUND_SPEED           =                   100.95

PLATFORM_NORTH                  =                 13298.74
PLATFORM_EAST                   =                  1494.77
PLATFORM_DOWN                   =                 -2858.00

! - BORESIGHT GEOMETRY
BORESIGHT_HEADING               =                   148.98
BORESIGHT_DEPRESSION_ANGLE      =                    24.51
BORESIGHT_RANGE                 =                  7467.45

IMAGE_CENTER_NORTH              =                  7475.91
IMAGE_CENTER_EAST               =                  4996.09
IMAGE_CENTER_DOWN               =                   240.09

IMAGE_CENTER_LINE               =                      255
IMAGE_CENTER_SAMPLE             =                     1023
 

[Header 1 <HV>] for ADTS File: [m90p4f110.884] 

Country of Origin         =   [USA ]
Originating Laboratory    =   [LL47]
Date Data Generated       =   [89 06 05]
Data Identifier           =   [P4F110HV]
Num of Records in File    =   [513]
Header 2 Length           =   [0]
Bytes per Record          =   [6156]
Entries per Pixel         =   [3]
Bytes per Integer Entry   =   [0]
Bytes per Entry Mantissa  =   [2]
Bytes per Entry Exponent  =   [1]
Samples per Image Line    =   [2048]
Lines per Image           =   [512]
Image Data Value Type     =   [1]
Auxiliary Data Type       =   [884]
Header 2 Format           =   [0]
Image Lines per Record    =   [1]

 No Header 2 for this polarization..



******************************************************************************
******************************************************************************
**                               [APPENDIX B]                               **
**                        (ADTS Read/Conversion Tools)                      **
******************************************************************************
******************************************************************************

Information about ADTS Public tools can be found in the README files:

adts_public/Multi-Polarization_Tools/

      MULTI-POL.README: Tools that deal with fully-polarimetric ADTS files or
                        files with all of the polarization sub-images (HH,
                        HV, VH, VV)

adts_public/Single-Polarization_Tools/

     SINGLE-POL.README: Tools that deal with single polarization ADTS files
                        in the 8-8-4 format.
