Mars Exploration Rover (MER)

Software Interface Specification

Interface Title: RAT Experiment Data Record (EDR)

Mission: MER Date: July 31, 2004

Module ID: SIS-SCI010-MER

Module Type (REFerence Only or MISsion-specific info included): MIS

Reference Module ID: N/A Date: N/A

Signatures

GDS Generating Elements:

Ops Product Generation Subsystem (OPGS)

Justin Maki ______________________________________________________

Subsystem Engineer Date

GDS Receiving Elements:

MER GDS SOAS Subsystem Engineer

Deborah Bass ______________________________________________________

Subsystem Engineer Date

Concurrence:

RATPayload Element Lead

Kiel Davis ______________________________________________________

PEL Date

MER RAT Investigation Scientist

Robert Anderson ______________________________________________________

Investigation Scientist Date

MER Science Manager

John Callas ______________________________________________________

Manager Date

PDS Central Node Data Engineer

Betty Sword ______________________________________________________

Data Engineer Date

MER MIPL Cognizant Engineer

Doug Alexander ______________________________________________________

Cognizant Engineer Date

GDS:

Ground Data System (GDS)

GDS SE ______________________________________________________

Frank Singleton Date



Mars Exploration Rover (MER) Project

Rock Abrasion Tool (RAT) EDR
Software Interface Specification (SIS)

Version 1.01

Prepared by:

Susan Slavney

Helen Mortensen

Paper copies of this document may not be current and should not be relied on for official purposes. The current version is in the MER Project Library at http://mars03-lib.jpl.nasa.gov, in the Controlled Documents and Records folder.

JPL D-22850

July 31, 2004

Jet Propulsion Laboratory

California Institute of Technology


CHANGE LOG

DATE

SECTIONS CHANGED

REASON FOR CHANGE

REVISION

9/15/01

All

First draft

Draft

4/10/02

All

Many TBDs filled in; changed product storage format from ASCII to binary

Draft

5/16/02

Running header

Added JPL-D and SIS numbers

Draft

5/16/02

2.5 Data Validation

Added text provided by MIPL

Draft

6/13/02

Appendix A

Revised PDS Label provided by MIPL

Draft

7/31/02

Table 2, Columns in RAT EDR Table

Revised table provided by Bob Anderson

V 1.0

7/31/02

2.3.4 Labeling and Identification

File naming scheme revised to be compatible with Pancam scheme

V 1.0

7/31/02

Appendix A

Revised PDS Label provided by MIPL.

V 1.0

7/31/02

Appendix B

Keyword definitions provided by MIPL

V 1.0

8/26/02

Table 3, Columns in RAT EDR Table

Some revised definitions provided by Bob Steinke

V 1.0

8/26/02

Appendix A

Corrections to PDS Label by Betty Sword

V 1.0

1/22/03

All

Update reflect decision to not support multiple instances of groups, support unique group names, use a Data Product as the input to mertelemproc, update the filenaming convention, and update to the latest RAT format.

V 1.0

1/22/03

1.4

Remove APSS dependencies.

V 1.0

1/24/03

Appendix A & B

Fix typos and valid values.

V1.0

2/6/03

Cover, 3.1, 4.1, Appendix A & B

Change Title for PDS Data Engineer, Change caption of Figure 2 to one file, remove reference to RAT RDRs., add new RELEASE_ID keyword to PDS label and definitions.

V1.0

3/7/03

2.3.3, 2.3.4, 2.4.4, Appendix A and B

Updates from SIS review. Added "prod" values, updated "seq" definition, "who" values. Updated label example and add units where possible, removed PRODUCER_ID keyword, changed COMMAND_NAME to COMMAND_OPCODE. Added Time Management FDD to reference documents. Changed MAXIMIM_LENGTH ro MAXIMUM_TRAVEL_DISTANCE per PDS request. Changed Z_AXIS_LENGTH to Z_AXIS_DISTANCE. Added MAXIMUM_CURRENT_PERSISTENCE. File naming convention site and pos updated

V1.0

3/28/03

Appendix A & B

STOP and START_TIME, PRODUCT_VERSION_ID updates.

1.0

6/16/03

2.3.4, 3.1, Appendix A & B

Updated filenaming convention. Updated label example and definitions. Removed SPICE_FILE_ID and INSTRUMENT_VERSION_ID.

1.0

10/7/03

Table 3, appendix A & B

Added status bytes for motor controllers. Added LOCAL_TRUE_SOLAR_TIME

1.0

10/14/03

2.3.4, Appendix A & B

Replace SPAREwith status flags as requested.

1.0

10/31/03

Acronyms, Table 3, appendix A & B

Update butterfly switch description. Update label and definitions.

1.0

11/5/03

Figure 1, Table 3, Appendix A

Update the Rover Coordinate System diagram and the sclk definitions in the table and the label.

1.0

7/31/04

Appendix A

For archive data, added double quotes to RELEASE_ID, LOCAL_TRUE_SOLAR_TIME, OBSERVATION_ID, SEQUENCE_VERSION_ID, SPACECRAFT_CLOCK_START_COUNT, SPACECRAFT_CLOCK_STOP_COUNT.

Removed double quotes from PRODUCT_CREATION_TIME, START_TIME, STOP_TIME, EARTH_RECEIVED_START_TIME, EARTH_RECEIVED_STOP_TIME.

Added OPS to DATA_SET_ID.

1.01


TBD ITEMS

SECTION

DESCRIPTION

RESPONSIBILITY

1.3 Applicable Documents and Constraints

Add references to papers describing the RAT, if any.

RAT Team


CONTENTS

CHANGE LOG.............................................................................................................................. iii

TBD ITEMS.................................................................................................................................... v

CONTENTS................................................................................................................................... vi

TABLES........................................................................................................................................ vii

FIGURES...................................................................................................................................... vii

ACRONYMS................................................................................................................................ viii

1. INTRODUCTION....................................................................................................................... 1

1.1 Purpose and Scope........................................................................................................... 1

1.2 Contents............................................................................................................................... 1

1.3 Applicable Documents and Constraints........................................................................... 1

1.4 Relationships with Other Interfaces................................................................................... 2

2. Data Product Characteristics and Environment.................................................................... 2

2.1 Instrument Overview............................................................................................................ 2

2.2 Data Product Overview...................................................................................................... 2

2.3 Data Processing................................................................................................................. 3

2.3.1 Data Processing Level............................................................................................... 3

2.3.2 Data Product Generation............................................................................................ 3

2.3.3 Data Flow..................................................................................................................... 4

2.3.4 Labeling and Identification.......................................................................................... 4

2.4 Standards Used in Generating Data Products................................................................ 6

2.4.1 PDS Standards........................................................................................................... 6

2.4.2 Time Standards........................................................................................................... 7

2.4.3 Coordinate Systems................................................................................................... 7

2.4.4 Data Storage Conventions......................................................................................... 8

2.5 Data Validation................................................................................................................... 8

3. Detailed Data Product Specifications.................................................................................... 9

3.1 Data Product Structure, Organization, and Format......................................................... 9

3.2 Data Format Descriptions................................................................................................. 9

3.3 Label and Header Descriptions...................................................................................... 12

3.3.1 PDS Label................................................................................................................. 12

3.3.2 PDS Table Object..................................................................................................... 12

4. Applicable Software............................................................................................................... 12

4.1 Utility Programs................................................................................................................ 12

4.2 Applicable PDS Software Tools..................................................................................... 13

4.3 Software Distribution and Update Procedures............................................................. 13

Appendix A - Example RAT EDR Label.................................................................................. 14

Appendix B - PDS LABEL KEYWORDS................................................................................ 27


TABLES

Table 1. Processing Levels for Science Data Sets.................................................................. 3

Table 2. Coordinate Frames Used for MER Surface Operations........................................... 7

Table 3. Columns in a RAT EDR Table...................................................................................... 9

FIGURES

Figure 1. S, SR, and R Frame Coordinate Systems................................................................. 8

Figure 2: The RAT EDR consists of one file.............................................................................. 9


ACRONYMS

ASCII

American Standard Code for Information Interchange

APSS

Activity Planning and Sequencing Subsystem

CODMAC

Committee on Data Management and Computation

DVT

Data Validity Time

EDR

Experiment Data Record

FDD

Functional Design Document

FEI

File Exchange Interface

ICD

Interface Control Document

IDD

Instrument Deployment Device

JPL

Jet Propulsion Laboratory

MER

Mars Exploration Rover

MIPL

Multimission Image Processing Laboratory

NASA

National Aeronautics and Space Administration

ODL

Object Description Language

OPGS

Operations Product Generation Subsystem

OSS

Operations Storage Server

PDS

Planetary Data System

PEL

Payload Element Lead

PPPCS

Pointing, Positioning, Phasing, & Coordinate systems

PSICLOPS

Petrologic Surface Interaction Correlation Library for Operations Planning and Science

RAM

Random Access Memory

RAT

Rock Abrasion Tool

RDR

Reduced Data Record

RSVP

Rover Sequence and Visualization Program

SAP

Science Activity Planner

SFDU

Standard Formatted Data Unit

SIS

Software Interface Specification

SOAS

Science Operations Analysis Subsystem

SPICE

Spacecraft, Planet, Instrument, C-matrix, and Events

SSW

System Software - GDS Team

TBD

To Be Determined

TDS

Telemetry Delivery Subsystem

VICAR

Video Image Communication and Retrieval system


1. INTRODUCTION

1.1 Purpose and Scope

The purpose of this Data Product SIS is to provide users of the Rock Abrasion Tool (RAT) Experiment Data Record (EDR) with a detailed description of the product and a description of how it was generated, including data sources and destinations. The RAT EDR is a time-ordered table of currents, temperatures, and encoder values associated with a deployment of the RAT on a target. This SIS is intended to provide enough information to enable users to read and understand the data product. The users for whom this SIS is intended are the scientists who will analyze the data, including those associated with the MER Project and those in the general planetary science community.

1.2 Contents

This Data Product SIS describes how the RAT EDR is acquired by the RAT instrument, and how it is processed, formatted, labeled, and uniquely identified. The document discusses standards used in generating the product and software that may be used to access the product. The data product structure and organization is described in sufficient detail to enable a user to read the product. Finally, an example of a product label is provided.

1.3 Applicable Documents and Constraints

This Data Product SIS is responsive to the following MER documents:

1. Mars Exploration Program Data Management Plan, R. E. Arvidson and S. Slavney, Rev. 2, Nov. 2, 2000.

2. Mars Exploration Rover Project Archive Generation, Validation and Transfer Plan, R. E. Arvidson and S. Slavney, JPL D-19658, January 2, 2001.

3. MER Flight-Mission Systems ICD (FMICD), Vol. 4 Command Dictionary, MER 420-3-15.04, JPL D-20616.

4. MER Flight-Mission Systems ICD (FMICD), Vol. 7 Telemetry Dictionary, MER 420-3-15.07, JPL D-20617.

5. Pointing, Positioning, Phasing & Coordinate Systems Master (PPPCS), S. R. Doudrick, JPL D-19720, June 28, 2001.

6. MER Flight Systems Functional Design Description (FDD), Volume 5:Time Management/Recovery, MER 420-8-534.05, JPL D-22431

This SIS is also consistent with the following Planetary Data System documents:

7. Planetary Data System Data Preparation Workbook, Version 3.1, JPL D-7669, Part 1, February 1, 1995.

8. Planetary Data System Data Standards Reference, Version 3.6, JPL D-7669, Part 2, August 1, 2003.

9. Planetary Science Data Dictionary Document, JPL D-7116, August 28, 2002.

Finally, this SIS is meant to be consistent with the contract negotiated between the MER Project and the Athena Principal Investigator (PI) in which re­duced data records and documentation are explicitly defined as deliver­able products.

1.4 Relationships with Other Interfaces

Changes to this RAT EDR SIS document affect the following products, software, and/or documents.

Name

Type

P=product

S=software

D=document

Owner

RAT EDRs

P

OPGS/MIPL

mertelemproc

S

MIPL

MIPL database schema

P

MIPL

RATDAT

S

RAT Science Team

PSICLOPS

P

RAT Science Team

2. Data Product Characteristics and Environment

2.1 Instrument Overview

The Rock Abrasion Tool is one of four instruments deployed by the rover instrument arm. When positioned against a rock by the arm, the RAT uses a pair of diamond-tipped grinding wheels to remove dust and weathered rock, exposing fresh rock underneath. The RAT exposes an area 4.5 cm in diameter, and can grind down to a depth of at least 0.5 cm.

The RAT has three actuators. One causes each of two grinding wheels to rotate at high speeds. Each of these grinding wheels has two teeth, which cut out a circular area associated with each grinding head as the head rotates. A second actuator causes the two grinding wheels to revolve around one another at a much slower rate, sweeping the two circular cutting areas around the full 4.5-cm diameter cutting region. Finally, a third "z-axis" actuator translates the entire cutting head toward the rock, causing it to penetrate to the commanded depth. Encoders monitor penetration progress and allow closed-loop control of the grinding process. During the operation of the RAT, the rover will monitor currents, temperatures, and encoder readouts for all three RAT actuators. These data can be used to infer information about the strength properties of the rocks that have undergone grinding.

2.2 Data Product Overview

A RAT EDR is a time-ordered table of actuator current measurements, temperatures, and encoder values recorded during a single RAT deployment. The table is stored in a file as binary data with a PDS label attached to the beginning of the file.

2.3 Data Processing

2.3.1 Data Processing Level

This documentation uses the "Committee On Data Management And Computation" (CODMAC) data level numbering system. The data files referred to in this document are considered "level 2" or "Edited Data" (equivalent to NASA level 0). The data files are generated from level 1 or "Raw Data" which are the telemetry packets within the Project-specific Standard Formatted Data Unit (SFDU) record. Refer to Table 1.

2.3.2 Data Product Generation

RAT EDRs will be generated by the MIPL (Multimission Image Processing Laboratory) under the OPGS using the telemetry processing software "mertelemproc" at JPL. The EDRs produced will be raw uncalibrated data reconstructed from telemetry data products and formatted according to this EDR SIS. Meta-data acquired from the telemetry data headers and a meta-data database will be used to propagate the PDS label. There will not be multiple versions of a RAT EDR. If telemetry packets are missing during the initial downlink, the missing data will be identified and reported for retransmission of the data to the ground. The data will be reprocessed after all data is received and the original version will be overwritten.

Table 1. Processing Levels for Science Data Sets

NASA

CODMAC

Description

Packet data

Raw - Level 1

Telemetry data stream as received at the ground station, with science and engineering data embedded.

Level-0

Edited - Level 2

Instrument science data (e.g., raw voltages, counts) at full resolution, time ordered, with duplicates and transmission errors removed.

Level 1-A

Calibrated - Level 3

Level 0 data that have been located in space and may have been transformed (e.g., calibrated, rearranged) in a reversible manner and packaged with needed ancillary and auxiliary data (e.g., radiances with the calibration equations applied).

