Object File for Mars Observer Magnetometer ABSTRACT: The Object File contains descriptive information about symbols representing program variables. SUMMARY: The Object File is ascii text, in a "KEYWORD = VALUE" format which is similar to that used by NAIF, readable by man and machine. The analysis program attempts to write records to stdout, which records include values for each of the variables called for in the command line input by symbol. Each symbol may represent an integer, real, or character variable, and each may be a scalar or vector quantity; this object file provides this information to the analysis program. In addition, this file expresses a preference for a particular output format. Additional information may be included here (e.g., "units = nT") which will be reproduced in the file header of the output files generated - to assist in automatic label generation on plots and so on. Note that the MG ANalysis program can provide any of the following output parameters, in addition to any scalar quantity residing in the integer pool (packet variables) or the dble precision pool maintained by MGAN. For those scalars not listed here, MGAN will simply adopt the generic real or integer output format, depending on whether the variable was located in the integer pool or the dble precision pool. Primitive variables (integer variables, mostly) are described in the flight software documentation. FORMAT: The Object File DOES NOT conform to the format of JPL naif kernel files. The format is SIMILAR TO that of the JPL NAIF files. For example, in this file, commas are necessary and cannot by treated by the reader as whitespace (as in NAIF text kernel files). 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: 20-OCT-1992 REV: 29-OCT-1992: Added integer vectors (JEPC) 13-NOV-1992: Added ascii variable (JEPC) 15-NOV-1992: Added ephemeris time (JEPC) 21-JAN-1993: Added vector housekeeping object (JEPC) 15-FEB-1993: Added calender format time (t) variable (JEPC) 02-MAR-1993: Added raw counts (JEPC) 26-APR-1993: Added units information for plots (JEPC) 03-MAY-1993: Substituted more readable aliases (JEPC) 25-MAY-1993: Revised aliases (JEPC) 26-MAY-1993: Added pointing matrix, associated ephemeris t (JEPC) 03-JUN-1993: Added position vector, lighttime correction (JEPC) 04-JUN-1993: Added target-body, spacecraft angles (JEPC) 01-AUG-1993: Added transformation matrix (inertial to body-fixed) (JEPC) 02-AUG-1993: Added state vector (position, velocity) wrt target (JEPC) 05-AUG-1993: Added ambient field vector B (currently = OB_BS ) (JEPC) 06-AUG-1993: Reduce ambient field to three vector; quality in QA (JEPC) 22-AUG-1993: Add documentation to describe quantity (JEPC) 29-AUG-1997: Update documentation to reflect MGS; matrix notes (JEPC) 05-SEP-1997: Add earth_sc angles (JEPC) 12-SEP-1997: Add ob, ib B expressed in inertial J2000 coord. sys. (JEPC) 13-SEP-1997: Add ob, ib B expressed in payload coordinates (JEPC) 18-NOV-1997: Add ob, ib RMS in sensor coordinates (JEPC) 28-NOV-1997: Add transformation matrix sensor to payload coord. (JEPC) 06-JAN-1999: Revise format for B to accomodate larger values (JEPC) 15-JUL-1999: Add sap_i, sam_i, sao_i (solar panel currents) (JEPC) 09-SEP-1999: Add high gain antenna position, attitude matrix (JEPC) 09-SEP-1999: Add state vectors for ib, ob mag, hga (JEPC) 26-FEB-2000: Add spacecraft field in sensor coordinates (JEPC) 28-FEB-2000: Add spacecraft field in payload coordinates (JEPC) 01-MAR-2000: Add battery (1&2) charge and discharge currents (JEPC) 10-MAR-2000: Add sc bus and payload bus current; TWT currents (JEPC) 21-APR-2000: Add variables for dynamic spacecraft field (JEPC) =============================================================================== The vectors OB_BS (IB_BS) are four-vectors of the magnetic field in sensor (payload) coordinates as measured by the outboard (inboard) sensor. The range word for the sensor is carried as a fourth component; this range word denotes both the range and operating mode. If the instrument is in autorange mode, the range word is incremented by 8 (auto range enable bit is on). In manual mode, ranges are 0 to 7; in autorange mode, 8 to 15 (see mo_mags.ker). \begindata OBJECT = VECTOR NAME = OB_BS ALIAS = OUTBOARD_B_SENSOR TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = IB_BS ALIAS = INBOARD_B_SENSOR TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT \begintext The vectors OB_BSC (IB_BSC) are four-vectors of the spacecraft magnetic field in sensor coordinates at the position of the outboard (inboard) sensor. A zero range word is carried as a fourth component; \begindata OBJECT = VECTOR NAME = OB_BSC ALIAS = OUTBOARD_BSC_SENSOR TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = IB_BSC ALIAS = INBOARD_BSC_SENSOR TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT \begintext The vectors OB_BSCPL (IB_BSCPL) are four-vectors of the spacecraft magnetic field in payload coordinates at the position of the outboard (inboard) sensor. A zero range word is carried as a fourth component; \begindata OBJECT = VECTOR NAME = OB_BSCPL ALIAS = OUTBOARD_BSC_PAYLOAD TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = IB_BSCPL ALIAS = INBOARD_BSC_PAYLOAD TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT \begintext The vectors OB_BD (IB_BD) are four-vectors of the dynamic spacecraft magnetic field in sensor coordinates at the position of the outboard (inboard) sensor. A zero range word is carried as a fourth component. The dynamic spacecraft field is related to power subsystem currents. \begindata OBJECT = VECTOR NAME = OB_BD ALIAS = OUTBOARD_BD_SENSOR TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = IB_BD ALIAS = INBOARD_BD_SENSOR TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT \begintext The vectors OB_BDPL (IB_BDPL) are four-vectors of the dynamic spacecraft magnetic field in payload coordinates at the position of the outboard (inboard) sensor. A zero range word is carried as a fourth component; \begindata OBJECT = VECTOR NAME = OB_BDPL ALIAS = OUTBOARD_BD_PAYLOAD TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = IB_BDPL ALIAS = INBOARD_BD_PAYLOAD TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F7.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT \begintext The RMS (Root Mean Squared) fluctuation is the square root of the sum of the squared difference field values devided by N, the number of difference field values. Nominally, only the outboard magnetometer has difference words. There is one RMS value for each full word that is followed by difference words, and the estimate sums over all of the difference words between consecutive full words. The estimate is provided in sensor coordinates. \begindata OBJECT = VECTOR NAME = OB_RMS ALIAS = OUTBOARD_RMS TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F8.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F8.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F8.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = IB_RMS ALIAS = INBOARD_RMS TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F8.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F8.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F8.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT \begintext The ambient field is the variable B. This is to be the ambient field of the environment, as determined using the field at each sensor and any additional ancillary data, e.g., s/c engineering data (solar array current, and so on). When the quality of this estimate is known, it will be indicated by the variable QA. THIS VARIABLE IS CURRENTLY A PLACE HOLDER ONLY. THE AMBIENT FIELD IS UNKNOWN. \begindata OBJECT = VECTOR NAME = B ALIAS = B_AMBIENT TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F9.3 UNITS = NT END_OBJECT END_OBJECT OBJECT = SCALAR NAME = QA ALIAS = QUALITY_OF_B TYPE = REAL FORMAT = F4.0 END_OBJECT \begintext Below we add the field measured by ob and ib sensors as expressed in inertial J2000 coordinates. \begindata OBJECT = VECTOR NAME = OB_B ALIAS = OUTBOARD_B_J2000 TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = IB_B ALIAS = INBOARD_B_J2000 TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = OB_BPL ALIAS = OUTBOARD_B_PAYLOAD TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = IB_BPL ALIAS = INBOARD_B_PAYLOAD TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F9.3 UNITS = NT END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,F4.0 END_OBJECT END_OBJECT \begintext The raw data words from the inboard and outboard magnetometers are available with the following variables. These and other primitive variables (integer variables) are described in the flight software documentation. \begindata OBJECT = VECTOR NAME = IB_CNTS ALIAS = INBOARD_COUNTS TYPE = INTEGER OBJECT = SCALAR NAME = X FORMAT = 1X,I4 UNITS = COUNTS END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,I4 UNITS = COUNTS END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,I4 UNITS = COUNTS END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,I3 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = OB_CNTS ALIAS = OUTBOARD_COUNTS TYPE = INTEGER OBJECT = SCALAR NAME = X FORMAT = 1X,I4 UNITS = COUNTS END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,I4 UNITS = COUNTS END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,I4 UNITS = COUNTS END_OBJECT OBJECT = SCALAR NAME = RANGE FORMAT = 1X,I3 END_OBJECT END_OBJECT \begintext The packet sequence number is used to keep track of missiong packets; this is telemetered to the ground with the data. The processor will reset this counter each time it initializes. The first few packets following such an event will consist of instrument memory dumps, not read routinely. \begindata OBJECT = SCALAR NAME = PKT_SEQ ALIAS = PACKET_SEQUENCE TYPE = INTEGER FORMAT = I5 UNITS = COUNTS END_OBJECT \begintext The packet time is an integer representing spacecraft clock "tics" maintained by the spacecraft clock. It is approximately equal to seconds past a reference time prior to launch. It is not exactly equal to seconds past this reference time, since it is adjusted for drift from time to time. Conversion to UTC time also requires observation of "leapseconds" which are introduced frequently; see NAIF documentation for discussion of time conversion. \begindata OBJECT = SCALAR NAME = PKT_TIME ALIAS = PACKET_TIME TYPE = INTEGER FORMAT = I12 UNITS = COUNTS END_OBJECT OBJECT = VECTOR NAME = N_SATS ALIAS = N_SATURATED_DIFF TYPE = INTEGER UNITS = COUNTS OBJECT = SCALAR NAME = Q1 FORMAT = 1X,I2 END_OBJECT OBJECT = SCALAR NAME = Q2 FORMAT = 1X,I2 END_OBJECT OBJECT = SCALAR NAME = Q3 FORMAT = 1X,I2 END_OBJECT OBJECT = SCALAR NAME = Q4 FORMAT = 1X,I2 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = SH_STAT ALIAS = SHIFT_STATUS TYPE = INTEGER UNITS = COUNTS OBJECT = SCALAR NAME = Q1 FORMAT = 1X,I1 END_OBJECT OBJECT = SCALAR NAME = Q2 FORMAT = 1X,I1 END_OBJECT OBJECT = SCALAR NAME = Q3 FORMAT = 1X,I1 END_OBJECT OBJECT = SCALAR NAME = Q4 FORMAT = 1X,I1 END_OBJECT END_OBJECT \begintext The generic integer and generic real variables are provided to allow the output of variables (scalars) which appear in the integer symbol table or the real variable symbol table, but which were not known at the time this file was prepared. These variables will not be labelled, but the program will pass them through to each record with the default formats declared below. \begindata OBJECT = SCALAR NAME = GENERIC_INTEGER ALIAS = GENERIC_INTEGER TYPE = INTEGER FORMAT = I6 END_OBJECT OBJECT = SCALAR NAME = GENERIC_REAL ALIAS = GENERIC_REAL TYPE = REAL FORMAT = F8.3 END_OBJECT \begintext The character variable cstring is an oddity; it applies to the character identification of the decommutated engineering data that appears in the packet headers. Since this variable may be any of 16 or 32 possible engineering measurements, all appearing in the packet under the "hsk" variable name, it must be further identified. The cstring variable provides this identity (see mo_hsk.ker). \begindata OBJECT = SCALAR NAME = CSTRING ALIAS = CHARACTER_STRING TYPE = ASCII FORMAT = A END_OBJECT \begintext Ephemeris time is seconds before J2000; this is the time upon which all ephemeris information is based. See NAIF documentation for more details. \begindata OBJECT = SCALAR NAME = ET ALIAS = EPHEMERIS_TIME TYPE = REAL FORMAT = F15.3 END_OBJECT OBJECT = SCALAR NAME = DDAY ALIAS = DECIMAL_DAY TYPE = REAL FORMAT = F13.9 END_OBJECT OBJECT = SCALAR NAME = PKT_ET ALIAS = PACKET_EPHEMERIS_TIME TYPE = REAL FORMAT = F15.3 END_OBJECT \begintext The light time is returned along with the position of the spacecraft or the state of the spacecraft, represents the light travel time from the sc to the target body (see options in mgan). \begindata OBJECT = SCALAR NAME = LT ALIAS = LIGHT_TIME TYPE = REAL FORMAT = F15.3 END_OBJECT \begintext The position of the spacecraft or the state of the spacecraft, relative to the target body specified in the command line, is returned in cartesian coordinates. The coordinate system for position, state, and b are as specified in the options list on the command line. \begindata OBJECT = VECTOR NAME = POSN ALIAS = SC_POSITION TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F11.3 UNITS = KILOMETERS END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F11.3 UNITS = KILOMETERS END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F11.3 UNITS = KILOMETERS END_OBJECT END_OBJECT \begintext The state vector (state of the spacecraft, relative to the target body specified in the command line) is returned in cartesian coordinates. The state vector consists of three components of the position vector followed by three components of the velocity vector. The coordinate system for position, state, and b are as specified in the options list on the command line. \begindata OBJECT = VECTOR NAME = STATE ALIAS = SC_STATE TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F11.3 UNITS = KILOMETERS END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F11.3 UNITS = KILOMETERS END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F11.3 UNITS = KILOMETERS END_OBJECT OBJECT = SCALAR NAME = VX FORMAT = 1X,F7.3 UNITS = KILOMETERS/SEC END_OBJECT OBJECT = SCALAR NAME = VY FORMAT = 1X,F7.3 UNITS = KILOMETERS/SEC END_OBJECT OBJECT = SCALAR NAME = VZ FORMAT = 1X,F7.3 UNITS = KILOMETERS/SEC END_OBJECT END_OBJECT \begintext The position of ob or ib sensors relative to the spacecraft body is returned in cartesian coordinates. Similarly for the Electron reflectometer and solar array "plus" and "minus", e.g., SAM and SAP. Since the sensors are mounted on the ends of the solar array we need to compute their position as a function of time using special c kernels for the solar arrays. Likewise, the position of the high gain antenna is computed as a function of time using special c kernels for the HGA. \begindata OBJECT = VECTOR NAME = OB_POSN ALIAS = OB_SENSOR_POSITION TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT END_OBJECT OBJECT = VECTOR NAME = IB_POSN ALIAS = IB_SENSOR_POSITION TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT END_OBJECT OBJECT = VECTOR NAME = SAP_POSN ALIAS = SOLAR_ARRAY_P_POSITION TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT END_OBJECT OBJECT = VECTOR NAME = SAM_POSN ALIAS = SOLAR_ARRAY_M_POSITION TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT END_OBJECT OBJECT = VECTOR NAME = HGA_POSN ALIAS = HGA_POSITION TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT END_OBJECT \begintext The state vector (state of the object, relative to the spacecraft body center) is returned in cartesian coordinates. The state vector consists of three components of the position vector followed by three components of the velocity vector. \begindata OBJECT = VECTOR NAME = OB_STATE ALIAS = OB_SENSOR_STATE TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = VX FORMAT = 1X,F8.6 UNITS = METERS/SEC END_OBJECT OBJECT = SCALAR NAME = VY FORMAT = 1X,F8.6 UNITS = METERS/SEC END_OBJECT OBJECT = SCALAR NAME = VZ FORMAT = 1X,F8.6 UNITS = METERS/SEC END_OBJECT END_OBJECT OBJECT = VECTOR NAME = IB_STATE ALIAS = IB_SENSOR_STATE TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = VX FORMAT = 1X,F8.6 UNITS = METERS/SEC END_OBJECT OBJECT = SCALAR NAME = VY FORMAT = 1X,F8.6 UNITS = METERS/SEC END_OBJECT OBJECT = SCALAR NAME = VZ FORMAT = 1X,F8.6 UNITS = METERS/SEC END_OBJECT END_OBJECT OBJECT = VECTOR NAME = HGA_STATE ALIAS = HGA_STATE TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F6.3 UNITS = METERS END_OBJECT OBJECT = SCALAR NAME = VX FORMAT = 1X,F8.6 UNITS = METERS/SEC END_OBJECT OBJECT = SCALAR NAME = VY FORMAT = 1X,F8.6 UNITS = METERS/SEC END_OBJECT OBJECT = SCALAR NAME = VZ FORMAT = 1X,F8.6 UNITS = METERS/SEC END_OBJECT END_OBJECT \begintext Pointing phemeris time is also seconds before J2000; this is the time for which the requested pointing information (e.g., the pointing matrix, or pmx) is valid. Depending on the type of the c-kernel, this time will be either close to the requested time, or identically equal to the requested time. \begindata OBJECT = SCALAR NAME = PET ALIAS = POINTING_EPHEMERIS_TIME TYPE = REAL FORMAT = F15.3 END_OBJECT \begintext The transformation matrix from inertial (J2000) coordinates to the payload coordinate system. This matrix is computed using a specified c kernel (see NAIF documentation). PMX is a rotation matrix that transforms the components of a vector expressed in the inertial frame specified by REF to components expressed in the spacecraft payload frame. Thus, if a vector v has components x, y, z in the inertial frame, then v has components x', y', z' in the instrument-fixed frame at time: [ x' ] [ ] [ x ] | y' | = | PMX | | y | [ z' ] [ ] [ z ] If you know x', y', z', use the transpose of the C-matrix to determine x, y, z as follows: [ x ] [ ]T [ x' ] | y | = | PMX | | y' | [ z ] [ ] [ z' ] (Transpose of CMX) You want to use the transpose of this matrix to transform a vector rendered in the payload coordinate system to one in inertial space. \begindata OBJECT = VECTOR NAME = PMX ALIAS = POINTING_MATRIX TYPE = REAL OBJECT = SCALAR NAME = (1,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (1,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (1,3) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,3) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,3) FORMAT = 1X,F9.6 END_OBJECT END_OBJECT \begintext Transformation matrix elements are ordered as follows: | (1,1) (1,2) (1,3) | MX = | (2,1) (2,2) (2,3) | | (3,1) (3,2) (3,3) | \begindata \begintext The transformation matrix from inertial (J2000) to the chosen coordinate system. The coordinate system is specified by the options list on the command line. \begindata OBJECT = VECTOR NAME = TMX ALIAS = TRANSFORMATION_MATRIX TYPE = REAL OBJECT = SCALAR NAME = (1,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (1,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (1,3) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,3) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,3) FORMAT = 1X,F9.6 END_OBJECT END_OBJECT \begintext The transformation matrix from each sensor to payload coordinate system. The coordinate system is specified by the options list on the command line, either 'OBMX' or 'IBMX'. Also, the transformation matrix from the HGA (high gain antenna) frame to payload frame is specified by the matrix 'HGAMX'. \begindata OBJECT = VECTOR NAME = OBMX ALIAS = OB_TO_PAYLOAD_MATRIX TYPE = REAL OBJECT = SCALAR NAME = (1,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (1,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (1,3) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,3) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,3) FORMAT = 1X,F9.6 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = IBMX ALIAS = IB_TO_PAYLOAD_MATRIX TYPE = REAL OBJECT = SCALAR NAME = (1,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (1,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (1,3) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,3) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,3) FORMAT = 1X,F9.6 END_OBJECT END_OBJECT OBJECT = VECTOR NAME = HGAMX ALIAS = HGA_TO_PAYLOAD_MATRIX TYPE = REAL OBJECT = SCALAR NAME = (1,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,1) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (1,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,2) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (1,3) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (2,3) FORMAT = 1X,F9.6 END_OBJECT OBJECT = SCALAR NAME = (3,3) FORMAT = 1X,F9.6 END_OBJECT END_OBJECT \begintext This is a time vector based upon decimal day of the year. The time variable is unusual in that the time provided is the time associated with the next non-time variable on the command line. Think of it as a timetag function which returns the time of the next variable in the argument list. If that variable is magnetic field, then time corresponds to the center of the interval over which the average is taken, and the timetags expand so that there is one for each b field value (timestep). If the next argument on the command line is any other variable, the time returned is the converted packet time. \begindata OBJECT = VECTOR NAME = TIME ALIAS = TIME TYPE = INTEGER OBJECT = SCALAR NAME = YEAR FORMAT = 1X,I4 END_OBJECT OBJECT = SCALAR NAME = DOY FORMAT = 1X,I3 END_OBJECT OBJECT = SCALAR NAME = HOUR FORMAT = 1X,I2 END_OBJECT OBJECT = SCALAR NAME = MIN FORMAT = 1X,I2 END_OBJECT OBJECT = SCALAR NAME = SEC FORMAT = 1X,I2 END_OBJECT OBJECT = SCALAR NAME = MSEC FORMAT = 1X,I3 END_OBJECT END_OBJECT \begintext This is a time vector based upon calander day. The time variable is unusual in that the time provided is the time associated with the next non-time variable on the command line. Think of it as a timetag function which returns the time of the next variable in the argument list. If that variable is magnetic field, then time corresponds to the center of the interval over which the average is taken, and the timetags expand so that there is one for each b field value (timestep). If the next argument on the command line is any other variable, the time returned is the converted packet time. Note that t and time are not both available on the same record, a limitation which conserves space in the integer pool of variables. \begindata OBJECT = VECTOR NAME = T ALIAS = CALENDER_TIME TYPE = INTEGER OBJECT = SCALAR NAME = YEAR FORMAT = 1X,I4 END_OBJECT OBJECT = SCALAR NAME = MONTH FORMAT = 1X,I2 END_OBJECT OBJECT = SCALAR NAME = DAY FORMAT = 1X,I2 END_OBJECT OBJECT = SCALAR NAME = HOUR FORMAT = 1X,I2 END_OBJECT OBJECT = SCALAR NAME = MIN FORMAT = 1X,I2 END_OBJECT OBJECT = SCALAR NAME = SEC FORMAT = 1X,I2 END_OBJECT OBJECT = SCALAR NAME = MSEC FORMAT = 1X,I3 END_OBJECT END_OBJECT \begintext Instrument engineering data from the packet headers is available via the hsk variable. Since this variable may be any of 16 or 32 possible engineering measurements, all appearing in the packet under the "hsk" variable name, it must be further identified. The cstring variable provides this identity (see mo_hsk.ker). \begindata OBJECT = VECTOR NAME = HSK ALIAS = HOUSEKEEPING TYPE = REAL OBJECT = SCALAR NAME = MAG FORMAT = 1X,F8.3 END_OBJECT OBJECT = SCALAR NAME = ER FORMAT = 1X,F8.3 END_OBJECT END_OBJECT \begintext The sun_sc and mars_sc angle variables provide the angle in degrees between the spacecraft x axis and the sun, the spacecraft y axis and the sun, and the spacecraft z axis and the sun (or mars). Similarly, the earth_sc angle variable provides the angle between the spacecraft x axis and the earth, spacecraft y axis and the earth, and spacecraft z axis and the earth. \begindata OBJECT = VECTOR NAME = SUN_SC ALIAS = SUN_SC_ANGLE TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F8.3 UNITS = DEGREES END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F8.3 UNITS = DEGREES END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F8.3 UNITS = DEGREES END_OBJECT END_OBJECT OBJECT = VECTOR NAME = MARS_SC ALIAS = MARS_SC_ANGLE TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F8.3 UNITS = DEGREES END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F8.3 UNITS = DEGREES END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F8.3 UNITS = DEGREES END_OBJECT END_OBJECT OBJECT = VECTOR NAME = EARTH_SC ALIAS = EARTH_SC_ANGLE TYPE = REAL OBJECT = SCALAR NAME = X FORMAT = 1X,F8.3 UNITS = DEGREES END_OBJECT OBJECT = SCALAR NAME = Y FORMAT = 1X,F8.3 UNITS = DEGREES END_OBJECT OBJECT = SCALAR NAME = Z FORMAT = 1X,F8.3 UNITS = DEGREES END_OBJECT END_OBJECT \begintext These variables are engineering data (solar panel currents) from the engineering data base. They are inserted into our packet data stream as integers (milliamperes) like the rest of our packet data. \begindata OBJECT = SCALAR NAME = SAP_I ALIAS = SA_+Y_CURRENT TYPE = INTEGER UNITS = MILLIAMPERES FORMAT = I8 END_OBJECT OBJECT = SCALAR NAME = SAM_I ALIAS = SA_-Y_CURRENT TYPE = INTEGER UNITS = MILLIAMPERES FORMAT = I8 END_OBJECT OBJECT = SCALAR NAME = SAO_I ALIAS = SA_OUTPUT_CURRENT TYPE = INTEGER UNITS = MILLIAMPERES FORMAT = I8 END_OBJECT OBJECT = SCALAR NAME = B1C_I ALIAS = B1_CHG_CURRENT TYPE = INTEGER UNITS = MILLIAMPERES FORMAT = I8 END_OBJECT OBJECT = SCALAR NAME = B1D_I ALIAS = B1_DIS_CURRENT TYPE = INTEGER UNITS = MILLIAMPERES FORMAT = I8 END_OBJECT OBJECT = SCALAR NAME = B2C_I ALIAS = B2_CHG_CURRENT TYPE = INTEGER UNITS = MILLIAMPERES FORMAT = I8 END_OBJECT OBJECT = SCALAR NAME = B2D_I ALIAS = B2_DIS_CURRENT TYPE = INTEGER UNITS = MILLIAMPERES FORMAT = I8 END_OBJECT OBJECT = SCALAR NAME = SCB_I ALIAS = SC_BUS_CURRENT TYPE = INTEGER UNITS = MILLIAMPERES FORMAT = I8 END_OBJECT OBJECT = SCALAR NAME = PLB_I ALIAS = PL_BUS_CURRENT TYPE = INTEGER UNITS = MILLIAMPERES FORMAT = I8 END_OBJECT OBJECT = SCALAR NAME = TWT1_I ALIAS = TWTA_1_CURRENT TYPE = INTEGER UNITS = MILLIAMPERES FORMAT = I8 END_OBJECT OBJECT = SCALAR NAME = TWT2_I ALIAS = TWTA_2_CURRENT TYPE = INTEGER UNITS = MILLIAMPERES FORMAT = I8 END_OBJECT \begintext