Magnetometer Constants File for Mars Observer Magnetometers             
                                                                              
                                                                              
      ABSTRACT: The Magnetometer Constants File contains all necessary        
      constants, such as scale factors and zero levels, required to convert   
      sensor telemetry in counts to engineering units, e.g., magnetic field   
      in nanoteslas.                                                          
                                                                              
      SUMMARY: The Magnetometer Constants File provides all necessary         
      constants, such as scale factors and zero levels, required to convert   
      sensor telemetry in counts to engineering units. The File is ascii text,
      in a format which conforms to JPL's naif kernel files (see below). The  
      file is initialized with constants resulting from MO Mag analyses of    
      ground calibration data obtained at the GSFC Magnetics test facility.   
      The constants in this file are subject to review throughout the mission 
      and may require updating in response to MO Mag analyses of in-flight    
      data, calibration data, and spacecraft roll maneuvers. All entries are  
      to be updated by concatenation of "new" values to the original file, so 
      that the "new" values follow the "old" in the file; naif kernel readers 
      return the value of the last entry for a given parameter. This file is  
      thus a concise history of the magnetometer constants.                   
                                                                              
      The Magnetometer Constants File provides constants for two              
      magnetometers, designated Inboard (IB_) and Outboard (OB_) according    
      to the radial distance of each sensor triad on the deployed boom. Each  
      requires a zero table and a scale factor table to convert sensor        
      telemetry counts to magnetic field in nanoteslas. Both tables are       
      organized as 4 x N arrays, where N is the number of Mag ranges that     
      the sensor has available. Each row of the array has an entry for each   
      sensor axis (x,y,z) and range designation (0,1,2,3...) as follows:      
                                                                              
                                x           y           z      range          
                                                                              
      IB_ZEROS        = (      2038        2059        2051        0          
                               2044        2050        2055        1          
                               2047        2048        2049        2          
                                  .           .           .        .          
                                  .           .           .        .          
                               2046        2048        2048        N    )     
                                                                              
      IB_SCALE        = (   0.00182     0.00200     0.00200        0          
                            0.00775     0.00795     0.00791        1          
                            0.03097     0.03203     0.03222        2          
                                  .           .           .        .          
                                  .           .           .        .          
                           31.70630    31.87791    31.90853        N    )     
                                                                              
                                                                              
      Nominal Mag ranges are as follows:           (+/-) nT    range          
                                                                              
                                                          4        0          
                                                         16        1          
                                                         64        2          
                                                        256        3          
                                                      1,024        4          
                                                      4,096        5          
                                                     16,384        6          
                                                     65,536        7          
                                                                              
                                                                              
      But actual ranges may be expected to deviate from the nominal (design)  
      range by varing amounts, ranging from as much as 10% in the most        
      sensitive range (0) and decreasing to a fraction of a percent (0.3%)    
      in the highest range (7).                                               
                                                                              
      The Mag voltages are digitized with a single-ended analog-to-digital    
      converter with 12 bit resolution (2**12 steps = 4096) so the nominal    
      zero value is 2048. Actual zeros in the most sensitive ranges may differ
      substantially (few hundred counts) from this value. In higher ranges,   
      the zero value more closely approximates the nominal 2048 midpoint.     
                                                                              
      A Mag sample 4-vector, consisting of x counts, y counts, z counts, and  
      range, can be converted to approximate magnetic field value in          
      nanoteslas by (1) subtraction of the zeros appropriate to the range     
      value (zero-corrected) and (2) multiplication by sense for the given    
      range (scaled). Small corrections to the field computed in this way     
      are introduced in the form of a matrix, historically referred to as an  
      "alignment matrix". This is somewhat of a misnomer, as this matrix is   
      not a rotation matrix. Rather, it allows small linear corrections to be 
      made to the "ideal" sensor output to compensate for sensor physical     
      misalignment between axes and cross-coupling between sensors, i.e., the 
      net effects of non-ideal behavior. We will call this matrix a           
      "rectification matrix" to make clear its purpose and distinguish it     
      from other necessary matricies which represent rotations, e.g.,         
      relative alignment of IB and OB sensors, and coordinate transformations.
      This matrix is nearly equal to the identity matrix, and we carry a      
      fourth component (x,y,z,"0") as a convenience which preserves the range 
      information and reversibility.                                          
                                                                              
                                                                              
                                                                              
      IB_RECTN        = (   1.00112867   0.00222362   0.01009026   0          
                           -0.00005261   0.99926096   0.00128650   0          
                           -0.00229221   0.00026479   0.99959821   0          
                            0            0            0            1    )     
                                                                              
      This matrix may be approximated by the identity matrix prior to         
      completion of calibration analyses.                                     
      An additional true rotation matrix rotates a vector in sensor           
      coordinates to spacecraft payload coordinates:                          
                                                                              
                                                                              
      IB_S2PL         = (   1.00000000   0.00000000   0.00000000   0          
                            0.00000000   1.00000000   0.00000000   0          
                            0.00000000   0.00000000   1.00000000   0          
                            0            0            0            1    )     
                                                                              
      Mag constants will be changed as necessary after analyses of in-flight  
      data, perhaps as often as a few times in a year.                        
                                                                              
      FORMAT: The Magnetometer Constants File conforms to the format of JPL   
      naif kernel files. All text not within data delimiters (\begindata and  
      \begintext) is ignored by file readers, allowing for comments and doc-  
      umentation. Entries following a data delimiter (\begindata) consist of  
      "KEYWORD = VALUE" statements, where KEYWORD is a parameter symbol and   
      VALUE is a number or JPL formatted time, if preceeded by an @ sign.     
      The value associated with a particular keyword symbol is that value     
      corresponding to the last entry for the keyword. The value field may    
      contain a string of numeric values if enclosed in parentheses. Blanks   
      or commas separate entries, and commas are translated as blanks.        
      Additional information on file format and reading routines (Fortran)    
      can be found in the naif libraries                                      
      (/SFOC/naif/toolkit/etc/spicelib/env0).                                 
                                                                              
      AUTHOR:     J. E. P. Connerney, code 695 NASA/GSFC                      
                                                                              
      DATE:       25-AUG-1992                                                 
                                                                              
      REVISIONS:  17-NOV-1992  Added magnetometer intrinsic sample interval   
                  04-JAN-1992  Revised scale factors to reflect 12/4/91 calib.
                               Added sensor positions.                        
                  26-NOV-1996  Added calibration data for Mars Global Surveyor
                               instrument (MO S/N 001)                        
                  14-SEP-1997  Revise zero table at MOI per email from MHA    
                  17-SEP-1997  Revise per John S./inboard temporarily         
                  13-OCT-1997  Revise per Mario and John S.                   
                                                                              