Level 1-B

Resampled - Level 4

Irreversibly transformed (e.g., resampled, remapped, calibrated) values of the instrument measurements (e.g., radiances, magnetic field strength).

Level 1-C

Derived - Level 5

Level 1A or 1B data that have been resampled and mapped onto uniform space-time grids. The data are calibrated (i.e., radiometrically corrected) and may have addi­tional corrections applied (e.g., terrain correction).

Level 2

Derived - Level 5

Geophysical parameters, generally derived from Level 1 data, and located in space and time commensurate with instrument location, pointing, and sampling.

Level 3

Derived - Level 5

Geophysical parameters mapped onto uniform space-time grids.

2.3.3 Data Flow

The RAT EDRs are generated by MIPL from telemetry data products from the MER Project SSW team, and SPICE kernels. The EDRs are created and stored on the MER Operations Storage Server (OSS) and then deposited into MIPL's File Exchange Interface (FEI) server for electronic distribution to remote sites via a secure subscription protocol. After a data validation period, the EDRs are collected with other science data and written to physical media for archiving with the Planetary Data System by MIPL.

The size of a RAT EDR is 2.5 MB. The total estimated volume of the RAT EDRs over the course of the MER mission is 15-20 MB. The RAT EDR will be generated 60 seconds after the data product for the EDR has been received by MIPL from the MER OSS. The RAT data will be reprocessed only if packets in the original downlink are not received. The RAT EDR will be reprocessed after all data is retransmitted and received and the original version will be overwritten and place into FEI for distribution.

2.3.4 Labeling and Identification

There is a file naming scheme adapted for the MER image and non-image data products. The scheme applies to the EDR and several RDR data products. The file naming scheme adheres to the Level II 27.3 filename convention to be compliant with PDS standards.

Each MER EDR or RDR data product can be uniquely identified by incorporating into the product filename the Rover Mission identifier, the Instrument identifier, the Starting Spacecraft Clock count (SCLK) of the camera event, the data Product Type, the Site location, the rover Position within the site, the Sequence number, the camera "Eye", the spectral Filter, the product Creator identifier and a Version number. For non-camera data, several fields do not apply.

Each RAT EDR has an attached PDS label associated with the RAT binary data file. The file naming scheme for the RAT EDR and RDR data products is formed by:

<rover><inst>< sclk><prod><site>< pos><seq><eye>< filt><who><ver> .<ext>

where,

rover

=

(1 integer) MER rover mission identifier. Valid values are "1" (MER-1), "2" (MER-2), "3" (SIM-1), or "4" (SIM-2).

Inst

=

(1 alpha character) MER science instrument identifier.

Valid values for MER instruments:

"A" - APXS

"B" - Mössbauer

"T" - Mini-TES

"D" - RAT ("D" for Drill)

Valid values for MER camera instruments not described in this SIS:

"P" - Pancam

"N" - Navcam

"F" - Front Hazcam

"R" - Rear Hazcam

"M" - Microscopic Imager
"E" - EDLcam

sclk

=

(9 integers) Spacecraft Clock time of the DVT (Data Validity Time).

Prod

=

(3 alpha characters) Product type. Indicates the product to be an EDR or one of several types of Non-projected RDRs. All product types that begin with "E" denote a type of EDR, while all other product types denote a type of Non-projected RDR. All product types that end with "C" denote CAHV-linearization.

Valid values for MER non-camera instrument products:

Data Product

Value

APXS/Mini-TES/MB/RAT Detailed Report EDR

"EDR"

RAT Anomaly Report EDR

"EAR"

RAT Parameter EDR

"EDP"

Mini-TES Spectra Emissiivity Image Cube

"EMS"

Mini-TES Mineral Abundance Image or Map

"MIN"

Mini-TES Data Cube (general)

"QUB"

APXS/MB Spectra

"SPE"

APXS/MB table on concentrations and components

"TBL"

Mini-TES Temperature and Thermal Inertia Map

"TTH"

site

=

(2 alphanumeric) Site location count. Use of both integers and alphas allows for a total

range of 0 thru 1295.A value greater than 1295 is denoted by "##" (2 pound signs),requiring

the user to extract actual value from label.

The valid values,in their progression,are as follows:

Range 0 thru 99 - "00 ","01 ","02 "… "99 "

Range 100 thru 1035 - "A0 ","A1 " … "A9 ","AA ","AB "…"AZ ","B0 ","B1 "… "ZZ "

Range 1036 thru 1295 - "0A ","0B "…"0Z ","1A ","1B "…"9Z "

Range 1296 or greater - "##" (2 pound signs)

Example value is "AK " for value of 120..

pos

=

(2 alphanumeric) Position-within-Site count. Use of both integers and alphas allows for a

total range of 0 thru 1295.A value greater than 1295 is denoted by "##" (2 pound signs),

requiring the user to extract actual value from label.

The valid values,in their progression,are as follows:

Range 0 thru 99 - "00 ","01 ","02 "… "99 "

Range 100 thru 1035 - "A0 ","A1 " … "A9 ","AA ","AB "…"AZ ","B0 ","B1 "… "ZZ "

Range 1036 thru 1295 - "0A ","0B "…"0Z ","1A ","1B "…"9Z "

Range 1296 or greater - "##" (2 pound signs)

Example value is "AK " for value of 120..

seq

=

(1 alpha character plus 4 integers) Sequence Identifier. Denotes a group of related commands used as keys for the Ops processing.

Valid values for character (position 1) in field:

"C" - Cruise

"P" - PMA instr.(Pancan, Navcam, MTES)

"D" - IDD & RAT

"R" - Rover Driving

"E" - Engineering

"S" - Submaster

"F" - Flight Software (Seq rejected)

"T" - Test

"G" - (spare)

"W" - Seq triggered by a Commun. Window

"K" - (spare)

"X" - Contingency

"M" - Master (Surface only)

"Y" - (spare)

"N" - In-Situ instr. (APXS, MB, MI)

"Z" - SCM Seq's

Valid values for integers (positions 2 thru 5) in field:

0000 thru 4095 - Valid Sequence number, commanded by Ground

Needs "F" in character position (Camera only):

1000 - Commanded by NAV

2000 - Commanded by SAPP

3000 - Commanded by Fault Protection

4000 - Commanded by EDL

Example value is "P0268".

Eye

=

(1 alpha character) Camera eye. Valid values are:

"L" - Left camera eye

"R" - Right camera eye

"B" - Both left and right camera eyes

"M" - Monoscopic (one camera eye)

"N" - Not Applicable (non-image data)

filt

=

(1 integer) Filter number, with a valid range of 0-8 (0 = "no filter" or "N/A", 1 thru 8 are valid filter positions).

Who

=

(1 alpha character) Product creator indicator. Valid values are as follows, though others may be added in the future:

"A" - Arizona State University

"C" - Cornell University

"F" - USGS at Flagstaff

"J" - Johannes Gutenberg Univ. (Germany)

"M" - MIPL (OPGS) at JPL
"N" - NASA Ames Research (L. Edwards)

"P" - Max Planck Institute (Germany)

"S" - SOAS at JPL

"U" - University of Arizona

"V" - SSV Team (E. De Jong) at JPL
"X" - Other

ver

=

(1 alphanumeric) Version identifier providing uniqueness for bookkeeping.

The valid values, in their progression, are as follows:

Range 1 thru 9 - "1", "2",…"9"
Range 10 thru 35 - "A", "B",…Z"

Example value is "E" for value of 14.

Ext

=

(3 alpha characters) PDS product type extension.

Valid values for MER non-camera instrument products:

"QUB" - Mini-TES Data Cube

"DAT" - APXS spectra, Mössbauer spectra, RAT binary data

"TAB" - APXS table data, Mössbauer table data
"LBL" - Detached PDS labels for APXS and Mössbauer data.

Example:

a)

1D123456789EDR0103P0062N0M1.DAT

Rover MER-1, RAT instrument, EDR, Site 01, Position 03, Seq P0062, produced by MIPL, product version 1.

2.4 Standards Used in Generating Data Products

2.4.1 PDS Standards

The RAT EDR complies with Planetary Data System standards for file formats and labels, as specified in the PDS Standards Reference [8].

2.4.2 Time Standards

The EDR PDS label uses keywords containing time values. Each time value standard is defined according to the keyword description. See Appendix B, PDS Label Items.

The time reference used in column 1 of the RAT data is the spacecraft clock count at the time of the beginning of a measurement. See MER FDD, Volume 5: Time Management/Recovery [7]

2.4.3 Coordinate Systems

The coordinate systems defined for MER surface operations are listed in Table 2 and illustrated in Figure 1 below. Refer to the Pointing, Positioning, Phasing and Coordinate Systems document [5] for more details.

Table 2. Coordinate Frames Used for MER Surface Operations

Imaging-Related Coordinate Systems

Coordinate System

Origin

Coordinate System

Orientation

Name

Label Keyword Value

Lander Frame (L Frame)

"LANDER_FRAME"

Attached to Lander

Aligned with Lander

Mars Body Fixed (MBF)

does not appear in label

Attached to Mars center of Mass

x=equatorial plane, intersects the prime meridian, z= Mars spin axis, points toward the North pole, y completes the right-handed system

Mast Frame

"MAST_FRAME"

Attached to PMA mast head

Aligned with pointing of mast head

Pancam Frame

"PANCAM_FRAME"

Attached to Camera

Aligned with camera pointing

Rover Frame (R Frame)

"ROVER_FRAME"

Attached to Rover

Aligned with Rover

Surface (Sn Frame)

(Site Frame)

"SITE_FRAME"

Attached to Surface

North/East/Nadir

Surface Rover (SR Frame)

(Local Level)

"LOCAL_LEVEL_FRAME"

Attached to Rover (coincident with Rover Frame)

North/East/Nadir

Figure 1. S, SR, and R Frame Coordinate Systems

2.4.4 Data Storage Conventions

RAT EDR data are stored in binary files with fixed-length records. The attached PDS label is ASCII format. See Section 3.3.1 for more information on the PDS label.

2.5 Data Validation

Validation of the MER EDRs will fall into two primary categories: automated and manual. Automated validation will be performed on every EDR product produced for the mission. Manual validation will only be performed on a subset.

Automated validation will be performed as a part of the archiving process and will be done simultaneously with the archive volume validation. Validations performed will include such things as verification that the checksum in the label matches a calculated checksum for the data product (i.e., that the data product included in the archive is identical to that produced by the real-time process), a validation of the PDS syntax of the label, a check of the label values against the database and against the index tables included on the archive volume, and checks for internal consistency of the label items. The latter include such things as verifying that the product creation date is later than the earth received time, and comparing the geometry pointing information with the specified target. As problems are discovered and/or new possibilities identified for automated verification, they will be added to the validation procedure.

