Submitted:
________________________________________________ __________
Gregory A. Neumann Date
MOLA Science Team
Concurred:
________________________________________________ __________
Maria Zuber Date
MOLA Deputy Principal Investigator
Approved:
________________________________________________ __________
David E. Smith Date
MOLA Principal Investigator
The MOLA Science Team is required to create, validate, and archive the MOLA standard data products. To define each standard data product, the MOLA Science Team is required to provide a Software Interface Specification (SIS). The SIS shall describe the data product contents and define the record and data format. The Planetary Data System's (PDS) Geosciences Node has agreed to archive the MOLA standard data products. The MOLA archive volume shall be described in a separate SIS. The MOLA standard science data products are the Aggregated Experiment Data Record--all MOLA raw data aggregated by orbit; Precision Experiment Data Record--MOLA science data processed into profiles with precision orbit locations added; Any Experiment Gridded Data Record--MOLA gridded data in 2 different densities. This SIS shall define the Aggregated Experiment Data Record (AEDR) Data Product.
This document describes the format and contents of the AEDR data product. This includes a description of the required SFDU format and the format and contents of the AEDR.
This SIS describes the format of the SFDU labels and headers and the AEDR to the bit level. The AEDR file is an aggregation of the MOLA telemetry packets (Experiment Data Records) received from the Space Flight Operations Center (SFOC) at the Jet Propulsion Laboratory (JPL). The Experiment Data Records (EDRs) will be produced continuously during instrument operation. The instrument can operate in either science or maintenance mode; data is collected during each mode and stored in the telemetry packets. There are three types of maintenance (or diagnostic) modes that the instrument can be commanded to perform with varying output stored in the packet. Consequently, there are several record formats possible within the AEDR file. The formats of all record types are described in this SIS.
The source of the telemetry packet data is SFOC through a dedicated NASA Communications (NASCOM) link to the MOLA Science Operations Planning Computer (SOPC). The packets will be aggregated by orbit using the SFOC-provided Browser tool and stored as an AEDR file on the SOPC. Refer to See MOLA-672-PL-89.354 Operations Facility Configuration and Control Plan, Version 3.0, January 15, 1992, NASA GSFC WFF for a description of the SOPC. The Browser tool is described in See SFOC0088-00-04-02 SFOC User's Guide for Workstation End Users, Volume 2: Accessing Data, Version 15 (Review Copy Only) . The AEDR files will be transferred to the MOLA operations file system via FTP (standard UNIX File Transfer Protocol). From the MOLA operations file system, the AEDR file is available for retrieval by the science team via FTP and for input to the processor to create the PEDR Data Product. The AEDR Data Product will be created by prefixing the required SFDU and PDS labeling to the AEDR file. After product verification by the MOLA Science Team, the AEDR data product shall be transferred to the SOPC for subsequent delivery to the Planetary Data System's (PDS) Geosciences Node using FTP. The PDS Geosciences Node will archive the AEDR Data Products to CD-ROM and make the products available to the science community.
Since the AEDR file is an aggregation of the MOLA Experiment Data Records (EDR), any changes to the EDR may directly affect the AEDR file.
The Precision Experiment Data Record (PEDR) Data Product is derived from the AEDR file. Therefore, any changes to the AEDR file may affect the software creating the PEDR Data Product.
The AEDR data product shall be labeled according to the standards of the MGS Project and the PDS. SFDU label and header definitions and descriptions are contained in See SFOC0038-05-12-03 SFOC Software Interface Specification SFDUs Generated/Received by TIS, November 30, 1990, Jet Propulsion Laboratory .
The data set id for the MOLA AEDR data product is MO-M-MOLA-2-AEDR-L0-V1.0. This is the data set id that was provided to the PDB and the PDS. This id describes the overall AEDR data product. The version number is incremented should the AEDR Data Product format change.
The file naming convention for each AEDR data product produced is AA#####a.B .
For the creation and archival of the AEDR file, several interfaces will be necessary: SFOC-to-SOPC transfer of telemetry packets (EDRs) via NASCOM link. The AEDR file shall be transferred to the MOLA operations file system for further processing to create the PEDR Data Product and for Science Team availability.
The AEDR Data Product shall be distributed to the PDS Geosciences Node for archival. The MOLA CD-ROM Archive Volume SIS, See MOLA-972-SP-92.213 MOLA CD-ROM Standard Product Archive Collection Software Interface Specification, Version 1.0, S. Slavney, R. E. Arvidson, Washington University, August 11, 1993 for the CD-ROM structure and data access information.
The interface media for file transfer and distribution are described in detail in See MOLA-672-PL-89.354 Operations Facility Configuration and Control Plan, Version 3.0, January 15, 1992, NASA GSFC WFF .
The AEDR data product will be backed up on magnetic media on the MOLA operations file system at GSFC. The AEDR data product will be archived by the PDS to CD-ROM. The MGS Project Data Base will be available as an additional backup location.
Refer to See MOLA-672-PL-89.354 Operations Facility Configuration and Control Plan, Version 3.0, January 15, 1992, NASA GSFC WFF for a description of the MOLA system security and integrity plan.
The AEDR Data Product shall be written as a standard UNIX flat, sequential file. The end of an AEDR Data Product will be detected by the end-of-file marker. In the FORTRAN programming language, the file may be opened with the keywords ACCESS='DIRECT', RECL=1230 and end-of-file detected in a READ statement with the ERR= keyword.
The following utilities are provided by SFOC and will be used to check the AEDR files for completeness and validity:
Refer to See SFOC0088-00-04-02 SFOC User's Guide for Workstation End Users, Volume 2: Accessing Data, Version 15 (Review Copy Only) for the description and the functions of these utilities.
The process to create the AEDR data product is performed as part of MOLA mission operations. The telemetry packets will be aggregated on a Mars Global Surveyor mapping orbit basis. There will be approximately 12 orbits per day with each orbit taking 117 minutes 39 seconds to complete. The mapping mission will last for one Martian year which is 687 Earth days.
The AEDR data products will be produced continuously for the life of mission (687 days). Each product will contain approximately 7000 seconds of data.
The daily volume of telemetry data is about 8 Mbytes or approximately 6000 packets per day.
Nominally, the AEDR Data Product is created on the SOPC and transferred to the MOLA operations file system once per day for the previous 24 hours of data. Since MOLA operations will be performed during a standard five day work week, on Mondays (or the first day of the work week) the processing will need to include the data collected since the last day of the previous work week.
The AEDR products will be built to include the required SFDU structure. See See MOLA-972-SP-92.213 MOLA CD-ROM Standard Product Archive Collection Software Interface Specification, Version 1.0, S. Slavney, R. E. Arvidson, Washington University, August 11, 1993 for a definition of SFDUs and their structure.
The AEDR product will have SFDU labels and headers, as required by Mars Global Surveyor. These will be attached to the AEDR file which will contain one orbit of AEDRs.
Format files describing the record format of the AEDR data product shall be provided to the Planetary Data System. The format files are referenced by the AEDR data product label. The format files are MOLASCI.FMT and MOLAMNT.FMT . These files are provided in See Contents of the MOLASCI.FMT File and See Contents of the MOLAMNT.FMT File . Additionally, MOLASCI.FMT references the format files MOLASCFR.FMT and MOLASCCT.FMT to further describe the AEDR format. These files are provided in See Contents of the MOLASCFR.FMT File and See Contents of the MOLASCCT.FMT File .
The product will be formatted as a Standard Formatted Data Unit (SFDU). This means the AEDR data shall be wrapped in a series of labels (the SFDU Primary Label, the K-Header, and the I-class Label) describing the data and supplying required information to the Project Database. An orbit of AEDRs shall make up the data portion of the file. See AEDR Data Product Structure and Organization depicts the overall Product format. The sections below describe each label and the data records in detail. The labels were created using See SFOC0038-00-TBD-01 SFOC-2-CDB-Any-Catalog 2, Draft, February 6, 1990 and See MOLA-972-SP-92.213 MOLA CD-ROM Standard Product Archive Collection Software Interface Specification, Version 1.0, S. Slavney, R. E. Arvidson, Washington University, August 11, 1993 as guidelines. Label formats are provided in See .
The Primary SFDU Label, also known as the aggregation label, wraps and therefore, delimits the entire product. The Primary Label is 20 bytes long and shall have the following format for the AEDR Data Product. The start label is
is the delimiter value field, Total EOF Indicator Count (ASCII) |
The K-header is made up of a label and catalog data objects that are to be stored in the Mars Global Surveyor PDB. The start label has the following form:
After the label, shall be the catalog entries required by the Project. These shall be in the KEYWORD=VALUE format. The catalog entries (keywords) that are required by the Project are
Example catalog entries and their values are provided in See MOLA AEDR Data Product SFDU Labels and Catalog Header .
The catalog entries will be delimited by the K-header end label; it has the following form:
The I-class Label precedes the actual data in the SFDU. This label is also known as the data object label or the tertiary header. The I-class label is registered individually with the JPL Control Authority and bears a unique DDPID. The start label has the following format
is the delimiter value field, Total EOF Indicator Count (ASCII) |
The data is written sequentially. Each record will contain one packet of MOLA telemetry data--either science or maintenance mode and its corresponding CHDO header. The MOLA telemetry data is described in See DRSE007 Mars Observer Software Interface Specification MOLA Packet Data Record, September 16, 1991, Jet Propulsion Laboratory . This document also defines the CHDO header format. Byte 11 in each AEDR indicates the mode for the packet: 0 indicates normal science mode; 1, 2, or 3 indicate maintenance (diagnostic) mode. To date, values 4 and above have not been assigned. See AEDR Science Mode Packet Format and See AEDR Maintenance Mode Packet Format describe the record formats for the Aggregated Experiment Data Record (AEDR) MOLA Science Mode Packet and the Aggregated Experiment Data Record (AEDR) MOLA Maintenance Mode Packet. The tables define the record format to the bit level. The tables define the starting byte for each data element in the record. Refer to the AEDR data dictionaries in See AEDR File Science Mode Data Dictionary and See The AEDR Maintenance Mode Data Dictionary for detailed descriptions and formats of the data elements in each record.
Packet type (1 = status packet, 2 = memory dump, 3 = noise count) |
|||
ENTRY_NAME = "Aggregated Experiment Data Record File"
COMMENTS = "The first archived MOLA data product. The
experiment data records grouped by orbit. The Level 0 data product
consisting of all 14-second science and maintenance mode telemetry data
packets or EDRs collected in chronological order for a specific Mars
orbit to form the raw packet data file."
ALIAS = "AEDR File; MOLA Aggregated Packet Data File"
AUTHOR = "Abshire, Blair, Hancock, Hayne, and Northam"
FIELD_FORMAT = "One logical record per physical record
COMPOSITION = "AEDR + AEDR + ... + AEDR"
DATA_TYPE = "sequential access file"
ENTRY_NAME = "Aggregated Experiment Data Record"
COMMENTS = "The first archived MOLA data product logical
record. The experiment data record. The Level 0 data product logical
record; a 14-second science or maintenance mode telemetry data packet
or EDR. Packet Error Control is optional; it is not used for MOLA"
ALIAS = "AEDR; MOLA Raw Packet; Maintenance Mode EDR;
AUTHOR = "Abshire, Blair, Hancock, Hayne, and Northam"
COMPOSITION = "CHDO+P_SHDR+TIMCD+SOURCE_DATA+Packet Error
DATA_RATE = "once per 14-seconds"
COMMENTS = "The compressed header data object applied to the
packet by the Telemetry Input System (TIS); 150 bytes"
BINARY_VALUES = "1200-bit, unsigned"
DATA_RATE = "once per 14-seconds"
ENTRY_NAME = "Packet source header"
COMMENTS = "The primary source information header applied by
the Payload Data System (PDS) to the MOLA telemetry packet at the time
of creation of the packet prior to transfer frame creation."
ALIAS = "telemetry packet header, primary header"
AUTHOR = "Garvin, Hancock, Northam, and Jester"
BINARY_VALUES = "48-bit, unsigned"
COMPOSITION = " PKT_ID + SEQ_CTRL + PKT_LEN"
DATA_RATE = "once per 14-seconds"
COMMENTS = "Identifies the format and originating source of
BINARY_VALUES = "16-bit, unsigned"
COMPOSITION = " VERS_NUM + SPARE + FLAG + APPL_ID"
DATA_RATE = "once per 14-seconds"
COMMENTS = "These bits identify Version 1 as the Source
Packet structure. These bits shall be set to '000'."
DATA_RATE = "once per 14 seconds"
COMMENTS = "Reserved spare. This bit shall be set to '0'."
DATA_RATE = "once per 14 seconds"
COMMENTS = "This flag signals the presence or absence of a
Secondary Header data structure within the Source Packet. This bit
shall be set to '0' since no Secondary Header formatting standards
currently exist for Mars Global Surveyor."
ALIAS = "Secondary header flag"
DATA_RATE = "once per 14 seconds"
COMMENTS = "This field uniquely identifies the individual
application process within the spacecraft that created the Source
ALIAS = "Application Process ID"
FIELD_FORMAT = "11 bits (5 - 15)"
COMPOSITION = "ERR_STAT + INSTR_ID"
DATA_RATE = "once per 14 seconds"
ENTRY_NAME = "Error status bits (PDS)"
COMMENTS = "000 is the bit pattern for valid data, 011 for
fill packet data generated when a MOLA packet is incomplete."
DATA_RATE = "once per 14 seconds"
COMMENTS = "00100011 is the bit pattern for MOLA"
FIELD_FORMAT = "8 bits (8-15)"
DISCRETE_VALUES = {00100011 (35)}
DATA_RATE = "once per 14 seconds"
ENTRY_NAME = "Sequence control"
ALIAS = "Packet sequence control"
BINARY_VALUES = "16-bit, unsigned"
COMPOSITION = "SEG_FLAG + SEQ_CNT"
DATA_RATE = "once per 14-seconds"
ENTRY_NAME = "Segmentation Flag"
COMMENTS = "For Mars Global Surveyor segmentation shall not
occur. These bits shall be set to '11'."
DATA_RATE = "once per 14 seconds"
COMMENTS = "This field contains a straight sequential count
(modulo 16384) of each packet generated by the MOLA application process
on the spacecraft. The purpose of the field is to order this packet
with respect to other packets from the same application process. The
last four bits are the counter into the OTS array in the Parameter
ALIAS = "Source sequence count"
FIELD_FORMAT = "14 bits (2-15)"
DATA_RATE = "once per 14 seconds"
COMMENTS = "This field contains a sequential 16-bit binary
count 'C' of the length (in octets) of the data area structure that is
enclosed between the first bit of the Secondary Header and the last bit
of the packet (i.e., the last bit of the Source Data field). C = ((no.
BINARY_VALUES = "16-bit, unsigned, fixed-point"
DATA_RATE = "once per 14-seconds"
ENTRY_NAME = "MOLA System time code"
COMMENTS = "The MOLA system time is created from the 2 time
words input from the PDS time broadcast command. The MOLA time is
updated 7/8 of a second after reception of the time broadcast command
and 6/8 of a second after interpreting the time broadcast command with
S/C + 1 second to arrive at the correct time. B[0] is S/C time in
seconds * 224; B[1] is S/C time in seconds * 216; B[2] is S/C time in
seconds * 28; B[3] is S/C time in seconds"
BINARY_VALUES = "32 bit, unsigned"
DATA_RATE = "once per 14 seconds"
COMMENTS = "The hi-resolution timer reading taken during
interrupt handling routine triggered by the trailing edge of the first
10 Hz interrupt encountered during this packet."
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once per 14 seconds"
COMMENTS = "The source data field contains the measurement
information generated by the primary application process operating
within each source. The size of the field shall be an integral number
of octets. For MOLA the measurement information is generated by the
Laser Altimeter and the field size is 1080 bytes (8640 bits). The field
size includes the source primary header (48 bits) and the time code
words (40 bits). Both Maintenance Mode and Science Mode packets are
ALIAS = "Telemetry packet data, science mode data"
FIELD_FORMAT = N/A /* Formatted as described in the following
COMPOSITION = " 'PKT_TYPE + ENG_HSK_DAT + SEU_CNT + SW_VNUM +
FL_RAMTEST + SCI_DAT' or 'PKT_TYPE + ENG_HSK_DAT + SEU_CNT + SW_VNUM +
DATA_RATE = "once / 14 seconds"
COMMENTS = "Packet type identifier byte. Distinguishes
Science Mode packets from Maintenance Mode packets. Science Mode = 0.
Maintenance Mode = [1 = Status packet, 2 = memory dump, 3 = noise
count]. Values 4 - 255 are reserved for future modes. Modes 0, 1, 2 are
hard coded in the flight software. Mode 3 is the result of a code
patch. The packet type value should be patched when a code patch occurs
that affects that mode's packet content."
BINARY_VALUES = "unsigned, 8 bit"
DISCRETE_VALUES = {0, 1, 2, ..., 255}
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Engineering/Housekeeping data"
COMMENTS = "Analog monitor values; occur once per packet.
Used for instrument health and welfare assessment."
FIELD_FORMAT = N/A /* Formatted as follows */
COMPOSITION = "CM_TMP + CPU_TMP + PS_TMP + IO_TMP + AHS_TMP +
DADE_TMP + LED_TMP + OSC_TMP + SD_TEMP + DB_TMP + LOPP__TMP + LOUT_TMP
+ IF_TMP + RST_TMP + EB_TMP + LB_TMP + P28V_MN + RV_MN + P12V_MN +
P24V_MN + P5V_MN + N12V_MN + LTC_MN + N5V_MN + PSC_MN + HV_MON +
N12VC_MN + P12VC_MN + N5VC_MN + P5VC_MN"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Computer memory temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Computer CPU temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Power Supply temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Computer I/O temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "LASER array heat sink temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "LASER diode array drive electronics temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Optical Test Source (OTS) LED temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "100 MHz Oscillator temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Start detector temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Outside Detector Box temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "LASER Radiator opposite output port temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "LASER Radiator output port temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Interface Plate near 'hot foot' temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Radiation sheet transition temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Electronics Box top near S/C thermistor
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "LASER Box near 'hot foot' temperature"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "28 Volt monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Reference Voltage monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "+12 Volt voltage monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "24 Volt voltage monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "+5 Volt voltage monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "-12 Volt voltage monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "LASER / thermal current monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "-5 Volt voltage monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Power Supply current monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "High Voltage current monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "-12 Volt current monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "+12 Volt current monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "-5 Volt current monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "+5 Volt current monitor"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Current STATUS register value (SEU counter)"
COMMENTS = "Value read from STATUS register at end of packet
collection cycle. Read STATUS register and store lower 8 bits. MSnibble
ALIAS = "STATUS register at end of packet collection
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Software Version Number (4.4 bit format)"
COMMENTS = "4.4 bit format version number. Version number is
hard coded in software and is stored in packet at the end of the packet
collection cycle. Any software patches should include an update to this
value. Current flight version is 5.3 therefore, 53h is hard coded in
the Pack_it() routine of the Science Mode. Maintenance Mode version is
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Flag word (2 KB RAM block test)"
COMMENTS = "RAM block test flag word. Memory test results.
Bit representation of the results of the RAM write/read/verify block
test performed after a CPU reset (HOT or COLD start). MSB (#15)
represents the memory block from 7800h to 7FFFh; LSB (#0) from 0000h to
7FFh. 1 = error detected, 0 = block O.K. {jbb - A 0 represents a
validated block, while a 0 (1?) means that the program encountered an
invalid compare on at least one byte in that block area. B[0] is bits
15 - 8 of RAM test flag; B[1] is bits 7 - 0 of RAM test flag"
ALIAS = "RAM block test flag word"
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / 14 seconds"
NOTE = "At this point the format and data elements in the
ENTRY_NAME = "Science Mode Data"
COMMENTS = "The description of the Science Mode Data
(SCI_DAT) is included here. See the AEDR Maintenance Mode Data
Dictionary for a description of the Maintenance Mode telemetry data
COMPOSITION = "ST_FLAGS + SW_VAL + RECCMD_CNT + CMDERR_CNT +
XMIT_TH + RT_STAT + R_GATE + HSTART_VAL + VALCMD_CNT + MEM_DUMP +
CMD_ECHO + PKT_VAL + FRM_SHOT_DATA"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Status Flags (SFLAG1(16 bits),SFLAG2(16 bits))"
COMMENTS = "Values of SFLAG1 and SFLAG2 stored at packet
completion. Each flag represents four 4 bit words. B[0] = byte 0; B[1]
= byte 1; B[2] = byte 2; B[3] = byte 3. SFLAG1 = (B[0] * 256) + B[1];
SFLAG2 = (B[2] * 256) + B[3]. The meanings of the individual bit
settings is in Appendix A of the Flight Software's User's Guide"
ALIAS = "32 software status bits"
FIELD_NAME = "ST_FLG_1,ST_FLG_2"
FIELD_FORMAT = "eight 4 bit values"
BINARY_VALUES = "32 bit, unsigned"
COMPOSITION = "ST_FLG_1,ST_FLG_2"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Software validity checksum"
COMMENTS = "Checksum (end-around-carry, word adds) calculated
using start address and length from Parameter Table. One word
calculated using (CHKLEN/2)# of word end-around-carry additions start
at word # (CHKSTART/2). Note : CHKLEN and CHKSTART exist in the
parameter table and are BYTE length and BYTE address or offset. B[0] is
MSByte and B[1] is LSByte of software validity checksum."
BINARY_VALUES = "16 bits, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Received command count (modulo 8 bits)"
COMMENTS = "Number of commands received in the DMA buffer,
i.e., number separated by CMD_START bits set, never cleared, init = 0.
Number of CMD_START bits set in the commands received buffer. Only look
at the number of commands received during that RTI interval. Count
performed during RTI 4ms 'quiet time'. Counter starts at 0 from a
HOT/COLD start, counts up and rolls over from 0FFh to 00h."
ALIAS = "Number of commands received"
BINARY_VALUES = 8 bits, unsigned
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Command error count (modulo 8 bits)"
COMMENTS = "Number of invalid MOLA specific commands
received, never cleared, init = 0. Command errors counter works the
same way as Received command count (see above), except, this counts the
# of command errors, defined as TBD."
ALIAS = "Number of command errors encountered"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Transmitter threshold setting (XMITDA)"
COMMENTS = "Value of XMITDA from Parameter table, stored at
packet completion. LSB is equivalent to 1 mv. This byte reports the
value of XMITDA from PARAM_TABLE. It is stored in the packet at the end
of the packet collection cycle."
ALIAS = "Transmitter start detector threshold setting"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Range Tracking Status"
COMMENTS = "MSB = OTS_FIRE value, bits 7654321, 1 = TRACKING,
0 = ACQ. MSB (#7) is the LSB of OTS_FIRE from PARAM_TABLE, stored at
the end of the packet collection cycle. It is the value used to
determine the firing status of the OTS for the first shot of the packet
cycle. Bits 6-0 represent frames 7-1 tracking status. 0 means that the
software was in acquisition mode for that frame, while 1 represents
ALIAS = "Ranging status byte and OTS fire flag value"
BINARY_VALUES = "8 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Range gate tracker array (73.728 km)"
COMMENTS = "73.728 km, 48 HISTOGRAM bins starting at HSTART.
48 sequential bins of the ranging histogram, stored after the sixth
shot is collected, but before the ranging algorithm is executed on that
frame's data. HSTART, from PARAM_TABLE, with the LSB cleared is the
number of the first bin stored. Bins are represented as bytes, but they
are stored as words. Therefore, the bytes are swapped. HSTART
correction : HSTART = HSTART + 0xFFFE. The following denotes the range
of each bin for each data byte (B[x]). C = 1.536km.
B[ 0] : (HSTART + 1) * C; B[ 1] : (HSTART + 0) * C;
B[ 2] : (HSTART + 3) * C; B[ 3] : (HSTART + 2) * C;
B[ 4] : (HSTART + 5) * C; B[ 5] : (HSTART + 4) * C;
B[ 6] : (HSTART + 7) * C; B[ 7] : (HSTART + 6) * C;
B[ 8] : (HSTART + 9) * C; B[ 9] : (HSTART + 8) * C;
B[10] : (HSTART + 11) * C; B[11] : (HSTART + 10) * C;
B[12] : (HSTART + 13) * C; B[13] : (HSTART + 12) * C;
B[14] : (HSTART + 15) * C; B[15] : (HSTART + 14) * C;
B[16] : (HSTART + 17) * C; B[17] : (HSTART + 16) * C;
B[18] : (HSTART + 19) * C; B[19] : (HSTART + 18) * C;
B[20] : (HSTART + 21) * C; B[21] : (HSTART + 20) * C;
B[22] : (HSTART + 23) * C; B[23] : (HSTART + 22) * C;
B[24] : (HSTART + 25) * C; B[25] : (HSTART + 24) * C;
B[26] : (HSTART + 27) * C; B[27] : (HSTART + 26) * C;
B[28] : (HSTART + 29) * C; B[29] : (HSTART + 28) * C;
B[30] : (HSTART + 31) * C; B[31] : (HSTART + 30) * C;
B[32] : (HSTART + 33) * C; B[33] : (HSTART + 32) * C;
B[34] : (HSTART + 35) * C; B[35] : (HSTART + 34) * C;
B[36] : (HSTART + 37) * C; B[37] : (HSTART + 36) * C;
B[38] : (HSTART + 39) * C; B[39] : (HSTART + 38) * C;
B[40] : (HSTART + 41) * C; B[41] : (HSTART + 40) * C;
B[42] : (HSTART + 43) * C; B[43] : (HSTART + 42) * C;
B[44] : (HSTART + 45) * C; B[45] : (HSTART + 44) * C;
B[46] : (HSTART + 47) * C; B[47] : (HSTART + 46) * C"
FIELD_FORMAT = "48 1 byte bins"
BINARY_VALUES = "384 bits, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "HSTART value for HISTOGRAM dump"
COMMENTS = "Value of HSTART from Parameter table, stored at
packet completion. Stored at the end of the packet collection cycle.
HSTART is used to store the Histogram dump bins on the previous frame
(2 seconds earlier). HSTART is right shifted one bit and used as a word
pointer, therefore, its LSB is cleared. B[0] = MSByte of HSTART; B[1] =
BINARY_VALUES = "16 bits, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Valid commands received count (modulo 16 bits)"
COMMENTS = "Number of Time broadcast and Parameter update and
channel on/off commands executed, never cleared, init. = 0. This is a
16 bit counter that starts at 0 after a CPU reset and rolls over from
0FFFFh to 0. Valid MOLA specific commands are defined as Channel ON/OFF
commands and Parameter Update command (irregardless of parameter offset
validity - invalid offsets are flagged and counted as Subcommand
errors). All other MOLA specific commands are either flagged as errors
or cause a mode change or CPU reset. B[0] = MSByte and B[1] = LSByte of
ALIAS = "# valid MOLA specific commands"
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Memory dump segment"
COMMENTS = "16 bytes read from memory space starting at
((SEQUENCE & 0x3FFh)*16), dumps 0 - 3FFFh then starts again at 0. Using
the lower 11 bits of the SEQUENCE count, stored in this packet,
multiplied by 16 as the starting byte address, 8 words are read from
RAM and stored in the packet. The following denotes the memory address
at each data byte (B[x]). C = ((SEQUENCE & 0x3FFF) *16).
B[ 0] : C+ 1; B[ 1] : C+ 0; B[ 2] : C+ 3; B[ 3] : C+ 2;
B[ 4] : C+ 5; B[ 5] : C+ 4; B[ 6] : C+ 7; B[ 7] : C+ 6;
B[ 8] : C+ 9; B[ 9] : C+ 8; B[10] : C+11; B[11] : C+10;
B[12] : C+13; B[13] : C+12; B[14] : C+15; B[15] : C+14"
FIELD_FORMAT = "16 1 byte values"
BINARY_VALUES = "128 bits, unsigned"
DATA_RATE = "once / 14 seconds"
COMMENTS = "First 8 command words received during current
packet, only complete commands are stored, MOLA specific commands only.
The software attempts to echo all valid commands. If the command will
fit in the room remaining in the buffer, then it is stored and that
much room is removed from that which remains in the echo buffer. If a
command will not fit, then a buffer overflow is flagged, but subsequent
commands that will fit are still stored in the buffer. B[0]: MSB of
command word (CW) #1;B[1]: LSB of CW#1;B[2]: MSB of CW#2;B[3]: LSB of
CW#2;B[4]: MSB of CW#3;B[5]: LSB of CW#3; B[6]: MSB of CW#4;B[7]: LSB
of CW#4;B[8]: MSB of CW#5;B[9]: LSB of CW#5;B[10]: MSB of CW#6;B[11]:
LSB of CW#6;B[12]: MSB of CW#7; B[13]: LSB of CW#7;B[14]: MSB of
CW#8;B[15]: LSB of CW#8. NOTE: The command echo buffer is filled with
zeros at the start of each packet."
BINARY_VALUES = "128 bits, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Packet validity checksum"
COMMENTS = "Simple 16 bit addition of entire packet contents
upon completion. This location is zeroed for addition. This word is
zeroed, then words 0-539 are added without carry to a variable that is
initially zero. The resulting lower 16 bits are stored in this
location. To verify, read, store, and clear this location. Then, word
add without carry these 540 words and compare the lower 16 bits with
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / 14 seconds"
ENTRY_NAME = "Frame /Shot data"
COMMENTS = "For each of 7 frames, the good laser data out of
FIELD_FORMAT = "N/A" /* Formatted as described below */
COMPOSITION = "RANGING_CNT + CH_1_RE + CH_2_RE + LZ_XMT + MF_ID
+ TIU_URB + RC_MSK + AS_HCT + CH_1_TS + CH_2_TS + CH_3_TS + CH_4_TS +
R_DELAY + R_WIDTH + AS_MHT + SWSTAT + CH_1_BC + CH_2_BC + CH_3_BC +
DATA_RATE = "once per two seconds"
ENTRY_NAME = "Range to surface"
COMMENTS = "The possible 20 valid frame laser shots surface
ranging measurements in Timing Interval Unit (TIU) counts. The least
significant 16 bits of TIU (LSTIU), stored for every shot. B[0] = Bits
15 - 8 of TIU reading; B[1] = Bits 7 - 0 of TIU reading"
ALIAS = "Lower 16 bits of TIU"
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "10 shots per second"
ENTRY_NAME = "1st channel received pulse energy"
COMMENTS = "The level of return, reflected energy as received
by the first channel and matched filter to trigger. This is a set of
values for all possible 20 shots within the frame. Lowest numbered
non-zero energy reading for each shot."
ALIAS = "Return energy in first triggered channel, First
FIELD_FORMAT = "20 1 byte values"
BINARY_VALUES = "8 bit, unsigned"
ENTRY_NAME = "Channel Number / Pulse Width of Return Energy"
COMMENTS = "The channel triggered by the return energy; bits
7,6 = channel number - 1. The pulse width of the returned shot; Bit 5 -
FIELD_FORMAT = "20 1 byte values"
BINARY_VALUES = "8 bit, unsigned, fixed point"
ENTRY_NAME = "LASER transmitter power"
COMMENTS = "Transmitted laser pulse energy level. This is a
set of values for all 20 shots within the frame. Energy reading for
LASER transmit power for each shot."
ALIAS = "Laser transmit power, laser shot power level,
FIELD_FORMAT = "20 1 byte values"
BINARY_VALUES = "8 bit, unsigned, fixed point"
COMMENTS = "The start and stop encoder bits for each shot.
Applied to range to surface counts to get a more precise range value. A
set of 20 half-byte values, one for each laser shot. Each byte contains
values for an odd and an even numbered shot. Per byte = Bit 7 - 6 -
encoder stop bits for odd shots; Bit 5 - 4 - encoder start bits for odd
shots; Bit 3 - 2 - encoder stop bits for even shots; Bit 1 - 0 -
encoder start bits for even shots. Odd numbered SHOTs order - 3,1, 7,
5,11, 9, 15, 13, 19, 17; Even numbered SHOTs order - 4, 2, 8, 6, 12,
FIELD_FORMAT = "20 0.5 byte values"
BINARY_VALUES = "4-bit, unsigned, fixed-point"
ENTRY_NAME = "TIU upper range bits"
COMMENTS = "The upper 3 or 3 highest ordered bits of the MOLA
time interval unit (TIU). Only the largest MSTIU value read in current
frame is saved. Only bits 6, 5, 4 are used. With Receiver channel mask
status (bits 3-0) below forms one byte. Will be either the values 3 or
ALIAS = "Most significant portion of the range to surface
FIELD_FORMAT = "7 0.5 byte values"
BINARY_VALUES = "4-bit, unsigned"
DATA_RATE = "once per 2 seconds; 7 per packet"
ENTRY_NAME = "Receiver channel mask status"
COMMENTS = "The altimeter channel mask settings from the
flight parameter table at the time of acquisition and storage of the
TIU upper range bits. The mask indicates if the channel filter is
active or is masked out to prevent triggering the TIU. Least
significant 4 bits of ALTSET from Parameter table; stored at same time
as largest MSTIU. The value sent to ALTMOD in Altimeter Electronics.
With TIU upper range bits above forms one byte. Bit 3 = Channel 1; Bit
2 = Channel 2; Bit 1 = Channel 3; Bit 0 = Channel 4. 1 = channel on, 0
ALIAS = "ALTMOD; parameter table channels enabled,
Receiver channel mask status bits"
FIELD_FORMAT = "7 0.5 bytes per packet"
BINARY_VALUES = "4-bit, unsigned"
DATA_RATE = "once per 2 seconds"
ENTRY_NAME = "Algorithm status (HIT_COUNT)"
COMMENTS = "Current value from the active data frame showing
the number of hits counted in the possible 20 shot hits in the single
frame or the number of hits summed over the possible 100 shots when in
the 5 frame mode. This is an indicator of the performance of the
tracking algorithm. If in the acquisition mode, this field will contain
the number of shot hits from a possible 80 shots within the 4 frame
acquisition window. HIT_CNT from previous frame."
ALIAS = "Tracking algorithm hit count status"
FIELD_FORMAT = "7 1 byte values"
BINARY_VALUES = "8-bit, unsigned"
RANGE = "0:20 or :80(tracking) or :80(acquisition)"
DATA_RATE = "once per 2 seconds"
ENTRY_NAME = "Channel half-frame threshold settings"
COMMENTS = "The active channel threshold settings in the
current frame. The settings of the 4 channel thresholds are sampled for
the first 10 shots in the frame, and again for the final 10 frame
shots. Value of CH(1,2,3,4) TH during a half-frame of current frame."
ALIAS = "Receiver threshold settings"
FIELD_NAME = "CH_1_TS,CH_2_TS,CH_3_TS,CH_4_TS"
FIELD_FORMAT = "8 1 byte values per frame (56 per packet)"
BINARY_VALUES = "8-bit, fixed point, unsigned"
COMPOSITION = "CH_1_TS,CH_2_TS,CH_3_TS,CH_4_TS"
DATA_RATE = "0nce per second (for each channel)"
COMMENTS = "Current frame range gate delay value (DELAY) as
set from the previous data frame. B[0] : Bits 3 - 0 are bits 11 - 8 and
B[1] : LSByte (bits 0-7) of the 12 bit Range Delay setting for this
BINARY_VALUES = "16-bit, unsigned, fixed point"
DATA_RATE = "once per 2 seconds"
COMMENTS = "Current frame range gate window or width; set at
end of the previous data frame. B[0] : Bits 3 - 0 are bits 11 - 8 and
B[1] : LSByte of the 12 bit Range Gate Window setting for this frame."
BINARY_VALUES = "16-bit, unsigned, fixed-point"
DATA_RATE = "once per 2 seconds"
ENTRY_NAME = "Algorithm status (MIN_HITS)"
COMMENTS = "The minimum shot hit count value required for a
matched filter channel to trigger; MIN_HITS value set in algorithm from
BINARY_VALUES = "8-bit, signed, fixed-point"
DATA_RATE = "once per 2 seconds"
ENTRY_NAME = "Software status (frame counter, trigger channel)"
COMMENTS = "Two of values reflecting the operation of the
flight software tracking algorithm. The frame counter value and the
first channel triggering at or above the minimum hit count are set from
the previous data frame tracking algorithm operation. Frame counter
(Frame_ctr) value from previous frame's tracking algorithm is in MS 4
bits; MIN_HITS trigger channel from previous frame is in LS 4 bits."
BINARY_VALUES = "8-bit, unsigned", fixed-point
COMPOSITION = "FRM_CTR + SS_MHT"
DATA_RATE = "once per 2 seconds"
COMMENTS = "The frame counter value is set from the previous
data frame tracking algorithm operation. Frame counter (Frame_ctr)
value from previous frame's tracking algorithm is in MS 4 bits (7 - 4)
of Software status. Bits 7 - 4 are bits 3 - 0 of frame counter."
BINARY_VALUES = "4-bit, unsigned, fixed-point"
DISCRETE_VALUES = {1,2,3,4,5,6,7}
DATA_RATE = "once per 2 seconds"
ENTRY_NAME = "Trigger channel"
COMMENTS = "The first channel triggering at or above the
minimum hit count is set from the previous data frame tracking
algorithm operation. MIN_HITS trigger channel from previous frame is in
LS 4 bits (0 - 3) of Software status. Bit 0 = Channel 1; Bit 1 =
Channel 2; Bit 2 = Channel 3; Bit 3 = Channel 4"
BINARY_VALUES = "4-bit, unsigned, fixed-point"
DATA_RATE = "once per 2 seconds"
ENTRY_NAME = "Channel background count"
COMMENTS = "The background energy or noise count levels in
channels 1, 2, 3, and 4 respectively by half-frame. Pseudo log value of
NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit
format. Plog base 2 of background count summed over 1st 10 shots / 2nd
ALIAS = "channel background noise levels, channel
FIELD_NAME = CH_1_BC,CH_2_BC,CH_3_BC,CH_4_BC
FIELD_FORMAT = "8 1 byte values"
BINARY_VALUES = "8-bit, unsigned, fixed-point"
COMPOSITION = "CH_1_BC,CH_2_BC,CH_3_BC,CH_4_BC"
DATA_RATE = "once per second (for each channel)"
REFERENCE = "MOLA Data Packet Description"
REF_AUTHOR = "James N. Caldwell"
REFERENCE = "Experiment Data Record (EDR) MOLA Science
REF_AUTHOR = "E. Thomas Northam"
REFERENCE = "MOLA Packet Data Dictionary"
REFERENCE = "Mars Observer Spacecraft Data Standards"
REF_AUTHOR = "Kerry D. Erikson"
Note: See See AEDR File Science Mode Data Dictionary , the AEDR Science Mode Data Dictionary for the description of Maintenance Mode Data Elements that occur prior to those listed here. The definition of the data elements in all packet types is the same until this point.
ENTRY_NAME = "Maintenance Mode Data"
COMMENTS = "Describes the contents and format of the maintenance mode data. For maintenance mode status packets (packet type = 1), the contents of the record will be filler data starting at byte 214 to the end of the record. For maintenance mode memory dumps (packet type = 2), the entire record will be filled with valid data. For maintenance mode noise count data (packet type = 3), the entire record will be filled with valid data."
COMPOSITION = "PARMUP_CC + MEMLOADS_CC + MEMDUMPS_CC + CMD_ERR + STAT_FLAG + SCMD_ERR + CMD_REC + CMD_ECHO + MSTART_ADD + MEMDUMP_LEN + MEMDUMP_SEG + P_CHECK"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
ENTRY_NAME = "Command count (parameter updates)"
COMMENTS = "Valid data for packet types 1, 2, and 3."
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
ENTRY_NAME = "Command count (memory loads)"
COMMENTS = "Valid data for packet types 1, 2, and 3."
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
ENTRY_NAME = "Command count (memory dumps)"
COMMENTS = "Valid data for packet types 1, 2, and 3."
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
COMMENTS = "Valid data for packet types 1, 2, and 3."
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
COMMENTS = "Valid data for packet types 1, 2, and 3."
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
ENTRY_NAME = "Sub-command errors"
COMMENTS = "Valid data for packet types 1, 2, and 3."
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
ENTRY_NAME = "Commands received"
COMMENTS = "Valid data for packet types 1, 2, and 3."
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
COMMENTS = "Valid data for packet types 1, 2, and 3."
BINARY_VALUES = "1232 bit, unsigned"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
ENTRY_NAME = "Memory dump start address"
COMMENTS = "Valid data for packet type 2. Filler data for packet type 1. Noise count data for packet type 3."
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
ENTRY_NAME = "Memory dump length"
COMMENTS = "Valid data for packet type 2. Filler data for packet type 1. Noise count data for packet type 3."
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
ENTRY_NAME = "Memory dump segment"
COMMENTS = "Valid data for packet type 2. Filler data for packet type 1. Noise count data for packet type 3."
BINARY_VALUES = "6880 bits, unsigned"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
ENTRY_NAME = "Packet checksum"
COMMENTS = "Valid data for packet type 1, 2, and 3."
BINARY_VALUES = "16 bit, unsigned"
DATA_RATE = "once / maintenance mode packet (14 secs.)"
REFERENCE = "MOLA Data Packet Description"
REF_AUTHOR = "James N. Caldwell"
REFERENCE = "Experiment Data Record (EDR) MOLA Science Telemetry Packet Spreadsheet"
REF_AUTHOR = "E. Thomas Northam"
REFERENCE = "MOLA Packet Data Dictionary"
REFERENCE = "Mars Observer Spacecraft Data Standards"
CCSD3ZF0000100000001NJPL3KS0PDSX$$INFO$$
^MOLA_MAINTENANCE_MODE_TABLE = 5
DATA_SET_ID = 'MGS-M-MOLA-1-AEDR-L0-V1.0'
PRODUCT_ID = 'MOLA-AA00003F.B'
SPACECRAFT_NAME = 'MARS_GLOBAL_SURVEYOR'
INSTRUMENT_NAME = 'MARS_ORBITER_LASER_ALTIMETER'
SOFTWARE_NAME = 'BROWSER 17.1'
PRODUCT_RELEASE_DATE = 1997-258
START_TIME = 1997-212T19:10:00.000
STOP_TIME = 1997-212T19:45:00.000
SPACECRAFT_CLOCK_START_COUNT = 443588190.140
SPACECRAFT_CLOCK_STOP_COUNT = 443595246.140
PRODUCT_CREATION_TIME = 1997-258T22:45:00.000
NATIVE_START_TIME = -187606958.86449
NATIVE_STOP_TIME = -187599902.86499
MISSION_PHASE_NAME = 'ORBIT INSERTION'
PRODUCER_FULL_NAME = 'DAVID E. SMITH'
PRODUCER_INSTITUTION_NAME = 'GODDARD SPACE FLIGHT CENTER'
DESCRIPTION = "This data product contains the aggregation of
MOLA telemetry packets by orbit. All Experiment Data Record packets
retrieved from the PDB are collected in this data product. The AEDR
data product is put together with the Project-provided software tool
OBJECT = MOLA_SCIENCE_MODE_TABLE
DESCRIPTION = "This table is one of two that describe the
arrangement of information on the Mars Orbiter Laser Altimeter (MOLA)
Aggregated Engineering Data Record (AEDR). These Experiment Data
Records (EDRs) are produced during the science and maintenance modes of
instrument operation. Consequently, there are two record formats
possible within the AEDR file. The MOLA_SCIENCE_MODE_TABLE describes
the format of the data taken in the Science mode. The
MOLA_MAINTENANCE_MODE_TABLE describes the format of the data taken in
the Maintenance mode. The data are written sequentially. Each record
will contain one packet of MOLA telemetry data. Each record contains an
indicator of its packet type (e.g. science, maintenance, memory dump)
in byte 11 of the file. It is by interpreting this indicator that the
user will know which table to apply to the data. For fuller description
of the values associated with this indicator, please see the column
labeled PACKET_TYPE, associated with this table. The number of columns
indicated above in the table definitions refers to the number of column
objects described in this label. The number of actual columns in the
entire data record, when each set of descriptors is multiplied by each
END_OBJECT = MOLA_SCIENCE_MODE_TABLE
OBJECT = MOLA_MAINTENANCE_MODE_TABLE
DESCRIPTION = "This table is one of two that describe the
arrangement of information on the Mars Orbiter Laser Altimeter (MOLA)
Aggregated Engineering Data Record (AEDR). These Experiment Data
Records (EDRs) are produced during the science and maintenance modes of
instrument operation. Consequently, there are two record formats
possible within the AEDR file. The MOLA_SCIENCE_MODE_TABLE describes
the format of the data taken in the Science mode. The
MOLA_MAINTENANCE_MODE_TABLE describes the format of the data taken in
the Maintenance mode. The data are written sequentially. Each record
will contain one packet of MOLA telemetry data. Each record contains an
indicator of its packet type (e.g. science, maintenance, memory dump)
in byte 11 of the file. It is by interpreting this indicator that the
user will know which table to apply to the data. For fuller description
of the values associated with this indicator, please see the column
labeled PACKET_TYPE, associated with this table."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Packet_chdo is the compressed header data object attached to the MOLA telemetry packet by TIS."
DESCRIPTION = "Packet_id constitutes one of three parts in the primary source information header applied by the Payload Data System (PDS) to the MOLA telemetry packet at the time of creation of the packet prior to transfer frame creation."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "These bits identify Version 1 as the Source Packet structure. These bits shall be set to '000'."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Reserved spare. This bit shall be set to '0'"
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "This flag signals the presence or absence of a Secondary Header data structure within the Source Packet. This bit shall be set to '0' since no Secondary Header formatting standards currently exist for Mars Global Surveyor."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "This field identifies in part the individual application process within the spacecraft that created the Source Packet data."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "This field identifies in part the individual application process within the spacecraft that created the Source Packet data. 00100011 is the bit pattern for MOLA."
DESCRIPTION = "Sequence_control constitutes one of three parts in the primary source information header applied by the Payload Data System (PDS) to the MOLA telemetry packet at the time of creation of the packet prior to transfer frame creation."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "For Mars Global Surveyor segmentation shall not occur. These bits shall be set to '11'."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "This field contains a straight sequential count (modulo 16384) of each packet generated by the MOLA application process on the spacecraft. The purpose of the field is to order this packet with respect to other packets from the same application process. The OTS counter is contained in the lower 4 bits."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Packet_length constitutes one of three parts in the primary source information header applied by the Payload Data System (PDS) to the MOLA telemetry packet at the time of creation of the packet prior to transfer frame creation. This field contains a sequential 16-bit binary count 'C' of the length (in octets) of the data area structure that is enclosed between the first bit of the Secondary Header and the last bit of the packet (i.e., the last bit of the Source Data field). C = ((no. of octets) - 1)."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The MOLA system time is created from the 2 time words input from the PDS time broadcast command. The MOLA time is updated 7/8 of a second after reception of the time broadcast command and 6/8 of a second after interpreting the time broadcast with S/C + 1 second to arrive at the correct time. B[0] is S/C time in seconds * 2**24; B[1] is S/C time in seconds * 2**16; B[2] is S/C time in seconds * 2**8; B[3] is S/C time in seconds."
DESCRIPTION = "Fine_time is the high-resolution timer reading taken during interrupt handling routine triggered by the trailing edge of the first 10 Hz interrupt encountered during this packet."
DESCRIPTION = "Packet type identifier byte. Distinguishes Science Mode packets from Maintenance Mode packets. Science Mode = 0; Maintenance Mode = [1 = Status packet, 2 = memory dump, 3 = noise count data]. Values 4 - 255 are reserved for future modes. Modes 0, 1, 2 are hard coded in the flight software. Mode 3 is patched in when the noise count patch is uploaded to the spacecraft. The packet type value should be patched when a code patch occurs that affects that mode's packet content."
NAME = COMPUTER_MEMORY_TEMPERATURE
NAME = COMPUTER_CPU_TEMPERATURE
NAME = POWER_SUPPLY_TEMPERATURE
NAME = 'COMPUTER_I/O_TEMPERATURE'
NAME = LASER_ARRAY_HEAT_SINK_TEMP
NAME = DIODE_ARRAY_DRIVE_ELECS_TEMP
NAME = OPTICAL_TEST_SOURCE_LED_TEMP
NAME = HUNDRED_MHZ_OSCILLATOR_TEMP
NAME = START_DETECTOR_TEMPERATURE
NAME = OUTSIDE_DETECTOR_BOX_TEMP
NAME = LASR_RADIATR_OPP_OPT_PORT_TEMP
NAME = LSER_RADIATOR_OUTPUT_PORT_TEMP
NAME = INTERFACE_PLATE_HOT_FOOT_TEMP
NAME = RADIATION_SHEET_TRNSITION_TEMP
NAME = ELECTRONICS_BOX_TOP_SC_THRMSTR
NAME = LASER_BOX_HOT_FOOT_TEMP
NAME = PLUS_28_VOLT_VOLTAGE_MONITOR
NAME = REFERENCE_VOLTAGE_MONITOR
NAME = PLUS_12_VOLT_VOLTAGE_MONITOR
NAME = PLUS_24_VOLT_VOLTAGE_MONITOR
NAME = PLUS_5_VOLT_VOLTAGE_MONITOR
NAME = MINUS_12_VOLT_VOLTAGE_MONITOR
NAME = LASER_THERMAL_CURRENT_MONITOR
NAME = MINUS_5_VOLT_VOLTAGE_MONITOR
NAME = POWER_SUPPLY_CURRENT_MONITOR
NAME = HIGH_VOLTAGE_CURRENT_MONITOR
NAME = MINUS_12_VOLT_CURRENT_MONITOR
NAME = PLUS_12_VOLT_CURRENT_MONITOR
NAME = MINUS_5_VOLT_CURRENT_MONITOR
NAME = PLUS_5_VOLT_CURRENT_MONITOR
NAME = CURRENT_STATUS_REGISTER_VALUE
DESCRIPTION = "Value read from STATUS register at end of packet collection cycle. Read STATUS register and store lower 8 bits. MSnibble = SEU counter value"
NAME = SOFTWARE_VERSION_NUMBER
DESCRIPTION = "4.4 bit format version number. Version number is hard coded in software and is stored in packet at the end of the packet collection cycle. Any software patches should include an update to this value. Current flight version is 5.3 therefore, 53h is hard coded in the Pack_it() routine of the Science Mode. Maintenance Mode version is 6.2 therefore 62h is coded."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "RAM block test flag word. Memory test results. Bit representation of the results of the RAM write/read/verify block test performed after a CPU reset (HOT or COLD start). MSB (#15) represents the memory block from 7800h to 7FFFh; LSB (#0) from 0000h to 7FFh. 1 = error detected, 0 = block O.K. 0 represents a validated block, while a 1 means that the program encountered an invalid compare on at least one byte in that block area. B[0] is bits 15 - 8 of RAM test flag; B[1] is bits 7 - 0 of RAM test flag"
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Values of SFLAG1 and SFLAG2 stored at packet completion. Each flag represents four 4 bit words. B[0] = byte 0; B[1] = byte 1; B[2] = byte 2; B[3] = byte 3. SFLAG1 = (B[0] * 256) + B[1]; SFLAG2 = (B[2] * 256) + B[3]. The meanings of the individual bit settings are in Appendix A of the MOLA Flight Software Users' Guide."
NAME = SOFTWARE_VALIDITY_CHECKSUM
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Checksum (end-around-carry, word adds) calculated using start address and length from Parameter Table. One word calculated using (CHKLEN/2)# of word end-around-carry additions start at word # (CHKSTART/2). Note : CHKLEN and CHKSTART exist in the parameter table and are BYTE length and BYTE address or offset. B[0] is MSByte and B[1] is LSByte of software validity checksum."
DESCRIPTION = "Number of commands received in the DMA buffer, i.e., number separated by CMD_START bits set, never cleared, init = 0. Number of CMD_START bits set in the commands received buffer. Only look at the number of commands received during that RTI interval. Count performed during RTI 4ms 'quiet time'. Counter starts at 0 from a HOT/COLD start, counts up and rolls over from 0FFh to 00h."
DESCRIPTION = "Number of invalid MOLA specific commands received, never cleared, init = 0. Command errors counter works the same way as Received command count (see above), except, this counts the # of command errors, defined as TBD."
NAME = TRANSMITTER_THRESHOLD_SETTING
DESCRIPTION = "Value of XMITDA from Parameter table, stored at packet completion. LSB is equivalent to 1 mv. This byte reports the value of XMITDA from PARAM_TABLE. It is stored in the packet at the end of the packet collection cycle."
DESCRIPTION = "MSB = OTS_FIRE value, bits 7654321, 1 = TRACKING, 0 = ACQ. MSB (#7) is the LSB of OTS_FIRE from PARAM_TABLE, stored at the end of the packet collection cycle. It is the value used to determine the firing status of the OTS for the first shot of the packet cycle. Bits 6-0 represent frames 7-1 tracking status. 0 means that the software was in acquisition mode for that frame, while 1 represents tracking mode."
NAME = RANGE_GATE_TRACKER_ARRAY
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "73.728 km, 48 HISTOGRAM bins starting at HSTART. 48 sequential bins of the ranging histogram, stored after the sixth shot is collected, but before the ranging algorithm is executed on that frame's data. HSTART, from PARAM_TABLE, with the LSB cleared is the number of the first bin stored. Bins are represented as bytes, but they are stored as words. Therefore, the bytes are swapped. HSTART correction : HSTART = HSTART + 0xFFFE. The following denotes the range of each bin for each data byte (B[x]). C = 1.536km.
B[0] : (HSTART + 1) * C; B[1] : (HSTART + 0) * C;
B[2] : (HSTART + 3) * C; B[3] : (HSTART + 2) * C;
B[4] : (HSTART + 5) * C; B[5] : (HSTART + 4) * C;
B[6] : (HSTART + 7) * C; B[7] : (HSTART + 6) * C;
B[8] : (HSTART + 9) * C; B[9] : (HSTART + 8) * C;
B[10] : (HSTART + 11) * C; B[11] : (HSTART + 10) * C;
B[12] : (HSTART + 13) * C; B[13] : (HSTART + 12) * C;
B[14] : (HSTART + 15) * C; B[15] : (HSTART + 14) * C;
B[16] : (HSTART + 17) * C; B[17] : (HSTART + 16) * C;
B[18] : (HSTART + 19) * C; B[19] : (HSTART + 18) * C;
B[20] : (HSTART + 21) * C; B[21] : (HSTART + 20) * C;
B[22] : (HSTART + 23) * C; B[23] : (HSTART + 22) * C;
B[24] : (HSTART + 25) * C; B[25] : (HSTART + 24) * C;
B[26] : (HSTART + 27) * C; B[27] : (HSTART + 26) * C;
B[28] : (HSTART + 29) * C; B[29] : (HSTART + 28) * C;
B[30] : (HSTART + 31) * C; B[31] : (HSTART + 30) * C;
B[32] : (HSTART + 33) * C; B[33] : (HSTART + 32) * C;
B[34] : (HSTART + 35) * C; B[35] : (HSTART + 34) * C;
B[36] : (HSTART + 37) * C; B[37] : (HSTART + 36) * C;
B[38] : (HSTART + 39) * C; B[39] : (HSTART + 38) * C;
B[40] : (HSTART + 41) * C; B[41] : (HSTART + 40) * C;
B[42] : (HSTART + 43) * C; B[43] : (HSTART + 42) * C;
B[44] : (HSTART + 45) * C; B[45] : (HSTART + 44) * C;
B[46] : (HSTART + 47) * C; B[47] : (HSTART + 46) * C"
NAME = HSTART_VALUE_HISTOGRAM_DUMP
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Value of HSTART from Parameter table, stored at packet completion. Stored at the end of the packet collection cycle. HSTART is used to store the Histogram dump bins on the previous frame (2 seconds earlier). HSTART is right shifted one bit and used as a word pointer, therefore, its LSB is cleared. B[0] = MSByte of HSTART; B[1] = LSByte of HSTART"
NAME = VALID_COMMANDS_RECEIVED_COUNT
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Number of Time broadcast and Parameter update and channel on/off commands executed, never cleared, init. = 0. This is a 16 bit counter that starts at 0 after a CPU reset and rolls over from 0FFFFh to 0. Valid MOLA specific commands are defined as Channel ON/OFF commands and Parameter Update command (irregardless of parameter offset validity - invalid offsets are flagged and counted as Subcommand errors). All other MOLA specific commands are either flagged as errors or cause a mode change or CPU reset. B[0] = MSByte and B[1] = LSByte of valid cmd counter"
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "16 bytes read from memory space starting at ((SEQUENCE & 0x3FFh)*16), dumps 0 - 3FFFh then starts again at 0. Using the lower 11 bits of the SEQUENCE count, stored in this packet, multiplied by 16 as the starting byte address, 8 words are read from RAM and stored in the packet. The following denotes the memory address at each data byte (B[x]). C = ((SEQUENCE & 0x3FFF) *16).
B[ 0] : C + 1; B[ 1] : C + 0; B[ 2] : C + 3; B[ 3] : C + 2;
B[ 4] : C + 5; B[ 5] : C + 4; B[ 6] : C + 7; B[ 7] : C + 6;
B[ 8] : C + 9; B[ 9] : C + 8; B[10] : C + 11; B[11] : C + 10;
B[12] : C + 13; B[13] : C + 12; B[14] : C + 15; B[15] : C + 14"
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "First 8 command words received during current packet, only complete commands are stored, MOLA specific commands only. The software attempts to echo all valid commands. If the command will fit in the room remaining in the buffer, then it is stored and that much room is removed from that which remains in the echo buffer. If a command will not fit, then a buffer overflow is flagged, but subsequent commands that will fit are still stored in the buffer.
B[ 0] : MSB of command word (CW) #1;
B[ 1] : LSB of CW#1; B[ 2] : MSB of CW#2; B[ 3] : LSB of CW#2;
B[ 4] : MSB of CW#3; B[ 5] : LSB of CW#3; B[ 6] : MSB of CW#4;
B[ 7] : LSB of CW#4; B[ 8] : MSB of CW#5; B[ 9] : LSB of CW#5;
B[10] : MSB of CW#6; B[11] : LSB of CW#6; B[12] : MSB of CW#7;
B[13] : LSB of CW#7; B[14] : MSB of CW#8; B[15] : LSB of CW#8.
NOTE: The command echo buffer is filled with zeros at the start of each packet."
NAME = PACKET_VALIDITY_CHECKSUM
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Simple 16 bit addition of entire packet contents upon completion. This location is zeroed for addition. This word is zeroed, then words 0-539 are added without carry to a variable that is initially zero. The resulting lower 16 bits are stored in this location. To verify, read, store, and clear this location. Then, word add without carry these 540 words and compare the lower 16 bits with the stored value."
DESCRIPTION = "The MOLA data described on a per frame basis; there are 7 frames in a packet; 20 laser shots per frame."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Packet_chdo is the compressed header data object attached to the MOLA telemetry packet by TIS."
DESCRIPTION = "Packet_id constitutes one of three parts in the primary source information header applied by the Payload Data System (PDS) to the MOLA telemetry packet at the time of creation of the packet prior to transfer frame creation."
BIT_DATA_TYPE = UNSIGNED_INTEGER
DESCRIPTION = "These bits identify Version 1 as the Source Packet structure. These bits shall be set to '000'."
BIT_DATA_TYPE = UNSIGNED_INTEGER
DESCRIPTION = "Reserved spare. This bit shall be set to '0'"
BIT_DATA_TYPE = UNSIGNED_INTEGER
DESCRIPTION = "This flag signals the presence or absence of a Secondary Header data structure within the Source Packet. This bit shall be set to '0' since no Secondary Header formatting standards currently exist for Mars Global Surveyor."
BIT_DATA_TYPE = UNSIGNED_INTEGER
DESCRIPTION = "This field identifies in part the individual application process within the spacecraft that created the Source Packet data."
BIT_DATA_TYPE = UNSIGNED_INTEGER
DESCRIPTION = "This field identifies in part the individual application process within the spacecraft that created the Source Packet data. 00100011 is the bit pattern for MOLA."
DESCRIPTION = "Sequence_control constitutes one of three parts in the primary source information header applied by the Payload Data System (PDS) to the MOLA telemetry packet at the time of creation of the packet prior to transfer frame creation."
BIT_DATA_TYPE = UNSIGNED_INTEGER
DESCRIPTION = "For Mars Global Surveyor segmentation shall not occur. These bits shall be set to '11'."
BIT_DATA_TYPE = UNSIGNED_INTEGER
DESCRIPTION = "This field contains a straight sequential count (modulo 16384) of each packet generated by the MOLA application process on the spacecraft. The purpose of the field is to order this packet with respect to other packets from the same application process. -- The OTS counter --."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Packet_length constitutes one of three parts in the primary source information header applied by the Payload Data System (PDS) to the MOLA telemetry packet at the time of creation of the packet prior to transfer frame creation. This field contains a sequential 16-bit binary count 'C' of the length (in octets) of the data area structure that is enclosed between the first bit of the Secondary Header and the last bit of the packet (i.e., the last bit of the Source Data field). C = ((no. of octets) - 1)."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The MOLA system time is created from the 2 time words input from the PDS time broadcast command. The MOLA time is updated 7/8 of a second after reception of the time broadcast command and 6/8 of a second after interpreting the time broadcast with S/C + 1 second to arrive at the correct time. B[0] is S/C time in seconds * 2**24; B[1] is S/C time in seconds * 2**16; B[2] is S/C time in seconds * 2**8; B[3] is S/C time in seconds."
DESCRIPTION = "Fine_time is the high-resolution timer reading taken during interrupt handling routine triggered by the trailing edge of the first 10 Hz interrupt encountered during this packet."
DESCRIPTION = "Packet type identifier byte. Distinguishes Science Mode packets from Maintenance Mode packets. Science Mode 0 Maintenance Mode = [1 = Status packet, 2 = memory dump, 3 = noise count]. Values 4 - 255 are reserved for future modes. Modes 0, 1, 2 are hard coded in the flight software. Packet type 3 is patched in when the noise count code patch is uploaded. The packet type value should be patched when a code patch occurs that affects that mode's packet content."
NAME = COMPUTER_MEMORY_TEMPERATURE
NAME = COMPUTER_CPU_TEMPERATURE
NAME = POWER_SUPPLY_TEMPERATURE
NAME = 'COMPUTER_I/O_TEMPERATURE'
NAME = LASER_DIODE_ARRAY_TEMPERATURE
NAME = LASER_DIODE_DRIVE_ELECS_TEMP
NAME = OPTICAL_TEST_SOURCE_LED_TEMP
NAME = HUNDRED_MHZ_OSCILLATOR_TEMP
NAME = START_DETECTOR_TEMPERATURE
NAME = OUTSIDE_DETECTOR_HOUSING_TEMP
NAME = LASR_RADIATR_OPP_OPT_PORT_TEMP
NAME = LSER_RADIATOR_OUTPUT_PORT_TEMP
NAME = INTERFACE_PLATE_HOT_FOOT_TEMP
NAME = HONEYCOMB_PANEL_TEMPERATURE
NAME = ELECTRONICS_BOX_TOP_SC_THRMSTR
NAME = LASER_CASE_HOT_FOOT_TEMP
NAME = PLUS_28_VOLT_VOLTAGE_MONITOR
NAME = REFERENCE_VOLTAGE_MONITOR
NAME = PLUS_12_VOLT_VOLTAGE_MONITOR
NAME = PLUS_24_VOLT_VOLTAGE_MONITOR
NAME = PLUS_5_VOLT_VOLTAGE_MONITOR
NAME = MINUS_12_VOLT_VOLTAGE_MONITOR
NAME = LASER_THERMAL_CURRENT_MONITOR
NAME = MINUS_5_VOLT_VOLTAGE_MONITOR
NAME = POWER_SUPPLY_CURRENT_MONITOR
NAME = HIGH_VOLTAGE_CURRENT_MONITOR
NAME = MINUS_12_VOLT_CURRENT_MONITOR
NAME = PLUS_12_VOLT_CURRENT_MONITOR
NAME = MINUS_5_VOLT_CURRENT_MONITOR
NAME = PLUS_5_VOLT_CURRENT_MONITOR
NAME = CURRENT_STATUS_REGISTER_VALUE
DESCRIPTION = "Value read from STATUS register at end of packet collection cycle. Read STATUS register and store lower 8 bits. MSnibble = SEU counter value"
NAME = SOFTWARE_VERSION_NUMBER
DESCRIPTION = "4.4 bit format version number. Version number is hard coded in software and is stored in packet at the end of the packet collection cycle. Any software patches should include an update to this value. Current flight version is 5.3 therefore, 53h is hard coded in the Pack_it() routine of the Science Mode. Maintenance Mode version is 6.2 therefore 62h is coded."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "RAM block test flag word. Memory test results. Bit representation of the results of the RAM write/read/verify block test performed after a CPU reset (HOT or COLD start). MSB (#15) represents the memory block from 7800h to 7FFFh; LSB (#0) from 0000h to 7FFh. 1 = error detected, 0 = block O.K. 0 represents a validated block, while a 1 means that the program encountered an invalid compare on at least one byte in that block area. B[0] is bits 15 - 8 of RAM test flag; B[1] is bits 7 - 0 of RAM test flag"
NAME = PARAMETER_UPDATE_CMD_COUNT
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Valid data for packet types 1, 2, and 3."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Valid data for packet types 1, 2, and 3."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Valid data for packet types 1, 2, and 3."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Valid data for packet types 1, 2, and 3."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Valid data for packet types 1, 2, and 3."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Valid data for packet types 1, 2, and 3."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Valid data for packet types 1, 2, and 3."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Valid data for packet types 1, 2, and 3."
NAME = MEMORY_DUMP_START_ADDRESS
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Valid data for packet type 2; noise count data starts here when packet type is 3."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Valid data for packet type 2."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Valid data for packet type 2."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "This container has three sub-elements (range to surface counts, 1st channel received pulse energy, and channel number/pulse width). The three sub-elements repeat for each of 20 shots."
NAME = SHOT_2_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 2."
NAME = SHOT_1_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 1."
NAME = SHOT_4_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 4."
NAME = SHOT_3_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 3."
NAME = SHOT_6_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 6."
NAME = SHOT_5_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 5."
NAME = SHOT_8_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 8."
NAME = SHOT_7_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 7."
NAME = SHOT_10_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 10."
NAME = SHOT_9_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 9."
NAME = SHOT_12_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 12."
NAME = SHOT_11_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 11."
NAME = SHOT_14_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 14."
NAME = SHOT_13_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 13."
NAME = SHOT_16_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 16."
NAME = SHOT_15_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 15."
NAME = SHOT_18_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 18."
NAME = SHOT_17_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 17."
NAME = SHOT_20_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 20."
NAME = SHOT_19_LASER_TRANSMITTER_POWR
DESCRIPTION = "Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 19."
DESCRIPTION = "This first container includes encoder start and stop bit values from Shots 1-4"
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 2. Bits 1 and 2 are encoder start bits; bits 3 and 4 are encoder stop bits."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 1. Bits 5 and 6 are encoder start bits; bits 7 and 8 are encoder stop bits."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 4. Bits 9 and 10 are encoder start bits; bits 11 and 12 are encoder stop bits."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 3. Bits 13 and 14 are encoder start bits; bits 15 and 16 are encoder stop bits."
DESCRIPTION = "This second container includes encoder start and stop bit values from Shots 5-8"
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 6. Bits 1 and 2 are encoder start bits; bits 3 and 4 are encoder stop bits"
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 5. Bits 5 and 6 are encoder start bits; bits 7 and 8 are encoder stop bits."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 8. Bits 9 and 10 are encoder start bits; bits 11 and 12 are encoder stop bits."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 7. Bits 13 and 14 are encoder start bits; bits 15 and 16 are encoder stop bits."
DESCRIPTION = "This third container includes encoder start and stop bit values from Shots 9-12"
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 10. Bits 1 and 2 are encoder start bits; bits 3 and 4 are encoder stop bits"
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 9. Bits 5 and 6 are encoder start bits; bits 7 and 8 are encoder stop bits."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 12. Bits 9 and 10 are encoder start bits; bits 11 and 12 are encoder stop bits."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 11. Bits 13 and 14 are encoder start bits; bits 15 and 16 are encoder stop bits."
DESCRIPTION = "This fourth container includes start and stop bit values from Shots 13 -16."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 14. Bits 1 and 2 are encoder start bits; bits 3 and 4 are encoder stop bits"
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 13. Bits 5 and 6 are encoder start bits; bits 7 and 8 are encoder stop bits."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 16. Bits 9 and 10 are encoder start bits; bits 11 and 12 are encoder stop bits."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 15. Bits 13 and 14 are encoder start bits; bits 15 and 16 are encoder stop bits."
DESCRIPTION = "This fifth container includes start and stop bit values from Shots 17-20."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 18. Bits 1 and 2 are encoder start bits; bits 3 and 4 are encoder stop bits"
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 17. Bits 5 and 6 are encoder start bits; bits 7 and 8 are encoder stop bits."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 20. Bits 9 and 10 are encoder start bits; bits 11 and 12 are encoder stop bits."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 19. Bits 13 and 14 are encoder start bits; bits 15 and 16 are encoder stop bits."
DESCRIPTION = "One byte to hold the TIU upper range bits and the receiver channel mask status."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The upper 3 or 3 highest ordered bits of the MOLA time interval unit (TIU). Only the largest MSTIU value read in current frame is saved. Only bits 6, 5, 4 are used."
NAME = RECEIVER_CHANNEL_MASK_STATUS
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The altimeter channel mask settings from the flight parameter table at the time of acquisition and storage of the TIU upper range bits. The mask indicates if the channel filter is active or is masked out to prevent triggering the TIU. Bit 3 = Channel 1; Bit 2 = Channel 2; Bit 1 = Channel 3; Bit 0 = Channel 4. 1 = channel on, 0 = channel off"
NAME = ALGORITHM_STATUS_HIT_CNT
DESCRIPTION = "Current value from the active data frame showing the number of hits counted in the possible 20 shot hits in the single frame or the number of hits summed over the possible 100 shots when in the 5 frame mode. This is an indicator of the performance of the tracking algorithm. If in the acquisition mode, this field will contain the number of shot hits from a possible 80 shots within the 4 frame acquisition window. HIT_CNT from previous frame."
NAME = CH_1_1ST_HALF_FRM_THRSHLD_SET
DESCRIPTION = "The active channel threshold settings in the current frame. The setting of the Channel 1 threshold sampled for the first 10 shots in the frame"
NAME = CH_2_1ST_HALF_FRM_THRSHLD_SET
DESCRIPTION = "The active channel threshold settings in the current frame. The setting of the Channel 2 threshold sampled for the first 10 shots in the frame"
NAME = CH_3_1ST_HALF_FRM_THRSHLD_SET
DESCRIPTION = "The active channel threshold settings in the current frame. The setting of the Channel 3 threshold sampled for the first 10 shots in the frame"
NAME = CH_4_1ST_HALF_FRM_THRSHLD_SET
DESCRIPTION = "The active channel threshold settings in the current frame. The setting of the Channel 4 threshold sampled for the first 10 shots in the frame"
NAME = CH_1_2ND_HALF_FRM_THRSHLD_SET
DESCRIPTION = "The active channel threshold settings in the current frame. The setting of the Channel 1 threshold sampled for the last 10 shots in the frame"
NAME = CH_2_2ND_HALF_FRM_THRSHLD_SET
DESCRIPTION = "The active channel threshold settings in the current frame. The setting of the Channel 2 threshold sampled for the last 10 shots in the frame"
NAME = CH_3_2ND_HALF_FRM_THRSHLD_SET
DESCRIPTION = "The active channel threshold settings in the current frame. The setting of the Channel 3 threshold sampled for the last 10 shots in the frame"
NAME = CH_4_2ND_HALF_FRM_THRSHLD_SET
DESCRIPTION = "The active channel threshold settings in the current frame. The setting of the Channel 4 threshold sampled for the last 10 shots in the frame"
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Current frame range gate delay value (DELAY) as set from the previous data frame. B[0] : Bits 3 - 0 are bits 11 - 8 and B[1] : LSByte (bits 0-7) of the 12 bit Range Delay setting for this frame."
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "Current frame range gate window or width; set at end of the previous data frame. B[0] : Bits 3 - 0 are bits 11 - 8 and B[1] : LSByte of the 12 bit Range Gate Window setting for this frame."
NAME = ALGORITHM_STATUS_MIN_HITS
DESCRIPTION = "The minimum shot hit count value required for a matched filter channel to trigger; MIN_HITS value set in algorithm from the previous data frame."
DESCRIPTION = "Two of values reflecting the operation of the flight software tracking algorithm. The frame counter value and the first channel triggering at or above the minimum hit count are set from the previous data frame tracking algorithm operation. Frame counter (Frame_ctr) value from previous frame's tracking algorithm is in MS 4 bits; MIN_HITS trigger channel from previous frame is in LS 4 bits."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The frame counter value is set from the previous data frame tracking algorithm operation. Frame counter (Frame_ctr) value from previous frame's tracking algorithm is in MS 4 bits (7 - 4) of Software status. Bits 7 - 4 are bits 3 - 0 of frame counter."
BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The first channel triggering at or above the minimum hit count is set from the previous data frame tracking algorithm operation. MIN_HITS trigger channel from previous frame is in LS 4 bits (0 - 3) of Software status. Bit 0 = Channel 1; Bit 1 = Channel 2; Bit 2 = Channel 3; Bit 3 = Channel 4"
NAME = CH_1_1ST_HALF_FRAME_BKGRND_CN
DESCRIPTION = "The background energy or noise count levels for channel 1 first half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over 1st 10 shots of frame for channel 1."
NAME = CH_2_1ST_HALF_FRAME_BKGRND_CN
DESCRIPTION = "The background energy or noise count levels for channel 2 first half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over 1st 10 shots of frame for channel 2."
NAME = CH_3_1ST_HALF_FRAME_BKGRND_CN
DESCRIPTION = "The background energy or noise count levels for channel 3 first half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over 1st 10 shots of frame for channel 3."
NAME = CH_4_1ST_HALF_FRAME_BKGRND_CN
DESCRIPTION = "The background energy or noise count levels for channel 4 first half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over 1st 10 shots of frame for channel 4."
NAME = CH_1_2ND_HALF_FRAME_BKGRND_CN
DESCRIPTION = "The background energy or noise count levels for channel 1 second half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over last 10 shots of frame for channel 1."
NAME = CH_2_2ND_HALF_FRAME_BKGRND_CN
DESCRIPTION = "The background energy or noise count levels for channel 2 second half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over last 10 shots of frame for channel 2."
NAME = CH_3_2ND_HALF_FRAME_BKGRND_CN
DESCRIPTION = "The background energy or noise count levels for channel 3 second half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over last 10 shots of frame for channel 3."
NAME = CH_4_2ND_HALF_FRAME_BKGRND_CN
DESCRIPTION = "The background energy or noise count levels for channel 4 second half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over last 10 shots of frame for channel 4."
NAME = RANGE_TO_SURFACE_TIU_CNTS
DATA_TYPE = MSB_UNSIGNED_INTEGER
DESCRIPTION = "The laser shot surface ranging measurement in Timing Interval Unit (TIU) counts. The least significant 16 bits of TIU (LSTIU), stored for every shot. B[0] = Bits 15-8 of TIU reading; B[1] = Bits 7-0 of TIU reading."
NAME = FIRST_CH_RCVD_PULSE_ENRGY
DESCRIPTION = "The level of return, reflected energy as received by the first channel and matched filter to trigger. Lowest numbered non-zero energy reading for each shot."
NAME = CHANNEL_NUMBER_PULSE_WIDTH
DESCRIPTION = "The number of the first channel to trigger and the pulse width of the returned energy. Bits 8-7 : channel number - 1; bits 6-1: pulse width"