==============================================================================
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
      Initial (pre-flight) entries for the Mag constants appear below, as     
      determined from ground calibrations.                                    
                                                                              
      \begindata                                                              
                                                                              
      REVISION        =      @26-NOV-1996-00:00:00.000                        
                                                                              
      EPOCH_START     =      @25-NOV-1996-00:00:00.000                        
                                                                              
      \begintext                                                              
                                                                              
      The magnetometers have an intrinsic sample rate at which the input      
      is sampled. (The input may be averaged and decimated by the flight      
      processor according to the values uplinked for certain parameters.)     
                                                                              
      \begindata                                                              
                                                                              
      SAMPLES_SEC     =      32.                                              
                                                                              
      \begintext                                                              
                                                                              
      The magnetometers on Mars Global Surveyor (MGS) are not boom mounted.   
      They are mounted at the outer edge of the two solar panels, and both are
      about the same distance from the center of the spacecraft. In earlier   
      missions, one of the two magnetometers was mounted at the end of a boom 
      ("outboard mag") and the other mounted closer to the spacecraft body    
      ("inboard mag"). The data acquisition scheme allows for more rapid      
      sampling of one or the other magnetometer. The outboard mag was usually 
      the primary mag, the inboard secondary.                                 
                                                                              
      For MGS, we will preserve the terminology "outboard" and "inboard" mag  
      for simplicity but we must define which is which.                       
                                                                              
      By definition, the MGS "OUTBOARD MAG" is on the S/C +Y solar panel      
                     the MGS "INBOARD  MAG" is on the S/C -Y solar panel      
                                                                              
         (These are the zeros through MOI. We follow with new ones            
          after the text-off signal)                                          
                                                                              
                                x           y           z      range          
                                                                              
                                                                              
      IB_ZEROS        = (    2400.0      1850.0      1700.0        0          
                             2135.0      1998.0      1961.0        1          
                             2064.0      2035.0      2026.0        2          
                             1989.0      2063.0      2025.0        3          
                             2043.0      2066.0      2053.0        4          
                             2045.0      2052.0      2048.0        5          
                             2057.0      2061.0      2057.0        6          
                             2049.0      2051.0      2049.0        7    )     
                                                                              
                                                                              
                                                                              
      OB_ZEROS        = (    2300.0      2150.0      2400.0        0          
                             2110.0      2073.0      2135.0        1          
                             2057.0      2064.0      2067.0        2          
                             2044.0      2052.0      2040.0        3          
                             2064.0      2056.0      2059.0        4          
                             2051.0      2049.0      2049.0        5          
                             2059.0      2057.0      2055.0        6          
                             2050.0      2050.0      2049.0        7    )     
                                                                              
      \begindata                                                              
                                                                              
       IB_ZEROS        = (    2072.0   1199.0    3152.0    0                  
                              2052.0   1832.0    2331.0    1                  
                              2043.0   2003.0    2117.0    2                  
                              2046.0   2036.0    2065.0    3                  
                              2048.0   2052.0    2054.0    4                  
                              2045.0   2051.0    2049.0    5                  
                              2057.0   2061.0    2057.0    6                  
                              2049.0   2051.0    2049.0    7   )              
                                                                              
                                                                              
        OB_ZEROS        = (   2350.0   3764.0    2798.0    0                  
                              2123.0   2484.0    2236.0    1                  
                              2073.0   2148.0    2116.0    2                  
                              2052.0   2072.0    2063.0    3                  
                              2061.0   2058.0    2058.0    4                  
                              2051.0   2051.0    2049.0    5                  
                              2059.0   2057.0    2055.0    6                  
                              2050.0   2050.0    2049.0    7    )             
                                                                              
                                                                              
                                                                              
                                                                              
      IB_SCALE        = (   0.0020121   0.0020117   0.0019969      0          
                            0.0079143   0.0079032   0.007847       1          
                            0.032190    0.032206    0.031983       2          
                            0.12661     0.12652     0.12568        3          
                            0.50043     0.49980     0.49697        4          
                            1.96840     1.96350     1.95280        5          
                            8.00600     8.00140     7.95960        6          
                           31.49010    31.43470    31.27640        7    )     
                                                                              
      OB_SCALE        = (   0.002002    0.002001    0.002010       0          
                            0.007865    0.007863    0.007904       1          
                            0.032127    0.032034    0.032206       2          
                            0.12615     0.12587     0.126610       3          
                            0.49974     0.49832     0.50145        4          
                            1.96240     1.95800     1.97070        5          
                            8.01900     7.97710     8.03010        6          
                           31.48910    31.34310    31.56840        7    )     
                                                                              
                                                                              
                                                                              
      \begintext                                                              
                                                                              
      As of this date, the rectification matricies and sensor to payload      
      transformation matricies are derived by MHA from GSFC pre-flight        
      calibration data. The MAG serial number is recorded as SN002;           
      the low field (15k) rectification matricies are used here.              
                                                                              
      \begindata                                                              
                                                                              
      IB_RECTN        = (   1.00000      0.0006822   -0.0025086    0          
                            0.0057004    1.00000      0.0003112    0          
                           -0.0068815   -0.0025975    1.00000      0          
                            0            0            0            1    )     
                                                                              
      OB_RECTN        = (   1.00000     -0.0000591   -0.008906     0          
                           -0.0041496    1.00000     -0.000979     0          
                            0.0086519    0.0017138    1.00000      0          
                            0            0            0            1    )     
                                                                              
                                                                              
                                                                              
                                                                              
      IB_S2PL         = (   1.00000000   0.00000000   0.00000000   0          
                            0.00000000   1.00000000   0.00000000   0          
                            0.00000000   0.00000000   1.00000000   0          
                            0            0            0            1    )     
                                                                              
                                                                              
                                                                              
      OB_S2PL         = (   1.00000000   0.00000000   0.00000000   0          
                            0.00000000   1.00000000   0.00000000   0          
                            0.00000000   0.00000000   1.00000000   0          
                            0            0            0            1    )     
                                                                              
                                                                              
      \begintext                                                              
                                                                              
      The magnetometer positions in spacecraft coordinates, units meters,     
      currently a TBD item                                                    
                                                                              
                                 x            y            z                  
      \begindata                                                              
                                                                              
      IB_POSN         = (       0.0          0.0          0.0    )            
                                                                              
                                                                              
      OB_POSN         = (       0.0          0.0          0.0    )            
                                                                              
                                                                              
      \begintext                                                              
                                                                              
==============================================================================