Manual validation of the data will be performed both as spot-checking of data throughout the life of the mission and as comprehensive validation of a subset of the data (for example, a couple of days' worth of data). These products will be viewed by a human being. Validation in this case will include inspection of the data object for errors not specified in the label parameters, verification that the target shown / apparent geometry matches that specified in the label, verification that the product is viewable using the specified software tools, and a general check for any problems that might not have been anticipated in the automated validation procedure.

3. Detailed Data Product Specifications

3.1 Data Product Structure, Organization, and Format

The structure of the RAT EDR consists of an attached ASCII PDS label and a binary data file as shown in Figure 2. It should be noted that an EDR can be generated with only the PDS label. This will occur when only the telemetry header and no binary data is received.

Attached ASCII PDS Label

RAT Binary Data

Figure 2: The RAT EDR consists of one file.

3.2 Data Format Descriptions

A RAT EDR data consists of a table of time-ordered current, encoder, and temperature measurements for the three RAT motors during a single RAT deployment. A RAT EDR covers a maximum time interval of 3 hours, and has a maximum sampling rate of 8 Hz. Both the sampling rate and time interval are commandable. Each RAT EDR is contained in a separate file. The file is binary with fixed-length records of 96 bytes, and with a PDS label in ASCII text attached to the beginning of the file. The maximum file size is 7.8 Mbytes.

Table 3 lists the columns in the EDR product. Appendix A gives an example of a PDS label for RAT data.

Table 3. Columns in a RAT EDR Table

Column

Description

Units

Data Type

Bytes

1

SPACECRAFT CLOCK COUNT (seconds)

Spacecraft clock value.

Seconds

unsigned MSB integer

4

2

SPACECRAFT CLOCK COUNT (subseconds)

Spacecraft clock value.

subrti

unsigned MSB integer

2

3

SPARE

Spare bytes

MSB integer

2

4

ROTATION MOTOR POSITION

Angular position of the grinding wheel.

Radians

IEEE real

8

5

ROTATION MOTOR CURRENT SENSOR

Rotation motor current.

Amps

IEEE real

8

6

REVOLUTION MOTOR POSITION

Angular position of the grinding stage.

Radians

IEEE real

8

7

REVOLUTION MOTOR CURRENT SENSOR

Revolution motor current.

Amps

IEEE real

8

8

Z MOTOR POSITION

Linear position of the grinding wheels.

Mm

IEEE real

8

9

Z MOTOR CURRENT SENSOR

Z-axis motor current.

Amps

IEEE real

8

10

TEMPERATURE SENSOR

Temperature reading from RAT PRT.

Degrees Celsius

IEEE real

8

11

BUTTERFLY SWITCH 1

Cumulative state word for butterfly switch #1 - add 1 if the switch is in the incorrect state and add 0 if the switch is in the correct state, updated at 8Hz.

Count

unsigned MSB integer

4

12

BUTTERFLY SWITCH 2

Cumulative state word for butterfly switch #2 - add 1 if the switch is in the incorrect state and add 0 if the switch is in the correct state, updated at 8Hz.

Count

unsigned MSB integer

4

13

RAT OVER CURRENT ALARM

Cumulative state word for rotate motor over current alarm - add 1 if over threshold, add 0 if not. Updated at 8Hz.

Count

unsigned MSB integer

4

14

Z-AXIS MOTOR CONTROLLER STATUS

BIT00=motor controller active
BIT01=motor turning
BIT02=motor not keeping up with commanded profile
BIT03=motor stalled
BIT04=motor H-bridge over temperature
BIT05=motor controller enable
BIT06=motor reached commanded position
BIT07=awaiting Mini-TES sync pulse (should always be 0 for RAT)

N/A

N/A

1

15

REVOLVE MOTOR CONTROLLER STATUS

BIT00=motor controller active
BIT01=motor turning
BIT02=motor not keeping up with commanded profile
BIT03=motor stalled
BIT04=motor H-bridge over temperature
BIT05=motor controller enable
BIT06=motor reached commanded position
BIT07=awaiting Mini-TES sync pulse (should always be 0 for RAT)

N/A

N/A

1

16

GRIND MOTOR CONTROLLER STATUS

BIT00=motor controller active
BIT01=motor turning
BIT02=motor not keeping up with commanded profile
BIT03=motor stalled
BIT04=motor H-bridge over temperature
BIT05=motor controller enable
BIT06=motor reached commanded position
BIT07=awaiting Mini-TES sync pulse (should always be 0 for RAT)

N/A

N/A

1

17

SPARE

N/A

N/A

1

18

ROVER BUS VOLTAGE

Rover bus voltage.

Volts

IEEE real

8

19

ALGORITHM STATE

Describes the current state of the RAT. Valid values are:
0=INACTIVE
1=AWAITING_INACTIVE
2=DEACTIVATING
3=IDLE
4=AWAITING_IDLE
5=STOPPING
6=DIAG_REQUESTING
7=DIAG_CALIBRATING
8=DIAG_HOMING
9=DIAG_COLLECTING_CURRENT
10=DIAG_COLLECTING_VOLTAGE
11=CAL_REQUESTING
12=CAL_CALIBRATING
13=CAL_HOMING
14=CAL_COLLECTING_CURRENT
15=CAL_COLLECTING_VOLTAGE
16=SEEK_SEEKING_REQUESTING
17=SEEK_SEEKING
18=SCAN_Z_STEPPING
19=SCAN_REVOLVING
20=GRIND_REQUESTING
21=GRIND_GRINDING
22=GRIND_Z_RETRACTING
23=GRIND_Z_EXTENDING
24=GRIND_DWELLING
25=BRUSH_REQUESTING
26=BRUSH_CALIBRATING
27=BRUSH_MOVING_Z
28=BRUSH_BRUSHING
29=MOVE_REQUESTING
30=MOVE_MOVING
31=HOMING
32=NO_FAULT
33=GRIND_DUMPING_DP
34=GRIND_RESUMING

N/A

unsigned MSB integer

4

20

ANOMALY FLAG

Describes the fault protection condition that may have ended the current command and produced an anomaly report. This is a bit mask where 1=TRUE, 0=FALSE. Bit fields are:
BIT 0 = HBRIDGE_Z
BIT 1 = HBRIDGE_REV
BIT 2 = HBRIDGE_ROT
BIT 3 = OVERHEAT_Z
BIT 4 = OVERHEAT_REV
BIT 5 = OVERHEAT_ROT
BIT 6 = CSTALL_Z
BIT 7 = CSTALL_REV
BIT 8 = CSTALL_ROT
BIT 9 = STALL_Z
BIT 10 = STALL_REV
BIT 11 = STALL_ROT
BIT 12 = POS_Z
BIT 13 = CMAX_Z
BIT 14 = CMAX_REV
BIT 15 = CMAX_ROT
BIT 16 = CONTACT
BIT 17 = COMMAND_QUIT
BIT 18 = MAXCUR - Motor Current exceeded maxcur argument.
BIT 19 = ANOMALY_NOW - An anomaly has occurred in this sample.
BIT 20 = ENCODER_STALL_ROT - encoder stall on the rotate motor.

N/A

MSB bit string

4

3.3 Label and Header Descriptions

3.3.1 PDS Label

A RAT EDR has a PDS label attached at the beginning of the data file. The label is ASCII text although the data in the file are stored as binary numbers. A PDS label is object-oriented and describes the objects in the data file. The PDS label contains keywords for product identification and for table definitions. The label also contains descriptive information needed to interpret or process the table data in the file.

PDS labels are written in Object Description Language (ODL) [8]. PDS label statements have the form of "keyword = value". Each label statement is terminated with a carriage return character (ASCII 13) and a line feed character (ASCII 10) sequence to allow the label to be read by many operating systems. Pointer statements with the following format are used to indicate the location of data objects in the file:

^object = location

where the carat character (^, also called a pointer) is followed by the name of the specific data object. The location is the starting record number for the data object within the file.

3.3.2 PDS Table Object

A RAT EDR consists of a data object described in the PDS label as a table. The table has 20 columns and a variable number of rows, one for each observation. Each row is 96 bytes long. The data in the table are stored as binary integers and real numbers. The PDS label defines the starting byte, number of bytes, and data type of each column.

4. Applicable Software

4.1 Utility Programs

RATDAT is a data analysis tool developed by the RAT Team at Honeybee Robotics. RATDAT will be used by the Team to generate "quick-look" data products so that RAT health and performance can be assessed in real time. RATDAT facilitates instrument health analysis by comparing downlinked RAT initialization data to calibration data. Real-time comparative performance analysis is done using the searchable RAT grinding experiment data base, PSICLOPS (Petrologic Surface Interaction Correlation Library for Operations Planning and Science). PSICLOPS is a collection of derived data taken from pre-mission experiments, mission operations, and post-mission simulations. Both the calibration data and the PSICLOPS database are included in the PDS archive of RAT data products.

4.2 Applicable PDS Software Tools

PDS-labeled images and tables can be viewed with the program NASAView, developed by the PDS and available for a variety of computer platforms from the PDS web site http://pdsproto.jpl.nasa.gov/Distribution/license.html. There is no charge for NASAView.

4.3 Software Distribution and Update Procedures

RATDAT software will be included on RAT archive volumes and will be available for downloading from PDS web sites that distribute RAT data products.


Appendix A - Example RAT EDR Label

PDS_VERSION_ID = PDS3

/* FILE DATA ELEMENTS */

RECORD_TYPE = FIXED_LENGTH

RECORD_BYTES = 96

FILE_RECORDS = <TBD>

LABEL_RECORDS = 299

/* POINTERS TO DATA OBJECTS */

^TABLE = 300

/* IDENTIFICATION DATA ELEMENTS */

DATA_SET_ID = "MER2-M-RAT-2-EDR-V1.0"

PRODUCT_ID = "2D128573892EAR0023D2520N0M1"

PRODUCT_TYPE = RAT_EDR

PRODUCT_VERSION_ID = "V1.0 D-22850"

RELEASE_ID = "0001"

ROVER_MOTION_COUNTER = (0, 25, 54, 141, 70)

ROVER_MOTION_COUNTER_NAME = (SITE, DRIVE, IDD, PMA, HGA)

COMMAND_SEQUENCE_NUMBER = 4

INSTRUMENT_HOST_ID = MER2

INSTRUMENT_HOST_NAME = "MARS EXPLORATION ROVER 2"

INSTRUMENT_ID = RAT

INSTRUMENT_TYPE = DRILL

LOCAL_TRUE_SOLAR_TIME = "09:01:00"

MISSION_NAME = "MARS EXPLORATION ROVER"

MISSION_PHASE_NAME = "PRIMARY MISSION"

OBSERVATION_ID = "0"

PLANET_DAY_NUMBER = 25

PRODUCER_INSTITUTION_NAME = "MULTIMISSION IMAGE PROCESSING SUBSYSTEM,

JET PROPULSION LAB"

PRODUCT_CREATION_TIME = 2003-03-04T18:02:49.000

SEQUENCE_ID = d2520

SEQUENCE_VERSION_ID = "0"

SPACECRAFT_CLOCK_CNT_PARTITION = 1

SPACECRAFT_CLOCK_START_COUNT = "128573865.213"

SPACECRAFT_CLOCK_STOP_COUNT = "128573892.076"

START_TIME = 2004-01-28T14:56:41.648

STOP_TIME = 2004-01-28T14:57:08.113

TARGET_NAME = MARS

TARGET_TYPE = PLANET

/* TELEMETRY DATA ELEMENTS */

APPLICATION_PROCESS_ID = 34

APPLICATION_PROCESS_NAME = RAT

APPLICATION_PROCESS_SUBTYPE_ID = 2

EARTH_RECEIVED_START_TIME = 2004-02-14T01:19:27.453

EARTH_RECEIVED_STOP_TIME = 2004-02-14T03:37:16.153

EXPECTED_PACKETS = "N/A"

PACKET_MAP_MASK = "N/A"

RECEIVED_PACKETS = "N/A"

SPICE_FILE_NAME = "chronos.mer"

TELEMETRY_FORMAT_ID = SCI

TELEMETRY_PROVIDER_ID = "SSW MER_DP"

TELEMETRY_SOURCE_NAME = "Input DP Filename"

TELEMETRY_SOURCE_TYPE = "DATA PRODUCT"

TLM_INST_DATA_HEADER_ID = 3

/* HISTORY DATA ELEMENTS */

SOFTWARE_NAME = MERTELEMPROC

SOFTWARE_VERSION_ID = "V1.24.46"

PROCESSING_HISTORY_TEXT = "CODMAC LEVEL 1 TO LEVEL 2 CONVERSION

VIA JPL/MIPL MERTELEMPROC"

/* ROVER STATE */

/* COORDINATE SYSTEM STATE: ROVER AT START OF ACTIVITY */

GROUP = START_ROVER_COORDINATE_SYSTEM

COORDINATE_SYSTEM_NAME = ROVER_FRAME

COORDINATE_SYSTEM_INDEX = (0, 25, 54, 141, 70)

COORDINATE_SYSTEM_INDEX_NAME = (SITE, DRIVE, IDD, PMA, HGA)

ORIGIN_OFFSET_VECTOR = (-0.00876458, 0.0214229, 0.0172464)

ORIGIN_ROTATION_QUATERNION = (0.999978, -0.000282336, 0.000291980,

-0.00663021)

POSITIVE_AZIMUTH_DIRECTION = CLOCKWISE

POSITIVE_ELEVATION_DIRECTION = UP

QUATERNION_MEASUREMENT_METHOD = FINE

REFERENCE_COORD_SYSTEM_NAME = SITE_FRAME

REFERENCE_COORD_SYSTEM_INDEX = 0

END_GROUP = START_ROVER_COORDINATE_SYSTEM

/* ARTICULATION DEVICE STATE: MOBILITY CHASSIS AT START OF ACTIVITY */

GROUP = START_CHASSIS_ARTICULATION_STATE

ARTICULATION_DEVICE_ID = CHASSIS

ARTICULATION_DEVICE_NAME = "MOBILITY CHASSIS"

ARTICULATION_DEVICE_ANGLE = (0.0230152 <rad>, 0.076101 <rad>,

0.0230152 <rad>, 0.076101 <rad>,

0.0230152 <rad>, 0.076101 <rad>,

0.0230152 <rad>)

ARTICULATION_DEVICE_ANGLE_NAME = ("LEFT FRONT WHEEL POTENTIOMETER",

"RIGHT FRONT WHEEL POTENTIOMETER",

"LEFT REAR WHEEL POTENTIOMETER",

"RIGHT REAR WHEEL POTENTIOMETER",

"LEFT BOGIE POTENTIOMETER",

"RIGHT BOGIE POTENTIOMETER",

"DIFFERENTIAL BOGIE POTENTIOMETER")

END_GROUP = START_CHASSIS_ARTICULATION_STATE

/* ARTICULATION DEVICE STATE: HIGH GAIN ANTENNA AT START OF ACTIVITY */

GROUP = START_HGA_ARTICULATION_STATE

ARTICULATION_DEVICE_ID = HGA

ARTICULATION_DEVICE_NAME = "HIGH GAIN ANTENNA"

ARTICULATION_DEVICE_ANGLE = (0.0230152 <rad>, -0.076101 <rad>)

ARTICULATION_DEVICE_ANGLE_NAME = (AZIMUTH, ELEVATION)

END_GROUP = START_HGA_ARTICULATION_STATE

/* ARTICULATION DEVICE STATE: INSTRUMENT DEPLOYMENT DEVICE AT THE START */

GROUP = START_IDD_ARTICULATION_STATE

ARTICULATION_DEVICE_ID = IDD

ARTICULATION_DEVICE_NAME = "INSTRUMENT DEPLOYMENT DEVICE"

ARTICULATION_DEVICE_ANGLE = (0.0230152 <rad>, -0.076101 <rad>,

0.874005 <rad>, 9.4095 <rad>,

0.3467 <rad>, 0.922297 <rad>,

-0.0165226 <rad>, -0.0413094 <rad>,

0.38230 <rad>, 0.456 <rad>)

ARTICULATION_DEVICE_ANGLE_NAME = ("JOINT 1 AZIMUTH-ENCODER",

"JOINT 2 ELEVATION-ENCODER",

"JOINT 3 ELBOW-ENCODER",

"JOINT 4 WRIST-ENCODER",

"JOINT 5 TURRET-ENCODER",

"JOINT 1 AZIMUTH-POTENTIOMETER",

"JOINT 2 ELEVATION-POTENTIOMETER",

"JOINT 3 ELBOW-POTENTIOMETER",

"JOINT 4 WRIST-POTENTIOMETER",

"JOINT 5 TURRET-POTENTIOMETER")

ARTICULATION_DEVICE_MODE = "FREE SPACE"

ARTICULATION_DEVICE_TEMP = (20.5986 <degC>, 21.4995 <degC>)

ARTICULATION_DEVICE_TEMP_NAME = ("AZIMUTH JOINT 1", "TURRET JOINT 5")

ARTICULATION_DEVICE_VECTOR = (0.000587690, 0.000560787, 1.00000)

ARTICULATION_DEV_VECTOR_NAME = GRAVITY

CONTACT_SENSOR_STATE = ("NO CONTACT", "NO CONTACT",

CONTACT, CONTACT,

"NO CONTACT", "NO CONTACT",

CLOSED, "NO CONTACT")

CONTACT_SENSOR_STATE_NAME = ("MI SWITCH 1", "MI SWITCH 2",

"RAT SWITCH 1", "RAT SWITCH 2",

"MB SWITCH 1", "MB SWITCH 2",

"APXS DOOR SWITCH",

"APXS CONTACT SWITCH")

ARTICULATION_DEV_INSTRUMENT_ID = RAT

END_GROUP = START_IDD_ARTICULATION_STATE

/* COORDINATE SYSTEM STATE: INSTRUMENT DEPLOYMENT DEVICE AT THE START */

GROUP = START_IDD_COORDINATE_SYSTEM

COORDINATE_SYSTEM_NAME = RAT_FRAME

COORDINATE_SYSTEM_INDEX = (0, 23, 54, 141, 70)

COORDINATE_SYSTEM_INDEX_NAME = (SITE, DRIVE, IDD, PMA, HGA)

ORIGIN_OFFSET_VECTOR = (0.973126, -0.0857320, -0.278298)

ORIGIN_ROTATION_QUATERNION = (0.109009, -0.670247, -0.698654,

0.225321)

POSITIVE_AZIMUTH_DIRECTION = CLOCKWISE

POSITIVE_ELEVATION_DIRECTION = DOWN

REFERENCE_COORD_SYSTEM_NAME = ROVER_FRAME

REFERENCE_COORD_SYSTEM_INDEX = (0, 25, 54, 141, 70)

END_GROUP = START_IDD_COORDINATE_SYSTEM

/* ARTICULATION DEVICE STATE: PANCAM MAST ASSEMBLY AT START OF ACTIVITY */

GROUP = START_PMA_ARTICULATION_STATE

ARTICULATION_DEVICE_ID = PMA

ARTICULATION_DEVICE_NAME = "PANCAM MAST ASSEMBLY"

ARTICULATION_DEVICE_ANGLE = (-0.0799986 <rad>, -1.57088 <rad>)

ARTICULATION_DEVICE_ANGLE_NAME = (MAST, CAMBAR)

ARTICULATION_DEVICE_MODE = DEPLOYED

END_GROUP = START_PMA_ARTICULATION_STATE

/* COORDINATE SYSTEM STATE: PANCAM MAST ASSEMBLY AT THE START */

GROUP = START_PMA_COORDINATE_SYSTEM

COORDINATE_SYSTEM_NAME = MAST_FRAME

COORDINATE_SYSTEM_INDEX = (0, 25, 54, 141, 70)

COORDINATE_SYSTEM_INDEX_NAME = (SITE, DRIVE, IDD, PMA, HGA)

ORIGIN_OFFSET_VECTOR = (0.973126, -0.0857320, -0.278298)

ORIGIN_ROTATION_QUATERNION = (0.109009, -0.670247, -0.698654,

0.225321)

POSITIVE_AZIMUTH_DIRECTION = CLOCKWISE

POSITIVE_ELEVATION_DIRECTION = UP

REFERENCE_COORD_SYSTEM_NAME = ROVER_FRAME

REFERENCE_COORD_SYSTEM_INDEX = (0, 25, 54, 141, 70)

END_GROUP = START_PMA_COORDINATE_SYSTEM

/* ROVER STATE */

/* COORDINATE SYSTEM STATE: ROVER AT END OF ACTIVITY */

GROUP = STOP_ROVER_COORDINATE_SYSTEM

COORDINATE_SYSTEM_NAME = ROVER_FRAME

COORDINATE_SYSTEM_INDEX = (0, 25, 54, 141, 70)

COORDINATE_SYSTEM_INDEX_NAME = (SITE, DRIVE, IDD, PMA, HGA)

ORIGIN_OFFSET_VECTOR = (-0.00876458, 0.0214229, 0.0172464)

ORIGIN_ROTATION_QUATERNION = (0.999978, -0.000282336, 0.000291980,

-0.00663021)

POSITIVE_AZIMUTH_DIRECTION = CLOCKWISE

POSITIVE_ELEVATION_DIRECTION = UP

QUATERNION_MEASUREMENT_METHOD = FINE

REFERENCE_COORD_SYSTEM_NAME = SITE_FRAME

REFERENCE_COORD_SYSTEM_INDEX = 0

END_GROUP = STOP_ROVER_COORDINATE_SYSTEM

/* ARTICULATION DEVICE STATE: MOBILITY CHASSIS AT END OF ACTIVITY */

GROUP = STOP_CHASSIS_ARTICULATION_STATE

ARTICULATION_DEVICE_ID = CHASSIS

ARTICULATION_DEVICE_NAME = "MOBILITY CHASSIS"

ARTICULATION_DEVICE_ANGLE = (2.29090 <rad>, 2.18295 <rad>,

2.30191 <rad>, 2.26317 <rad>,

1.31267 <rad>, 1.67692 <rad>,

0.834726 <rad>)

ARTICULATION_DEVICE_ANGLE_NAME = ("LEFT FRONT WHEEL POTENTIOMETER",

"RIGHT FRONT WHEEL POTENTIOMETER",

"LEFT REAR WHEEL POTENTIOMETER",

"RIGHT REAR WHEEL POTENTIOMETER",

"LEFT BOGIE POTENTIOMETER",

"RIGHT BOGIE POTENTIOMETER",

"DIFFERENTIAL BOGIE POTENTIOMETER")

END_GROUP = STOP_CHASSIS_ARTICULATION_STATE

/* ARTICULATION DEVICE STATE: HIGH GAIN ANTENNA AT END OF ACTIVITY*/

GROUP = STOP_HGA_ARTICULATION_STATE

ARTICULATION_DEVICE_ID = HGA

ARTICULATION_DEVICE_NAME = "HIGH GAIN ANTENNA"

ARTICULATION_DEVICE_ANGLE = (2.55154 <rad>, 1.72436 <rad>)

ARTICULATION_DEVICE_ANGLE_NAME = (AZIMUTH, ELEVATION)

END_GROUP = STOP_HGA_ARTICULATION_STATE

/* ARTICULATION DEVICE STATE: INSTRUMENT DEPLOYMENT DEVICE AT THE END */

GROUP = STOP_IDD_ARTICULATION_STATE

ARTICULATION_DEVICE_ID = IDD

ARTICULATION_DEVICE_NAME = "INSTRUMENT DEPLOYMENT DEVICE"

ARTICULATION_DEVICE_ANGLE = (0.00000 <rad>, -0.802971 <rad>,

1.53627 <rad>, 3.50001 <rad>,

-0.169527 <rad>, 1.50386 <rad>,

0.124453 <rad>, -0.789206 <rad>,

-0.369460 <rad>, 1.65011 <rad>)

ARTICULATION_DEVICE_ANGLE_NAME = ("JOINT 1 AZIMUTH-ENCODER",

"JOINT 2 ELEVATION-ENCODER",

"JOINT 3 ELBOW-ENCODER",

"JOINT 4 WRIST-ENCODER",

"JOINT 5 TURRET-ENCODER",

"JOINT 1 AZIMUTH-POTENTIOMETER",

"JOINT 2 ELEVATION-POTENTIOMETER",

"JOINT 3 ELBOW-POTENTIOMETER",

"JOINT 4 WRIST-POTENTIOMETER",

"JOINT 5 TURRET-POTENTIOMETER")

ARTICULATION_DEVICE_MODE = "FREE SPACE"

ARTICULATION_DEVICE_TEMP = (20.5986 <degC>, 21.5225 <degC>)

ARTICULATION_DEVICE_TEMP_NAME = ("AZIMUTH JOINT 1", "TURRET JOINT 5")

ARTICULATION_DEVICE_VECTOR = (0.000587690, 0.000560787, 1.00000)

ARTICULATION_DEV_VECTOR_NAME = "GRAVITY"

CONTACT_SENSOR_STATE = ("NO CONTACT", "NO CONTACT",

CONTACT, CONTACT,

"NO CONTACT", "NO CONTACT",

CLOSED, "NO CONTACT")

CONTACT_SENSOR_STATE_NAME = ("MI SWITCH 1", "MI SWITCH 2",

"RAT SWITCH 1", "RAT SWITCH 2",

"MB SWITCH 1", "MB SWITCH 2",

"APXS DOOR SWITCH",

"APXS CONTACT SWITCH")

ARTICULATION_DEV_INSTRUMENT_ID = RAT

END_GROUP = STOP_IDD_ARTICULATION_STATE

/* COORDINATE SYSTEM STATE: INSTRUMENT DEPLOYMENT DEVICE AT THE END */

GROUP = STOP_IDD_COORDINATE_SYSTEM

COORDINATE_SYSTEM_NAME = RAT_FRAME

COORDINATE_SYSTEM_INDEX = (0, 25, 54, 141, 71)

COORDINATE_SYSTEM_INDEX_NAME = (SITE, DRIVE, IDD, PMA, HGA)

ORIGIN_OFFSET_VECTOR = (0.0230152, -0.076101, 0.874005)

ORIGIN_ROTATION_QUATERNION = (0.922297, -0.0165226, -0.0413094,

0.382304)

POSITIVE_AZIMUTH_DIRECTION = CLOCKWISE

POSITIVE_ELEVATION_DIRECTION = DOWN

REFERENCE_COORD_SYSTEM_NAME = ROVER_FRAME

REFERENCE_COORD_SYSTEM_INDEX = (0, 25, 54, 141, 70)

END_GROUP = STOP_IDD_COORDINATE_SYSTEM

/* ARTICULATION DEVICE STATE: PANCAM MAST ASSEMBLY AT END OF ACTIVITY */

GROUP = STOP_PMA_ARTICULATION_STATE

ARTICULATION_DEVICE_ID = PMA

ARTICULATION_DEVICE_NAME = "PANCAM MAST ASSEMBLY"

ARTICULATION_DEVICE_ANGLE = (3.46789 <rad>, 5.6702 <rad>)

ARTICULATION_DEVICE_ANGLE_NAME = (MAST, CAMBAR)

ARTICULATION_DEVICE_MODE = DEPLOYED

END_GROUP = STOP_PMA_ARTICULATION_STATE

/* COORDINATE SYSTEM STATE: PANCAM MAST ASSEMBLY AT THE END */

GROUP = STOP_PMA_COORDINATE_SYSTEM

COORDINATE_SYSTEM_NAME = MAST_FRAME

COORDINATE_SYSTEM_INDEX = (0, 25, 54, 141, 70)

COORDINATE_SYSTEM_INDEX_NAME = (SITE, DRIVE, IDD, PMA, HGA)

ORIGIN_OFFSET_VECTOR = (0.0230152, -0.076101, 0.874005)

ORIGIN_ROTATION_QUATERNION = (0.922297, -0.0165226, -0.0413094,

0.382304)

POSITIVE_AZIMUTH_DIRECTION = CLOCKWISE

POSITIVE_ELEVATION_DIRECTION = UP

REFERENCE_COORD_SYSTEM_NAME = ROVER_FRAME

REFERENCE_COORD_SYSTEM_INDEX = (0, 25, 54, 141, 70)

END_GROUP = STOP_PMA_COORDINATE_SYSTEM

/* RAT REQUEST PARAMETERS */

GROUP = RAT_REQUEST_PARMS

COMMAND_OPCODE = 2513

ERROR_CONDITION = NONE

ERROR_STATE = {IS_ANOMALY_REPORT}

MAXIMUM_CURRENT_PERSISTENCE = 10

MAXIMUM_TRAVEL_DISTANCE = 25.1260 <mm>

SAMPLING_PARAMETER_INTERVAL = 3

ROTATION_NOLOAD_CURRENT = 118.000

TORQUE_CONSTANT = 0.100400

Z_AXIS_DISTANCE = 0.250000 <mm>

END_GROUP = RAT_REQUEST_PARMS

GROUP = DIAGNOSTICS_CAL_REQUEST_PARMS

ANGULAR_VELOCITY = 0.105000 <rad/s>

ROTATION_VOLTAGE = 30.000 <V>

Z_AXIS_VELOCITY = 0.500000

END_GROUP = DIAGNOSTICS_CAL_REQUEST_PARMS

GROUP = SEEK_SCAN_REQUEST_PARMS

ANGULAR_DISTANCE = 6.28319 <rad>

MAXIMUM_ANGULAR_VELOCITY = 0.105000 <rad/s>

ROTATION_TORQUE_PARAMETER = 10.0000

ROTATION_VOLTAGE = (5.00000 <V>, 5.00000 <V>)

ROTATION_VOLTAGE_NAME = (SEEK, SCAN)

TORQUE_GAIN = (0.0100000,

0.00000,

0.00000)

TORQUE_GAIN_NAME = (PROPORTIONAL, derivative, integral)

Z_AXIS_STEP_SIZE = 0.0510000 <mm>

Z_AXIS_VELOCITY = (0.400000, 0.800000)

Z_AXIS_VELOCITY_NAME = (SEEK, SCAN)

END_GROUP = SEEK_SCAN_REQUEST_PARMS

GROUP = GRIND_REQUEST_PARMS

ANGULAR_DISTANCE = (6.28319 <rad>, 31.4159 <rad>)

ANGULAR_DISTANCE_NAME = ("GRIND COMPLETION", "DWELL OPERATION")

ANGULAR_VELOCITY = 0.315000 <rad/s>

CLEARANCE_DISTANCE = 2.00000 <mm>

MAXIMUM_ANGULAR_VELOCITY = 0.143000 <rad/s>

ROTATION_TORQUE_PARAMETER = 18.0000

ROTATION_VOLTAGE = 30.0000 <V>

TORQUE_GAIN = (0.0102400,

0.000100000,

0.000500000)

TORQUE_GAIN_NAME = (PROPORTIONAL, derivative, integral)

TIMEOUT_PARAMETER = 90.00000 <s>

Z_AXIS_STEP_SIZE = 0.0510000 <mm>

Z_AXIS_VELOCITY = 0.800000

END_GROUP = GRIND_REQUEST_PARMS

GROUP = BRUSH_REQUEST_PARMS

ANGULAR_VELOCITY = 0.200000 <rad/s>

ROTATION_VOLTAGE = 28.0000 <V>

Z_AXIS_POSITION = 23.0000 <mm>

Z_AXIS_VELOCITY = 1.00000

END_GROUP = BRUSH_REQUEST_PARMS

/* TABLE DATA ELEMENTS */

OBJECT = TABLE

INTERCHANGE_FORMAT = BINARY

COLUMNS = 20

ROWS = <TBD>

ROW_BYTES = 96

OBJECT = COLUMN

COLUMN_NUMBER = 1

NAME = SCLK_SECONDS

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

UNIT = "SECOND"

DESCRIPTION = "The whole number of seconds recorded by

the spacecraft clock at

the time the measurements were taken."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 2

NAME = SCLK_SUBSECONDS

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 2

UNIT = "SECOND/256"

DESCRIPTION = "The number of subseconds recorded by

the spacecraft clock at

the time the measurements were taken.

A subsecond is 1 / 256th of a second."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 3

NAME = SPARE

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 7

BYTES = 2

DESCRIPTION = "These two bytes are currently unused."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 4

NAME = ROTATION_MOTOR_POSITION

DATA_TYPE = IEEE_REAL

START_BYTE = 9

BYTES = 8

UNIT = "RADIAN"

DESCRIPTION = "The position of the z-axis relative to

its hardstop."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 5

NAME = ROTATION_MOTOR_CURRENT_SENSOR

DATA_TYPE = IEEE_REAL

START_BYTE = 17

BYTES = 8

UNIT = "AMP"

DESCRIPTION = "Rotation motor current."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 6

NAME = REVOLUTION_MOTOR_POSITION

DATA_TYPE = IEEE_REAL

START_BYTE = 25

BYTES = 8

UNIT = "RADIAN"

DESCRIPTION = "The position of the z-axis relative to

its hardstop."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 7

NAME = REVOLUTION_MOTOR_CURRENT_SENSOR

DATA_TYPE = IEEE_REAL

START_BYTE = 33

BYTES = 8

UNIT = "AMP"

DESCRIPTION = "Revolution motor current."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 8

NAME = Z_MOTOR_POSITION

DATA_TYPE = IEEE_REAL

START_BYTE = 41

BYTES = 8

UNIT = "MM"

DESCRIPTION = "The position of the z-axis relative to

its hardstop."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 9

NAME = Z_MOTOR_CURRENT_SENSOR

DATA_TYPE = IEEE_REAL

START_BYTE = 49

BYTES = 8

UNIT = "AMP"

DESCRIPTION = "A-axis motor current."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 10

NAME = TEMPERATURE_SENSOR

DATA_TYPE = IEEE_REAL

START_BYTE = 57

BYTES = 8

UNIT = "DEGREE CELSIUS"

DESCRIPTION = "Temperature reading from RAT PRT."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 11

NAME = BUTTERFLY_SWITCH_1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 65

BYTES = 4

UNIT = "COUNT"

DESCRIPTION = "Cumulative state word for butterfly

switch #1 - add 1 if the switch is in

the incorrect state, add 0 if the switch

is in the correct state, updated at 8Hz."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 12

NAME = BUTTERFLY_SWITCH_2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 69

BYTES = 4

UNIT = "COUNT"

DESCRIPTION = "Cumulative state word for butterfly

switch #2 - add 1 if the switch is in

the incorrect state, add 0 if the switch

is in the correct state. Updated at 8Hz."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 13

NAME = RAT_OVER_CURRENT_ALARM

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 73

BYTES = 4

UNIT = "COUNT"

DESCRIPTION = "Cumulative state word for rotate motor

Over current alarm - add 1 if over

threshold, add 0 if not. Updated at 8Hz."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 14

NAME = Z_AXIS_MOTOR_CONTROLLER_STATUS

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 77

BYTES = 1

DESCRIPTION = "Z-Axis motor controller bit status.

BIT 0=motor controller active
BIT 1=motor turning
BIT 2=motor not keeping up with

commanded profile
BIT 3=motor stalled
BIT 4=motor H-bridge over temperature
BIT 5=motor controller enable
BIT 6=motor reached commanded position
BIT 7=awaiting Mini-TES sync pulse

(should always be 0 for RAT)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 15

NAME = REVOLVE_MOTOR_CONTROLLER_STATUS

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 78

BYTES = 1

DESCRIPTION = "Revolve motor controller bit status.

BIT 0=motor controller active
BIT 1=motor turning
BIT 2=motor not keeping up with

commanded profile
BIT 3=motor stalled
BIT 4=motor H-bridge over temperature
BIT 5=motor controller enable
BIT 6=motor reached commanded position
BIT 7=awaiting Mini-TES sync pulse

(should always be 0 for RAT)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 16

NAME = GRIND_MOTOR_CONTROLLER_STATUS

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 79

BYTES = 1

DESCRIPTION = "Grind motor controller bit status.

BIT 0=motor controller active
BIT 1=motor turning
BIT 2=motor not keeping up with

commanded profile
BIT 3=motor stalled
BIT 4=motor H-bridge over temperature
BIT 5=motor controller enable
BIT 6=motor reached commanded position
BIT 7=awaiting Mini-TES sync pulse

(should always be 0 for RAT)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 17

NAME = SPARE

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 80

BYTES = 1

DESCRIPTION = "Spare field used for padding."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 18

NAME = ROVER_BUS_VOLTAGE

DATA_TYPE = IEEE_REAL

START_BYTE = 81

BYTES = 8

UNIT = "VOLT"

DESCRIPTION = "Rover bus voltage."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 19

NAME = ALGORITHM_STATE

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 89

BYTES = 4

UNIT = "N/A"

DESCRIPTION = "Describes the current state of the RAT.
Valid values are:

0=INACTIVE

1=AWAITING_INACTIVE

2=DEACTIVATING

3=IDLE

4=AWAITING_IDLE

5=STOPPING

6=DIAG_REQUESTING

7=DIAG_CALIBRATING

8=DIAG_HOMING

9=DIAG_COLLECTING_CURRENT

10=DIAG_COLLECTING_VOLTAGE

11=CAL_REQUESTING

12=CAL_CALIBRATING

13=CAL_HOMING

14=CAL_COLLECTING_CURRENT

15=CAL_COLLECTING_VOLTAGE

16=SEEK_SEEKING_REQUESTING

17=SEEK_SEEKING

18=SCAN_Z_STEPPING

19=SCAN_REVOLVING

20=GRIND_REQUESTING

21=GRIND_GRINDING

22=GRIND_Z_RETRACTING

23=GRIND_Z_EXTENDING

24=GRIND_DWELLING

25=BRUSH_REQUESTING

26=BRUSH_CALIBRATING

27=BRUSH_MOVING_Z

28=BRUSH_BRUSHING

29=MOVE_REQUESTING

30=MOVE_MOVING

31=HOMING

32=NO_FAULT

33=GRIND_DUMPING_DP

34=GRIND_RESUMING"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 20

NAME = ANOMALY_FLAG

DATA_TYPE = MSB_BIT_STRING

START_BYTE = 93

BYTES = 4

UNIT = "N/A"

DESCRIPTION = "Describes the fault protection condition

that may have ended the current command

and produced an anomaly report. This is a

bit mask where 1=TRUE, 0= FALSE for these

bit fields:
BIT 0 = HBRIDGE_Z

BIT 1 = HBRIDGE_REV

BIT 2 = HBRIDGE_ROT

BIT 3 = OVERHEAT_Z

BIT 4 = OVERHEAT_REV

BIT 5 = OVERHEAT_ROT

BIT 6 = CSTALL_Z

BIT 7 = CSTALL_REV

BIT 8 = CSTALL_ROT

BIT 9 = STALL_Z

BIT 10 = STALL_REV

BIT 11 = STALL_ROT

BIT 12 = POS_Z

BIT 13 = CMAX_Z

BIT 14 = CMAX_REV

BIT 15 = CMAX_ROT

BIT 16 = CONTACT

BIT 17 = COMMAND_QUIT

BIT 18 = MAXCUR - Motor Current exceeded

maxcur argument.

BIT 19 = ANOMALY_NOW - An anomaly has

occurred in this sample.

BIT 20 = ENCODER_STALL_ROT - encoder stall

on the rotate motor"

END_OBJECT = COLUMN

END_OBJECT = TABLE

END


Appendix B - PDS LABEL KEYWORDS

Keyword Name

Definition

Type

Units

Valid Values

· Location in PDS Label

· Source

ANGULAR_DISTANCE

Radians to revolve.

For MER,

a) This is the radians around the revolve axis before the scan portion of the command completes.

