Off-Line Analysis Programs
                 For Long-Path Spectrometer
Final Report
Ann Arbor, Michigan
                 Prepared for:
                 Environmental Protection Agency
                 Research Triangle Park,
                 North Carolina

                 By:
                 Roger H. Harisen
                 Robert H. Dye
                 Contract No. : 68-O2-O249
                          Systems Division

-------
                                  BSR 3322
                                CONTENTS
                                                                    Page
1.   INTRODUCTION                                                 1-1
2.   DOCUMENTATION                                               2-1
    2.1  HEXED PROGRAM                                         2-1
    2.2  OMAS PROGRAM                                           2-3
    2.3  EPASTREG PROGRAM                                      2-5
    2.4  OMCC PROGRAM                                           2-27
    2.5  EPAMSTDV PROGRAM                                      2-29
    2.6  EPAPLOTR PROGRAM                                      2-30
    2.7  FACTORAN PROGRAM                                      2-31
    2.8  FACREC PROGRAM                                        2-37
    2.9  DIMAT  PROGRAM                                          2-39
    2.10 ALFMAT  PROGRAM                                        2-42
    2.11 FILTER PROGRAM                                         2-43
    2.12 DICIS PROGRAM                                           2-45
    • 2.13 PLTSMF PROGRAM                                        2-50
3.   REFERENCES                                                   3-1
                                      11

-------
                                  BSR 3322
                                  SECTION 1
                               INTRODUCTION
      The purpose of this report is to document the Off-Line Analysis Programs
for the Long-Path Infrared Spectrometer instrument and to provide user instructions
for implementing the programs on an IBM-360/50 computer.  Theoretical discussion
is included only to the  extent necessary to  permit the proper use of the programs.
      Thirteen computer programs are documented.  They are listed below by
number and name:
      1.   HEXED - Hexidecimal Edit Program
      2.   OMAS  - Ozone Monitor  Absorption Simulator Program
      3.   EPASTREG - EPA Stepwise Regression Program
      4.   OMCC - Ozone Monitor Coefficient Converter Program
      5.   EPAMSTDV - EPA Mean and Standard Deviation Program
      6.   EPAPLOTR - EPA Plotter Program
      7.   FACTORAN - Factor Analysis Program
      8.  FACREC  -  Factor Recombination Program
      9.  DIMAT -  Deconvolution and Interpolation Matrix Program
      10.  ALFMAT - Absorption Contaminant Matrix Program
      11.  FILTER - Spectral Filter Data  Program
      12.  DICIS  - Deconvolution,  Interpolation, Contamination,  and Instrument
                  Simulation Program
      13.   PLTSMF -  Plot Spectral Modulation Functions  Program.
                                       1-1

-------
                                   BSR 3322
                                  SECTION 2

                              DOCUMENTATION

2.1 HEXED.PROGRAM

2.1.1  Purpose

       This program edits spectral data obtained from the Long Path Spectrometer
(LPS) in the form of a four hexadecimal digit number for each channel reading.
The data are first processed through paper-tape-to-card conversion equipment to
produce data cards which are the input media for this program.  A complete set of
channel readings, representing one spectral scan, is accompanied by an ID number
and a checksum. The program recomputes a checksum for the data and a com-
parison is made with the checksum associated with the data set.  If the comparison
fails, the data are rejected.

       The channel readings are converted from hexadecimal-coded numbers to
decimal  numbers in the program,  and those data sets which pass the checksum
comparison are punched on an output card file for subsequent use in numerical
computations.

       Through the use of control options,  the program will list all the data cards
as  read, list only those card sets in error, -list  the converted card images, list
the filter wheel position list,  and punch the filter wheel position list on the output
card file.

2.1.2  Control  Cards: Fortran Unit 5

        1.   Columns 1-4:  One of the following options:  (one to five option cards)

            a.  PRNT - Print filter wheel position list.
            b.  FWPL - Write filter wheel position list on output file.
            c.  GDIS - List  contents of input records as read.
            d.  CVRF - List converted input records.
            e.  EXEC - Begin program execution (must be last option card).

            Columns 5-80:  Blank.
                                       2-1

-------
                                   BSR 3322


       2.  DAT (I), 1=1,  NOC+2

           DAT (1) = Line Feed code  (LF=Z69)
           DAT (I), 1=2, 5 = NOG (number of channels)
           DAT (I), 1=6, NOG, 4 (K66) = Filter wheel position list
           DAT (66) = Carriage return code (CR=Z7A)

       3.  Cards 3 - (2 + NOC/16)

           DAT (1)= LF
           DAT (I), 1=2, NOG, 4 (K66) = Filter wheel position list
           DAT (66) = CR
          • DAT (I), I = NOG  + 1 = Checksum
           DAT (I), I = NOG  + 2 = CR

2.1.3  Data Input:  Fortran Unit 5

       Following are the  scan data cards from the LPS:

       DAT (1) = LF
       DAT (I),  1=2,  NOG,  4 (I<66)= Channel readings
       DAT (66) = CR
      - DAT (NOG + 1) = ID number
       DAT (NOG + 2) = Checksum
       DAT (NOG + 3) = CR

2.1.4  Output Data File:  Fortran Unit 7

       This unit produces the punched-card output for input to OMAS :

       DAT (1) = NC = Number  of cases
       DAT (2) = NOG = Number of channels
       DAT (I),  I = 3,  NOG + 3, 4  = Filter  wheel position list (FWPL. TRUE. )
       DAT (I),  I = NOG + 4,  2* NOG  + 4,  4 =  Channel readings
       DAT (2* NOG + 5) = ID number

2.1.5  Temporary Data File: Fortran Unit 8

2.1.6  Printer:  Fortran Unit 6
                                      2-2

-------
                                  BSR 3322

2.2 OUAS PROGRAM
2.2.1  Purpose
                      ^P^J^'           *     •
       This program computes the transmittance that would be in each spectral
channel if there had been an amount of ozone in the beam giving a specified peak
fractional absorptance. This computed transmittance takes into account the spectral
bandwidth of the Ozone Monitor and is needed to simulate ozone-containing spectra.
2.2.2  Control Cards: Fortran Unit  1
       1.  NOP,  NOD, NOAPP,  NTSC;  Format (110) - Four cards
            NOP - Number of problems (contaminants) =  1 for Ozone Monitor
            NOD - Number of channels deleted from computation = 0 for Ozone
                  Monitor
            NOAPP - Number of agents per problem =  1 for  Ozone Monitor
            NTSC  - Number of spectral scans to skip
       2.   AAPK, NAM,  PRINTF,  BW; Format (8G10.0) -  One card
            AAPK - Agent absorption peak
            NAM - Background-to-Agent case ratio =  1 for Ozone Monitor
            PRINTF - Print flag (1 = print; 0 = no print)
            BW -  Bandwidth of spectral channels =0.15 for Ozone Monitor
       3.   NAGENT,  NC, (ALPHA (I),  1= 1,  19); Format (2A4,  12, 7E10. 0)
            NAGENT - Name of contaminating agent
            NC - Card number
            ALPHA(I) - Absorption coefficients for  agent (7 per card)
 2.2.3 Data Input: Fortran Unit 4 (reads HEXED punched output cards)
        1.   N; Format (G10.0) (one card)
            N - Number of cases  .
                                      2-3

-------
                                  BSR 3322

       2.   NOG, FWPOS(I),  1= 1,  NOC; Format (8G10.0)
           NOC - Number of channels
           FWPOS(I) - Filter wheel position list

       3.   RAD(J), J = 1,  NOC,  IDN; Format (20A4)
           RAD(J) - Channel readings for one spectral scan
           IDN - ID number for scan group