b) Radians to revolve before moving the z-axis down one step when grinding or radians to revolved when dwelling.

Float array of one or more

angle in radians

-3.4e38 to +3.4e38

LOCATION

a) SEEK_SCAN_REQUEST_PARMS (group)

b) GRIND_REQUEST_PARMS (group)

SOURCE

a) IDPH:rat_ss_revrad

b) IDPH:rat_grd_revrad

IDPH: rat_grd_dwlrad

ANGULAR_DISTANCE_NAME

Radians to revolve before grind completes. Radians to revolve before moving the z-axis down one step. This angle is likely to be a full revolution.

String array[2]

("GRIND COMPLETION", "DWELL COMPLETION")

LOCATION

GRIND_REQUEST_PARMS (group)

SOURCE

Static Value

ANGULAR_VELOCITY

Provides the angular velocity of an instrument component or period of instrument command. (Needs work)

For MER, this is the angular velocity for the revolve axis.

Float

angular velocity in rad/sec

-3.4e38 to +3.4e38

LOCATION

a) DIAGNOSTICS_CAL_REQUEST_PARMS (group)

b) GRIND_REQUEST_REQUEST_PARMS (group)

c) BRUSH_REQUEST_PARMS (group)

SOURCE

a) IDPH:rat_dc_revel

b) IDPH:rat_grd_dwlvel

c) IDPH:rat_bsh_evel

APPLICATION_PROCESS_ID

Identifies the source/process which created the data.

integer

(see APPLICATION_PROCESS_NAME)

LOCATION

TELEMETRY (Class)

SOURCE

CCSDS:Primary:APID

APPLICATION_PROCESS_NAME

Provides the name associated with the source/process which created the data.

Note: For Mars Pathfinder, the queues were distinguished on the basis of type and priority of data.

string (256)

APID NAME

21 "PANCAM LEFT"

22 "PANCAM RIGHT"

23 "NAVCAM LEFT"

24 "NAVCAM RIGHT"

25 "HAZCAM LEFT

FRONT"

26 "HAZCAM RIGHT

FRONT"

27 "HAZCAM LEFT

REAR"

28 "HAZCAM RIGHT

REAR"

29 "MI"

30 "DESCENT

IMAGER"

31 "MINITES"

32 "APXS"

33 "MB"

34 "RAT"

LOCATION

TELEMETRY (Class)

SOURCE

Table Lookup

CCSDS:Primary:APID

APPLICATION_PROCESS_SUBTYPE_ID

Identifies the source/subprocess which created the data.

integer

SUBTYPE DESCRIPTION

0 RAT

Parameters

1 RAT Detailed

Report

2 RAT Anomaly

Report

LOCATION

TELEMETRY (Class)

SOURCE

CCSDS:Primary:subtype

ARTICULATION_DEVICE_ANGLE

Provides the value of an angle between two parts or segments of an articulated device.

Note: MER uses radians. The PDS default unit for this keyword is degrees, so the <rad> tag is required for MER data.

float array[10]

radians

(<rad> unit tag required)

LOCATION

a)START_CHASIS_ARTICULATION_STATE (Group)

b) STOP_CHASIS_ARTICULATION_STATE (Group)

c) START_HGA_ARTICULATION_STATE (Group)

d) STOP_HGA_ARTICULATION_STATE (Group)

e) START_IDD_ARTICULATION_STATE (Group)

f) STOP_IDD_ARTICULATION_STATE (Group)

g) START_PMA_ARTICULATION_STATE (Group)

h) STOP_PMA_ARTICULATION_STATE (Group)

SOURCE

Group Dependent

a) IDPH:begin->fleft_pot, fright_pot, rleft_pot, rright_pot, bogl_pot, bogr_pot, bog_diff_pot;

b) IDPH:end-> fleft_pot, fright_pot, rleft_pot, rright_pot, bogl_pot, bogr_pot, bog_diff_pot;

c) IDPH:begin-> hga_gimbals.azimuth, hga_gimbals.elevation

c) IDPH:end-> hga_gimbals.azimuth, hga_gimbals.elevation

d) IDPH:end-> idd.q_enc[5]

IDPH:end->idd.q_pot[5]

a) IDPH:begin-> pma_cam_gimbals.mast_angle, pma_cam_gimbals.cambar_angle

f) IDPH:end-> pma_cam_gimbals.mast_angle, pma_cam_gimbals.cambar_angle

ARTICULATION_DEVICE_ANGLE_NAME

Provides the formal name which identifies each of the values used in ARTICULATION_DEVICE_ANGLE.

string array[10]

CHASSIS

("LEFT FRONT WHEEL POTENTIOMETER", "RIGHT FRONT WHEEL POTENTIOMETER", "LEFT REAR WHEEL POTENTIOMETER", "RIGHT REAR WHEEL POTENTIOMETER", "LEFT BOGIE POTENTIOMETER", "RIGHT BOGIE POTENTIOMETER", "DIFFERENTIAL BOGIE POTENTIOMETER")

HGA

("AZIMUTH", "ELEVATION")

IDD

("JOINT 1 AZIMUTH-ENCODER", "JOINT 2 ELEVATION-ENCODER", "JOINT 3 ELBOW-ENCODER", "JOINT 4 WRIST-ENCODER", "JOINT 5 TURRET-ENCODER", "JOINT 1 AZIMUTH-POTENTIOMETER", "JOINT 2 ELEVATION-POTENTIOMETER", "JOINT 3 ELBOW-POTENTIOMETER", "JOINT 4 WRIST-POTENTIOMETER", "JOINT 5 TURRET-POTENTIOMETER")

PMA

("MAST", "CAMBAR")

LOCATION

a)START_CHASIS_ARTICULATION_STATE (Group)

b) STOP_CHASIS_ARTICULATION_STATE (Group)

c) START_HGA_ARTICULATION_STATE (Group)

d) STOP_HGA_ARTICULATION_STATE (Group)

e) START_IDD_ARTICULATION_STATE (Group)

f) STOP_IDD_ARTICULATION_STATE (Group)

g) START_PMA_ARTICULATION_STATE (Group)

h) STOP_PMA_ARTICULATION_STATE (Group)

SOURCE

Static Values

ARTICULATION_DEVICE_ID

Specifies the unique abbreviated ID of the articulation device described by the containing group. An articulation device is anything that can move independently of the spacecraft to which it is attached, e.g. mast heads, wheel bogies, arms, etc.

string

"CHASSIS", "HGA", "IDD", "PMA"

LOCATION

a)START_CHASIS_ARTICULATION_STATE (Group)

b) STOP_CHASIS_ARTICULATION_STATE (Group)

c) START_HGA_ARTICULATION_STATE (Group)

d) STOP_HGA_ARTICULATION_STATE (Group)

e) START_IDD_ARTICULATION_STATE (Group)

f) STOP_IDD_ARTICULATION_STATE (Group)

g) START_PMA_ARTICULATION_STATE (Group)

h) STOP_PMA_ARTICULATION_STATE (Group)

SOURCE

Static Values

ARTICULATION_DEVICE_MODE

Indicates the deployment state (i.e., physical configuration) of an articulation device at the time of data acquisition.

For MER, this is the mode of the last move:

"FREE SPACE" - IDD arm was moved where there was no contact with a target expected.

"GUARDED" - IDD arm was moved where contact with the target was expected.

"RETRACTING" - IDD arm was moved where an instrument is removed from a target.

'PRELOAD" - IDD arm stays in contact with the target and applies force or overtravel on an instrument.

String

IDD

0="FREE SPACE",

1="GUARDED",

2="RETRACTING",

3="PRELOAD"

PMA

0="STOWED"

1="DEPLOYED"

LOCATION

a) START_IDD_ARTICULATION_STATE (Group)

b) STOP_IDD_ARTICULATION_STATE (Group)

c) START_PMA_ARTICULATION_STATE (Group)

d) STOP_PMA_ARTICULATION_STATE (Group)

SOURCE

Group Dependent; Table Lookup

a) IDPH:begin->idd.idd_mode

b) IDPH:end->idd.idd_mode

c) IDPH:begin->pma_deploy

d) IDPH:end->pma_deploy

ARTICULATION_DEVICE_NAME

Specifies the common name of the articulation device described by the containing group.

Note: The associated ARTICULATION_DEVICE_ID element

provides an abbreviated name or acronym for the articulated device.

String

"MOBILITY CHASSIS", "HIGH GAIN ANTENNA", "INSTRUMENT DEPLOYMENT DEVICE", "PANCAM MAST ASSEMBLY"

LOCATION

a)START_CHASIS_ARTICULATION_STATE (Group)

b) STOP_CHASIS_ARTICULATION_STATE (Group)

c) START_HGA_ARTICULATION_STATE (Group)

d) STOP_HGA_ARTICULATION_STATE (Group)

e) START_IDD_ARTICULATION_STATE (Group)