2.2.4  Data Output File: Fortran Unit 5 (card punch output for E PAST REG)
       1.   NCS, NCS; Format (2110)
              s
           NCS - Number  of output cases
       2.   RAD(I), IDN; Format (6F10.5,  10*.  110)
          . RAD(I) - Convolved output data
           IDN - ID number for scan group
2.2.5  Printer: Fortran Units 3 and 6
                                     2-4

-------
                                  BSR 3322
2.3   EPASTREGPROGRAM

      This program is a modification of a regression analysis pro-
gram produced by the Health Science  Computing Facility of the
University of California.   For a further discussion of regression
analysis, see Ref. 1*.

2.3.1   General Description

         This program computes a sequence of multiple linear regres-
sion equations in a stepwise manner.   At each step, one variable is
added to the regression equation.  The variable added is the one which
makes the greatest reduction in the error sum of squares.  Equival-
ently it  is the variable which has highest partial correlation with the
dependent variable partialed on the variables-which have already been
added; and equivalently it is the variable which,  if it were added, would
have the highest F value.   In addition, variables can be forced into the
 regression equation and automatically removed when their F values
become too low.  Regression equations with or  without the regression
 intercept may be selected.

          The output  from this program includes:

          (1)  At each step:

              (a)  Multiple R

              (b)  Standard error estimate

              (c)  Analysis-of-variance  table

              (d)   For variables in the equation:

                   1.  Regression coefficient

                   2.  Standard error

                   3;  F to remove

               (e)  For variables not  in the equation:
   See Section 3 for references.
                                       2-5

-------
                                  BSR 3322



                 1.   Tolerance

                 2.   Partial correlation coefficient

                 3.   F to enter

        (2)  Optional output prior to performing regression:

             (f)  Means  and standard deviations

             (g)  Covariance matrix

             (h)  Correlation matrix

        (3)  Optional output after performing regression:

             (i)  List of residuals

        The limitations  per problem are:

        (1)  p,      number of original variables (2< p< 141)

        (2)  q,      number of variables added by transgeneration
                    (-9  <  q <  78)

        (3)  p+q,    total number of variables (2 <  p+q < 141)

        (4)  s,      number of Subproblem Cards {1 < s < 99)

        (5)  k,      number of Variable Format Cards (1 < k < 10)

        (6)  i,      number of variables to  be plotted  (0 < i < 30)

        (7)  m,     number of Transgeneration Cards (0 < m < 99)

        This program allows  transgeneration of the variables. Codes
01-17 and 20-24 of the transgeneration list may  be used.
                                     2-6

-------
                                 BSR 3322


2. 3. 2   Order of Cards in Job Deck

        Cards indicated by letters enclosed in parentheses are optional.
All other cards must be included in the order shown:

        a.   System Cards

        b.   Problem Card

        (c. )  Transgeneration Card(s)

        (d. )  Labels Card(s)

        e.   DATA  INPUT Cards
           ' (Place data input deck here if •
              data input is from cards. )

        f.   Subproblem Card(s)

        g.   Control-Delete Card(s)

        h.   through (i. ) may be repeated as many as 99 times in
             each problem; b. through (i. ) may be repeated as often
             as desired

        i.   Finish Card

2.3.3    Card Preparation (Specific for This Program)

         Preparation of the cards listed below is specific for this
program.  All other cards listed in the preceding section are  prepared
according to instructions in the Introduction.

         b.   Problem Card (one for each problem)

             Col. 1-6      BLANK          (Mandatory)

             Col. 8-15     Alphanumeric problem name

             Col. 17-20    Sample size (1 < n <  9999)
                                     2-7

-------
                    BSR 3322
Co. 23-25     Number of original variables (2 < p < 141)
              (Dependent plus independent variables).

Col. 28-30    Number of Transgeneration Cards
              (0 
-------
                      BSR 3322


 g.  Subproblem Card

     Col.  1-6       333333         (Mandatory).

     Col.  9, 10     Number of the dependent variable.

     Col.  14, 15    Maximum number of steps.  This will be
                    2(p+q) if left blank.

     Col.  21-30     F-level for inclusion.  This will be 0. 01
                    if left blank.

     Col.  31-40     F-level for deletion.  This will be  0. 005 if
                    left blank.
                                                     o
     Col.  41-50     Tolerance level.  This will be 10   if left
                    blank.

     Col.  53-55     1  if Control-Delete Cards are included.

     Col.  58-60     1  if list  of residuals is to be printed.

     Col.  65        1  if Retreat mode to be used.

(h. )  Control-Delete Card

     Col.  1-6       444444           (Mandatory).

     Col. 7         Control  value* for first variable.

     Col. 8         Control  value* for second variable



     Col. 72        Control  value* for 66th variable.

(i. )  Labels Cards

     Labels Cards  allow the user to substitute  alphanumeric
     names for the usual numeric indexes (variable  numbers
     or category designations) which appear on the printed
     output.
                         2-9

-------
                    BSR 3322


    Card Preparation

    Col.  1-6       LABELS          (Mandatory).

    Col.  7-10      The number of the variable (or category or
                   index) to be named.   This  number must be
                   right- jus tified.

    Col.  11-14    The corresponding alphanumeric name.

    Col.  17-20    The number of another variable.

    Col.  21-24    The corresponding alphanumeric name.

    Col.  67-70    The number of another variable.

    Col.  71-76    The corresponding alphanumeric name of
                   that variable (up to 7 per card).

    There may be from one to seven pairs of variable num-
    bers and labels on each Labels Card.  If desired,  only
    one pair may be specified on each card.  However, the
    total number of labels appearing on all the Labels Cards
    must equal the number of labels specified on the Problem
    or Subproblem Card.  It is not necessary to label all the
    variables.  Those labeled may be listed in any order. .

     Example:  Suppose the number of variables to be  labeled
   . as specified on the Problem Card is 9.  Then the Labels
    Cards might be punched as: LABELS 10HEIGHT
    07WEIGHT 105AGE 003X1 0051VA3S39 0073 X+Y LABELS •
    99SE 0100ANYNAM
     LABELS 05STATUS

(j. )  Transgeneration Cards

     The term transgeneration is used ta» include transforma-
    tions of input variables and creatienrof new variables
    prior to the normal computations performed by the vari-
    ous programs. The transformations described below are
                        2-10

-------
                       BSR 3322
       performed on the values of the variables in each case.
       In these examples,  the symbol xj will denote the i**1
       variable as well as its value.

       Example s:

               log!0X4 - X4       log^X4replaces X^

                   Xg       -X        Xg replaces X1


                   X  + X  -» X2       *2 + X3  rePlaces X2

            By successive transformations, more complicated rela-
            tionships may be obtained.  For example:
                              n    2
       (1)  To replace X  by /X  + X  four transformations are
            required:

                          Variables  as -they are stored at each step

                          X     X     X    X^    X_
 Transformation            1	2	3	4	a	


*\     -   XJ             Xl    X2    X3   X4    X5

X3     -   X3             Xl    X2    X3   X4    X5

                          Xl    XZ    X3   X4    X1+X3
                           Xl    XZ   X3
             In this example, it can be seen- that the original values
             of X5 are irrelevant.  Actually., the variable X5 may be a
             dummy variable introduced by the program specifically
             to provide capacity for creating new variables by trans-
             generation.  Dummy variables may be required for
             intermediate storage  to effect some transformations.

        (2)   To replace X  by exp (-1/2 X ), three transformations
             are required:
                          2-11

-------
                       BSR 3322
Transformation

2
X ^^
™* rf»
1 1
1 /2 Y _^ v
-l/£ A -* A
J

exp (X ) - X
xi
2
x;
i
-iAx^


exp (- 1/2
X2 X3

"Y Y^
2 3
^^ ^f
X2 X3

2
*^ . / "^O ^^1
       (3)   To replace X4 by X2 + Iog10 (X4-X3  +100), four trans-
            formations are required:

                          X    X0    X,    X^
 Transformation            1     2     3 _ 4 _
                                                      100)
                                                0(X4 -X3 +100)


x2 + x4  -*   x4            xl    x2   x3    x2+iog10(x4-x3+ioo)

             The transformations are performed in the order in which
             the Transgeneration Cards appear so that, for example,
             the two transgenerations ZXj^ — Xj followed by Xj -2—Xj
             will result in 2X1 -2, whereas Xj -2  - X]_ followed by
             ZXl -* Xx  will result in 2(Xj -2).