f) STOP_IDD_ARTICULATION_STATE (Group)

g) START_PMA_ARTICULATION_STATE (Group)

h) STOP_PMA_ARTICULATION_STATE (Group)

SOURCE

Static Value

ARTICULATION_DEVICE_TEMP

Provides the temperature, in degrees Celsius, of an articulated device or some part of an articulated device.

Float array[2]

deg C

(<degC> unit tag required)

-3.4e38 to 3.4e38

LOCATION

a) START_IDD_ARTICULATION_STATE (Group)

b) STOP_IDD_ARTICULATION_STATE (Group)

SOURCE

a) IDPH:begin->idd.temp[2]

b) IDPH:end->idd.temp[2]

ARTICULATION_DEVICE_TEMP_NAME

An array of the formal names identifying each of the values used in ARTICULATION_DEVICE_TEMP.

string array[2]

("AZIMUTH JOINT 1", "TURRET JOINT 5")

LOCATION

a) START_IDD_ARTICULATION_STATE (Group)

b) STOP_IDD_ARTICULATION_STATE (Group)

SOURCE

a) Static Value

b) Static Value

ARTICULATION_DEV_INSTRUMENT_ID

Provides an abbreviated name or acronym which identifies an instrument mounted on the articulation device.

string(12)

IDD

0 = "MI"

1 = "RAT"

2 = "MB"

3 = "APXS"

LOCATION

a) START_IDD_ARTICULATION_STATE (Group)

b) STOP_IDD_ARTICULATION_STATE (Group)

SOURCE

Table Lookup;

a) IDPH:bgn->idd.instrument

b) IDPH:end->idd.instrument

ARTICULATION_DEV_VECTOR

Provides the direction and magnitude of an external force acting on the articulation device, in the rover's coordinate system at the time the pose was computed.

Float array[3]

LOCATION

a) START_IDD_ARTICULATION_STATE (Group)

b) STOP_IDD_ARTICULATION_STATE (Group)

SOURCE

a) IDPH:begin->idd.tilt[3]

b) IDPH:end->idd.tilt[3]

ARTICULATION_DEV_VECTOR_NAME

Provides the formal name of the vector type of the articulation device.

String

"GRAVITY"

LOCATION

a) START_IDD_ARTICULATION_STATE (Group)

b) STOP_IDD_ARTICULATION_STATE (Group)

SOURCE

Static Value

CLEARANCE_DISTANCE

Z-axis backoff distance for dwell operation after grind to clear the rat hole of dust.

Float

length in mm

-3.4e38 to +3.4e38

LOCATION

GRIND_REQUEST_PARMS (Group)

SOURCE

IDPH:rat_grd_dwlbck

COMMAND_OPCODE

The command_opcode element provides the opcode of the command that created the instrument data product..

integer

LOCATION

RAT_REQUEST_PARMS (Group)

SOURCE

IDPH:rat_cmd_opcode

COMMAND_SEQUENCE_NUMBER

Provides a numeric identifier for a sequence of commands sent to a spacecraft or instrument.

Note: For MER, this is the command number which identifies the specific generating command within the specified sequence.

Integer

LOCATION

IDENTIFICATION (Class)

SOURCE

UPTH:ProdCmndId; Command Number

CONTACT_SENSOR_STATE

An array of identifiers for the state of an instrument's or instrument host's contact sensors at a specified time.

For MER, "CONTACT" or "NO CONTACT" for most values. For the value corresponding to APXS DOOR SWITCH (entry 7), values are "OPEN" or "CLOSED".

String array[8]

0="NO CONTACT" or

"CLOSED"

1="CONTACT" or "OPEN"

"CONTACT" or "NO CONTACT" for all array positions except for position 7, which would be "OPEN" or "CLOSED"

LOCATION

a) START_IDD_ARTICULATION_STATE (Group)

b) STOP_IDD_ARTICULATION_STATE (Group)

SOURCE

Lookup Table

a) IDPH:begin->idd.contact (bit map)

b) IDPH:end->idd.contact (bit map)

CONTACT_SENSOR_STATE_NAME

An array of the formal names identifying each of the values used in CONTACT_SENSOR_STATE.

String array[8]

("MI SWITCH 1", "MI SWITCH 2", "RAT SWITCH 1", "RAT SWITCH 2", "MB SWITCH 1", "MB SWITCH 2", "APXS DOOR SWITCH", "APXS CONTACT SWITCH")

LOCATION

a) START_IDD_ARTICULATION_STATE (Group)

b) STOP_IDD_ARTICULATION_STATE (Group)

SOURCE

Static Value

COORDINATE_SYSTEM_INDEX

Instance of the coordinate frame in which the values herein are expressed. This is a group of integers that can be used to record and track the movement of a rover during surface operations.

When in a COORDINATE_SYSTEM_STATE group, this keyword identifies which instance of the coordinate frame named by COORDINATE_SYSTEM_NAME is being defined by the group. This index is a set of integers which serve to identify coordinate system instances in a mission-specific manner.

For MER, the indices are based on the ROVER_MOTION_COUNTER. This counter

is incremented each time the rover moves (or may potentially have moved, e.g. due to arm motion). The full counter may have up to 5 values (SITE, DRIVE, IDD, PMA, HGA), but normally only the first value (for SITE

frames) or the five values (for LOCAL_LEVEL or ROVER frames) are

used for defining coordinate system instances. It is legal to use any number of indices to describe a coordinate system instance, however.

Example: COORDINATE_SYSTEM_INDEX = (1,3,2,3,2)

integer array[5]

LOCATION

a) START_ROVER_COORDINATE_SYSTEM (Group)

b) STOP_ROVER_COORDINATE_SYSTEM (Group)

c) START_IDD_COORDINATE_SYSTEM (Group)

d) STOP_IDD_COORDINATE_SYSTEM (Group)

e) START_PMA_COORDINATE_SYSTEM (Group)

f) STOP_PMA_COORDINATE_SYSTEM (Group)

SOURCE

Calculated from

a, c, e) IDPH:begin->rmc[5] and COORDINATE_SYSTEM_NAME

b, d, f) IDPH:end->rmc[5] and COORDINATE_SYSTEM_NAME

Use all 5 elements except if the COORDINAE_SYSTEM_NAME = SITE_FRAME, then only use the first element.

COORDINATE_SYSTEM_INDEX_NAME

An array of the formal names identifying each integer specified in COORDINATE_SYSTEM_INDEX.

String array[5]

("SITE", "DRIVE", "IDD", "PMA", "HGA")

LOCATION

a) START_ROVER_COORDINATE_SYSTEM (Group)

b) STOP_ROVER_COORDINATE_SYSTEM (Group)

c) START_IDD_COORDINATE_SYSTEM (Group)

d) STOP_IDD_COORDINATE_SYSTEM (Group)

e) START_PMA_COORDINATE_SYSTEM (Group)

f) STOP_PMA_COORDINATE_SYSTEM (Group)

SOURCE

Static Value; Group dependent

Should match the number of values in the COORDINATE_SYSTEM_INDEX

COORDINATE_SYSTEM_NAME

Provides the full name of the coordinate system to which the state vectors are referenced.

When in a COORDINATE_SYSTEM_STATE group, this keyword provides the full name of the coordinate system being defined by the group. The rest of the keywords in the group describe how this coordinate system is related to some other (the "reference"). Non-unique coordinate systems (such as "SITE" for rover missions), which have multiple instances using the same name, also require COORDINATE_SYSTEM_INDEX to completely identify the coordinate system.

string(30)

"ROVER_FRAME", "SITE_FRAME", "MAST_FRAME", "LOCAL_LEVEL_FRAME",

IDD only:

0="APXS_FRAME", 1="MB_FRAME", 2="MI_FRAME", 3="RAT_FRAME",

LOCATION

a) START_ROVER_COORDINATE_SYSTEM (Group)

b) STOP_ROVER_COORDINATE_SYSTEM (Group)

c) START_IDD_COORDINATE_SYSTEM (Group)

d) STOP_IDD_COORDINATE_SYSTEM (Group)

e) START_PMA_COORDINATE_SYSTEM (Group)

f) STOP_PMA_COORDINATE_SYSTEM (Group)

SOURCE

a) ROVER_FRAME

b) ROVER_FRAME

c) One of the IDD only frames based on

IDPH:bgn->idd.instrument

d) One of the IDD only frames based on

IDPH:end->idd.instrument

e) MAST_FRAME

f) MAST_FRAME

DATA_SET_ID

A unique alphanumeric identifier for a data set or a data product. The DATA_SET_ID value for a given data set or product is constructed according to flight project naming conventions. In most cases the DATA_SET_ID is an abbreviation of the DATA_SET_NAME.

Note: In the PDS, the values for both DATA_SET_ID and DATA_SET_NAME are constructed according to standards outlined in the Standards Reference.

string(40)

"MER1-M-RAT-2-EDR-OPS-V1.0", "MER2-M-RAT-2-EDR-OPS-V1.0"

"SIM1-M-RAT-2-EDR-V1.0", "SIM2-M-RAT-2-EDR-V1.0"

LOCATION

IDENTIFICATION (Class)

SOURCE

PDS

Table Lookup

CCSDS:Primary:APID

CHDO-82:scft_id

EARTH_RECEIVED_START_TIME

Provides the beginning time at which telemetry was received during a time period of interest. This should be represented in UTC system format.

Datetime

YYYY-MM-DDThh:mm:ss[.fff]

LOCATION

TELEMETRY (Class)

SOURCE

Calculated

CHDO_82:ert

EARTH_RECEIVED_STOP_TIME

Provides the ending time for receiving telemetry during a time period of interest. This should be represented in UTC system format.

Datetime

YYYY-MM-DDThh:mm:ss[.fff]

LOCATION

TELEMETRY (Class)

SOURCE

Calculated

CHDO_82:ert

ERROR_CONDITION

Fault protection conditions to ignore.

string

n/a

0=NONE
1=CONTACT1
2=CONTACT2
3=BOTH

LOCATION

RAT_REQUEST_PARMS (group)

SOURCE

Lookup Table

IDPH:rat_rat_errmsk

ERROR_STATE

RAT error conditions that occurred.

String array[32]

Valid only for anomaly report, else will be zero.

BIT00=DCFPGA_PWR

BIT01=DCFPGA_SEU

BIT02=POS_UNKNOWN_Z

BIT03=MOT_DISABLED_Z

BIT04=

MOT_DISABLED_REV

BIT05=

MOT_DISABLED_ROT

BIT06= ENC_DISABLED_Z

BIT07=

ENC_DISABLED_REV

BIT08=

ENC_DISABLED_ROT

BIT09=BUSY_Z

BIT10=BUSY_REV

BIT11=BUSY_ROT

BIT12=TIMEOUT_Z

BIT13=TIMEOUT_REV

BIT14=TIMEOUT_ROT

BIT15=INITIAL_CONTACT

BIT16=CONTACT_CHANGE

BIT17=SEEK_SCAN_FAIL

BIT18=GRIND

BIT19=RETRACT_Z

BIT20=

IS_ANOMALY_REPORT

LOCATION

RAT_REQUEST_PARMS (group)

SOURCE

Lookup Table and list only values that are true. PDS standards are to place these unordered values in curly braces, {} represents the empty set.

IDPH:rat_error

EXPECTED_PACKETS

Provides the total number of telemetry packets which constitute a complete data product, i.e., a data product without missing data.

For MER, "Packets" are also referred to as "Parts".

Integer

LOCATION

TELEMETRY (Class)

SOURCE

UPTH:TotalParts

FILE_RECORDS

Indicates the number of physical file records, including both label records and data records. Note: In the PDS the use of FILE_RECORDS along with other file-related data elements is fully described in the Standards Reference.

Integer

TBD

LOCATION

FILE DATA ELEMENT (Class)

SOURCE

Static Value

INSTRUMENT_HOST_ID

Provides a unique identifier for the host where an instrument is located. This host can be either a spacecraft or an earth base (e.g., and observatory or laboratory on the earth). Thus, INSTRUMENT_HOST_ID can contain values which are either SPACECRAFT_ID values or EARTH_BASE_ID values.

String(6)

SCID Keyword Values

252 "MER1"

253 "MER2"

254 "SIM1"

255 "SIM2"

LOCATION

IDENTIFICATION (Class)

SOURCE

Table Lookup

CHDO_82:scft_id

INSTRUMENT_HOST_NAME

Provides the full name of the host on which an instrument is based. This host can be either a spacecraft or an earth base. Thus, the INSTRUMENT_HOST_NAME element can contain values which are either SPACECRAFT_NAME values or EARTH_BASE_NAME values.

Note that mosaics may contain more than one value in an array.

String

"MARS EXPLORATION ROVER 1"

"MARS EXPLORATION ROVER 2"

"SIMULATED MARS EXPLORATION ROVER 1"

"SIMULATED MARS EXPLORATION ROVER 2"

LOCATION

IDENTIFICATION (Class)

SOURCE

Table Lookup

CHDO_82:scft_id

INSTRUMENT_ID

Provides an abbreviated name or acronym which identifies an instrument.

Note: INSTRUMENT_ID is not a unique identifier for a given instrument. Note also that the associated INSTRUMENT_NAME element provides the full name of the instrument.

Example values: IRTM (for Viking Infrared Thermal Mapper), PWS (for plasma wave spectrometer).

string(12)

29 = "MI"

32 = "APXS"

33 = "MB"

34 = "RAT"

LOCATION

IDENTIFICATION (Class)

SOURCE

Table Lookup; CCSDS:Primary:APID

INSTRUMENT_TYPE

Identifies the type of an instrument.

Example values: POLARIMETER, RADIOMETER, REFLECTANCE SPECTROMETER, VIDICON CAMERA.

Note that mosaics may contain more than one value in an array.

String

"DRILL"

LOCATION

IDENTIFICATION (Class)

SOURCE

Static Value

LABEL_RECORDS

Indicates the number of physical file records that contain only (PDS) label information. The number of data records in a file is determined by subtracting the value of label_records form the value of file_records.

Note: In the PDS, the use of label_records along with other file-related data elements is fully described in the Standards Reference.

Integer

0 to n

LOCATION

FILE DATA ELEMENT (Class)

SOURCE

Calculated by size of PDS label.

LOCAL_TRUE_SOLAR_TIME

Local true solar time, or LTST, is one of two types of solar time used to express the time of day at a point on the surface of a planetary body. LTST is measured relative to the true position of the Sun as seen from a point on the planet' s surface.

The coordinate system used to define LTST has its origin at the center of the planet. Its Z- axis is the north pole vector (or spin axis) of the planet. The X- axis is chosen to point in the direction of the vernal equinox of the planet' s orbit. (The vernal or autumnal equinox vectors are found by searching the planetary ephemeris for those times when the vector from the planet' s center to the Sun is perpendicular to the planet' s north pole vector. The vernal equinox is the time when the Sun appears to rise above the planet' s equator. )

Positions of points in this frame can be expressed as a radius and areocentric ' right ascension' and ' declination' angles. The areocentric right ascension angle, or ARA, is measured positive eastward in the equatorial plane from the vernal equinox vector to the intersection of the meridian containing the point with the equator. Similarly, the areocentric declination is the angle between the equatorial plane and the vector to the point. LTST is a function of the difference between the ARAs of the vectors to the Sun and to the point on the planet' s surface.

Specifically,

LTST = ( a( P) - a( TS) ) * ( 24 / 360) + 12

where, LTST = the local true solar time

in true solar hours

a( P) = ARA of the point on

the planet' s surface in

deg

a( TS) = ARA of the true sun in

deg

string(12)

NOTE: Value will be

uncalibrated if SPICE kernels

are unavailable.

LOCATION

•IDENTIFICATION ( Class)

SOURCE

•Calculation:

-IDPH:begin->sctime.seconds

IDPH:begin->sctime.subseconds

- SCLK Kernel

- Landing- Site kernel

- P Kernel

MAXIMUM_ANGULAR_VELOCITY

Maximum revolve velocity output of torque controller for the scan and grind portion of the command.

float

angular velocity in rad/sec

(<rad/sec> unit tag required)

-3.4e38 to +3.4e38

LOCATION

a) SEEK_SCAN_REQUEST_PARMS (group)

b) GRIND_REQUEST_PARMS (group)

SOURCE

a) IDPH:rat_ss_kmax

b) IDPH:rat_grd_kmax

MAXIMUM_CURRENT_PERSISTENCE

Persistence of the maximum current.

Integer

0-480

LOCATION

RAT_REQUEST_PARMS (group)

SOURCE

IDPH:rat_rat_mperst

MAXIMUM_TRAVEL_DISTANCE

The maximum_length element supplies the maximum number of units associated with the representation of the data element.

For MER, this is the maximum allowable travel distance (relative to the lower hardstop) along the z-axis for all MER RAT operations.

float

length in mm

(<mm> unit tag required)

-3.4e38 to +3.4e38

LOCATION

RAT_REQUEST_PARMS (group)

SOURCE

IDPH:rat_rat_ztravl

MISSION_NAME

Identifies a major planetary mission or project. A given planetary mission may be associated with one or more spacecraft.

Note that mosaics may contain more than one value in an array.

string

"MARS EXPLORATION ROVER"

LOCATION

IDENTIFICATION (Class)

SOURCE

Static Value

MISSION_PHASE_NAME

Provides the commonly-used identifier of a mission phase.

string(30)

"CRUISE", "EXTENDED MISSION", "PRIMARY MISSION", "ATLO", "ORT1", "ORT2", "TBD"

LOCATION

IDENTIFICATION (Class)

SOURCE

Operator Supplied Parameter

OBSERVATION_ID

Uniquely identifies a scientific observation

within a data set. It is set via the data product context ID - which doesn't necessarily map to a specific object - it's just used to group various instrument data sets together via a common keyword.

string

LOCATION

IDENTIFICATION (Class)

SOURCE

IPDH:context_id

ORIGIN_OFFSET_VECTOR

Specifies the offset from the reference coordinate system's origin to the origin of the coordinate system being defined by

the enclosing COORDINATE_SYSTEM_STATE group. In other words, it is the location of the current system's origin as measured in the reference

system.

For MER, here is an example:

In the case of the PMA_COORDINATE_SYSTEM group, ORIGIN_OFFSET_VECTOR describes the rotation of the PMA (camera head) boresight (about the ORIGIN_OFFSET_VECTOR) relative to the Rover frame.

float array[3]

meters

LOCATION

a) START_ROVER_COORDINATE_SYSTEM (Group)

b) STOP_ROVER_COORDINATE_SYSTEM (Group)

c) START_IDD_COORDINATE_SYSTEM (Group)

d) STOP_IDD_COORDINATE_SYSTEM (Group)

e) START_PMA_COORDINATE_SYSTEM (Group)

f) STOP_PMA_COORDINATE_SYSTEM (Group)

SOURCE

a) IDPH:begin->pos.v[3]

b) IDPH:end->pos.v[3]

c) IDPH:begin->idd.pos[3]

d) IDPH:end->idd.pos[3

e) IDPH:begin->pma_pos.v[3]

f) IDPH:end->pma_pos.v[3]

ORIGIN_ROTATION_QUATERNION

Provides an array of four values that

specifies the rotation of the coordinate system being defined by the enclosing COORDINATE_SYSTEM_STATE group, relative to the reference system. Mathematically this can be expressed as follows:

Given a vector expressed in the current frame, multiplication by this quaternion will give the same vector as expressed in the reference frame.

Quaternions are expressed as a set of four numbers in the order

(s, v1, v2, v3),

where

s = cos(theta/2)

v(n) = sin(theta/2)*a(n).

theta = the angle of rotation

a = the (x,y,z) vector around

which the rotation occurs.

For MER, the value for ORIGIN_ROTATION_QUATERNION that defines a coordinate frame like Rover frame is computed with respect to only the orientations of the frame's axes… regardless of whether POSITVE_ELEVATION_DIRECTION is declared to be "UP" or "DOWN"

For MER, here is an example:

In the case of the PMA_COORDINATE_SYSTEM group, ORIGIN_OFFSET_VECTOR describes the rotation of the PMA (camera head) boresight (about the ORIGIN_OFFSET_VECTOR) relative to the Rover frame.

float array[4]

LOCATION

a) START_ROVER_COORDINATE_SYSTEM (Group)

b) STOP_ROVER_COORDINATE_SYSTEM (Group)

c) START_IDD_COORDINATE_SYSTEM (Group)

d) STOP_IDD_COORDINATE_SYSTEM (Group)

e) START_PMA_COORDINATE_SYSTEM (Group)

f) STOP_PMA_COORDINATE_SYSTEM (Group)

SOURCE

a) IDPH:begin->quat.q[4]

b) IDPH:end->quat.q[4]

c) IDPH:begin->idd.quaternion[4]

d) IDPH:end->idd.quaternion[4]

e) IDPH:begin->pma_quat.q[4]

c) IDPH:end->pma_quat.q[4]

For all of the above, the quaternion is received in the order (v1, v2, v3, s)

PACKET_MAP_MASK

A binary or hexadecimal number identifying which of a data file's expected packets were actually received. The digits correspond positionally with the relative packet numbers of the data file. The bits are to be read left to right; i.e., the first (left-most) digit of the number corresponds to the first packet of the data file. A bit value of 1 indicates that the packet was received; a value of 0 indicates that it was not received.

The number is stored in the PDS radix notation of <radix>#<value>#.

non-decimal

LOCATION

TELEMETRY (Class)

SOURCE

Calculated

UPDTH:PartNumber

PDS_VERSION_ID

Represents the version number of the PDS standards document that is valid when a data product label is created. Values for the PDS_version_id are formed by appending the integer for the latest version number to the letters 'PDS'.

Examples: PDS3, PDS4.

string(6)

"PDS3"

LOCATION

PDS required

SOURCE

PDS

PLANET_DAY_NUMBER

Indicates the number of sidereal days (rotation of 360 degrees) elapsed since a reference day (e.g., the day on which a landing vehicle set down). Days are measured in rotations of the planet in question from the reference day (which is day zero).

integer

NOTE = Value will be uncalibrated if SPICE kernels are not available.

LOCATION

IDENTIFICATION (Class)

SOURCE

Calculated

-IDPH:begin->sctime.seconds

IDPH:begin->sctime.subseconds

SCLK kernel

POSITIVE_AZIMUTH_DIRECTION

Provides the direction in which azimuth is measured in positive degrees for an observer on the surface of a body. The azimuth is measured with respect to the elevational reference plane. A value of CLOCKWISE indicates that Azimuth is measured positively Clockwise, and COUNTERCLOCKWISE indicates that Azimuth increases positively Counter-clockwise.

string

"CLOCKWISE", "COUNTERCLOCKWISE"

LOCATION

a) START_ROVER_COORDINATE_SYSTEM (Group)

b) STOP_ROVER_COORDINATE_SYSTEM (Group)

c) START_IDD_COORDINATE_SYSTEM (Group)

d) STOP_IDD_COORDINATE_SYSTEM (Group)

e) START_PMA_COORDINATE_SYSTEM (Group)

f) STOP_PMA_COORDINATE_SYSTEM (Group)

SOURCE

Static Value

POSITIVE_ELEVATION_DIRECTION

Provides the direction in which elevation is measured in positive degrees for an observer on the surface of a body. The elevation is measured with respect to the azimuthal reference plane. A value of UP indicates that elevation is measured positively upwards, i.e., the zenith point would be at +90 degrees and the nadir point at -90 degrees. DOWN indicates that the elevation is measured positively downwards; the zenith point would be at -90 degrees and the nadir point at +90 degrees.

For MER, which follows the Mars Pathfinder convention, increasing elevation ("UP") moves towards the negative Z axis.

string

"UP", "DOWN"

LOCATION

a) START_ROVER_COORDINATE_SYSTEM (Group)

b) STOP_ROVER_COORDINATE_SYSTEM (Group)

c) START_IDD_COORDINATE_SYSTEM (Group)

d) STOP_IDD_COORDINATE_SYSTEM (Group)

e) START_PMA_COORDINATE_SYSTEM (Group)

f) STOP_PMA_COORDINATE_SYSTEM (Group)

SOURCE

Static Value

PROCESSING_HISTORY_TEXT

Provides an entry for each processing step and program used in generating a particular data file.

string

"CODMAC LEVEL 1 TO LEVEL 2 CONVERSION VIA JPL/MIPL MERTELEMPROC"

LOCATION

HISTORY (Class)

SOURCE

Static Value

PRODUCER_INSTITUTION_NAME

Identifies a university, research center, NASA center or other institution associated with the production of a data set. This would generally be an institution associated with the element PRODUCER_FULL_NAME.

string(60)

"MULTIMISSION IMAGE PROCESSING SUBSYSTEM, JET PROPULSION LAB"

LOCATION

IDENTIFICATION (Class)

SOURCE

Static Value

PRODUCT_CREATION_TIME

Defines the UTC system format time when a product was created. Formation rule:

YYYY-MM-DDThh:mm:ss[.fff]Z

string

LOCATION

IDENTIFICATION (Class)

SOURCE

Calculated

PRODUCT_ID

Represents a permanent, unique identifier assigned to a data product by its producer. See also: source_product_id.

Note: In the PDS, the value assigned to product_id must be unique within its data set.

Additional note: The product_id can describe the lowest-level data object that has a PDS label.

string(40)

File less the extension.

LOCATION

IDENTIFICATION (Class)

SOURCE

Calculated

PRODUCT_TYPE

The PRODUCT_TYPE data element identifies the type or category of a data product within a data set. Examples: EDR, UDR.

string

"RAT_EDR"

LOCATION

IDENTIFICATION (class)

SOURCE

Static Value

PRODUCT_VERSION_ID

Identifies the version of an individual product within a data set.

PRODUCT_VERSION_ID is intended for use within AMMOS to identify separate iterations of a given product, which will also have a unique FILE_NAME.

For MER, PRODUCT_VERSION_ID includes a Version field that begins with "V" followed by the Version decimal number of the controlling SIS document.

Example: "V2.0 D-22850"

Note: This might not be the same as the data set version that is an element of the DATA_SET_ID value.

string(12)

"V<vernum> D-22850"

LOCATION

IDENTIFICATION (Class)

SOURCE

User Parameter

QUATERNION_MEASUREMENT_METHOD

Specifies the quality of the rover orientation estimate.

"UNKNOWN" - The attitude should simply not be trusted.

This is the initial grade given on Landing, for example.

"TILT_ONLY" - The attitude estimate is only good for tilt determination (2-axis knowledge). Activities which require azimuth knowledge should be careful.

"COARSE" - The attitude estimate is "complete" (it has all three axes) but is crude. This can occur because a sungaze has not yet been performed or because some event (such as traverses or IDD activity) have reduced the quality of the estimate (a.k.a. "ThreeAxisCoarse").

"FINE" - Sungaze completed successfully, and the attitude estimate is sufficient for pointing HGA (a.k.a. "ThreeAxisFine").

string

0 = "UNKNOWN"

1 = "TILT_ONLY"

2 = "COARSE"

3 = "FINE"

LOCATION

a) START_ROVER_COORDINATE_SYSTEM_ (Group)

b) STOP_ROVER_COORDINATE_SYSTEM_ (Group)

SOURCE

Table Lookup

a) IDPH:begin->qual

b) IDPH:end->qual

RECEIVED_PACKETS

Provides the total number of telemetry packets which constitute a reconstructed data product.

integer

LOCATION

TELEMETRY (Class)

SOURCE

Calculated

UPTH:PacketNumber

RECORD_BYTES

Indicates the number of bytes in a physical file record, including record terminators and separators.

Note: In the PDS, the use of record_bytes, along with other file-related data elements is fully described in the Standards Reference.

integer

0 to n

LOCATION

FILE DATA ELEMENT(Class)

SOURCE

Calculated

RECORD_TYPE

Indicates the record format of a file.

Note: In the PDS, when record_type is used in a detached label file it always describes its corresponding detached data file, not the label file itself. The use of record_type along with other file-related data elements is fully described in the PDS Standards Reference.

string(20)

"FIXED_LENGTH"

LOCATION

FILE DATA ELEMENT(Class)

SOURCE

Static Value

REFERENCE_COORD_SYSTEM_INDEX

Identifies which instance of the coordinate system named by

REFERENCE_COORD_SYSTEM_NAME is the reference coordinate system for the group in which the keyword occurs. This index is a set of integers which serve to identify coordinate system instances in a

mission-specific manner.

For MER, the indices are based on the ROVER_MOTION_COUNTER. This counter

is incremented each time the rover moves (or may potentially have moved, e.g. due to arm motion). The full counter may have up to 5 values (SITE, DRIVE, IDD, PMA, HGA), but normally only the first value (for SITE

frames) or the five values (for LOCAL_LEVEL or ROVER frames) are used for defining reference coordinate system instances. It is legal to use any number of indices to describe a reference coordinate system instance, however.

See also REFERENCE_COORD_SYSTEM_NAME and COORDINATE_SYSTEM_INDEX.

integer array[5]

LOCATION

a) START_ROVER_COORDINATE_SYSTEM (Group)

b) STOP_ROVER_COORDINATE_SYSTEM (Group)

c) START_IDD_COORDINATE_SYSTEM (Group)

d) STOP_IDD_COORDINATE_SYSTEM (Group)

e) START_PMA_COORDINATE_SYSTEM (Group)

f) STOP_PMA_COORDINATE_SYSTEM (Group)

SOURCE

Calculated from

a, c, e) IDPH:begin->rmc[5] and REFERENCE_COORD_SYSTEM_NAME