2. 3. 3. 1   Transgeneration List

          The notation to be used in the following transgeneration  list
is as  follows:

          1.  i,  j, k are variable indexes ((need  not be different)
                          2-12

-------
                       BSR 3322
          2.   c is a constant



          3.   a ,  a ,  a  ,  ...  are constants



          4.   n is the number of cases, or sample size


                                  n


          5.   The mean X~. = —  /   X
                          i   n Z-f,   11
          6.   The standard deviation s.  =
                                      i
                                                J =


Code    Trans gene ration             Restriction



01       *JX~.     -   X,               X. > 0
           i           k               i —
-irt  (X..-X.,2
n-1 4,    ji    i
02       ^.  +  \/X. + 1 -* X,           X. > 0
           ilk           i —



03       loginX.      X,               X. > 0
            10 i       k               i



04       eXi     -   X,
                       k



05       arcsin-Tx". -~ X,              0 < X  < 1
                  i     k              —   i  —
06       arcsin -v/X./ (n+1)
         + arcsin \/(X. +1) / (n-i-1) -X.      0 < (X. n) < 1
07       1/X.    -   X,              X.  *  0
            i          k               i
08       X.  + c   -    X,
          i             k
09       X.c     -    X,
          i            k
                           2-13

-------
                       BSR 3322
Code    Transgeneration             Restriction
10

11
12

13

14
15
Xi

Xi +
Xi "

^^ j»
1
V
If X.
-
K
X. - X,
J K
X_^ ^^
• ""* ^^ ~
J ^
^^ ^^
J "^
X. - X, X. * 0
J k j
>c, 1 -* X, ;
         otherwise 0 -» X,
                        k


16       If X. > X., 1- X, ;
            i-  J       k

         otherwise 0 -» X,
                        k


17       log  X   -   X,              X.> 0
           e i        k               i

18 & 19  Not  used

20       sin X.   -   X,
21       cos X.   -»   X,
              i         k



22       arctan X. —  X,
                 i      k


           X.

23       X. J    -   X,              X. > 0
          i            k               i


          X.

24       c J     -*   X,              c > 0
                       k


         Not defined



         If X. = aj or a3 ....  a7>

         then c -» Xfc ; otherwise Xj^

         remains unchanged.

         If Xi is blank,  then c - X  •    (X. * -0)*

         otherwise X^ remains

         unchanged.


         *Note that in reading numeric fields,  a blank field and -0 are

          equivalent.
                           2-14

-------
                                   BSR 3322
          When a violation of a restriction in the right-hand column
occurs during transgeneration,  the program will print a diagnostic
message.  Most programs will proceed to the next problem, if any.
Some programs will delete the  case where the violation occurred and
continue the computation.  Other programs  will screen all the input
data for additional restriction violations before proceeding to the next
problem.

2.3.3.2  Standard Transgeneration Cards

          Standard Transgeneration Cards  are used vwlth programs
which use Standard Data Input.   Let p denote the numflBer of variables
in the data matrix and m the maximum  number of vaxaables allowed
by the program for any problem.  Any of the variables xj,  .... xm
may be used in transgeneration.  The initial values .of the first p varia-
bles are read from the input data file (Data Cards or Alternate Input
Tape).   The initial values of the remaining  m-p variables are left  over
from previous calculations.  After transgeneration of a particular case,
the values of the first p + q variables for that case are used as the
values  of .the transgenerated variables.  If the -p + q variables  required
for the computation are not the first p + q,  they must foe relocated.
This may be done by using transgeneration  code 08 wiah c = 0.   The
numbers p and q  (q may be positive, negative, or zero) are specified
 on the  Problem Card.  The indexes i,  j, and k from the transgeneration
 list may exceed p or p + q but must never exceed m.

           Card Preparation

           Col. 1-6      222222   -     (Mandatory.)).

           Col. 7-9      Variable  index k.

           Col. 10, 11   Code from transgeneration 1st (restricted by
                         availability in particular program).

           Col.  12-14    'Variable index i.

           Col.  15-20     Variable index j or constant c.

           Col. 21-25     Blank.
                                       2-15

-------
                                   BSR 3322
          Col. 26        Number of a.'s for transformation 40.
                                    i
          Col. 27-32     a, value.

          Col. 33-38     a2 value.
          Col. 63-68    a? value.

          The constants c, a ,  . . . ,  ay are punched with a decimal
po'int if used with variables which have an F-t.ype format and without
a decimal point if used with variables which have an I-type format.
If there are more than 66 variables,  continue on another card of the
same form, until p+q variables have been specified.

          The variable numbers above refer to variables after
trans gene ration.

          Control Values

          1.  Delete variable (or dependent variable).

          2.  Free variable.

          3.  Low-Level forced variable.
          9.   High-level forced variable.

If no Control-Delete Cards are included, or if a field is left blank on
the Control-Delete Cards included in the deck,  the value will  be
assigned if the variable is not the dependent variable and the value
1 assigned if it is the dependent variable.

2. 3. 4    Computational Procedure
             Step 1.   The data are read and transgenerated.  Let
                      p denote the number of variables after
                                      2-16

-------
                      BSR 3322
         transgeneration,  n the number of cases,  and
         x: j the value of the j   variable,  after trans-
                             rH
         generation, for the i  case.  The means:
                  n
         x. = —  /    x, .           i = 1, . . . ,  p
          i    m        ki  .              •    •  r
         are computed and,  if called for,  printed.  If
         a zero regression intercept is not requested
         on the Problem Card,  the matrix A:
                n
         is computed.  If a zero regression intercept is
         requested,  the matrix A:
                n
          ij  =  Z xki
         is computed instead.

Step 2.   The The covariances, .standard deviations, and
         correlations :

         Sij  =  aij/(n"U            if J = l ..... p

                                    i = 1 ..... p

         r. .  =  s. ./s.s.              i, j = 1 ..... p
          ij     i/  i  j

         are computed and, if called for,  printed.  It
         should be noted that  if the zero regression
         intercept option is chosen, these statistics will
         not be centered about the mean.  A similar
         statement applies to all the computations which
         follow.
                         2-17

-------
                     BSR 3322
Step 3 .   At each step in the stepwise regression proce-
         dure, the variables x^, . . . ,  xp are divided into
         two disjoint sets:  xj,, ....  xj :  thfe independent
         variables in the regression equation
         Xi , .... x- :  the remaining variables including
          Ji       Jf
         the dependent variable y = x^.

         For purposes of exposition,  assume that
         xj., . . . , x.   equation at a typical step then
                   q
         has the form:
         y =  a

         Let
                    All   12   ,     A   .
              A =  .     .    where A   is q x q .
                    A21  A22         U
         be a partition of the matrix A from Step 1; let


              B .  Ai'        Aii  A'2

                    A21  AU   A22-A21Ai! A12

         let m = n- 1 if a zero regression intercept is not
         requested; and let m = n if it is requested.  For
         each step  in the  stepwise procedure, the follow-
         ing are computed and printed:

         1.   The residual degrees of freedom,  sum of
             squares, and mean square:

              df = m-q,  SS = bJJ,  MS = SS/df
                              dd

         2.   The regression degrees of freedom,  sum
             of squares,  mean square, and F value:

              rdf  = q              RSS = add-bdd

              RMS = RSS/rfd        F = RMS/MS
                         2-18

-------
                      BSR 3322
        3.   The standard error of estimate and multiple
             correlation coefficient:

              S  =  -v/MS"             R  =  N/RSS/a,J.
                                                ad
        For each independent variable x^ in the regres
        sion equation,  the following are computed and
        printed:

        1.   The regression coefficient, its standard
             error,  and F value:

              p. = b.,; S. = b.!/2 S, F.  = (p./S.)2
                i    id    i    11        111

        2.   If a zero regression intercept is  not re-
             quested, the intercept  or is computed:.
                   M
              a  =/  B. x.  .
                 LJ  Ki  i
         For each independent variable x^ not in the
         regression equation, the following are com-
         puted and printed:

             The tolerance level, partial correlation,
             coefficient,  and F value:

                               b.,         b2(m-2-l)
              T. = b../a...  R. *-  -- F.  =
Step 4.   To move from one step to the next, an indepen-
         dent variable is added to or removed from the
         regression equation according to the following
         three rules:
                        2-19

-------
                    BSR 3322
       1.  If there are one or more independent varia-
           bles in the regression equation whose con-
           trol value, as specified by the Control-
           Delete Card, is 2 (i.e.,  a free variable)
           and whose F value is less than the "F-to-
           remove" value specified on the Subproblem
           Card, the one with the smallest F value will
           be  removed.

       2.  If no variable is  removed by item 1 above
           and there are one or more independent
           variables not in the regression equation
           which pass the tolerance test and have con-
           trol values of 3 or more (i. e., forced
           variables), the one which has  the highest
            control value and the highest F value among
            all with the same control value will be added.
            An independent variable Xj not in the  regres-
            sion equation is  said to pass the tolerance
            test if its tolerance value  Tj is greater than
            or equal to the "minimum tolerance value"
            specified on the  Subproblem Card.

        3.   If  no variable  is removed  by item 1  or
            added by item 2  and there are one or more
            independent variables not in the  regression
            equation which pass the tolerance test, have
            a control value of 2  (i. e. , a free variable),
            and an F value greater than or equal to the
            'F-to-enter" value specified on the Subprob-
            lem Card,  the one with the highest F value
            will be added.  If no variable  is  added or
            removed by items 1, 2, or 3, the step-
            wise procedure  is terminated.

Step 5.   If  a list of residuals is called  for  on the Sub-
         problem Card, the residuals:
         ri = Vi'a- L Vu       i ~-  l'""n
                     j
                       2-20

-------
                                   BSR 3322
                     are computed and printed.  The summation is
                     over  all indexes j of independent variables x:
                     in the regression equation at the last step.
2.3.5    Machine Procedure
         The Computational Procedure section (2.3.4) explains in terms
of the input data what is computed; however,  it offers few details on how the
machine accomplishes the computation.  The purpose of this section
is to present more detailed information about the machine procedure.
It is written in the imperative mood to conform with the commands
presented by the program to the machine.
2.3.5.1  Main Program
           1.   Read a Problem Card.  Read the data and transgenerate.
               Let

                       x. .; i = 1, . . . n; j = 1, . . . ,  p

               denote the ith  case value of the j*  variable after
               transgeneration.   If a regression intercept is called
               for, compute a matrix A and vector B as follows.
               Set:

                       a   =  0               1 < i < j  < p
                        ij                      ~  ~

                       b.  =  x, .             i = 1, . . . , p
                        i       l.i
               and apply the  recursion relations:
                        b = b  + x, . followed by
                         i    i    ki
                        a.. = a.. +
                                   1
                         ij    ij   k-1
x, .  (kx. . - b.Jb.HJ-- x
 ki     kj    j  i k    kj
,']
               for k = 2, . . . , n.  Set m = n- 1.  If a regression inter-
               cept is not called for, set:
                                      2-21

-------
                        BSR 3322
             a..=b. =0
              ij    i


    and apply the recursion relations for k =  1	n.

    Set m = n.  Save the transgenerated data  on tape.



2.  Replace B and A by a mean vector and covariance

    matrix:



             bj = ^/n               i =  1	p




             a..  = —- a..           l
-------
                         BSR 3322



                     -1 variable k removed

             Flag  =  0 go to Step 9

                     1 variable k added

6.   Let d denote the index of the dependent variable.
    Compute and print:

    a.  q = q + Flag

    b.  The residual degrees  of freedom,  sum of squares,
        and mean  square:

             df =  m-q,  SS =  m s^ aJJ,  MS  =  SS/df
                                   d  dd
    c.  The regressiorl degrees of freedom,  sum of
        squares,  mean square,  and F value:

             rdf =  q                RSS  =  sd - SS

             RMS  =  RSS/df        F  = RMS/MS

    d.  The standard error of estimate and the multiple
        correlation coefficient:

             S  =   >/MST
7.   A variable with index i is in the regression of c.  <_ 0.
     For each such variable, compute and print the regres-
     sion coefficient, its standard error, and F value:

         P.  = ^-^ ,  S.  =  -2-^.  F.  =  (P./S.)2.
         "i      s.i     sm      i     'I'l
                 i              i

     If the regression intercept  en is called  for,  compute  and
     print:
                 -  /  P. b.
                   L-.   i  i
     where the summation is over all i such that c^< 0.
«  =  "a
                           2-23

-------
                                 BSR 3322
         8.  A variable with index i *  d is not in the regression if
             c._>l.  For all such variables,  compute and print the
             tolerance level, partial correlation coefficient, and F
             value:
                  F.  =  •fd(»-q-D/(»il«dd-v)-

              Go to Step 5.

         9.   If called for,  compute and print the residuals:
                                   3. x..     i = 1, . . ..  n
                                    J  XJ

              where the summation is over all j  such that c  _< 0.

         10.   Return to Step 4 and continue reading Subproblem Cards
              until there are no more.

         11.   Return to Step 1 and continue reading Problem Cards
              until there are no more.

2.3.5.2   Subroutine STEPRG

          1.   Compute
                         F.  . a,.
                    -                +2
                    in    F. +m-q-l+2
                           in

                  v	out '  add  .7
                    out     m-q
              where F  and F    are the F values to enter and remove.
                      in     out
                                    2-24

-------
                                   BSR 3322
         2.   Find the k such that c,  < 1 and k minimizes:
                                  k
                   k
                   k     k a
                            kk



             If V,   V   or c,  > 1 for all k, go to Step 3.
                 i—  out      k  —



         3.  Let Tol be the minimum tolerance.  Find the k such

             that ck > 1,   akk 2 Tol> and k maximizes:
                   kk.
                   k     k     a
                                kk



              If Vk  >^ Vin, set Flag = 1, reduce ck by 9,  and go to

              Step 4.



              If Vk  < in or there is no k such that ck >  1 and akk >

              Tol, set Flag = 0 and go to Step 5.



          4.   C:dl subroutine STEP and return



          5.   Set m = m + Flag and return.



2.3.5.3   Subroutine STEP




          l'   Set:       a               K i < k
                          ik               ~

                  u.  =   -Flag          i  =  k



                         a, .             k < i <  p
                          ki                  ""
                  a..   =  a. .  = 0        i <  k <  j
                    ik      kj               -
                                      2-25

-------
                          BSR 3322
2.  Step the upper diagonal part of A:
                    u.u.
        a..  =  a..  —
          1J     1J    a
                      kk
1 <  i  < j <  p+1
    and return.
                            2-26

-------
                                   BSR 3322


2.4 OMCC PROGRAM

2.4. 1  Purpose

       The Ozone Monitor Coefficient Converter (OMCC) program takes the output
from the Regression Analysis program (EPASTREG) and converts the selected co-
efficients into double-precision octal form for  insertion via punched paper tape into
the PDP-8/L computer.

2.4.2  Control Cards: Fortran Unit 5 (three cards required)

       1.  NOG, NOE:  Format (8G10. 0) - first card

           NOG - Number of data channels
           NOE - Number of equations = 2 (normally) for Ozone Monitor

       2.  INPD, NOS,  SN, SCALE,  NFSA; Format. (4G10. 0, 6X, A4) - next two
           cards

           INPD - Input Device
           NOS - Number of steps in the regression analysis (set to 1 for first
                  pass;  then set to total number of steps)
           SN - Regression step number of interest (set to 0 for first pass; then to
                 desired step number)
           SCALE -  "Magic number" for converting decimal floating point num-
                      bers to double-precision octal number  for insertion into
                      PDP-8/L
                      =  8388.608 for equation 1 (starting address,  4200)
                      =  2048. for subsequent  equations (starting address,  4400)

           NFSA - Number for starting address in PDP-8/L for data

 2.4.3 Data Input: Fortran  Unit 5 (read EPASTREG punched output cards)

        1.   NSTP, NCOEFF, SE; Format (2110, F10.0) - one card

            NSTP - The step number in regression analysis
            NCOEFF - Number (how many) of  non-zero coefficients in the step

            SE  - Standard estimate  of error
                                      2-27

-------
                                  BSR 3322

       2.   ICN, COEF(ICN); Format (4(110,  F10.5)) - one or more cards
           ICN - Index of channel number
           COEF(ICN) - Coefficient for ICN channel
           (Note 1 and 2 repeat for NOS times)
2.4.4  Output Data File: Fortran Unit 7 (card punch output for card-to-tape
       PDP-8/L input)
       LF,  NFSA, Nl - N4,  CR,  LF,  N5 - N8, CR;
       Format (Al,  A4, 1H/, 411, Al,  Al, 411,  Al)
       LF - Line feed code (Z69)
       NFSA  - Starting address in PDP-8/L for  data
       Nl  - N8 T Double-precision octal coefficients
      . CR - Carriage return code (Z7A)
2.4.5  Printer: Fortran Unit 6
                                      2-28

-------
                                   BSR 3322


2. 5  EPAMSTDV PROGRAM

2.5. 1  Purpose

       This program computes mean and standard deviations for up to 50 variables
and any number of cases.

2.5.2  Data Input Cards: Fortran Unit 5

       1.  NOV. NOG,  NPRNT: Format (214,  IX, II)

           NOV - Number of variables

           NOG - Number of cases

           NPRNT - 1 - Print input data

       2.  DATA (I),  1=1, NOV; Format (6F10.5)

2.5.3  Printer: Fortran Unit 6
                                      2-29

-------
                                    BSR 3322


2. 6  EPA PLOTR PROGRAM

2. 6. 1  Purpose

       This program plots raw scan data obtained from the Ozone Monitor Instru-
ments.  The program prints the channel number,  fitter wheel position number,
and wavelength.  In addition, it prints the case number and the raw data values.

2.6.2  Data Input Cards:  Fortran Unit 5

       1.   BCD - Title of the plot, Format (20A4)

       2.   N - Total number of plots requested,  Format (110)

       3.   NSTEP - Step number of each plot, Format (110) (one per card)

2. 6. 3  Data Input Cards:  Fortran Unit 9

       1.   N - Number of cases, Format (110)

       2.   NOG, FWPL (I), 1 = 1, NOC; Format  (8110)

            NOC - Number of channels

            FWPL - Filter wheel position list

       3.   RAD (I), 1=1, NOC, ID; Format (20A4)

            RAD (I) - Radiant reading

            ID -  Identification number

2.6.4 Printer:  Fortran Unit 6
                                       2-30

-------
                                     BSR 3322
2.7 FACTORAN PROGRAM

    This factor analysis .program is from the Scientific Subroutine Package pro-
duced by IBM (Ref. 5) and modified by Bendix Aerospace Systems Division.

2.7.1  General Description

       This program performs a factor analysis of up to 198 input variables.  The
factoring may be done by using either covariance or correlation matrices.  Three
types of rotation are available, all based on the oblimin criteria.   In the first,  the
factors are restricted to be orthogonal which yields,  among others, quartimax and
varimax rotations. In the second,  the criteria are applied to the reference factor
structure and the factors are allowed to be oblique which yields the standard oblimin
rotations.  In the third, the criteria are applied to the primary factor loadings,
allowing the factors to be oblique and yielding simple loading rotations (Ref. 2).
Factor scores may be estimated.  Data input may be in the form of raw data, a
correlation matrix, a covariance matrix,  or a factor loading matrix.  The program
leaves communalities unaltered.

       The output consists of:

       •  Means and standard deviations.

          Correlation or covariance matrix.
       •  Eigenvalues and  cumulative proportion of total variance.

          Factor loading matrix before rotation.

          Rotated factor loading matrix.

       «  Correlation matrix of the  rotated factors.

       •  Factor scores.

2.7.2  Job Control Setup

       The program  must be run in  a large partition of approximately 270K size.
The program requires two  temporary disk files with data set reference  numbers 1
and 2.

       FACTORAN has been equipped with a flexible option input scheme.   Option
cards may be input in any order, with four exceptions:
                                       2-31

-------
                                     BSR 3322
       •  Format card(s) must follow DATAFMT, FSFMT, FACTFMT option cards.
       •  Label for data  set must follow LABEL option card.
          EXEC card must be the last  in definition of a set of options for one
          problem; i.e. , it triggers the analysis.

       •  Any data input  from the card reader must follow the EXEC card belonging
          to its problem  definition.

       Any number of problems may be submitted in one run.  If more than one
problem is  submitted at once,  all options  chosen for the first hold for  subsequent
problems,  unless  explicitly changed with new option cards.

       Any option card which has a value  associated with it must have that value
punched in columns 9-20  with decimal point;  i.e., the card is read on format
(A8, F12.0).              .    '

2.7.3  Data Option Cards

       The data input and output options available are described below. A "b"
indicates a blank column.
                                                      DEFINITION

                             default       Input will be raw data only.

                                          Means,  standard deviations, number of
                                          factors,  eigenvalues, unitary transform
                                          matrix,  and factor matrix will be read
                                          in.  Raw data must still be input as well.
                                          (This option allows the user to use
                                          punched output from a previous run as
                                          input to avoid duplication  of these cal-
                                          culations. ) The program automatically
                                          punches these values with each run made
                                          on the DATA option.  They are output in
                                          the order listed  above,  followed by the
                                          factor score coefficient matrix for non-
                                          standard data.  Formats for these are:
                                      2-32

-------
                                   BSR 3322
SIGDATA
DATAFMTbxx.
SIGFSCOR
FSFMTbbbxx.
FACTFMTbxx.
DATAUNITxx.
FSUNITbbxx.
                                         Means:
                                         Std dev:
                                         No. fact:
                                         Eigenvalues:

                                         Unitary transform:
                                         Factor Matrix
                                 4F18.8
                                 4F18.8
                                 15
                                 5F15.8 (No. fact of
                                 them)
                                 5F15.8 (Row wise)
                                 5F15.8 (Columnwise)
default       Data input will be in signature data pro-
             cessing form, KT  =1 or KT = 2.

             Data input will be in format following
             this card,  xx indicates how many for-
             mat cards follow,  xx defaults to 1.  The
             maximum is  9 cards.

default       Factor Score output  will be in signature
             data, processing  form.  KT = 5.

             Factor Score output  will be in format
             following this card,  xx indicates how
             many format cards follow,  xx defaults
             to 1,  maximum  is 9. The file will be
             preceded.by  a record written on format
             3110 giving number  of observations,
             number of variables, number of factors.

             Factor matrix input  will be in format
             following this option card,  xx indicates
             how many format cards follow,  xx de-
             faults to 1.   The maximum is 9 cards.
             This format  applies  only to the factor
             matrix and not the means, standard de-
             viations, eigenvalues, or unitary trans-
             form matrix of the FACTOR option.

             Data input unit,  xx  defaults to 8.

             Factor score output  unit,   xx defaults to
             9.
                                      2-33

-------
                                   BSR 3322
FACTUNITxx.
INGROUPbxx.
LABEL
NUMOBSbbxxxxx
NUMVARbbxx_.



NTALPRNT

ALLPRNT
default
Factor matrix input unit (including
means,  standard deviations,  number of
factors,  eigenvalues,  unitary transform
matrix),  xx defaults to 5.

Group number of group from input file to
be analyzed.  This applies to signature
data processing form  of input.  Specify
as many of these cards in one problem
(in ascending order of group number) as
number of groups desired in factor score
output file.

Card following this contains an 8-
character  code to be used in the label
field of newly created signature data
processing type file; i.e., use when in-
put is not SDPS,  but want factor score
output to be.  The label defaults to blanks,

Number of observations in raw data  in-
put.  If SIGDATA,  defaults to read off
input file.  If DATAFMT and not from
card reader,  defaults  to read off initial
record of input file—the first variable
on 2110 format.  Otherwise,  defaults to
90.'

Number of variables in raw data input.
If SIGDATA, defaults  to read off input
file.  Otherwise, defaults  to 8.

Do not print all matrices before rotation.

Print all matrices  before and after ro-
tation.
       As an example of the options available, consider the following setup as one
run with five problems.
                                      2-34

-------
                                   BSR 3322
Once you have specified
an EXEC card, a new
output unit must be
specified for subse-
quent problems in the
same run.   You can use
the same input file in
more than  one problem.
                         INGROUP 1.
                         INGROUP 2.
                         INGROUP 3.
                         EXEC

                         FSUNIT 11.
                         INGROUP 4.
                         EXEC
                         FSUNIT 12.
                         INGROUP 5.
                         EXEC
                         FSUNIT 13.
                         INGROUP 6.
                         EXEC

                         DATAUNIT 10.
                         FSUNIT 14.
                         INGROUP 1.
                         EXEC
                                            Input from default unit in SDPS for-
                                            mat.  Three output groups in one
                                            file on default.unit in SDPS format.
   Three output files on separate units,
   one group each.  Input is from same
   file as first problem since did not
   specify DATAUNIT.
                                            Input from unit 10 in SDPS format.
                                            Output unit  14 will have one output
                                            group in SDPS format.
2.7.4  Analysis Option Cards

       The types of data analysis options available, are described below.

CODE                                                  DESCRIPTION

                           default
MEAN


ORIGIN


CORREL

COVAR

NOKAIS

KAIS

NOROT

ORTHROT
                           default
                           default
                           default
Correlation or covariance to be done
about the mean.

Correlation or covariance to be done
about .the origin.

Correlation matrix to be used in analysis,

Covariance matrix to be used in analysis.

Do not Kaiser normalize before rotation.

Kaiser normalize before rotation.

No rotation.

Orthogonal rotation.
                                      2-35

-------
                                   BSR 3322
OBROT
SIMPLOAD
EIGMINbbxxxxx
FACTKEEPxxxxx
PCNTKEEPxxxxx
GAMMAbbbxxxxx
default
Oblimin rotaftion.

Oblique rotation for  simple loadings.

Minimum eigenvalue xxxxx defaults to
0.0.

Number of factors to keep, xxxxx has
no default.

Maximum percentage of total variance
to be explained,  xxxxx has no default.

Variable gamma for rotation.
xxxxx defaults to 1. 0 if orthogonal ro-
tation.
xxxxx defaults to 0. 5 if oblimin rotation.
xxxxx defaults to 0.0 if oblique rotation
for simple loadings
       Some values of gamma which lead to standard rotations:

ORTHOGONAL
OBLIMIN
SIMPLE
LOADINGS
\ = 0.0
quartimax
quartimin
direct
quartimin
V = .0.5

bi-quartimin

\ = 1.0
varimax
covarimin

                                      2-36

-------
                                   BSR 3322
2. 8   FACREC PROGRAM

2. 8. 1  Purpose

       This program reconstructs spectral data by recombination of
the factor analysis of the data.  By retaining only the more prominent
factors,  the reconstructed data accurately reproduce the spectral pat-
terns present,  while eliminating the effects of the instrument noise
which exhibits  no channel-to-channel correlation.

2.8.2 Method

       The program accepts as input the factor matrix A and a list
of factors  score  vectors  X.  The  reconstructed channel reading vectors
y are given by:

                               y  = Ax.

At the user's option, the program will plot either  the individual factors
against wavelength or the factor scores in order of occurrence,  or
both.

2.8.3  Option  Cards: Fortran Unit 5:   Format (1A8)

        1.   PRRD; Causes  the  reconstructed data to be printed

        2.   PFM; Causes the factor matrix to be plotted
        3.   PLOTFS; Causes the factor scores to be plotted
        4.   EXEC:  Causes execution to begin under control of
                    options already specified

        5.   CWL.(I),  1=1,  NV; Format (8F10.0)
            CWL = Center  wavelength

        6.   FINISH;  Terminates  execution.

  2.8.4  Data Input File:  Fortran Unit 8

        1.   NC, NV,  NF;  Format  (3110)

                  NC = Number of cases

                  NV = Number of variables

                  NF = Number of factors
                                       2-37

-------
                                 .  BSR 3322



       2.  A (I,  J),  I = 1,  NV,

                    J = 1,  NF;  Format (20A4)

           A (I,  J) = Factor matrix element for the Ith variable
                      and Jth factor

       3.  X(J),  J = 1, NF; Format (20A4)

           X (J) = Score for Jth factor.

2.8.5  Output Data File: Fortran Unit 9

       1.  NC;  Format (110)

           NC  =  Number of cases

       2.  y (I),  1=1,  NV;  Format (20 A4)

           y (I)  =  Reconstructed reading for Ith channel.

2.8.6  Printer:  Fortran Unit 6
                                       2-38

-------
                                 BSR 3322
2.9  DIMAT  PROGRAM

2.9.1  Purpose

       This program generates a matrix for use in Program DICIS to
correct spectroradiometer data for the specific  colorations introduced
by a particular instrument and to interpolate the data for points lying
between center wavelengths of the channels.

2.9.2  Method

       A list of filter wheel position numbers  is read and a corres-
ponding list of channel center wavelengths is computed by means of a
polynomial.  The coefficients in the polynomial were previously
obtained by regression of manufacturer's data for the particular filter
wheel used in an instrument constructed for the  Naval Applied Science
Laboratory.  The  filter wheel position list must, of course, be  the
same as the  list selected by the user and employed in the instrument
when spectral data were collected.  With rare exceptions,  the data
were collected with 33 channels  spaced about 0.  125 micron apart and
covering a spectral range from 8. 5 to  12. 5 microns.

       A four-point cubic interpolation rule is used to generate the
elements ajj of the interpolation matrix A:


                           2)       -xJ  ~   j
                 -a
              XJ+2
                  3a
                                    2-39

-------
                                  BSR 3322
         7	-J±—
         _\x j+i • xj
al,j+l
X
                                                      J-H
                                          J+l
              -2— - 1	:  a
                                      2
where


       X.   =  center wavelength of Jth channel   1 < J _< 33
         J


       \   =  Ith wavelength of interpolation      1 < I < 251
         I



       a   =  XL-Xj



and the channel subscript J is altered as  required to maintain the

relation



                        XJ <  XI ^  XJ+1.



        Next, the filter wheel transmission matrix B is computed.

The shape of the spectral transmission of each channel is approxi-

mately that of a Gaussian distribution, and the expression used is:



                                  T
                                    J, I
                         D
                          J, I   '    251



                                  ITJ,I

                                   1=1
                                     2-40

-------
                                   BSR 3322


       The inverse of the product of the matrixes A and B is then
computed and multiplied by A, producing the matrix D:


                           D =  A(BA)"1

       Finally,  a responsivity correction factor  is computed for each
channel.  Experimental data were obtained by operating the instru-
ment in an ambient temperature of 297. 0°K and exposing it to the
radiation from a blackbody tank at 306. 5°K.  Thirty spectra were
collected and averaged, and a correction factor for each channel was
obtained by dividing the known spectral radiance  difference at the
wavelength for each channel by the average  reading for each channel.
The correction factors are then applied to each column of the matrix
D,  completing the required calculations.

2.9.3 Data Input Cards:  Fortran Unit 5

        1.   NOC, X(I), 1= 1, NOC; Format (.8F10.0)

              NOC  = number of channels  .

               X(I)  = filter wheel position number for Ith channel

        2.   BW; Format  (F10. 0)

               BW =  channel half-power bandwidth in microns

        3.   TR(J), J = 1,  NOC; Format (8F10.0)

               TR(J) = average reading of Jth channel

 2.9.4  Data Output  File:  Fortran Unit 10

        1.   NOC; Format (110)

        2.   A(I, J),  I = 1,  251; J = 1,  NOC;  Format (20A4)

               A(I, J) = element of the deconvolution and interpolation
                       matrix for the Ith wavelength and the Jth
                       channel.

 2.9.5  Printer: Fortran Unit 6
                                      2-41

-------
                                  BSR 3322
2.10  ALFMAT PROGRAM

2. 10. 1 Purpose

       This program generates a matrix of absorption coefficients
and writes it into a data file for use by Program DICIS.  The input
data are from  cards, with each contaminant  represented requiring 131
readings covering the spectral range  from 7. 5 to 14. 0 microns in
steps of 0. 05 micron.  Linear  interpolation is  used to provide higher
nominal resolution, and the spectral  range is restricted for the con-
venience of the subsequent computation by Program DICIS.  Each con-
taminant is represented in the  output by 251  readings covering the
spectral range from 8. 0 to 13. 0 microns in  steps of 0. 02 micron.

2. 10.2 Control Cards: Fortran Unit  5

           NOCT; Format (110)

               NOCT = number of contaminants

2. 10. 3 Data Input Cards:  Fortran Unit 5

           X(I),  I =  1,  131; Format (10X, 7F10.0) .

           X(I) = absorption coefficients

 2. 10.4 Data Output File:  Fortran  Unit 11

        1.    CONNAM(I), I = 1,  I'O; Format (10A8)

                CONNAM(I) = name or mnemonic for (I)th contaminant

        2.   A(I, J), I = 1, 251, J = 1,  10; Format (20A4)

                A(I, J) = (I)th absorption coefficient for (J)th contami-
                        nant

  2. 10.5  Printer:  Fortran Unit 6
                                     2-42

-------
                                  BSR 3322


2.11  FILTER PROGRAM

2.11.1 Purpose

       This program accepts  spectral filter and channel allocation
data from card input and outputs lists of individual channel parameters
to a data file for use by Program DICIS.

2.11.2 Control Cards:  Fortran Unit 5

       NOFT; Format  (110)

       NOFT = number of filter types

2. 11. 3 Data Cards:  Fortran Unit  5

       1.   NF(k), BWL(k), DWL(k).

            k = 1, NOFT;       Format (110,  2F10. 0)

            NF(k) =  number of channels to be assigned to filter type K

            BWL(k)  = beginning wavelength for the channels  of type K

            KWL(k)  = difference between center wavelengths for
                      channels of type K

       2.   FTR(I,  k),  1=1, L, k =  1, NOFT; Format (3x, F9.3)

            FTR(I,  k)  =  filter transmission at the (I-l)th wavelength
                         deviation from the center wavelength of
                         filter type K

            L = value  of I  for which first zero transmission is read

2.11.4 Output Data File: Fortran Unit 12

        1.   NOFT,  NOC;       Format (2 I  10)

            NOFT = number.of filter types

            NOC =  total number of channels  summed over all filter
                    types
                                    2-43

-------
                                   BSR 3322
       2.  IFT(j), FWL(j).  PTR(j),




           j =  1, NOG;        Format (110,  2F10. 5)




           IFT(j) =  filter type number for jth channel




           FWL(j) = center wavelength of jth channel




           PTR(j) = peak transmission of jth channel




       3.  FTR(I, k), 1= 1, 251, K = 1,  NOFT;    Format (8F10. 6)




2.11.5 Printer:  Fortran Unit 6
                                     2-44

-------
                                 BSR 3322
2.12  DICIS PROGRAM

2.12. 1 Purpose

       This program processes spectral data in three major steps.
In the first step,  the input data are deconvolved and interpolated to
provide a high-resolution representation of a radiance difference spec-
trum corrected for the known properties of the collecting instrument.
In the second step, the spectra are contaminated by the  absorption
spectra of various user-chosen atmospheric contaminants.  In the
third step, an instrument simulation is performed to convert the final
radiance spectra to a set of channel readings consistent with the user-
specified number  of channels,  channel band widths, center wavelengths,
and instrument noise.
            ^

2.12.2 Method

       Three arrays of constants are read f-rom data  files  created by
other programs.   The first array consists of the elements  of a decon-
volution and interpolation matrix generated by Program DIMAT.   The
second array consists of the spectral absorption coefficients for up to
10 atmospheric contaminants produced by Program ALFMAT.  The
third array consists of a number of channel description parameters
provided by Program FILTER.

       After various user options are determined  by reading a series
of control-cards,  tables  of spectral transmittance  are prepared for
each of the contaminants selected:


                    Ti,k =  exp(-*i, k •  CV

where Tj> fc is the transmittance of the kth contaminant at the Ith wave-
length,  aj k is the corresponding absorption coefficient, and the CL
product  is chosen to achieve a specific peak'absorption.

        The execution of the main computation loop begins  with the
reading  of the first input background spectrum and is  repeated for each
additional spectrum to be  processed.  A refined version of the back-
ground spectrum  is  obtained by the  relation:
                                     2-45

-------
              BSR  3322
   33
•  I
                            AT .  =  X.,  1<  I <  251
                             i. J      J   -   -
                     .  J=l

where Xj is the input reading of the jth channel,  y is the corrected
spectral radiance at the Ith wavelength, and AJJ is a 251 by 33 decon-
volution and interpolation matrix.

        The effects of an airborne contaminant may be introduced in
the spectrum by use of the relation:

                          X. =  y. .  T.
                           I    'I     I, k

under the restriction that the temperature of the contaminant is the
same as that of the instrument ambient temperature.

        The instrument simulation portion of the program generates
a set of channel readings by summing the products of the spectral radi-
ance and the individual spectral channel transmissions.  The user-
specified amount of random noise is added to .each channel reading,
and  a target value for the subsequent regression analysis  is appended
to the set of channel readings.

        The target value is set to a non-zero value only for those back-
grounds which have been modified by a target contaminant.  It is com-
puted by obtaining the vector  difference between the  original and the
modified spectral radiance vector and  finding the length of the compon-
ent perpendicular to the original vector.   The sign is taken positive or
negative according to whether absorption or emission effects prevailed.

2. 12.3 Option  Cards:  Fortran Unit 5

1.   PRIN;          causes input spectral data to be printed

2.   PROUT;        causes refined spectral data to be printed

3.   PRCR;         causes output channel readings  to be printed

4.   REWIN;        causes Fortran Unit 8 to be rewound before
                    processing continues
                 2-46

-------
                           BSR  3322
5.
6.
RNOISE;


BBSYN;
7.   TARGET;
 8.   NONTAR;
 9.   PLOTBS;
 10.  PLOTCB;
  11.  EXEC;
  12.  FINISH;
causes another card to be read in Format (F10.0)
which specifies  random noise level to be used

causes another card to be read in Format (110)
which specifies  the number of blackbody spectra
to be synthesized and  included with the refined
spectra for processing

causes sufficient additional cards to be read in
Format (110, /4 (110, F10.0)) to specify the number
of target contaminants to be used,  their  identity,
and peak absorption

causes  sufficient additional cards to be read in
Format (110, /4 (110,  F10. 0)) to specify the num-
ber of non-target contaminants to be used,  their
identity, and peak absorption

causes sufficient additional cards  to be read in
 Format (110, /(8I10)) to specify the number of
background spectra to be plotted and to identify
the particular background for which plots are
 desired

 causes sufficient additional cards to be read in
 Format (110, /(8I10))  to specify the number of
 contaminated;spectra to be plotted and to identify
 the particular backgrounds and contaminants for
 which plots  are desired

 causes execution to begin under control of options
 already specified

 terminates execution.
                              2-47

-------
                                   BSR 3322



2.12.4 Input Data File:  Fortran Unit 10

       1.   NOMC;                                  Format (110)

            NOMC = Number of matrix channels

       2.   A (I, J), 1=1, 251

                    J= 1, NOMC;                   Format (20A4)

            A (I, J) = Element of deconvolution and interpolation
                     matrix for Ith wavelength and Jth channel.

2.12.5 Input Data File:  Fortran Unit 11

       1.   CONNAM (K), K = 1,  10;                Format (10A8)

            CONNAM (K) = Name of Kth contaminant

       2.   ALF (I, K),  1=1, 251

                        K = 1,  10;                   Format (20A4)

            ALF (I, K) = Absorption coefficient of Kth contaminant
                         at  Ith wavelength.'

2.12.6 Input Data File:  Fortran Unit 12

       1.   NOFT.NOOC;                           Format (2110) '

            NOFT = Number of filter types

            NOOC = Number of output channels
                                      2-48

-------
                                 BSR 3322
       2.   IFT (J),  FWL (J), PTR (J).


                             J = 1,  NOOC;     Format-(110,  2F10.0)


                  IFT (J)  =  Index of filter type for Jth output channel


                  FWL (J) = Filter center wavelength for Jth output
                             channel


                  PTR (J) =  Peak transmission of Jth output channel.


2.12.7 Input Data File:  Fortran Unit 8

       !.   MCI;                                Format (110)
           j

            NCI  = Number of input spectra


       2.   X (J), J  = 1,  33;


            X (J)  =  Jth channel reading.


2.12.8 Output  Data File: Fortran Unit 9


        1.   NCO;


            NCO = Number of output cases'


        2.   X(J),  J  =  1, NOOC, TARG;


            X(J)  =  Output reading for Jth channel


            TARG = Target value associated with current readings.


 2. 12. 9 Printer:   Fortran Unit 6
Format (20A4)
Format (110)
Format (6F10.3)
                                    2-49

-------
                                  BSR 3322
2.13  PLTSMF PROGRAM

2. 13. 1 Purpose
       This program plots spectral modulation functions from regres
sion analysis  data and channel filter response data.
2.13.2 Method
        The spectral modulation function is obtained by summing the
products of the spectral response of each channel with its associated
•regression coefficient.  The summation is performed for each wave-
length of interest using the relation
 where r  is the response at the Ith wavelength,  C  is the coefficient
 for the Jth channel,  Tj T is the transmission of tne Jth channel at the
 Ith wavelength, and N is the number of channels.   The values of rx
 are plotted against the wavelength corresponding  to the index I.

 2. 13. 3 Data Input Cards:  Fortran Unit 5

            NSTBP,

           ' NSI (I),  I = 1,  NSTBP; Format (8110)

            NSTBP  = Number of regression steps to be plotted

             NSI (I) = Step number of Ith plot.

  2.13.4 Data Input File: Fortran Unit 11

             1.  NOFT, NOC;  Format (2110)

                 NOFT - Number of filter types

                 NOC = Number of channels
                                     2-50

-------
                              BSR 3322



           2.   IFT (J), FWL (J), PTR (J),

                    J = 1,  NOC  Format (110,  2F10. 5)

                IFT (J) = Filter type number for Jth channel

                FWL, (J) =  Center wavelength of Jth channel

                PTR (J) = Peak transmission of Jth channel

           3.   FTR (I, K), I = 1,  251

                    K  = 1, NOFT; Format  (8F10. 6)

                FTR (I, K)  = Filter transmission at the (I-l)th
                            wavelength deviation from the center
                            wavelength of filter type K.

2. 13.5 Data Input File: Fortran Unit 12

            1.   NSTEP, NOCF,  SE: Format (2110,  F10. 5)

                NSTEP = Regression step number

                NOCF  = Number of coefficients in this  step

                SE =  Standard error of estimate for  this step

            2.   NCN (M),  COEF (M),

                M =  1, NOCF;  Format (4(110,  F10. 5))

                NCN (M) =  Channel number of Mth channel included
                            in regression step

                COEF (M) =   Coefficient for Mth channel included.

2. 13.6 Printer: Fortran Unit 6
                                2-51

-------
                                   BSR 3322
                                  SECTION 3

                                 REFERENCES

1.  M. A. Efroymson, "Multiple Regression Analysis. " Mathematical Methods for
    Digital Computers, Part V,  (17), Edited by A. Ralston and H.  S.  Wilf,
    John Wiley, New York (I960).

2.  R.  I. Jennrich and P.  F.  Sampson,  "Rotation for Simple Loadings, "
    Psychometrika (1966).

3.  J. H.  Wilkinson,  "The Calculation of Eigenvectors of Codiagonal Matrices, "
    Computer J., J_,  90-96 (1958).

4.  Harry H. Harman, Modern Factor Analysis,  Chicago:  Univ.  Chicago
    Press (1960).

5.  IBM Corporation,  System/360 Scientific Subroutine Package (360A-CM-03X)
    Version III Programmer's Manual, Ref.  H20-0205-3, Fourth Edition.
                                      3-1

-------