b, d, f) IDPH:end->rmc[5] and REFERENCE_COORD_SYSTEM_NAME

Use all five elements, except if the REFERENCE_COORD_SYSTEM_NAME = SITE_FRAME, then only use the first element.

REFERENCE_COORD_SYSTEM_NAME

Provides the full name of the reference coordinate system for the group in which the keyword occurs. All vectors and positions relating to 3-D space within the enclosing group are expressed using this reference

coordinate system. Non-unique coordinate systems (such as "SITE" for rover missions), which have multiple instances using the same name, also require REFERENCE_COORD_SYSTEM_INDEX to completely identify the reference coordinate system.

For MER, the reference is usually a SITE frame.

string(20)

"ROVER_FRAME", "SITE_FRAME", "MAST_FRAME", " "LOCAL_LEVEL_FRAME"

LOCATION

a) START_ROVER_COORDINATE_SYSTEM (Group)

b) STOP_ROVER_COORDINATE_SYSTEM (Group)

c) START_IDD_COORDINATE_SYSTEM (Group)

d) STOP_IDD_COORDINATE_SYSTEM (Group)

e) START_PMA_COORDINATE_SYSTEM (Group)

f) STOP_PMA_COORDINATE_SYSTEM (Group)

SOURCE

a) "SITE_FRAME"

b) "SITE_FRAME"

c) "ROVER_FRAME"

d) "ROVER_FRAME"

e) "ROVER_FRAME"

f) "ROVER_FRAME"

RELEASE_ID

Unique identifier associated with the release to the public of all or part of a data set. The first release of a data set should have a RELEASE_ID of "0001"

When a data set is released incrementally, such as every three months during a mission, the RELEASE_ID is updated each time part of the data set is released. For each Rover mission, the first release of a data set should have a value of "0001".

For example, the first release of the Pancam EDR data set on MER-1 will be August 3, 2004 (according to the Archive Plan), so those products will have RELEASE_ID = "0001".The next Pancam EDR release will be October 4,2004, so those products will have RELEASE_ID ="0002". The Pancam EDRs from the other rover are a separate data set. Those will be released August 24, 2004 (RELEASE_ID ="0001") and October 25,2004 (RELEASE_ID ="0002").

string

LOCATION

IDENTIFICATION (class)

SOURCE

User Parameter

ROTATION_NOLOAD_CURRENT

Specifies the no load current for the rotation motor of an instrument.

Note: Used for the MER RAT during all operations of the instrument.

float

current in milliamps

-3.4e38 to +3.4e38

LOCATION

RAT_REQUEST_PARMS (group)

SOURCE

IDPH:rat_rat_rotnl

ROTATION_TORQUE_PARAMETER

Identifies the parameter value or goal for the grinding wheel rotation torque controller for the scan operation and the grind operation.

float

torque in mN*m

-3.4e38 to +3.4e38

LOCATION

a) SEEK_SCAN_REQUEST_PARMS (group)

b) GRIND_REQUEST_PARMS (group)

SOURCE

a) IDPH:rat_ss_rotset

b) IDPH:rat_grd_rotset

ROTATION_VOLTAGE

Specifies the open-loop voltage supplied to the instrument rotation motor.

For MER, this is the grinding wheel rotation motor during initialization/diagnostics, seek and scan, grinding, and brushing operations.

Float array of one or more

potential in Volts

-3.4e38 to +3.4e38

LOCATION

a) DIAGNOSTICS_CAL_REQUEST_PARMS (group)

b) SEEK_SCAN_REQUEST_PARMS (group0

c) GRIND_REQUEST_PARMS (group)

d) BRUSH_REQUEST_PARMS (group)

SOURCE

a) IDPH:rat_dc_rotvol

b) IDPH:rat_ss_serotv

IDPH:rat_ss_scrotv

c) IDPH:rat_grd_rotvol

d) IDPH:rat_bsh_rotvol

ROTATION_VOLTAGE_NAME

The formal name of the ROTATION_VOLTAGE when an array of values is supplied

string array[2]

(SEEK, SCAN)

LOCATION

SEEK_SCAN_REQUEST_PARMS (group)

SOURCE

Static Value

ROVER_MOTION_COUNTER

A set of integers which describe a (potentially) unique location (position/orientation) for a rover. Each time something happens that moves, or could potentially move, the rover, a new motion

counter value is created. This includes intentional motion due to drive commands, as well as potential motion due to other articulating devices, such as arms or antennae. This motion counter (or part of it) is used as a reference to define instances of coordinate systems which can move such as SITE or ROVER frames. The motion counter is defined in a mission-specific manner. Although the original intent was to have incrementing indices (e.g. MER), the motion counter could also contain any integer values which conform to the above definition, such as time or spacecraft clock values.

For MER, the motion counter consists of five values. In order, they are Site, Drive, IDD, PMA, and HGA. The Site value increments

whenever a new major Site frame is declared. The Drive value increments

any time intentional driving is done. Each of those resets all later indices to 0 when they increment. The IDD, PMA, and HGA increment whenever the corresponding articulation device moves. It is TBD whether IDD, PMA, and HGA are independent of each other, or reset the others to 0 in a hierarchical manner when they are incremented.

Conceptually, a sixth value could be added by ground processing to indicate unintentional slippage (e.g. the wind blew the rover off a rock). This sixth value will never occur in telemetry but might occur in certain RDR's. (implementation of this is TBD).

integer array[5]

LOCATION

IDENTIFICATION (Class)

SOURCE

IDPH:begin->rmc(5)

ROVER_MOTION_COUNTER_NAME

An array that provides the formal names identifying each integer in

ROVER_MOTION_COUNTER.

string array[5]

("SITE", "DRIVE", "IDD", "PMA", "HGA")

LOCATION

IDENTIFICATION (Class)

SOURCE

Static Value

SAMPLING_PARAMETER_INTERVAL

(PDS DD)

The sampling_parameter_interval element identifies the spacing of points at which data are sampled and at which a value for an instrument or dataset parameter is available. This sampling interval can be either the original (raw) sampling or the result of some resampling process.

For MER, this is the number of RTIs to skip between telemetry samples in the detailed report, for all RAT operations.

unsigned integer

cpu_interval in RTIs

0 to 4294967295

LOCATION

RAT_REQUEST_PARMS (group)

SOURCE

IDPH:rat_rat_tlmskp

SEQUENCE_ID

Provides an identification of the spacecraft sequence associated with the given product. This element replaces the older seq_id, which should no longer be used.

string(30)

LOCATION

IDENTIFICATION (Class)

SOURCE

UPTH:PrdCmdID:SequenceID

SEQUENCE_VERSION_ID

Provides the version identifier for a particular observation sequence used during planning or data processing.

string(30)

LOCATION

IDENTIFICATION (Class)

SOURCE

UPTH:PrdCmdID:SequenceVersion

SOFTWARE_NAME

Identifies data processing software such as a program or a program library.

string(60)

i.e. "MERTELEMPOC"

LOCATION

HISTORY (Class)

SOURCE

User Parameter

SOFTWARE_VERSION_ID

Indicates the version (development level) of a program or a program library.

string(20)

LOCATION

HISTORY (Class)

SOURCE

User Parameter

SPACECRAFT_CLOCK_CNT_PARTITION

Indicates the clock partition active for the SPACECRAFT_CLOCK_START_COUNT and SPACECRAFT_CLOCK_STOP_COUNT elements.

integer

1

LOCATION

IDENTIFICATION (Class)

SOURCE

Static Value

SPACECRAFT_CLOCK_START_COUNT

Provides the value of the spacecraft clock at the beginning of a time period of interest.

Format is dddddddddd.ddd, measured in units of Seconds stored internally as a floating point number.

Note: In the PDS, sclk_start_counts have been represented in the following ways: Voyager - Flight Data Subsystem (FDS) clock count (floating point 7.2) Mariner 9 - Data Automation Subsystem, Mariner 10 - FDS - spacecraft_clock

string(30)

LOCATION

IDENTIFICATION (Class)

SOURCE

IDPH:begin->sctime.seconds

IDPH:begin->sctime.subseconds

Note: It is possible for the sclk to be earlier than the DVT time reported in the data product meta data file and the sclk reported in the data product file name.

SPACECRAFT_CLOCK_STOP_COUNT

Provides the value of the spacecraft clock at the end of a time period of interest.

Format is dddddddddd.ddd, measured in units of Seconds and is stored internally as a floating point number.

string(30)

LOCATION

IDENTIFICATION (Class)

SOURCE

Calculated

IDPH:end->sctime.seconds

IDPH:end->sctime.subseconds

SPICE_FILE_NAME

Provides the names of the SPICE files used in processing the data. For Galileo, the SPICE files are used to determine navigation and lighting information.

string (180)

LOCATION

HISTORY (Class)

SOURCE

User parameter

START_TIME

Provides the date and time of the beginning of an event or observation (whether it be a spacecraft, ground-based, or system event) in UTC system format. Formation rule:

YYYY-MM-DDThh:mm:ss[.fff]

string

LOCATION

IDENTIFICATION (Class)

SOURCE

Calculated

IDPH:begin->sctime.seconds

IDPH:begin->sctime.subseconds

SCLK kernel

STOP_TIME

Provides the date and time of the beginning of an event or observation (whether it be a spacecraft, ground-based, or system event) in UTC system format. Formation rule:

YYYY-MM-DDThh:mm:ss[.fff]

string

LOCATION

IDENTIFICATION (Class)

SOURCE

Calculated

IDPH:end->sctime.seconds

IDPH:end->sctime.subseconds

SCLK kernel

TARGET_NAME

Identifies a target. The target may be a planet, satellite, ring, region, feature, asteroid or comet. See TARGET_TYPE.

string(30)

"MARS", "CALIBRATION"

LOCATION

IDENTIFICATION (Class)

SOURCE

MARS

TARGET_TYPE

Identifies the type of a named target.

string

"CALIBRATION", "DUST", "N/A", "SUN", "PLANET"

LOCATION

IDENTIFICATION (Class)

SOURCE

Static Value - PLANET

TELEMETRY_FORMAT_ID

Telemetry format code

string

SCI (RAT SCIENCE DATA)

LOCATION

TELEMETRY (Class)

SOURCE

Static value

TELEMETRY_PROVIDER_ID

Identifies the provider and version of the telemetry data used in the generation of this data.

string

"SSW MER_DP",

"TTACS"

LOCATION

TELEMETRY (Class)

SOURCE

User Parameter

TELEMETRY_SOURCE_NAME

Identifies the name of the telemetry source used in the creation of this data set.

string

LOCATION

TELEMETRY (Class)

SOURCE

Name of the input data product.

TELEMETRY_SOURCE_TYPE

Classifies the source of the telemetry used in creation of this data set.

string(12)

"SFDU", "DATA PRODUCT"

LOCATION

TELEMETRY (Class)

SOURCE

User Parameter

TIMEOUT_PARAMETER

Identifies the revolve timeout for grinding. If the grinding doesn't complete a full revolution within this time it will determine that it is not making sufficient progress and end the grinding.

unsigned integer

duration in seconds

0 to 4294967295

LOCATION

GRIND_REQUEST_PARMS (group)

SOURCE

IDPH:rat_grd_revtim

TLM_INST_DATA_HEADER_ID

Indicates the version of the instrument specific information provided with telemetry data products. Incremented by FSW whenever there is a change to the header structure.

integer

LOCATION

TELEMETRY (Class)

SOURCE

IDPH:version

TORQUE_CONSTANT

Rotate motor torque constant of an instrument.

float

mN*m/mA

LOCATION

RAT_REQUEST_PARMS (group)

SOURCE

IDPH:rat_rat_rotcst

TORQUE_GAIN

Torque controller proportional gain, derivative gain, integral gain

Float array[3]

(rad/(sec*mN*m), rad/(mN*m), rad*sec/(mN*m))

-3.4e38 to +3.4e38

Provide units with values.

LOCATION

a) SEEK_SCAN_REQUEST_PARMS (group)

b) GRIND_REQUEST_PARMS (Group)

SOURCE

a) IDPH:rat_ss_kp

IDPH:rat_ss_kd

IDPH:rat_ss_ki

b) IDPH:rat_grd_kp

IDPH:rat_grd_kd

IDPH:rat_grd_ki

TORQUE_GAIN_NAME

Formal name of the TORQUE_GAIN element.

String array[3]

(PROPORTIONAL, DERIVATIVE, INTEGRAL)

LOCATION

a) SEEK_SCAN_REQUEST_PARMS (group)

b) GRIND_REQUEST_PARMS (group)

SOURCE

Static Value

Z_AXIS_DISTANCE

Distance of the z-axis home position from the lower motor hardstop of an instrument.

For MER, this is the position to which the RAT will move after calibrating against the lower hardstop offset at the start of the RAT_DIAG or RAT_CAL commands and at the end of the RAT_GRIND, RAT_BRUSH commands.

float

length in mm

-3.4e38 to +3.4e38

LOCATION

RAT_REQUEST_PARMS (group)

SOURCE

IDPH:rat_rat_zhome

Z_AXIS_POSITION

Specifies the z-axis offset from the lower hardstop to which the RAT will move at the start of the RAT_BRUSH command.

float

length in mm

-3.4e38 to +3.4e38

LOCATION

BRUSH_REQUEST_PARMS

SOURCE

IDPH:rat_bsh_zpos

Z_AXIS_STEP_SIZE

Specifies the distance or step size to move the z-axis of an instrument.

For MER, this is distance the RAT is moved in the negative direction once the grinding wheel is no longer able to complete a full revolution in the seek and scan operations. And, this is the distance to move the z-axis in the positive direction once the grinding wheel completes a full revolution.

float

length in mm

-3.4e38 to +3.4e38

LOCATION

a) SEEK_SCAN_REQUEST_PARMS (group)

b) GRIND_REQUEST_PARMS (group)

SOURCE

a) IDPH:rat_ss_zstep

b) IDPH:rat_grd_zstep

Z_AXIS_VELOCITY

Specifies the z-axis velocity during an operations period of an instrument command.

Float array of one or more

velocity in mm/sec

-3.4e38 to +3.4e38

LOCATION

a) DIAGNOSTICS_CAL_REQUEST_PARMS (group)

b) SEEK_SCAN_REQUEST_PARMS (group)

c) GRIND_REQUEST_PARMS (group)

d) BRUSH_REQUEST_PARMS (group)

SOURCE

a) IDPH:rat_dc_zvel

b) IDPH:rat_ss_sezvel

IDPH: rat_ss_sczvel

c) IDPH:rat_grd_zvel

d) IDPH:rat_bsh_zvel

Z_AXIS_VELOCITY_NAME

Provides the formal name of the element of the Z_AXIS_VELOCITY element when used in an array of values.

string array[2]

(SEEK, SCAN)

LOCATION

SEEK_SCAN_REQUEST_PARMS (group)

SOURCE

Static Value