diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/2264ML0121141200805116C00_DRCL_0.xsp b/tests/pytests/data/2264ML0121141200805116C00_DRCL/2264ML0121141200805116C00_DRCL_0.xsp new file mode 100644 index 0000000000000000000000000000000000000000..227d99c623be7fb6cf80318d4559c4f0f2814faf --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/2264ML0121141200805116C00_DRCL_0.xsp @@ -0,0 +1,175 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/SPK ' +'2' +'6' +'SPKMERGE ' +BEGIN_ARRAY 1 16 +'MARS -to- ROVER, LOCALIZED ' +'23AC4A8578F996^8' +'23AC4B84A5435^8' +'-4C' +'1F3' +'271E' +'9' +16 +'-9B717FC874B4A^3' +'8F0C00BF1949C^3' +'-11791C7BB95EDC^3' +'0^0' +'0^0' +'0^0' +'-9B717FC874B4A^3' +'8F0C00BF1949C^3' +'-11791C7BB95EDC^3' +'0^0' +'0^0' +'0^0' +'23A29B2243782C^8' +'23D7918F325EB^8' +'1^1' +'2^1' +END_ARRAY 1 16 +BEGIN_ARRAY 2 12 +'DE-0425LE-0425 ' +'23AC4A8578F996^8' +'23AC4B84A5435^8' +'1F3' +'4' +'1' +'2' +12 +'E0BD34^7' +'500208^8' +'0^0' +'0^0' +'0^0' +'0^0' +'0^0' +'0^0' +'-41F634C^8' +'A0041^8' +'8^1' +'1^1' +END_ARRAY 2 12 +BEGIN_ARRAY 3 39 +'DE-0425LE-0425 ' +'23AC4A8578F996^8' +'23AC4B84A5435^8' +'A' +'0' +'1' +'2' +39 +'23ACEF4^8' +'A8C^5' +'-182D9A9BFB179A^5' +'-2476E10E336A1A^4' +'-B8A3486486B768^1' +'-17AA1DC98AB4BF^0' +'11F6AC565388EC^-1' +'-2003202CA7FB1C^-2' +'4696DD82DA8E3C^-3' +'-436A0DEA81049C^-4' +'-3D906B8CD195B2^-5' +'1B327152242364^-5' +'-3FEA99EE1E579A^-6' +'F8FBAE76383698^5' +'887854CAE5193^3' +'-11006081023A6B^2' +'-220754DC10457C^0' +'6130AF671931E8^-2' +'-E83B72F00F3BD8^-3' +'-1054721423B0A2^-3' +'6924BC38A4542^-4' +'-E7BBE4454FE7B8^-5' +'10DF04C3BBF7EA^-5' +'6972E9D5ED0014^-7' +'699181548D915C^5' +'4B5504F8DBFD08^3' +'-6CC66492AE1BE^1' +'-FBD23530BA2778^-1' +'2FD92127C74098^-2' +'-459AE2252BA5E8^-3' +'-1037663F52D79C^-3' +'3F25DF0A901AB6^-4' +'-7565B9626659D8^-5' +'631E5CFD949408^-6' +'A1EB36F8F8AFA8^-7' +'23A2634^8' +'1518^6' +'23^2' +'1^1' +END_ARRAY 3 39 +BEGIN_ARRAY 4 39 +'DE-0425LE-0425 ' +'23AC4A8578F996^8' +'23AC4B84A5435^8' +'4' +'0' +'1' +'2' +39 +'23A2634^8' +'1518^6' +'B00002EDB937A^7' +'-E969C89A1E30B^6' +'-124A7464F0595F^6' +'5BC1A06B5D9C2^4' +'23748F27DC7DA2^3' +'-13F1FE0C9663BC^2' +'3F34782E51C96^-1' +'33F60EE49FB7BE^-1' +'-105C286C7007F7^-2' +'-5CC38010013918^-4' +'46B8CA23A8F87C^-5' +'5E380908FD46FC^7' +'1B7983B2777E94^7' +'-9AA49B4B5E614^5' +'-6AD04684E06BC8^4' +'288E91E21C135^3' +'642F8C265138A^1' +'-7A1ABF128E0F28^0' +'14546AFA061D2B^-1' +'FE8B1E89D51F3^-3' +'-970B125DFF63B^-4' +'2922FD19E7EA68^-5' +'266DE7098D312C^7' +'CFEDC8716ABDF8^6' +'-3F081D8B041946^5' +'-337818D362154^4' +'11A5420BC9C15C^3' +'3690DC976B5E3C^1' +'-381D8BE2BE2D4E^0' +'7EDFB99588D58^-2' +'7BD3086CA25FB8^-3' +'-44B07AB7EBC32C^-4' +'1A9A8AA68474EE^-5' +'238D4B4^8' +'2A3^6' +'23^2' +'1^1' +END_ARRAY 4 39 +TOTAL_ARRAYS 4 + ~NAIF/SPC BEGIN COMMENTS~ +; /Users/arsanders/data/msl/kernels/2264ML0121141200805116C00_DRCL_0.bsp LOG FILE + +; Created 2023-09-11/17:50:25.00. +; +; BEGIN SPKMERGE COMMANDS + +LEAPSECONDS_KERNEL = /Users/arsanders/isis_efs/isis_data/base/kernels/lsk/naif0012.tls + +SPK_KERNEL = /Users/arsanders/data/msl/kernels/2264ML0121141200805116C00_DRCL_0.bsp +SOURCE_SPK_KERNEL = /Users/arsanders/isis_efs/isis_data/msl/kernels/spk/msl_surf_rover_loc.bsp + INCLUDE_COMMENTS = NO + BODIES = -76 + BEGIN_TIME = 2018 DEC 19 12:16:00.289 + END_TIME = 2018 DEC 19 12:20:15.462 +SOURCE_SPK_KERNEL = /Users/arsanders/isis_efs/isis_data/msl/kernels/spk/de425s.bsp + INCLUDE_COMMENTS = NO + BODIES = 4, 10, 499 + BEGIN_TIME = 2018 DEC 19 12:16:00.289 + END_TIME = 2018 DEC 19 12:20:15.462 + +; END SPKMERGE COMMANDS + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/2264ML0121141200805116C00_DRCL_1.xsp b/tests/pytests/data/2264ML0121141200805116C00_DRCL/2264ML0121141200805116C00_DRCL_1.xsp new file mode 100644 index 0000000000000000000000000000000000000000..3b27641dd10da6cb3e54a7cc74df1ff99b851ac2 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/2264ML0121141200805116C00_DRCL_1.xsp @@ -0,0 +1,175 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/SPK ' +'2' +'6' +'SPKMERGE ' +BEGIN_ARRAY 1 16 +'MARS -to- ROVER, LOCALIZED ' +'23AC4D556F80C2^8' +'23AC4E52CC2CCC^8' +'-4C' +'1F3' +'271E' +'9' +16 +'-9B717FC874B4A^3' +'8F0C00BF1949C^3' +'-11791C7BB95EDC^3' +'0^0' +'0^0' +'0^0' +'-9B717FC874B4A^3' +'8F0C00BF1949C^3' +'-11791C7BB95EDC^3' +'0^0' +'0^0' +'0^0' +'23A29B2243782C^8' +'23D7918F325EB^8' +'1^1' +'2^1' +END_ARRAY 1 16 +BEGIN_ARRAY 2 12 +'DE-0425LE-0425 ' +'23AC4D556F80C2^8' +'23AC4E52CC2CCC^8' +'1F3' +'4' +'1' +'2' +12 +'E0BD34^7' +'500208^8' +'0^0' +'0^0' +'0^0' +'0^0' +'0^0' +'0^0' +'-41F634C^8' +'A0041^8' +'8^1' +'1^1' +END_ARRAY 2 12 +BEGIN_ARRAY 3 39 +'DE-0425LE-0425 ' +'23AC4D556F80C2^8' +'23AC4E52CC2CCC^8' +'A' +'0' +'1' +'2' +39 +'23ACEF4^8' +'A8C^5' +'-182D9A9BFB179A^5' +'-2476E10E336A1A^4' +'-B8A3486486B768^1' +'-17AA1DC98AB4BF^0' +'11F6AC565388EC^-1' +'-2003202CA7FB1C^-2' +'4696DD82DA8E3C^-3' +'-436A0DEA81049C^-4' +'-3D906B8CD195B2^-5' +'1B327152242364^-5' +'-3FEA99EE1E579A^-6' +'F8FBAE76383698^5' +'887854CAE5193^3' +'-11006081023A6B^2' +'-220754DC10457C^0' +'6130AF671931E8^-2' +'-E83B72F00F3BD8^-3' +'-1054721423B0A2^-3' +'6924BC38A4542^-4' +'-E7BBE4454FE7B8^-5' +'10DF04C3BBF7EA^-5' +'6972E9D5ED0014^-7' +'699181548D915C^5' +'4B5504F8DBFD08^3' +'-6CC66492AE1BE^1' +'-FBD23530BA2778^-1' +'2FD92127C74098^-2' +'-459AE2252BA5E8^-3' +'-1037663F52D79C^-3' +'3F25DF0A901AB6^-4' +'-7565B9626659D8^-5' +'631E5CFD949408^-6' +'A1EB36F8F8AFA8^-7' +'23A2634^8' +'1518^6' +'23^2' +'1^1' +END_ARRAY 3 39 +BEGIN_ARRAY 4 39 +'DE-0425LE-0425 ' +'23AC4D556F80C2^8' +'23AC4E52CC2CCC^8' +'4' +'0' +'1' +'2' +39 +'23A2634^8' +'1518^6' +'B00002EDB937A^7' +'-E969C89A1E30B^6' +'-124A7464F0595F^6' +'5BC1A06B5D9C2^4' +'23748F27DC7DA2^3' +'-13F1FE0C9663BC^2' +'3F34782E51C96^-1' +'33F60EE49FB7BE^-1' +'-105C286C7007F7^-2' +'-5CC38010013918^-4' +'46B8CA23A8F87C^-5' +'5E380908FD46FC^7' +'1B7983B2777E94^7' +'-9AA49B4B5E614^5' +'-6AD04684E06BC8^4' +'288E91E21C135^3' +'642F8C265138A^1' +'-7A1ABF128E0F28^0' +'14546AFA061D2B^-1' +'FE8B1E89D51F3^-3' +'-970B125DFF63B^-4' +'2922FD19E7EA68^-5' +'266DE7098D312C^7' +'CFEDC8716ABDF8^6' +'-3F081D8B041946^5' +'-337818D362154^4' +'11A5420BC9C15C^3' +'3690DC976B5E3C^1' +'-381D8BE2BE2D4E^0' +'7EDFB99588D58^-2' +'7BD3086CA25FB8^-3' +'-44B07AB7EBC32C^-4' +'1A9A8AA68474EE^-5' +'238D4B4^8' +'2A3^6' +'23^2' +'1^1' +END_ARRAY 4 39 +TOTAL_ARRAYS 4 + ~NAIF/SPC BEGIN COMMENTS~ +; /Users/arsanders/data/msl/kernels/2264ML0121141200805116C00_DRCL_1.bsp LOG FILE + +; Created 2023-09-11/17:50:32.00. +; +; BEGIN SPKMERGE COMMANDS + +LEAPSECONDS_KERNEL = /Users/arsanders/isis_efs/isis_data/base/kernels/lsk/naif0012.tls + +SPK_KERNEL = /Users/arsanders/data/msl/kernels/2264ML0121141200805116C00_DRCL_1.bsp +SOURCE_SPK_KERNEL = /Users/arsanders/isis_efs/isis_data/msl/kernels/spk/msl_surf_rover_loc.bsp + INCLUDE_COMMENTS = NO + BODIES = -76 + BEGIN_TIME = 2018 DEC 19 12:28:00.252 + END_TIME = 2018 DEC 19 12:32:13.614 +SOURCE_SPK_KERNEL = /Users/arsanders/isis_efs/isis_data/msl/kernels/spk/de425s.bsp + INCLUDE_COMMENTS = NO + BODIES = 4, 10, 499 + BEGIN_TIME = 2018 DEC 19 12:28:00.252 + END_TIME = 2018 DEC 19 12:32:13.614 + +; END SPKMERGE COMMANDS + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/2264ML0121141200805116C00_DRCL_pds3.lbl b/tests/pytests/data/2264ML0121141200805116C00_DRCL/2264ML0121141200805116C00_DRCL_pds3.lbl new file mode 100644 index 0000000000000000000000000000000000000000..5fce5b0c66a63097375e8171cd40a7bb0afe8024 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/2264ML0121141200805116C00_DRCL_pds3.lbl @@ -0,0 +1,491 @@ +PDS_VERSION_ID = PDS3 + +/* FILE DATA ELEMENTS */ + +RECORD_TYPE = FIXED_LENGTH +RECORD_BYTES = 1338 +FILE_RECORDS = 3579 + +/* Pointers to Data Objects */ + +^IMAGE = ("2264ML0121141200805116C00_DRCL.IMG") + + +/* Identification Data Elements */ + +MSL:ACTIVE_FLIGHT_STRING_ID = "A" +DATA_SET_ID = "MSL-M-MASTCAM-4-RDR-IMG-V1.0" +DATA_SET_NAME = "MSL MARS MAST CAMERA 4 RDR IMAGE V1.0" +COMMAND_SEQUENCE_NUMBER = 120 +GEOMETRY_PROJECTION_TYPE = RAW +IMAGE_ID = "2264ML0121141200805116C00" +IMAGE_TYPE = REGULAR +MSL:IMAGE_ACQUIRE_MODE = IMAGE +INSTRUMENT_HOST_ID = MSL +INSTRUMENT_HOST_NAME = "MARS SCIENCE LABORATORY" +INSTRUMENT_ID = MAST_LEFT +INSTRUMENT_NAME = "MAST CAMERA LEFT" +INSTRUMENT_SERIAL_NUMBER = "3003" +FLIGHT_SOFTWARE_VERSION_ID = "1105031458" +INSTRUMENT_TYPE = "IMAGING CAMERA" +INSTRUMENT_VERSION_ID = FM +MSL:LOCAL_MEAN_SOLAR_TIME = "Sol-02264M16:27:02.729" +LOCAL_TRUE_SOLAR_TIME = "15:40:52" +MISSION_NAME = "MARS SCIENCE LABORATORY" +MISSION_PHASE_NAME = "EXTENDED SURFACE MISSION" +OBSERVATION_ID = "NULL" +PLANET_DAY_NUMBER = 2264 +INSTITUTION_NAME = "MALIN SPACE SCIENCE SYSTEMS" +PRODUCT_CREATION_TIME = 2019-06-01T08:10:50.780 +PRODUCT_VERSION_ID = "V1.0" +PRODUCT_ID = "2264ML0121141200805116C00_DRCL" +SOURCE_PRODUCT_ID = "McamLImage_0598492579-48548-1" +MSL:INPUT_PRODUCT_ID = "2264ML0121141200805116C00_DXXX" +MSL:CALIBRATION_FILE_NAME = "N/A" +RELEASE_ID = "0021" +MSL:REQUEST_ID = "2012114120" +MSL:CAMERA_PRODUCT_ID = "5116" +MSL:CAMERA_PRODUCT_ID_COUNT = 8 +ROVER_MOTION_COUNTER_NAME = ("SITE", "DRIVE", "POSE", + "ARM", "CHIMRA", "DRILL", + "RSM", "HGA", + "DRT", "IC") +ROVER_MOTION_COUNTER = (73, 1206, + 52, 798, + 0, 2338, + 892, 582, + 0, 6 ) +SEQUENCE_ID = "mcam12114" +SEQUENCE_VERSION_ID = "0" +SOLAR_LONGITUDE = 309.155 +SPACECRAFT_CLOCK_CNT_PARTITION = 1 +SPACECRAFT_CLOCK_START_COUNT = "598492579.0000" +SPACECRAFT_CLOCK_STOP_COUNT = "598492579.0112" +IMAGE_TIME = 2018-12-19T12:30:00.252 +START_TIME = 2018-12-19T12:30:00.252 +STOP_TIME = 2018-12-19T12:30:00.423 +TARGET_NAME = "MARS" +TARGET_TYPE = "PLANET" + +/* Telemetry Data Elements */ + +APPLICATION_PROCESS_ID = 406 +APPLICATION_PROCESS_NAME = McamLImage +EARTH_RECEIVED_START_TIME = 2018-12-23T07:10:30 +SPICE_FILE_NAME = "mmm_chronos_v02.tm" +TELEMETRY_PROVIDER_ID = "NULL" +MSL:TELEMETRY_SOURCE_HOST_NAME = "NULL" +TELEMETRY_SOURCE_NAME = "McamLImage_0598492579-48548-1" +TELEMETRY_SOURCE_TYPE = "DATA PRODUCT" +MSL:COMMUNICATION_SESSION_ID = "42680" +MSL:PRODUCT_COMPLETION_STATUS = COMPLETE_CHECKSUM_PASS +MSL:SEQUENCE_EXECUTION_COUNT = 1 +MSL:TELEMETRY_SOURCE_START_TIME = 2018-12-19T12:30:01 +MSL:TELEMETRY_SOURCE_SCLK_START = "1/598492579-48548" + + +/* History Data Elements */ + +GROUP = PDS_HISTORY_PARMS + SOFTWARE_NAME = MMMRDRGEN + SOFTWARE_VERSION_ID = "pds16.0" + PROCESSING_HISTORY_TEXT = "CODMAC LEVEL 1 to LEVEL 4 + CONVERSION VIA MSSS MMMRDRGEN" +END_GROUP = PDS_HISTORY_PARMS + +/* Camera Model Data Elements */ + +GROUP = GEOMETRIC_CAMERA_MODEL_PARMS + ^MODEL_DESC = "GEOMETRIC_CM.TXT" + FILTER_NAME = MASTCAM_L0_CLEAR + MODEL_TYPE = CAHV + MODEL_COMPONENT_ID = ("C","A","H","V") + MODEL_COMPONENT_NAME = ("CENTER", "AXIS", + "HORIZONTAL", "VERTICAL") + MODEL_COMPONENT_1 = ( 7.820476e-01, 4.215647e-01, +-1.967798e+00 ) + MODEL_COMPONENT_2 = ( 4.654729e-01, -1.921365e-01, +8.639552e-01 ) + MODEL_COMPONENT_3 = ( 2.249626e+03, 4.087266e+03, +4.836099e+02 ) + MODEL_COMPONENT_4 = ( -3.356067e+03, 1.607817e+03, +2.832301e+03 ) + REFERENCE_COORD_SYSTEM_NAME = ROVER_NAV_FRAME + COORDINATE_SYSTEM_INDEX_NAME = ("SITE", "DRIVE", "POSE", + "ARM", "CHIMRA", "DRILL", + "RSM", "HGA", + "DRT", "IC") + REFERENCE_COORD_SYSTEM_INDEX = (73, 1206, 52, + 798, 0, 2338, + 892, 582, + 0, 6 ) +END_GROUP = GEOMETRIC_CAMERA_MODEL_PARMS + + +/* Coordinate System State: Rover */ + +GROUP = ROVER_COORDINATE_SYSTEM_PARMS + MSL:SOLUTION_ID = telemetry + COORDINATE_SYSTEM_NAME = ROVER_NAV_FRAME + COORDINATE_SYSTEM_INDEX_NAME = ("SITE", "DRIVE", "POSE", + "ARM", "CHIMRA", "DRILL", + "RSM", "HGA", + "DRT", "IC") + COORDINATE_SYSTEM_INDEX = (73, 1206, 52, + 798, 0, 2338, + 892, 582, + 0, 6 ) + ORIGIN_OFFSET_VECTOR = (-47.668037, -5.909369, -6.293979) + ORIGIN_ROTATION_QUATERNION = (0.3545804, + 0.0304361, + -0.0007603, + -0.9345297) + POSITIVE_AZIMUTH_DIRECTION = CLOCKWISE + POSITIVE_ELEVATION_DIRECTION = UP + QUATERNION_MEASUREMENT_METHOD = TILT_ONLY + REFERENCE_COORD_SYSTEM_NAME = SITE_FRAME +END_GROUP = ROVER_COORDINATE_SYSTEM_PARMS + + +/* Coordinate System State: Remote Sensing Mast */ + +GROUP = RSM_COORDINATE_SYSTEM_PARMS + MSL:SOLUTION_ID = telemetry + COORDINATE_SYSTEM_NAME = RSM_HEAD_FRAME + COORDINATE_SYSTEM_INDEX_NAME = ("SITE", "DRIVE", "POSE", + "ARM", "CHIMRA", "DRILL", + "RSM", "HGA", + "DRT", "IC") + COORDINATE_SYSTEM_INDEX = (73, 1206, 52, + 798, 0, 2338, + 892, 582, + 0, 6 ) + ORIGIN_OFFSET_VECTOR = (0.804374, 0.559484, -1.906076) + ORIGIN_ROTATION_QUATERNION = ( 0.8446875, + -0.1089795, + -0.4873414, + -0.1926783) + POSITIVE_AZIMUTH_DIRECTION = CLOCKWISE + POSITIVE_ELEVATION_DIRECTION = UP + REFERENCE_COORD_SYSTEM_NAME = ROVER_NAV_FRAME +END_GROUP = RSM_COORDINATE_SYSTEM_PARMS + +/* Coordinate System State: Robotic Arm */ + +GROUP = ARM_COORDINATE_SYSTEM_PARMS + MSL:SOLUTION_ID = telemetry + COORDINATE_SYSTEM_NAME = ARM_DRILL_FRAME + COORDINATE_SYSTEM_INDEX_NAME = ("SITE", "DRIVE", "POSE", + "ARM", "CHIMRA", "DRILL", + "RSM", "HGA", + "DRT", "IC") + COORDINATE_SYSTEM_INDEX = (73, 1206, 52, + 798, 0, 2338, + 892, 582, 0, 6 ) + ORIGIN_OFFSET_VECTOR = (0.238353, -0.923706, -0.165335) + ORIGIN_ROTATION_QUATERNION = ( 0.1586527, + 0.5402789, + 0.3604649, + 0.7436351) + POSITIVE_AZIMUTH_DIRECTION = CLOCKWISE + POSITIVE_ELEVATION_DIRECTION = UP + REFERENCE_COORD_SYSTEM_NAME = ROVER_NAV_FRAME +END_GROUP = ARM_COORDINATE_SYSTEM_PARMS + +/* Articulation Device State: Remote Sensing Mast */ + +GROUP = RSM_ARTICULATION_STATE_PARMS + ARTICULATION_DEVICE_ID = RSM + ARTICULATION_DEVICE_NAME = "REMOTE SENSING MAST" + ARTICULATION_DEVICE_ANGLE_NAME = ("AZIMUTH-MEASURED", + "ELEVATION-MEASURED", + "AZIMUTH-REQUESTED", + "ELEVATION-REQUESTED", + "AZIMUTH-INITIAL", + "ELEVATION-INITIAL", + "AZIMUTH-FINAL", + "ELEVATION-FINAL") + ARTICULATION_DEVICE_ANGLE = ( 2.719078 <rad>, 0.542313 <rad>, + 2.721545 <rad>, 0.546319 <rad>, + 3.090580 <rad>, 0.546359 <rad>, + 2.721491 <rad>, 0.546236 <rad> ) + ARTICULATION_DEVICE_MODE = DEPLOYED +END_GROUP = RSM_ARTICULATION_STATE_PARMS + + +/* Articulation Device State: Robotic Arm */ + +GROUP = ARM_ARTICULATION_STATE_PARMS + ARTICULATION_DEVICE_ID = ARM + ARTICULATION_DEVICE_NAME = "SAMPLE ARM" + 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-RESOLVER", + "JOINT 2 ELEVATION-RESOLVER", + "JOINT 3 ELBOW-RESOLVER", + "JOINT 4 WRIST-RESOLVER", + "JOINT 5 TURRET-RESOLVER") + ARTICULATION_DEVICE_ANGLE = ( 0.799985 <rad>, + -1.570999 <rad>, + -1.500003 <rad>, + 1.678171 <rad>, + 2.761113 <rad>, + 0.797107 <rad>, + -1.576209 <rad>, + -1.506384 <rad>, + 1.673409 <rad>, + 2.760045 <rad> ) + ARTICULATION_DEVICE_MODE = "FREE SPACE" + ARTICULATION_DEVICE_TEMP_NAME = ("AZIMUTH JOINT", + "ELEVATION JOINT", + "ELBOW JOINT", + "WRIST JOINT", + "TURRET JOINT") + ARTICULATION_DEVICE_TEMP = ( -2.5942 <degC>, + 6.2186 <degC>, + 5.1346 <degC>, + 5.3563 <degC>, + 6.0723 <degC> ) + CONTACT_SENSOR_STATE_NAME = ( "APXS CONTACT SWITCH 1", + "APXS CONTACT SWITCH 2", + "DRILL SWITCH 1", "DRILL SWITCH 2", + "MAHLI SWITCH 1A", + "MAHLI SWITCH 1B", + "MAHLI SWITCH 2A", + "MAHLI SWITCH 2B" ) + CONTACT_SENSOR_STATE = ( "NO CONTACT","NO CONTACT","NO +CONTACT","NO CONTACT","NO CONTACT","NO CONTACT","NO CONTACT","NO CONTACT" ) + + ARTICULATION_DEV_VECTOR = ( -0.056348, 0.023005, 0.998146) + ARTICULATION_DEV_VECTOR_NAME = "GRAVITY" + ARTICULATION_DEV_INSTRUMENT_ID = "DRILL" +END_GROUP = ARM_ARTICULATION_STATE_PARMS + +/* Articulation Device State: Mobility Chassis */ + +GROUP = CHASSIS_ARTICULATION_STATE_PARMS + ARTICULATION_DEVICE_ID = CHASSIS + ARTICULATION_DEVICE_NAME = "MOBILITY CHASSIS" + ARTICULATION_DEVICE_ANGLE_NAME = ("LEFT FRONT WHEEL", + "RIGHT FRONT WHEEL", + "LEFT REAR WHEEL", + "RIGHT REAR WHEEL", + "LEFT BOGIE", + "RIGHT BOGIE", + "LEFT DIFFERENTIAL", + "RIGHT DIFFERENTIAL") + ARTICULATION_DEVICE_ANGLE = ( -0.000000 <rad>, -0.000000 <rad>, +-0.000128 <rad>, -0.000128 <rad>, + -0.022178 <rad>, -0.003453 <rad>, + -0.004218 <rad>, 0.003101 <rad> ) + ARTICULATION_DEVICE_MODE = DEPLOYED +END_GROUP = CHASSIS_ARTICULATION_STATE_PARMS + + +/* Articulation Device State: High Gain Antenna */ + +GROUP = HGA_ARTICULATION_STATE_PARMS + ARTICULATION_DEVICE_ID = HGA + ARTICULATION_DEVICE_NAME = "HIGH GAIN ANTENNA" + ARTICULATION_DEVICE_ANGLE_NAME = ("AZIMUTH", "ELEVATION") + ARTICULATION_DEVICE_ANGLE = ( 0.000011 <rad>, -0.785064 <rad> ) + ARTICULATION_DEVICE_MODE = "DEPLOYED" +END_GROUP = HGA_ARTICULATION_STATE_PARMS + + +/* Coordinate System State: Site */ + +GROUP = SITE_COORDINATE_SYSTEM_PARMS + COORDINATE_SYSTEM_NAME = SITE_FRAME + COORDINATE_SYSTEM_INDEX_NAME = ("SITE" ) + COORDINATE_SYSTEM_INDEX = (73 ) + ORIGIN_OFFSET_VECTOR = (-120.137383, -115.454124, -9.943598 ) + ORIGIN_ROTATION_QUATERNION = (1.0000000, + 0.0000000, + 0.0000000, + 0.0000000 ) + POSITIVE_AZIMUTH_DIRECTION = CLOCKWISE + POSITIVE_ELEVATION_DIRECTION = UP + REFERENCE_COORD_SYSTEM_NAME = SITE_FRAME +END_GROUP = SITE_COORDINATE_SYSTEM_PARMS + + +/* Observation Request */ + +GROUP = OBSERVATION_REQUEST_PARMS + COMMAND_INSTRUMENT_ID = MAST_LEFT + RATIONALE_DESC = "Periodic documentation of the terrain +along the traverse" +END_GROUP = OBSERVATION_REQUEST_PARMS + + +/* Image Request */ + +GROUP = IMAGE_REQUEST_PARMS + FIRST_LINE = 17 + FIRST_LINE_SAMPLE = 161 + LINES = 1184 + LINE_SAMPLES = 1328 + EXPOSURE_TYPE = MANUAL + EXPOSURE_DURATION = "NULL" + INST_CMPRS_MODE = 1 + INST_CMPRS_NAME = "PREDICTIVE LOSSLESS BAYER HUFFMAN +ENCODING" + INST_CMPRS_QUALITY = "N/A" + AUTO_EXPOSURE_DATA_CUT = 150 + AUTO_EXPOSURE_PERCENT = 010 + AUTO_EXPOSURE_PIXEL_FRACTION = 002 + MAX_AUTO_EXPOS_ITERATION_COUNT = 8 + MSL:AUTO_FOCUS_ZSTACK_FLAG = FALSE + MSL:INSTRUMENT_FOCUS_POSITION_CNT = 0 + MSL:INSTRUMENT_FOCUS_STEP_SIZE = 0 + MSL:INSTRUMENT_FOCUS_STEPS = 0 + FILTER_NAME = "MASTCAM_L0_CLEAR" + FILTER_NUMBER = "0" + MSL:INVERSE_LUT_FILE_NAME = MMM_LUT0 + FLAT_FIELD_CORRECTION_FLAG = FALSE +END_GROUP = IMAGE_REQUEST_PARMS + + +/* Video Request */ + +GROUP = VIDEO_REQUEST_PARMS + GROUP_APPLICABILITY_FLAG = FALSE + MSL:COMMANDED_VIDEO_FRAMES = "N/A" + INTERFRAME_DELAY = "N/A" +END_GROUP = VIDEO_REQUEST_PARMS + +/* ZStack Request */ + +GROUP = ZSTACK_REQUEST_PARMS + GROUP_APPLICABILITY_FLAG = FALSE + MSL:ZSTACK_IMAGE_DEPTH = "N/A" + MSL:IMAGE_BLENDING_FLAG = "N/A" + MSL:IMAGE_REGISTRATION_FLAG = "N/A" +END_GROUP = ZSTACK_REQUEST_PARMS + + +/* Instrument State Results */ + +GROUP = INSTRUMENT_STATE_PARMS + HORIZONTAL_FOV = 16.2823 + VERTICAL_FOV = 14.5366 + DETECTOR_FIRST_LINE = 1 + DETECTOR_LINES = 1200 + MSL:DETECTOR_SAMPLES = 1648 + DETECTOR_TO_IMAGE_ROTATION = 0.0 + EXPOSURE_DURATION = 11.2 <ms> + FILTER_NAME = MASTCAM_L0_CLEAR + FILTER_NUMBER = "0" + CENTER_FILTER_WAVELENGTH = 590 <nm> + FLAT_FIELD_CORRECTION_FLAG = FALSE + MSL:INSTRUMENT_CLOCK_START_COUNT = "598492579.0000" + MSL:SENSOR_READOUT_RATE = 10 <MHz> + INSTRUMENT_TEMPERATURE_NAME = ( "DEA_TEMP", "FPA_TEMP", + "OPTICS_TEMP", "ELECTRONICS", + "ELECTRONICS_A", "ELECTRONICS_B" ) + INSTRUMENT_TEMPERATURE = ( 30.4244 <degC>, + -0.2124 <degC>, + -3.3410 <degC>, + -3.4016 <degC>, + "NULL", + "NULL" ) + MSL:INSTRUMENT_TEMPERATURE_STATUS = ( 0, + 0, + 0, + 0, + "UNK", + "UNK" ) + SAMPLE_BIT_METHOD = "HARDWARE" + SAMPLE_BIT_MODE_ID = MMM_LUT0 + MSL:FOCUS_POSITION_COUNT = 2238 + MSL:FILTER_POSITION_COUNT = 0 + MSL:COVER_HALL_SENSOR_FLAG = "N/A" + MSL:FILTER_HALL_SENSOR_FLAG = 0 + MSL:FOCUS_HALL_SENSOR_FLAG = 1 + MSL:LED_STATE_NAME = ("VIS1", "VIS2", "UV") + MSL:LED_STATE_FLAG = ( "N/A", "N/A", "N/A" ) + DETECTOR_ERASE_COUNT = 4094 +END_GROUP = INSTRUMENT_STATE_PARMS + + +/* Image Data Elements */ + +GROUP = IMAGE_PARMS + INST_CMPRS_MODE = 1 + INST_CMPRS_NAME = "PREDICTIVE LOSSLESS BAYER HUFFMAN +ENCODING" + INST_CMPRS_QUALITY = "N/A" + MSL:INVERSE_LUT_FILE_NAME = MMM_LUT0 + PIXEL_AVERAGING_HEIGHT = 1 + PIXEL_AVERAGING_WIDTH = 1 +END_GROUP = IMAGE_PARMS + +/* Video Data Elements */ + +GROUP = VIDEO_PARMS + GROUP_APPLICABILITY_FLAG = FALSE + MSL:GOP_FRAME_INDEX = "N/A" + MSL:GOP_TOTAL_FRAMES = "N/A" +END_GROUP = VIDEO_PARMS + + +/* Derived Data Elements */ + +GROUP = DERIVED_IMAGE_PARMS + MSL:INFINITY_CONSTANT = 999999 + MSL:COVER_STATE_FLAG = "N/A" + MSL:MINIMUM_FOCUS_DISTANCE = 1.3 <m> + MSL:BEST_FOCUS_DISTANCE = 1.952 <m> + MSL:MAXIMUM_FOCUS_DISTANCE = 3.6 <m> + MSL:FRAME_RATE = "N/A" + FIXED_INSTRUMENT_AZIMUTH = 199.1465 + FIXED_INSTRUMENT_ELEVATION = -56.2743 + SOLAR_AZIMUTH = 249.8022 + SOLAR_ELEVATION = 34.3177 +END_GROUP = DERIVED_IMAGE_PARMS + +/* Processing Data Elements */ +GROUP = PROCESSING_PARMS + DARK_LEVEL_CORRECTION = 121.4 + SHUTTER_EFFECT_CORRECTION_FLAG = FALSE + RADIOMETRIC_CORRECTION_TYPE = "N/A" + RADIANCE_OFFSET = ( "N/A", + "N/A", + "N/A" ) + RADIANCE_SCALING_FACTOR = ( "N/A", + "N/A", + "N/A" ) + FLAT_FIELD_CORRECTION_FLAG = FALSE +END_GROUP = PROCESSING_PARMS + +/* PRIMARY DATA OBJECT */ + +/* IMAGE DATA ELEMENTS */ + +OBJECT = IMAGE + INTERCHANGE_FORMAT = BINARY + LINES = 1193 + LINE_SAMPLES = 1338 + SAMPLE_TYPE = UNSIGNED_INTEGER + SAMPLE_BITS = 8 + BANDS = 3 + BAND_STORAGE_TYPE = BAND_SEQUENTIAL + FIRST_LINE = 17 + FIRST_LINE_SAMPLE = 161 + INVALID_CONSTANT = 255 + MINIMUM = "NULL" + MAXIMUM = "NULL" + MEAN = "NULL" + MEDIAN = "NULL" + STANDARD_DEVIATION = "NULL" + MISSING_CONSTANT = 255 + SAMPLE_BIT_MASK = 2#11111111# + SAMPLE_BIT_MODE_ID = MMM_LUT0 + SAMPLE_BIT_METHOD = "HARDWARE" +END_OBJECT = IMAGE + +END diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/MSL_76_SCLKSCET.00019.tsc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/MSL_76_SCLKSCET.00019.tsc new file mode 100755 index 0000000000000000000000000000000000000000..38bae16b466ba3669a41bf4b39815324caab0c22 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/MSL_76_SCLKSCET.00019.tsc @@ -0,0 +1,210 @@ +KPL/SCLK + + +MSL SCLK File +=========================================================================== + + This file is a SPICE spacecraft clock (SCLK) kernel containing + information required for MSL spacecraft on-board clock to UTC + conversion. + + +Production/History of this SCLK file +-------------------------------------------------------- + + This file was generated by the NAIF utility program MAKCLK, version + 3.5.2, from the most recent MSL spacecraft SCLKvSCET file (see + corresponding sections of these comments for a copy of the source + SCLKvSCET file and MAKCLK setup file). + + +Usage +-------------------------------------------------------- + + This file must be loaded into the user's program by a call to the + FURNSH subroutine + + CALL FURNSH( 'this_file_name' ) + + in order to use the SPICELIB SCLK family of subroutines to convert + MSL spacecraft on-board clock to ET and vice versa. + + +SCLK Format +-------------------------------------------------------- + + The on-board clock, the conversion for which is provided by this SCLK + file, consists of two fields: + + SSSSSSSSSS-FFFFF + + where: + + SSSSSSSSSS -- count of on-board seconds + + FFFFF -- count of fractions of a second with one fraction + being 1/65536 of a second; normally this field value + is within 0..65535 range. + + +References +-------------------------------------------------------- + + 1. SCLK Required Reading Document + + 2. MAKCLK User's Guide Document + + 3. SFOC SCLKvSCET SIS Document + + +Inquiries +-------------------------------------------------------- + + If you have any questions regarding this file contact NAIF at JPL + + Charles H. Acton, Jr + (818) 354-3869 + Chuck.Acton@jpl.nasa.gov + + Boris V. Semenov + (818) 354-8136 + Boris.Semenov@jpl.nasa.gov + + +Source SCLKvSCET File +-------------------------------------------------------- + + CCSD3ZS00001$$sclk$$NJPL3KS0L015$$scet$$ + MISSION_NAME=MSL; + SPACECRAFT_NAME=MARS_SCIENCE_LABORATORY; + DATA_SET_ID=SCLK_SCET; + FILE_NAME=MSL_76_SCLKSCET.00019; + PRODUCT_CREATION_TIME=2022-229T12:27:15.000; + PRODUCT_VERSION_ID=00019; + PRODUCER_ID=DSMS_TIME_SERVICES; + APPLICABLE_START_TIME=2022-230T00:00:00.000; + APPLICABLE_STOP_TIME=2023-358T15:16:11.000; + MISSION_ID=33; + SPACECRAFT_ID=76; + CCSD3RE00000$$scet$$NJPL3IS00613$$data$$ + *____SCLK0_____ ________SCET0___________ _DUT__ __SCLKRATE__ + 0000000000.000 2000-001T11:58:55.816 64.184 1.000000000 + 0189345665.000 2006-001T00:00:00.816 64.184 0.000010000 + 0189345666.000 2006-001T00:00:00.817 65.184 1.000000000 + 0284040066.000 2009-001T00:00:00.815 65.184 0.001000000 + 0284040067.000 2009-001T00:00:00.816 66.184 1.000000000 + 0375075862.000 2011-324T15:43:15.816 66.184 0.995566030 + 0375076862.000 2011-324T15:59:51.382 66.184 1.000007536 + 0375077191.000 2011-324T16:05:20.385 66.184 1.000004134 + 0375078191.000 2011-324T16:22:00.389 66.184 1.000009564 + 0375163622.000 2011-325T16:05:52.206 66.184 0.999958637 + 0375164622.000 2011-325T16:22:32.165 66.184 1.000009114 + 0375235601.000 2011-326T12:05:31.812 66.184 0.999997081 + 0375236601.000 2011-326T12:22:11.809 66.184 1.000009250 + 0375410971.000 2011-328T12:48:23.422 66.184 1.000010108 + 0375411971.000 2011-328T13:05:03.432 66.184 1.000008880 + 0375950039.000 2011-334T18:32:56.210 66.184 0.999889040 + 0375951039.000 2011-334T18:49:36.099 66.184 1.000008973 + 0380648630.000 2012-024T03:43:29.250 66.184 1.000550348 + 0380649630.000 2012-024T04:00:09.801 66.184 1.000009187 + 0392778715.000 2012-164T13:13:26.231 66.184 0.996915113 + 0392779715.000 2012-164T13:30:03.146 66.184 1.000009272 + 0394372698.000 2012-183T00:00:00.916 66.184 0.001000000 + 0394372699.000 2012-183T00:00:00.917 67.184 1.000009272 + 0396387693.000 2012-206T07:43:33.600 67.184 0.999848543 + 0396388693.000 2012-206T08:00:13.449 67.184 1.000009275 + 0434589485.000 2013-282T11:25:59.761 67.184 1.001583303 + 0434590485.000 2013-282T11:42:41.345 67.184 1.000009438 + 0488979811.000 2015-182T00:00:00.669 67.184 0.001000000 + 0488979812.000 2015-182T00:00:00.670 68.184 1.000009438 + 0536499363.000 2017-001T00:00:00.159 68.184 0.001000000 + 0536499364.000 2017-001T00:00:00.160 69.184 1.000009438 + 0626394666.000 2019-311T11:09:10.592 69.184 1.003346471 + 0626395666.000 2019-311T11:25:53.938 69.184 1.000009575 + 0655335115.000 2020-281T10:14:40.033 69.184 0.996931000 + 0655336115.000 2020-281T10:31:16.964 69.184 1.000009464 + 0707809507.000 2022-157T18:36:05.572 69.184 0.999115094 + 0707810507.000 2022-157T18:52:44.687 69.184 1.000007602 + 0709438101.000 2022-176T14:59:31.061 69.184 1.000009738 + 0709439101.000 2022-176T15:16:11.071 69.184 1.000007639 + 0713969869.000 2022-229T01:49:33.682 69.184 1.000007639 + 0713970869.000 2022-229T02:06:13.689 69.184 1.000009464 + CCSD3RE00000$$data$$CCSD3RE00000$$sclk$$ + + + +MAKCLK Setup file +-------------------------------------------------------- + + SCLKSCET_FILE = MSL_76_SCLKSCET.00019.clean + OLD_SCLK_KERNEL = /ods/cedl/strategic/naif/misc/work/sclkscet/msl_template.tsc + FILE_NAME = MSL_76_SCLKSCET.00019.tsc + NAIF_SPACECRAFT_ID = -76 + LEAPSECONDS_FILE = /ods/cedl/strategic/naif/kernels/lsk/msl.tls + PARTITION_TOLERANCE = 2560 + LOG_FILE = MSL_76_SCLKSCET.00019.log + + + +Kernel DATA +-------------------------------------------------------- + +\begindata + + +SCLK_KERNEL_ID = ( @2022-08-18/20:50:01.82 ) + +SCLK_DATA_TYPE_76 = ( 1 ) +SCLK01_TIME_SYSTEM_76 = ( 2 ) +SCLK01_N_FIELDS_76 = ( 2 ) +SCLK01_MODULI_76 = ( 4294967296 65536 ) +SCLK01_OFFSETS_76 = ( 0 0 ) +SCLK01_OUTPUT_DELIM_76 = ( 3 ) + +SCLK_PARTITION_START_76 = ( 0.0000000000000E+00 ) + +SCLK_PARTITION_END_76 = ( 2.8147497671065E+14 ) + +SCLK01_COEFFICIENTS_76 = ( + + 0.0000000000000E+00 -3.5763036976277E-10 1.0000000000053E+00 + 1.2408957566976E+13 1.8934566600100E+08 9.9999999998944E-01 + 1.8614849830912E+13 2.8404006700000E+08 1.0000000000000E+00 + 2.4580971692032E+13 3.7507586200000E+08 9.9556599998474E-01 + 2.4581037228032E+13 3.7507685756600E+08 1.0000091186048E+00 + 2.4581058789376E+13 3.7507718656900E+08 1.0000040000081E+00 + 2.4581124325376E+13 3.7507818657300E+08 1.0000095632730E+00 + 2.4586723131392E+13 3.7516361839000E+08 9.9995900005102E-01 + 2.4586788667392E+13 3.7516461834900E+08 1.0000091153724E+00 + 2.4591440347136E+13 3.7523559799600E+08 9.9999699997902E-01 + 2.4591505883136E+13 3.7523659799300E+08 1.0000092504443E+00 + 2.4602933395456E+13 3.7541096960600E+08 1.0000099999905E+00 + 2.4602998931456E+13 3.7541196961600E+08 1.0000088799185E+00 + 2.4638261755904E+13 3.7595004239400E+08 9.9988899999857E-01 + 2.4638327291904E+13 3.7595104228300E+08 1.0000089728970E+00 + 2.4946188615680E+13 3.8064867543400E+08 1.0005509999990E+00 + 2.4946254151680E+13 3.8064967598500E+08 1.0000091870079E+00 + 2.5741145866240E+13 3.9277887241500E+08 9.9691500002146E-01 + 2.5741211402240E+13 3.9277986933000E+08 1.0000092725350E+00 + 2.5845609201664E+13 3.9437286810100E+08 1.0000092719879E+00 + 2.5977663848448E+13 3.9638788078400E+08 9.9984899997711E-01 + 2.5977729384448E+13 3.9638888063300E+08 1.0000092749909E+00 + 2.8481256488960E+13 4.3459002694500E+08 1.0015840000510E+00 + 2.8481322024960E+13 4.3459102852900E+08 1.0000094379730E+00 + 3.2045780959232E+13 4.8898086885400E+08 1.0000094380099E+00 + 3.5160022319104E+13 5.3650086934400E+08 1.0000094380016E+00 + 4.1051400830976E+13 6.2639701977600E+08 1.0033459999561E+00 + 4.1051466366976E+13 6.2639802312200E+08 1.0000095749923E+00 + 4.2948042096640E+13 6.5533774921700E+08 9.9693099999428E-01 + 4.2948107632640E+13 6.5533874614800E+08 1.0000094639965E+00 + 4.6387003850752E+13 7.0781263475600E+08 9.9911500000954E-01 + 4.6387069386752E+13 7.0781363387100E+08 1.0000076026331E+00 + 4.6493735387136E+13 7.0944124024500E+08 1.0000099999905E+00 + 4.6493800923136E+13 7.0944224025500E+08 1.0000076391023E+00 + 4.6790729334784E+13 7.1397304286600E+08 1.0000069999695E+00 + 4.6790794870784E+13 7.1397404287300E+08 1.0000094640000E+00 ) + +\begintext + + + diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_ml_20120731_c03.ti b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_ml_20120731_c03.ti new file mode 100755 index 0000000000000000000000000000000000000000..7af78e46030593640f0371b52cbfd357a9cb7beb --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_ml_20120731_c03.ti @@ -0,0 +1,177 @@ +KPL/IK + +MSL_MASTCAM_LEFT Instrument Kernel +============================================================================== + + +Version and Date +---------------------------------------------------------- + + Tue Jul 31 15:46:20 PDT 2012 + + +Pedigree +---------------------------------------------------------- + + This IK was generated by a script. All nominal parameters provided + in this IK were obtained from the camera CDR materials; all actual + parameters were copied/derived from the camera CAHVOR(E) model file + 'MSL_CAL_003_SN_3003_FILTER_0_FOCUS_02315-MCAML-FLIGHT.cahvor'. + + +Camera CCD Dimensions +---------------------------------------------------------- + + The camera CCD dimensions are provided in the keywords below. The + pixels are numbered left-to-right, top-to-bottom with the top-left + pixel indexed (0,0). + + \begindata + + INS-76210_FOV_CENTER_PIXEL = ( 823.5, 599.5 ) + INS-76210_PIXEL_SAMPLES = ( 1648 ) + INS-76210_PIXEL_LINES = ( 1200 ) + + \begintext + + +Camera Boresight and Distortion Center Locations +---------------------------------------------------------- + + The camera boresight and distortion center locations in pixel + coordinates, computed from the model data using these formulas: + + boresight sample = H dot A + boresight line = V dot A + distortion sample = (O dot H) / (O dot A) + distortion line = (O dot V) / (O dot A) + + are: + + \begindata + + INS-76210_BORESIGHT_PIXEL = ( 829.18782212, 601.33514402 ) + INS-76210_DISTORTION_PIXEL = ( 837.77915717, 592.14046615 ) + + \begintext + + +Nominal Camera Parameters +---------------------------------------------------------- + + The nominal camera focal length and physical pixel size, both in + millimeters, along with the nominal pixel IFOV, in degrees, are provided + in the keywords below. + + \begindata + + INS-76210_FOCAL_LENGTH = ( 34 ) + INS-76210_PIXEL_SIZE = ( 0.0074 ) + INS-76210_IFOV_NOMINAL = ( 0.01247026 ) + + \begintext + + +Camera FOV Definition +---------------------------------------------------------- + + To better reflect distortion in the camera optics the FOV is defined as + a polygonal pyramid with the tip at the camera focal point and the edges + along the view directions of the corner pixels and the side-middle pixels. + Specifically the boundary vectors provided in the FOV_BOUNDARY + keyword corresponds to view directions of the centers of these + pixels provided in this order: + + ( 0.0, 0.0 ) + ( 823.5, 0.0 ) + ( 1647.0, 0.0 ) + ( 1647.0, 599.5 ) + ( 1647.0, 1199.0 ) + ( 823.5, 1199.0 ) + ( 0.0, 1199.0 ) + ( 0.0, 599.5 ) + + The boresight direction corresponds to the view direction of the center + pixel, (823.5,599.5). + + All directions are unit vectors specified in the 'MSL_MASTCAM_LEFT' + frame. + + \begindata + + INS-76210_FOV_FRAME = ( 'MSL_MASTCAM_LEFT' ) + INS-76210_FOV_SHAPE = ( 'POLYGON' ) + INS-76210_FOV_CLASS_SPEC = ( 'CORNERS' ) + INS-76210_BORESIGHT = ( + -0.00000000 -0.00000000 1.00000000 + ) + INS-76210_FOV_BOUNDARY = ( + + 0.17483767 0.12730492 0.97633255 + -0.00000000 0.12834274 0.99172987 + -0.17476887 0.12719345 0.97635940 + -0.17553059 -0.00005566 0.98447398 + -0.17480715 -0.12735688 0.97633124 + 0.00001620 -0.12838394 0.99172454 + 0.17491070 -0.12728511 0.97632205 + 0.17557293 0.00003780 0.98446643 + ) + + \begintext + + +Actual Camera IFOV +---------------------------------------------------------- + + The actual average vertical and horizontal pixel IFOVs were computed by + dividing the angular extent between the view directions of pixels + (823.5,0) and (823.5,1199) for the vertical direction and between + (0,599.5) and (1647,599.5) for the horizontal direction by the number + of pixels minus 1. The average IFOV is simply an average of the + vertical and horizontal IFOVs. + + In the keywords below the IFOVs are provided in degrees. + + \begindata + + INS-76210_IFOV_VERTICAL = ( 0.01230196 ) + INS-76210_IFOV_HORIZONTAL = ( 0.01227780 ) + INS-76210_IFOV = ( 0.01228988 ) + + \begintext + + +Source CAHVOR(E) Parameters + + The keywords below contain parameters of the CAHVOR(E) model from + which all actual camera parameters provided in this file have been + derived. Note that the reference quaternion (CAHVOR_QUAT) is not a + SPICE-style but an engineering style quaternion (s1,s2,s3,c.) + + \begindata + + INS-76210_CAHVOR_FILE = ( 'MSL_CAL_003_SN_3003_FILTER_0_FOCUS_02315-MCAML-FLIGHT.cahvor' ) + INS-76210_CAHVOR_MODEL = ( ' CAHVOR ' ) + + INS-76210_CAHVOR_DIMS = ( 1648 1200 ) + + INS-76210_CAHVOR_C = ( 0.767151 0.433709 -1.971648 ) + INS-76210_CAHVOR_A = ( 0.999664 0.025047 0.006727 ) + INS-76210_CAHVOR_H = ( 712.373106 4664.465028 33.182389 ) + INS-76210_CAHVOR_V = ( 570.612488 -14.279011 4648.733195 ) + INS-76210_CAHVOR_O = ( 0.999627 0.026908 0.004759 ) + INS-76210_CAHVOR_R = ( -0.000151 -0.139189 -1.250336 ) + + INS-76210_CAHVOR_HS = ( 4645.242086 ) + INS-76210_CAHVOR_HC = ( 829.187822 ) + INS-76210_CAHVOR_VS = ( 4644.882626 ) + INS-76210_CAHVOR_VC = ( 601.335144 ) + INS-76210_CAHVOR_THETA = ( -1.571004 ) + + INS-76210_CAHVOR_POS = ( 0.80436 0.55942 -1.90608 ) + + INS-76210_CAHVOR_QUAT = ( 0.00001 -0.00325 -0.00104 0.99999 ) + + + \begintext + diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_mr_20120731_c03.ti b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_mr_20120731_c03.ti new file mode 100755 index 0000000000000000000000000000000000000000..c7c36eead1cfd066053196b8c6d92597d3af9bdd --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_mr_20120731_c03.ti @@ -0,0 +1,177 @@ +KPL/IK + +MSL_MASTCAM_RIGHT Instrument Kernel +============================================================================== + + +Version and Date +---------------------------------------------------------- + + Tue Jul 31 15:46:21 PDT 2012 + + +Pedigree +---------------------------------------------------------- + + This IK was generated by a script. All nominal parameters provided + in this IK were obtained from the camera CDR materials; all actual + parameters were copied/derived from the camera CAHVOR(E) model file + 'MSL_CAL_003_SN_3004_FILTER_0_FOCUS_02702-MCAMR-FLIGHT.cahvor'. + + +Camera CCD Dimensions +---------------------------------------------------------- + + The camera CCD dimensions are provided in the keywords below. The + pixels are numbered left-to-right, top-to-bottom with the top-left + pixel indexed (0,0). + + \begindata + + INS-76220_FOV_CENTER_PIXEL = ( 823.5, 599.5 ) + INS-76220_PIXEL_SAMPLES = ( 1648 ) + INS-76220_PIXEL_LINES = ( 1200 ) + + \begintext + + +Camera Boresight and Distortion Center Locations +---------------------------------------------------------- + + The camera boresight and distortion center locations in pixel + coordinates, computed from the model data using these formulas: + + boresight sample = H dot A + boresight line = V dot A + distortion sample = (O dot H) / (O dot A) + distortion line = (O dot V) / (O dot A) + + are: + + \begindata + + INS-76220_BORESIGHT_PIXEL = ( 859.44651228, 534.29411479 ) + INS-76220_DISTORTION_PIXEL = ( 767.27622715, 668.16368416 ) + + \begintext + + +Nominal Camera Parameters +---------------------------------------------------------- + + The nominal camera focal length and physical pixel size, both in + millimeters, along with the nominal pixel IFOV, in degrees, are provided + in the keywords below. + + \begindata + + INS-76220_FOCAL_LENGTH = ( 100 ) + INS-76220_PIXEL_SIZE = ( 0.0074 ) + INS-76220_IFOV_NOMINAL = ( 0.00423989 ) + + \begintext + + +Camera FOV Definition +---------------------------------------------------------- + + To better reflect distortion in the camera optics the FOV is defined as + a polygonal pyramid with the tip at the camera focal point and the edges + along the view directions of the corner pixels and the side-middle pixels. + Specifically the boundary vectors provided in the FOV_BOUNDARY + keyword corresponds to view directions of the centers of these + pixels provided in this order: + + ( 0.0, 0.0 ) + ( 823.5, 0.0 ) + ( 1647.0, 0.0 ) + ( 1647.0, 599.5 ) + ( 1647.0, 1199.0 ) + ( 823.5, 1199.0 ) + ( 0.0, 1199.0 ) + ( 0.0, 599.5 ) + + The boresight direction corresponds to the view direction of the center + pixel, (823.5,599.5). + + All directions are unit vectors specified in the 'MSL_MASTCAM_RIGHT' + frame. + + \begindata + + INS-76220_FOV_FRAME = ( 'MSL_MASTCAM_RIGHT' ) + INS-76220_FOV_SHAPE = ( 'POLYGON' ) + INS-76220_FOV_CLASS_SPEC = ( 'CORNERS' ) + INS-76220_BORESIGHT = ( + 0.00000000 0.00000000 1.00000000 + ) + INS-76220_FOV_BOUNDARY = ( + + 0.06091935 0.04433268 0.99715768 + 0.00000000 0.04462814 0.99900367 + -0.06080956 0.04423678 0.99716864 + -0.06106251 -0.00005126 0.99813394 + -0.06083571 -0.04440396 0.99715962 + 0.00002390 -0.04469527 0.99900067 + 0.06099392 -0.04440530 0.99714989 + 0.06117482 -0.00000350 0.99812707 + ) + + \begintext + + +Actual Camera IFOV +---------------------------------------------------------- + + The actual average vertical and horizontal pixel IFOVs were computed by + dividing the angular extent between the view directions of pixels + (823.5,0) and (823.5,1199) for the vertical direction and between + (0,599.5) and (1647,599.5) for the horizontal direction by the number + of pixels minus 1. The average IFOV is simply an average of the + vertical and horizontal IFOVs. + + In the keywords below the IFOVs are provided in degrees. + + \begindata + + INS-76220_IFOV_VERTICAL = ( 0.00426986 ) + INS-76220_IFOV_HORIZONTAL = ( 0.00425504 ) + INS-76220_IFOV = ( 0.00426245 ) + + \begintext + + +Source CAHVOR(E) Parameters + + The keywords below contain parameters of the CAHVOR(E) model from + which all actual camera parameters provided in this file have been + derived. Note that the reference quaternion (CAHVOR_QUAT) is not a + SPICE-style but an engineering style quaternion (s1,s2,s3,c.) + + \begindata + + INS-76220_CAHVOR_FILE = ( 'MSL_CAL_003_SN_3004_FILTER_0_FOCUS_02702-MCAMR-FLIGHT.cahvor' ) + INS-76220_CAHVOR_MODEL = ( ' CAHVOR ' ) + + INS-76220_CAHVOR_DIMS = ( 1648 1200 ) + + INS-76220_CAHVOR_C = ( 0.872866 0.677208 -1.970931 ) + INS-76220_CAHVOR_A = ( 0.999741 -0.022668 0.001764 ) + INS-76220_CAHVOR_H = ( 1162.600942 13353.117702 -93.448986 ) + INS-76220_CAHVOR_V = ( 512.731806 83.454058 13371.226140 ) + INS-76220_CAHVOR_O = ( 0.999495 -0.029483 0.011824 ) + INS-76220_CAHVOR_R = ( -0.000106 1.436779 -0.685884 ) + + INS-76220_CAHVOR_HS = ( 13376.370999 ) + INS-76220_CAHVOR_HC = ( 859.446513 ) + INS-76220_CAHVOR_VS = ( 13370.635765 ) + INS-76220_CAHVOR_VC = ( 534.294115 ) + INS-76220_CAHVOR_THETA = ( -1.570787 ) + + INS-76220_CAHVOR_POS = ( 0.80436 0.55942 -1.90608 ) + + INS-76220_CAHVOR_QUAT = ( 0.00001 -0.00325 -0.00104 0.99999 ) + + + \begintext + diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_hga_tlm_0_sliced_-76122.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_hga_tlm_0_sliced_-76122.xc new file mode 100644 index 0000000000000000000000000000000000000000..14c8c3bf580bc441b391123332629184753ac362 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_hga_tlm_0_sliced_-76122.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL HGA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL HGA Encoder AZ, Reconstructed ' +'23AC425B0B71^C' +'23AC435A3716^C' +'-1295A' +'-12959' +'3' +'1' +19 +'FFFFFFFFEEF978^0' +'0^0' +'0^0' +'-5D5D7E3562FFD4^-4' +'0^0' +'0^0' +'0^0' +'FFFFFFFFEEF978^0' +'0^0' +'0^0' +'-5D5D7E3562FFD4^-4' +'0^0' +'0^0' +'0^0' +'23AC425B0B71^C' +'23AC435A3716^C' +'23AC425B0B71^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_hga_tlm_0_sliced_-76124.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_hga_tlm_0_sliced_-76124.xc new file mode 100644 index 0000000000000000000000000000000000000000..11f19c67153ac54eea2e6ef7e62985fb033fd3c2 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_hga_tlm_0_sliced_-76124.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL HGA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL HGA Encoder EL, Reconstructed ' +'23AC425B0B71^C' +'23AC435A3716^C' +'-1295C' +'-1295B' +'3' +'1' +19 +'EC878EFBD0B278^0' +'61ED6CBA333CB8^0' +'0^0' +'0^0' +'0^0' +'0^0' +'0^0' +'EC878EFBD0B278^0' +'61ED6CBA333CB8^0' +'0^0' +'0^0' +'0^0' +'0^0' +'0^0' +'23AC425B0B71^C' +'23AC435A3716^C' +'23AC425B0B71^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_hga_tlm_1_sliced_-76122.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_hga_tlm_1_sliced_-76122.xc new file mode 100644 index 0000000000000000000000000000000000000000..10eba01c1c1649ce448cee34fb98fef31cefd81f --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_hga_tlm_1_sliced_-76122.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL HGA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL HGA Encoder AZ, Reconstructed ' +'23AC452B004A^C' +'23AC46285C3F^C' +'-1295A' +'-12959' +'3' +'1' +19 +'FFFFFFFFEEF978^0' +'0^0' +'0^0' +'-5D5D7E3562FFD4^-4' +'0^0' +'0^0' +'0^0' +'FFFFFFFFEEF978^0' +'0^0' +'0^0' +'-5D5D7E3562FFD4^-4' +'0^0' +'0^0' +'0^0' +'23AC452B004A^C' +'23AC46285C3F^C' +'23AC452B004A^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_hga_tlm_1_sliced_-76124.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_hga_tlm_1_sliced_-76124.xc new file mode 100644 index 0000000000000000000000000000000000000000..05bba709617cfd82021abd3eecd4710c307c5cff --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_hga_tlm_1_sliced_-76124.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL HGA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL HGA Encoder EL, Reconstructed ' +'23AC452B004A^C' +'23AC46285C3F^C' +'-1295C' +'-1295B' +'3' +'1' +19 +'EC878EFBD0B278^0' +'61ED6CBA333CB8^0' +'0^0' +'0^0' +'0^0' +'0^0' +'0^0' +'EC878EFBD0B278^0' +'61ED6CBA333CB8^0' +'0^0' +'0^0' +'0^0' +'0^0' +'0^0' +'23AC452B004A^C' +'23AC46285C3F^C' +'23AC452B004A^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76301.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76301.xc new file mode 100644 index 0000000000000000000000000000000000000000..a052661b4c87e0dad8662b2af645aae4e46483b4 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76301.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL RA SH. AZ Rotation, Reconstructed ' +'23AC425B0B71^C' +'23AC435A3716^C' +'-12A0D' +'-12A0C' +'3' +'1' +19 +'EBEF819321FFB8^0' +'0^0' +'0^0' +'-63599448B612F8^0' +'0^0' +'0^0' +'0^0' +'EBEF819321FFB8^0' +'0^0' +'0^0' +'-63599448B612F8^0' +'0^0' +'0^0' +'0^0' +'23AC425B0B71^C' +'23AC435A3716^C' +'23AC425B0B71^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76302.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76302.xc new file mode 100644 index 0000000000000000000000000000000000000000..642b668b19a52f6ad11e788bf3aad9f98c5f89f6 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76302.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL RA SH. EL Rotation, Reconstructed ' +'23AC425B0B71^C' +'23AC435A3716^C' +'-12A0E' +'-12A0D' +'3' +'1' +19 +'7FA72EB47E4D9C^0' +'-7FA72EB47E4D94^0' +'-805893D4FAE22^0' +'805893D4FAE228^0' +'0^0' +'0^0' +'0^0' +'7FA72EB47E4D9C^0' +'-7FA72EB47E4D94^0' +'-805893D4FAE22^0' +'805893D4FAE228^0' +'0^0' +'0^0' +'0^0' +'23AC425B0B71^C' +'23AC435A3716^C' +'23AC425B0B71^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76303.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76303.xc new file mode 100644 index 0000000000000000000000000000000000000000..f5c8bd66edbb77b367ecb81282a3f9d2f1e76e7b --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76303.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL RA ELBOW Rotation, Reconstructed ' +'23AC425B0B71^C' +'23AC435A3716^C' +'-12A0F' +'-12A0E' +'3' +'1' +19 +'BAC136F54A23C8^0' +'0^0' +'0^0' +'AF189DF294FA78^0' +'0^0' +'0^0' +'0^0' +'BAC136F54A23C8^0' +'0^0' +'0^0' +'AF189DF294FA78^0' +'0^0' +'0^0' +'0^0' +'23AC425B0B71^C' +'23AC435A3716^C' +'23AC425B0B71^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76304.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76304.xc new file mode 100644 index 0000000000000000000000000000000000000000..fba8254e9ed0e673029cc8e7b19dec1010255a0c --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76304.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL RA WRIST Rotation, Reconstructed ' +'23AC425B0B71^C' +'23AC435A3716^C' +'-12A10' +'-12A0F' +'3' +'1' +19 +'AB7F67B2F3A63^0' +'0^0' +'0^0' +'-BE1088C056211^0' +'0^0' +'0^0' +'0^0' +'AB7F67B2F3A63^0' +'0^0' +'0^0' +'-BE1088C056211^0' +'0^0' +'0^0' +'0^0' +'23AC425B0B71^C' +'23AC435A3716^C' +'23AC425B0B71^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76305.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76305.xc new file mode 100644 index 0000000000000000000000000000000000000000..b95bcbc80c60cafc1f259025b1e01b3ce0847d31 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_0_sliced_-76305.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL RA TURRET Rotation, Reconstructed ' +'23AC425B0B71^C' +'23AC435A3716^C' +'-12A11' +'-12A10' +'3' +'1' +19 +'2252FFB00BBD4C^0' +'2252FFB00BBD4C^0' +'-B1BC3EBC31DB28^0' +'-B1BC3EBC31DB38^0' +'0^0' +'0^0' +'0^0' +'2252FFB00BBD4C^0' +'2252FFB00BBD4C^0' +'-B1BC3EBC31DB28^0' +'-B1BC3EBC31DB38^0' +'0^0' +'0^0' +'0^0' +'23AC425B0B71^C' +'23AC435A3716^C' +'23AC425B0B71^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76301.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76301.xc new file mode 100644 index 0000000000000000000000000000000000000000..197b05e0ec842a37ab6ad670174957bc8cdf99fe --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76301.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL RA SH. AZ Rotation, Reconstructed ' +'23AC452B004A^C' +'23AC46285C3F^C' +'-12A0D' +'-12A0C' +'3' +'1' +19 +'EBEF819321FFB8^0' +'0^0' +'0^0' +'-63599448B612F8^0' +'0^0' +'0^0' +'0^0' +'EBEF819321FFB8^0' +'0^0' +'0^0' +'-63599448B612F8^0' +'0^0' +'0^0' +'0^0' +'23AC452B004A^C' +'23AC46285C3F^C' +'23AC452B004A^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76302.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76302.xc new file mode 100644 index 0000000000000000000000000000000000000000..24a8ecfce9df654fccf6018ac102bae5c122e26b --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76302.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL RA SH. EL Rotation, Reconstructed ' +'23AC452B004A^C' +'23AC46285C3F^C' +'-12A0E' +'-12A0D' +'3' +'1' +19 +'7FA72EB47E4D9C^0' +'-7FA72EB47E4D94^0' +'-805893D4FAE22^0' +'805893D4FAE228^0' +'0^0' +'0^0' +'0^0' +'7FA72EB47E4D9C^0' +'-7FA72EB47E4D94^0' +'-805893D4FAE22^0' +'805893D4FAE228^0' +'0^0' +'0^0' +'0^0' +'23AC452B004A^C' +'23AC46285C3F^C' +'23AC452B004A^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76303.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76303.xc new file mode 100644 index 0000000000000000000000000000000000000000..2d5ec22c565e2b6577b6dd97ce8d0666b9d68d53 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76303.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL RA ELBOW Rotation, Reconstructed ' +'23AC452B004A^C' +'23AC46285C3F^C' +'-12A0F' +'-12A0E' +'3' +'1' +19 +'BAC136F54A23C8^0' +'0^0' +'0^0' +'AF189DF294FA78^0' +'0^0' +'0^0' +'0^0' +'BAC136F54A23C8^0' +'0^0' +'0^0' +'AF189DF294FA78^0' +'0^0' +'0^0' +'0^0' +'23AC452B004A^C' +'23AC46285C3F^C' +'23AC452B004A^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76304.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76304.xc new file mode 100644 index 0000000000000000000000000000000000000000..21f31f6c9406b8deec2fcbf9c6191c220a8dddfd --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76304.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL RA WRIST Rotation, Reconstructed ' +'23AC452B004A^C' +'23AC46285C3F^C' +'-12A10' +'-12A0F' +'3' +'1' +19 +'AB7F67B2F3A63^0' +'0^0' +'0^0' +'-BE1088C056211^0' +'0^0' +'0^0' +'0^0' +'AB7F67B2F3A63^0' +'0^0' +'0^0' +'-BE1088C056211^0' +'0^0' +'0^0' +'0^0' +'23AC452B004A^C' +'23AC46285C3F^C' +'23AC452B004A^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76305.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76305.xc new file mode 100644 index 0000000000000000000000000000000000000000..377b04f000b17c9fa5c13145207c7d08b3d059e1 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_ra_tlmres_1_sliced_-76305.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RA Reconstructed Orientation ' +BEGIN_ARRAY 1 19 +'MSL RA TURRET Rotation, Reconstructed ' +'23AC452B004A^C' +'23AC46285C3F^C' +'-12A11' +'-12A10' +'3' +'1' +19 +'2252FFB00BBD4C^0' +'2252FFB00BBD4C^0' +'-B1BC3EBC31DB28^0' +'-B1BC3EBC31DB38^0' +'0^0' +'0^0' +'0^0' +'2252FFB00BBD4C^0' +'2252FFB00BBD4C^0' +'-B1BC3EBC31DB28^0' +'-B1BC3EBC31DB38^0' +'0^0' +'0^0' +'0^0' +'23AC452B004A^C' +'23AC46285C3F^C' +'23AC452B004A^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rover_tlm_0_sliced_-76000.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rover_tlm_0_sliced_-76000.xc new file mode 100644 index 0000000000000000000000000000000000000000..a60f1205eaea4e4dd048b61358eb02c17a1d034c --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rover_tlm_0_sliced_-76000.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL Rover Reconstructed Attitude w.r.t. Local Level ' +BEGIN_ARRAY 1 19 +'MSL w.r.t. Local Level, Reconstructed ' +'23AC425B0B71^C' +'23AC435A3716^C' +'-128E0' +'-12C6E' +'3' +'1' +19 +'5AC5C8178E536C^0' +'-7CAA95EEA175E4^-1' +'31D361CEE49B5E^-2' +'EF3D56FB99CF88^0' +'-38EDF0EAE84BE6^-6' +'18BC0F27A6E631^-5' +'-6A2F0E22E30D04^-8' +'5AC5C8178E536C^0' +'-7CAA95EEA175E4^-1' +'31D361CEE49B5E^-2' +'EF3D56FB99CF88^0' +'-3A32AB8AF8B912^-6' +'19492598B54F18^-5' +'-6C8CBBE5AF156^-8' +'23AC425B0B71^C' +'23AC435A3716^C' +'23AC425B0B71^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rover_tlm_1_sliced_-76000.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rover_tlm_1_sliced_-76000.xc new file mode 100644 index 0000000000000000000000000000000000000000..5cf50f9aabc84851e3e908098dec9a8105bfcd06 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rover_tlm_1_sliced_-76000.xc @@ -0,0 +1,40 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL Rover Reconstructed Attitude w.r.t. Local Level ' +BEGIN_ARRAY 1 19 +'MSL w.r.t. Local Level, Reconstructed ' +'23AC452B004A^C' +'23AC46285C3F^C' +'-128E0' +'-12C6E' +'3' +'1' +19 +'5AC5C8178E536C^0' +'-7CAA95EEA175E4^-1' +'31D361CEE49B5E^-2' +'EF3D56FB99CF88^0' +'-3C8227AA9F69A4^-6' +'1A4A22558CFA3C^-5' +'-70DBF603807C4C^-8' +'5AC5C8178E536C^0' +'-7CAA95EEA175E4^-1' +'31D361CEE49B5E^-2' +'EF3D56FB99CF88^0' +'-3DC494346BD8D4^-6' +'1AD6386559CF77^-5' +'-73355727A72258^-8' +'23AC452B004A^C' +'23AC46285C3F^C' +'23AC452B004A^C' +'1^1' +'2^1' +END_ARRAY 1 19 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rsm_tlmres_0_sliced_-76202.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rsm_tlmres_0_sliced_-76202.xc new file mode 100644 index 0000000000000000000000000000000000000000..2263e03ce2f8dea44ab43ff6e2ebf33c0a7577ce --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rsm_tlmres_0_sliced_-76202.xc @@ -0,0 +1,248 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RSM Reconstructed Orientation ' +BEGIN_ARRAY 1 227 +'MSL RSM Resolver AZ, Reconstructed ' +'23AC425B0B71^C' +'23AC435A3716^C' +'-129AA' +'-129A9' +'3' +'1' +227 +'CBBE0C09BE6EA^0' +'0^0' +'0^0' +'9B0009C37271C^0' +'0^0' +'0^0' +'1AF2D669B2EB7C^-1' +'CF0C8D34736D6^0' +'0^0' +'0^0' +'968DFCD2E88B78^0' +'0^0' +'0^0' +'0^0' +'CF0C8D34736D6^0' +'0^0' +'0^0' +'968DFCD2E88B78^0' +'0^0' +'0^0' +'90524CE62C9378^-1' +'DF054455919ED^0' +'0^0' +'0^0' +'7DB07C14D2E338^0' +'0^0' +'0^0' +'0^0' +'DF054455919ED^0' +'0^0' +'0^0' +'7DB07C14D2E338^0' +'0^0' +'0^0' +'91AF61011E7F68^-1' +'EC3D52E855E7E^0' +'0^0' +'0^0' +'629FFB644752E8^0' +'0^0' +'0^0' +'0^0' +'EC3D52E855E7E^0' +'0^0' +'0^0' +'629FFB644752E8^0' +'0^0' +'0^0' +'9046485D2F01D8^-1' +'F60768D2D1D1A8^0' +'0^0' +'0^0' +'46C05B0D3708C^0' +'0^0' +'0^0' +'0^0' +'F60768D2D1D1A8^0' +'0^0' +'0^0' +'46C05B0D3708C^0' +'0^0' +'0^0' +'91979291166C^-1' +'FC9EA1B095DFD8^0' +'0^0' +'0^0' +'2976EDA9D958BC^0' +'0^0' +'0^0' +'0^0' +'FC9EA1B095DFD8^0' +'0^0' +'0^0' +'2976EDA9D958BC^0' +'0^0' +'0^0' +'90E4ADA75203D8^-1' +'FFBA2B4221CE08^0' +'0^0' +'0^0' +'BD091915FE227^-1' +'0^0' +'0^0' +'0^0' +'FFBA2B4221CE08^0' +'0^0' +'0^0' +'BD091915FE227^-1' +'0^0' +'0^0' +'-9E1A11D9B86E18^-3' +'FFB8C54FDF563^0' +'0^0' +'0^0' +'BEEAEC81FE0E8^-1' +'0^0' +'0^0' +'0^0' +'FFB8C54FDF563^0' +'0^0' +'0^0' +'BEEAEC81FE0E8^-1' +'0^0' +'0^0' +'-9FB97929E752E8^-1' +'FBA5A7227F4418^0' +'0^0' +'0^0' +'2F02084FEDD8C2^0' +'0^0' +'0^0' +'0^0' +'FBA5A7227F4418^0' +'0^0' +'0^0' +'2F02084FEDD8C2^0' +'0^0' +'0^0' +'-A6B5A51C61ECA8^-1' +'F2E0CD380FD748^0' +'0^0' +'0^0' +'50E89EC357DBF8^0' +'0^0' +'0^0' +'0^0' +'F2E0CD380FD748^0' +'0^0' +'0^0' +'50E89EC357DBF8^0' +'0^0' +'0^0' +'-9FDE76926949B^-1' +'E5AEA204E024D^0' +'0^0' +'0^0' +'710ED764188728^0' +'0^0' +'0^0' +'0^0' +'E5AEA204E024D^0' +'0^0' +'0^0' +'710ED764188728^0' +'0^0' +'0^0' +'-A05719258FBBB8^-1' +'D42710E6498AF8^0' +'0^0' +'0^0' +'8F45FF063C6B48^0' +'0^0' +'0^0' +'0^0' +'D42710E6498AF8^0' +'0^0' +'0^0' +'8F45FF063C6B48^0' +'0^0' +'0^0' +'-A12C00261FE5E8^-1' +'BE8D672E17602^0' +'0^0' +'0^0' +'AAF49EDD054CA^0' +'0^0' +'0^0' +'0^0' +'BE8D672E17602^0' +'0^0' +'0^0' +'AAF49EDD054CA^0' +'0^0' +'0^0' +'-9CBBDB7DC51B78^-1' +'A5A38E8069C9F^0' +'0^0' +'0^0' +'C3310C165BAB68^0' +'0^0' +'0^0' +'0^0' +'A5A38E8069C9F^0' +'0^0' +'0^0' +'C3310C165BAB68^0' +'0^0' +'0^0' +'-A0073117D2DBE8^-1' +'8FA0840D080438^0' +'0^0' +'0^0' +'D3E9D343DC113^0' +'0^0' +'0^0' +'-20E72ABDA5E286^-1' +'23AC425B0B71^C' +'23AC425C4397FE^C' +'23AC4268AF5298^C' +'23AC426F3DB92^C' +'23AC427BAF597A^C' +'23AC42824DFF5^C' +'23AC4293AF5B1C^C' +'23AC429A3DB89A^C' +'23AC42A7AF5AFA^C' +'23AC42AE49655E^C' +'23AC42B9AEF7F4^C' +'23AC42C0456FB8^C' +'23AC42C9AF64AE^C' +'23AC42CFC969E4^C' +'23AC42DAAF5298^C' +'23AC42E1C3CF4E^C' +'23AC42EBAF6806^C' +'23AC42F2696BFC^C' +'23AC4303AF64AE^C' +'23AC430AA583A6^C' +'23AC4316AF502A^C' +'23AC431DA96AE^C' +'23AC4329AF5A1^C' +'23AC4330A969C2^C' +'23AC433CAF51AC^C' +'23AC4343C95B14^C' +'23AC4354AF5526^C' +'23AC435A3716^C' +'23AC425B0B71^C' +'1^1' +'1C^2' +END_ARRAY 1 227 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rsm_tlmres_0_sliced_-76204.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rsm_tlmres_0_sliced_-76204.xc new file mode 100644 index 0000000000000000000000000000000000000000..2e662a173d93763a9dadabcce6248b9b0a28e87c --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rsm_tlmres_0_sliced_-76204.xc @@ -0,0 +1,248 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RSM Reconstructed Orientation ' +BEGIN_ARRAY 1 227 +'MSL RSM Resolver EL, Reconstructed ' +'23AC425B0B71^C' +'23AC435A3716^C' +'-129AC' +'-129AB' +'3' +'1' +227 +'D5898FE4B243B^0' +'0^0' +'-8D338697C9F2E^0' +'0^0' +'0^0' +'-716E092B6C9164^-4' +'0^0' +'D58A5DB2C5D6B8^0' +'0^0' +'-8D324F5934EEE8^0' +'0^0' +'0^0' +'0^0' +'0^0' +'D58A5DB2C5D6B8^0' +'0^0' +'-8D324F5934EEE8^0' +'0^0' +'0^0' +'-1996E322E1DB8F^-3' +'0^0' +'D58D41EE12E2D8^0' +'0^0' +'-8D2DEFC06DFBD8^0' +'0^0' +'0^0' +'0^0' +'0^0' +'D58D41EE12E2D8^0' +'0^0' +'-8D2DEFC06DFBD8^0' +'0^0' +'0^0' +'-26041F2F2FE3FC^-3' +'0^0' +'D591981C07FC28^0' +'0^0' +'-8D27603ED75F88^0' +'0^0' +'0^0' +'0^0' +'0^0' +'D591981C07FC28^0' +'0^0' +'-8D27603ED75F88^0' +'0^0' +'0^0' +'-133144CFFD7F55^-3' +'0^0' +'D593C31FA9569^0' +'0^0' +'-8D2418714236A^0' +'0^0' +'0^0' +'0^0' +'0^0' +'D593C31FA9569^0' +'0^0' +'-8D2418714236A^0' +'0^0' +'0^0' +'-FE21AF14D85F18^-4' +'0^0' +'D5959198D535C8^0' +'0^0' +'-8D215C94C2DDD^0' +'0^0' +'0^0' +'0^0' +'0^0' +'D5959198D535C8^0' +'0^0' +'-8D215C94C2DDD^0' +'0^0' +'0^0' +'7F55C0F2A69DA8^-4' +'0^0' +'D594AA5D5DEFF^0' +'0^0' +'-8D22BA83BFF81^0' +'0^0' +'0^0' +'0^0' +'0^0' +'D594AA5D5DEFF^0' +'0^0' +'-8D22BA83BFF81^0' +'0^0' +'0^0' +'-8C668FD2DB58F8^-1' +'0^0' +'E325788C22A738^0' +'0^0' +'-7611EBE862BAC4^0' +'0^0' +'0^0' +'0^0' +'0^0' +'E325788C22A738^0' +'0^0' +'-7611EBE862BAC4^0' +'0^0' +'0^0' +'AA9D0C7131C7E^-4' +'0^0' +'E32461F9C52BE^0' +'0^0' +'-761403CEEA84B8^0' +'0^0' +'0^0' +'0^0' +'0^0' +'E32461F9C52BE^0' +'0^0' +'-761403CEEA84B8^0' +'0^0' +'0^0' +'128CD1C4678C47^-3' +'0^0' +'E3229584253098^0' +'0^0' +'-76177982BF67B8^0' +'0^0' +'0^0' +'0^0' +'0^0' +'E3229584253098^0' +'0^0' +'-76177982BF67B8^0' +'0^0' +'0^0' +'158A197617AEC1^-3' +'0^0' +'E3206C1F0909D^0' +'0^0' +'-761BA1CE57988^0' +'0^0' +'0^0' +'0^0' +'0^0' +'E3206C1F0909D^0' +'0^0' +'-761BA1CE57988^0' +'0^0' +'0^0' +'2E96FBC253EA5^-3' +'0^0' +'E31BBC314B027^0' +'0^0' +'-7624A4E23B048C^0' +'0^0' +'0^0' +'0^0' +'0^0' +'E31BBC314B027^0' +'0^0' +'-7624A4E23B048C^0' +'0^0' +'0^0' +'2029AA1254DFAC^-3' +'0^0' +'E3187FA5642AB^0' +'0^0' +'-762ADD672BCA1C^0' +'0^0' +'0^0' +'0^0' +'0^0' +'E3187FA5642AB^0' +'0^0' +'-762ADD672BCA1C^0' +'0^0' +'0^0' +'2A3A5593D64258^-3' +'0^0' +'E3142C11FABC2^0' +'0^0' +'-76332D95B32D3^0' +'0^0' +'0^0' +'0^0' +'0^0' +'E3142C11FABC2^0' +'0^0' +'-76332D95B32D3^0' +'0^0' +'0^0' +'2AED403128ABF2^-3' +'0^0' +'E310BF14BE8FB8^0' +'0^0' +'-7639C22C2D6EE8^0' +'0^0' +'0^0' +'8D37946AF4071^-4' +'0^0' +'23AC425B0B71^C' +'23AC425C4397FE^C' +'23AC4268AF5298^C' +'23AC426F3DB92^C' +'23AC427BAF597A^C' +'23AC42824DFF5^C' +'23AC4293AF5B1C^C' +'23AC429A3DB89A^C' +'23AC42A7AF5AFA^C' +'23AC42AE49655E^C' +'23AC42B9AEF7F4^C' +'23AC42C0456FB8^C' +'23AC42C9AF64AE^C' +'23AC42CFC969E4^C' +'23AC42DAAF5298^C' +'23AC42E1C3CF4E^C' +'23AC42EBAF6806^C' +'23AC42F2696BFC^C' +'23AC4303AF64AE^C' +'23AC430AA583A6^C' +'23AC4316AF502A^C' +'23AC431DA96AE^C' +'23AC4329AF5A1^C' +'23AC4330A969C2^C' +'23AC433CAF51AC^C' +'23AC4343C95B14^C' +'23AC4354AF5526^C' +'23AC435A3716^C' +'23AC425B0B71^C' +'1^1' +'1C^2' +END_ARRAY 1 227 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rsm_tlmres_1_sliced_-76202.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rsm_tlmres_1_sliced_-76202.xc new file mode 100644 index 0000000000000000000000000000000000000000..88a95a86ea52949aabb54021a0849da250042029 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rsm_tlmres_1_sliced_-76202.xc @@ -0,0 +1,152 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RSM Reconstructed Orientation ' +BEGIN_ARRAY 1 131 +'MSL RSM Resolver AZ, Reconstructed ' +'23AC452B004A^C' +'23AC46285C3F^C' +'-129AA' +'-129A9' +'3' +'1' +131 +'C82FF1DB08B708^0' +'0^0' +'0^0' +'9F90B094129598^0' +'0^0' +'0^0' +'-4D955CD68021E4^-1' +'C82FF1DB08B7^0' +'0^0' +'0^0' +'9F90B0941295A^0' +'0^0' +'0^0' +'-BE4824E4415868^-1' +'A76EF54B043048^0' +'0^0' +'0^0' +'C1A78A19D3756^0' +'0^0' +'0^0' +'0^0' +'A76EF54B043048^0' +'0^0' +'0^0' +'C1A78A19D3756^0' +'0^0' +'0^0' +'-BE6BE8EBF2DAB8^-1' +'80F9F7CFB69898^0' +'0^0' +'0^0' +'DD22C933182E58^0' +'0^0' +'0^0' +'0^0' +'80F9F7CFB69898^0' +'0^0' +'0^0' +'DD22C933182E58^0' +'0^0' +'0^0' +'-BD0075A841B5E8^-1' +'56258B06F84AA4^0' +'0^0' +'0^0' +'F111ECCA1B8308^0' +'0^0' +'0^0' +'0^0' +'56258B06F84AA4^0' +'0^0' +'0^0' +'F111ECCA1B8308^0' +'0^0' +'0^0' +'-BEE8AE61EB4B6^-1' +'28602A8C8BB3A2^0' +'0^0' +'0^0' +'FCCBC545EF342^0' +'0^0' +'0^0' +'0^0' +'28602A8C8BB3A2^0' +'0^0' +'0^0' +'FCCBC545EF342^0' +'0^0' +'0^0' +'-BC277D08239C68^-1' +'6D26A22A79D49^-1' +'0^0' +'0^0' +'-FFE8B9FB35A2F8^0' +'0^0' +'0^0' +'0^0' +'6D26A22A79D49^-1' +'0^0' +'0^0' +'-FFE8B9FB35A2F8^0' +'0^0' +'0^0' +'-BEAAC9481D209^-1' +'35AE249C4C7AEA^0' +'0^0' +'0^0' +'-FA4F051D5B5838^0' +'0^0' +'0^0' +'0^0' +'35AE249C4C7AEA^0' +'0^0' +'0^0' +'-FA4F051D5B5838^0' +'0^0' +'0^0' +'-BECD709A0B093^-1' +'62BE2324BC32CC^0' +'0^0' +'0^0' +'-EC30B9D1132298^0' +'0^0' +'0^0' +'0^0' +'62BE2324BC32CC^0' +'0^0' +'0^0' +'-EC30B9D1132298^0' +'0^0' +'0^0' +'0^0' +'23AC452B004A^C' +'23AC4535AF4FF8^C' +'23AC453DA57614^C' +'23AC4547AF5D78^C' +'23AC454FA3B02E^C' +'23AC4559AF571E^C' +'23AC4561B1D9A^C' +'23AC456BAF68E^C' +'23AC45739DC3DE^C' +'23AC4584AF5138^C' +'23AC458CBDA08C^C' +'23AC4599AF517A^C' +'23AC45A19DC608^C' +'23AC45ABAF6DFC^C' +'23AC45B39DC36A^C' +'23AC45BC7F575^C' +'23AC452B004A^C' +'1^1' +'1^2' +END_ARRAY 1 131 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rsm_tlmres_1_sliced_-76204.xc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rsm_tlmres_1_sliced_-76204.xc new file mode 100644 index 0000000000000000000000000000000000000000..225027107134210698dbf7298871d798ddfe9b4b --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_surf_rsm_tlmres_1_sliced_-76204.xc @@ -0,0 +1,152 @@ +DAFETF NAIF DAF ENCODED TRANSFER FILE +'DAF/CK ' +'2' +'6' +'MSL RSM Reconstructed Orientation ' +BEGIN_ARRAY 1 131 +'MSL RSM Resolver EL, Reconstructed ' +'23AC452B004A^C' +'23AC46285C3F^C' +'-129AC' +'-129AB' +'3' +'1' +131 +'F6AF0CB52EE6F8^0' +'0^0' +'-446EE917194AF4^0' +'0^0' +'0^0' +'133977D0874B74^-3' +'0^0' +'F6AF0CB52EE6F8^0' +'0^0' +'-446EE917194AF4^0' +'0^0' +'0^0' +'2F266F0284B344^-3' +'0^0' +'F6ABE9A985CDE8^0' +'0^0' +'-447A36DA20D5C4^0' +'0^0' +'0^0' +'0^0' +'0^0' +'F6ABE9A985CDE8^0' +'0^0' +'-447A36DA20D5C4^0' +'0^0' +'0^0' +'325B2C2AA863AE^-3' +'0^0' +'F6A89035C0C948^0' +'0^0' +'-4486467355C89^0' +'0^0' +'0^0' +'0^0' +'0^0' +'F6A89035C0C948^0' +'0^0' +'-4486467355C89^0' +'0^0' +'0^0' +'2570BB25B83DD6^-3' +'0^0' +'F6A60DDB69F5C^0' +'0^0' +'-448F4E0032F334^0' +'0^0' +'0^0' +'0^0' +'0^0' +'F6A60DDB69F5C^0' +'0^0' +'-448F4E0032F334^0' +'0^0' +'0^0' +'1C4AFB8EDA9F9E^-3' +'0^0' +'F6A42CFFCC9638^0' +'0^0' +'-44960F8FEC5524^0' +'0^0' +'0^0' +'0^0' +'0^0' +'F6A42CFFCC9638^0' +'0^0' +'-44960F8FEC5524^0' +'0^0' +'0^0' +'-31FB60367F636^-4' +'0^0' +'F6A462EFB8DB5^0' +'0^0' +'-44954D9862B738^0' +'0^0' +'0^0' +'0^0' +'0^0' +'F6A462EFB8DB5^0' +'0^0' +'-44954D9862B738^0' +'0^0' +'0^0' +'-FBB711AC9E0ED8^-4' +'0^0' +'F6A56E57346158^0' +'0^0' +'-44918BD53B29C^0' +'0^0' +'0^0' +'0^0' +'0^0' +'F6A56E57346158^0' +'0^0' +'-44918BD53B29C^0' +'0^0' +'0^0' +'-FBBAED83F3201^-4' +'0^0' +'F6A679B0099598^0' +'0^0' +'-448DCA0E010208^0' +'0^0' +'0^0' +'0^0' +'0^0' +'F6A679B0099598^0' +'0^0' +'-448DCA0E010208^0' +'0^0' +'0^0' +'0^0' +'0^0' +'23AC452B004A^C' +'23AC4535AF4FF8^C' +'23AC453DA57614^C' +'23AC4547AF5D78^C' +'23AC454FA3B02E^C' +'23AC4559AF571E^C' +'23AC4561B1D9A^C' +'23AC456BAF68E^C' +'23AC45739DC3DE^C' +'23AC4584AF5138^C' +'23AC458CBDA08C^C' +'23AC4599AF517A^C' +'23AC45A19DC608^C' +'23AC45ABAF6DFC^C' +'23AC45B39DC36A^C' +'23AC45BC7F575^C' +'23AC452B004A^C' +'1^1' +'1^2' +END_ARRAY 1 131 +TOTAL_ARRAYS 1 + ~NAIF/SPC BEGIN COMMENTS~ +This CK is for testing with the image: /Users/arsanders/data/msl/images/2264ML0121141200805116C00_DRCL.cub + +This CK was generated using the following command: {} + ~NAIF/SPC END COMMENTS~ diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_v08.tf b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_v08.tf new file mode 100755 index 0000000000000000000000000000000000000000..c1c3f9a14ad1dc8022f158c2e4468793d03266d0 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/msl_v08.tf @@ -0,0 +1,4735 @@ +KPL/FK + +MSL Frames Kernel +======================================================================== + + This frame kernel contains complete set of frame definitions for the + MSL including definitions for the MSL cruise, descent, and rover + frames, local level, topocentric and surface-fixed frames, appendage + frames, and science instrument frames. + + +Version and Date +======================================================================== + + Version 0.8 -- May 30, 2013 -- Boris Semenov, NAIF + + Updated alignments of MSL_NAVCAM_LEFT_B and MSL_NAVCAM_RIGHT_B + based on the updated CAHVOR models for the -5C temperature point + (MSL_CAL_005_SN_0215-NAVL-FLIGHT-RCE-B.cahvor and + MSL_CAL_005_SN_0218-NAVR-FLIGHT-RCE-B.cahvor). + + Version 0.7 -- April 12, 2013 -- Boris Semenov, NAIF + + Added name/ID mappings for DIMU_A. + + Version 0.6 -- November 21, 2012 -- Boris Semenov, NAIF + + Added name/ID mappings for DAN modules. + + Version 0.5 -- August 8, 2012 -- Boris Semenov, NAIF + + Redefined HGA, RSM, and RA frame chains. Added name/ID mappings + for calibration targets, fiducials, etc. Incorporated actual + frame alignments based on camera models and flight parameters. + Incorporated the topocentric frame definition based on the actual + landing site location. + + Version 0.4 -- December 13, 2011 -- Boris Semenov, NAIF + + Changed antenna frame ID codes as follows: + + MSL_PLGA -76810 --> -76060 + MSL_TLGA -76811 --> -76061 + MSL_PUHF -76812 --> -76062 + MSL_MGA -76813 --> -76063 + + MSL_DLGA -76820 --> -76064 + MSL_DUHF -76821 --> -76065 + + MSL_RLGA -76830 --> -76110 + MSL_RUHF -76840 --> -76111 + MSL_HGA_BASE -76850 --> -76120 + MSL_HGA_GIMBAL -76851 --> -76121 + MSL_HGA -76852 --> -76122 + MSL_HGA_EB -76853 --> -76123 + + Added name-ID mapping for all instruments, structures and sites. + + Version 0.3 -- May 4, 2011 -- Boris Semenov, NAIF + + Preliminary version. Changed MSL_TLGA tilt angle to 17.5 + degrees. + + Version 0.2 -- May 3, 2011 -- Boris Semenov, NAIF + + Preliminary version. Added CACS and antenna frames. + + Version 0.1 -- March 3, 2011 -- Boris Semenov, NAIF + + Preliminary version. Added rover and cruise/descent frames. + + Version 0.0 -- December 4, 2007 -- Boris Semenov, NAIF + + Very preliminary version. Contains definitions only for the + LOCAL_LEVEL and SURFACE_FIXED frames. + + +References +======================================================================== + + 1. ``Frames Required Reading'' + + 2. ``Kernel Pool Required Reading'' + + 3. ``C-Kernel Required Reading'' + + 4. MSL 3PCS document, latest version + + 5. RSVP's MSL_kinematics_tree.xml, 2012-07-06 + + 6. FSW parameter set, July 2012 + + 7. 'MSL_Surface_Cruise DataRate_Analysis_Rev-A_5-19-11.pdf', + Section E.7, May 10, 2011 + + 8. MSL camera CAHVORE Models and reference positions/quaternions, + July 2012 + + +Contact Information +======================================================================== + + Boris V. Semenov, NAIF/JPL, (818)-354-8136, Boris.Semenov@jpl.nasa.gov + + +Implementation Notes +======================================================================== + + This file is used by the SPICE system as follows: programs that make + use of this frame kernel must `load' the kernel using SPICE routine + FURNSH, normally during program initialization. + + This file was created and may be updated with a text editor or word + processor. + + +MSL NAIF ID Codes +======================================================================== + + The following names and NAIF ID codes are assigned to the MSL rover, + its structures and science instruments (the keywords implementing + these definitions are located in the section "MSL Mission NAIF ID + Codes -- Definition Section" at the end of this file): + + Landing site and sites: + ----------------------- + + MSL_LANDING_SITE -76900 + + MSL_SITE_1...399 -76501...-76899 + + Cruise and descent stages and the rover: + ---------------------------------------- + + MSL -76 + + MSL_ROVER -76000 + + MSL_SPACECRAFT -76010 + MSL_CRUISE_STAGE -76020 + MSL_DESCENT_STAGE -76030 + MSL_ROVER_MECH -76040 + MSL_CACS -76050 + + MSL_DIMU_A -76031 + + + Instruments and structures on cruise and descent modules: + --------------------------------------------------------- + + MSL_PLGA -76060 + MSL_TLGA -76061 + MSL_PUHF -76062 + MSL_MGA -76063 + + MSL_DLGA -76064 + MSL_DUHF -76065 + + MSL_MEDLI_MISP_T1 -76071 + MSL_MEDLI_MISP_T2 -76072 + MSL_MEDLI_MISP_T3 -76073 + MSL_MEDLI_MISP_T4 -76074 + MSL_MEDLI_MISP_T5 -76075 + MSL_MEDLI_MISP_T6 -76076 + MSL_MEDLI_MISP_T7 -76077 + + MSL_MEDLI_MEADS_P1 -76081 + MSL_MEDLI_MEADS_P2 -76082 + MSL_MEDLI_MEADS_P3 -76083 + MSL_MEDLI_MEADS_P4 -76084 + MSL_MEDLI_MEADS_P5 -76085 + MSL_MEDLI_MEADS_P6 -76086 + MSL_MEDLI_MEADS_P7 -76087 + + Instruments and devices on the rover: + -------------------------------------- + + MSL_RLGA -76110 + MSL_RUHF -76111 + + MSL_HGA_ZERO_AZ -76121 + MSL_HGA_AZ -76122 + MSL_HGA_ZERO_EL -76123 + MSL_HGA_EL -76124 + MSL_HGA -76125 + MSL_HGA_EB -76126 + + MSL_HAZCAM_FRONT_LEFT_A -76131 + MSL_HAZCAM_FRONT_RIGHT_A -76132 + MSL_HAZCAM_FRONT_LEFT_B -76133 + MSL_HAZCAM_FRONT_RIGHT_B -76134 + MSL_HAZCAM_BACK_LEFT_A -76141 + MSL_HAZCAM_BACK_RIGHT_A -76142 + MSL_HAZCAM_BACK_LEFT_B -76143 + MSL_HAZCAM_BACK_RIGHT_B -76144 + + MSL_RAD -76150 + + MSL_MARDI -76160 + + MSL_REMS_UVS -76170 + + MSL_DAN -76180 + MSL_DAN_PNG -76191 + MSL_DAN_DE -76192 + MSL_DAN_DE_CTN -76193 + MSL_DAN_DE_CETN -76194 + MSL_REMS_PS -76181 + MSL_SAM -76182 + MSL_SAM_1_INLET -76184 + MSL_SAM_2_INLET -76185 + MSL_CHEMIN -76183 + MSL_CHEMIN_INLET -76186 + + Instruments and devices on RSM: + -------------------------------- + + MSL_RSM_ZERO_AZ -76201 + MSL_RSM_AZ -76202 + MSL_RSM_ZERO_EL -76203 + MSL_RSM_EL -76204 + MSL_RSM_HEAD -76205 + + MSL_MASTCAM_LEFT -76210 + MSL_MASTCAM_LEFT_F1 -76211 + MSL_MASTCAM_LEFT_F2 -76212 + MSL_MASTCAM_LEFT_F3 -76213 + MSL_MASTCAM_LEFT_F4 -76214 + MSL_MASTCAM_LEFT_F5 -76215 + MSL_MASTCAM_LEFT_F6 -76216 + MSL_MASTCAM_LEFT_F7 -76217 + MSL_MASTCAM_LEFT_F8 -76218 + MSL_MASTCAM_RIGHT -76220 + MSL_MASTCAM_RIGHT_F1 -76221 + MSL_MASTCAM_RIGHT_F2 -76222 + MSL_MASTCAM_RIGHT_F3 -76223 + MSL_MASTCAM_RIGHT_F4 -76224 + MSL_MASTCAM_RIGHT_F5 -76225 + MSL_MASTCAM_RIGHT_F6 -76226 + MSL_MASTCAM_RIGHT_F7 -76227 + MSL_MASTCAM_RIGHT_F8 -76228 + + MSL_NAVCAM_LEFT_A -76231 + MSL_NAVCAM_RIGHT_A -76232 + MSL_NAVCAM_LEFT_B -76233 + MSL_NAVCAM_RIGHT_B -76234 + + MSL_CHEMCAM -76240 + MSL_CHEMCAM_LIBS_LASER -76241 + MSL_CHEMCAM_LIBS_CAM -76242 + MSL_CHEMCAM_RMI -76243 + + MSL_REMS_BOOM1 -76250 + MSL_REMS_BOOM1_WS1 -76251 + MSL_REMS_BOOM1_WS2 -76252 + MSL_REMS_BOOM1_WS3 -76253 + MSL_REMS_BOOM1_ATS -76254 + MSL_REMS_BOOM1_GTS -76255 + MSL_REMS_BOOM1_TIP -76256 + + MSL_REMS_BOOM2 -76260 + MSL_REMS_BOOM2_WS1 -76261 + MSL_REMS_BOOM2_WS2 -76262 + MSL_REMS_BOOM2_WS3 -76263 + MSL_REMS_BOOM2_ATS -76264 + MSL_REMS_BOOM2_HS -76265 + MSL_REMS_BOOM2_TIP -76266 + + Instruments and devices on RA: + ------------------------------ + + MSL_RA_BASE -76300 + MSL_RA_SHOULDER_AZ -76301 + MSL_RA_SHOULDER_EL -76302 + MSL_RA_ELBOW -76303 + MSL_RA_WRIST -76304 + MSL_RA_TURRET -76305 + MSL_RA_TURRET_HEAD -76306 + + MSL_MAHLI_REF -76310 + MSL_MAHLI -76311 + + MSL_APXS_REF -76320 + MSL_APXS -76321 + + MSL_PADS_REF -76330 + MSL_PADS -76331 + + MSL_DRT_REF -76340 + MSL_DRT -76341 + + MSL_CHIMRA_REF -76350 + MSL_CHIMRA -76351 + + Fiducials, Calibration targets, etc. + ------------------------------------ + + MSL_FD_RESTRAINT_PORT -76401 + MSL_FD_RESTRAINT_SBRD -76402 + MSL_FD_DECK_SIDE_PORT -76403 + MSL_FD_DECK_FRONT_PORT -76404 + MSL_FD_DECK_CENTER_PORT -76405 + MSL_FD_DECK_CENTER_SBRD -76406 + MSL_FD_DECK_FRONT_SBRD -76407 + + MSL_FD_OCM_PORT -76408 + MSL_FD_OCM_CENTER -76409 + MSL_FD_OCM_STARBOARD -76410 + + MSL_SCI_OBS_TRAY -76411 + MSL_ENG_OBS_TRAY -76412 + + MSL_BIT_BOX_1_TARGET -76413 + MSL_BIT_BOX_2_TARGET -76414 + + MSL_OCM_LOCATION_1 -76415 + MSL_OCM_LOCATION_2 -76416 + MSL_OCM_LOCATION_3 -76417 + MSL_OCM_LOCATION_4 -76418 + MSL_OCM_LOCATION_5 -76419 + MSL_OCM_LOCATION_6 -76420 + + MSL_APXS_CALTARGET -76421 + MSL_MAHLI_CALTARGET -76422 + + MSL_CCAM_CAL1 -76423 + MSL_CCAM_CAL2 -76424 + MSL_CCAM_CAL3 -76425 + MSL_CCAM_CAL4 -76426 + MSL_CCAM_CAL5 -76427 + MSL_CCAM_CAL6 -76428 + MSL_CCAM_CAL7 -76429 + MSL_CCAM_CAL8 -76430 + MSL_CCAM_CAL9 -76431 + MSL_CCAM_CAL10 -76432 + + MSL_MCAM_CAL -76433 + + +MSL Frames +======================================================================== + + The following MSL frames are defined in this kernel file: + + Name Relative to Type NAIF ID + ====================== =================== ===== ======= + + Surface frames: + --------------- + + MSL_TOPO IAU_MARS FIXED -76900 + MSL_LOCAL_LEVEL MSL_TOPO FIXED -76910 + MSL_SURFACE_FIXED MSL_LOCAL_LEVEL FIXED -76920 + + Rover frames: + ------------- + + MSL_ROVER J2000, MSL_LOCAL_LEVEL CK -76000 + MSL_ROVER_MECH MSL_ROVER FIXED -76040 + + Cruise and Descent frames: + -------------------------- + + MSL_SPACECRAFT MSL_ROVER FIXED -76010 + MSL_CRUISE_STAGE MSL_ROVER FIXED -76020 + MSL_DESCENT_STAGE MSL_ROVER FIXED -76030 + MSL_CACS J2000, MSL_ROVER CK -76050 + + Cruise and Descent Antenna frames: + ---------------------------------- + + MSL_PLGA MSL_CRUISE_STAGE FIXED -76060 + MSL_TLGA MSL_CRUISE_STAGE FIXED -76061 + MSL_PUHF MSL_CRUISE_STAGE FIXED -76062 + MSL_MGA MSL_CRUISE_STAGE FIXED -76063 + + MSL_DLGA MSL_DESCENT_STAGE FIXED -76064 + MSL_DUHF MSL_DESCENT_STAGE FIXED -76065 + + Rover instrument and structures frames: + --------------------------------------- + + MSL_RLGA MSL_ROVER FIXED -76110 + MSL_RUHF MSL_ROVER FIXED -76111 + + MSL_HGA_ZERO_AZ MSL_ROVER FIXED -76121 + MSL_HGA_AZ MSL_HGA_ZERO_AZ CK -76122 + MSL_HGA_ZERO_EL MSL_HGA_AZ FIXED -76123 + MSL_HGA_EL MSL_HGA_ZERO_EL CK -76124 + MSL_HGA MSL_HGA_EL FIXED -76125 + MSL_HGA_EB MSL_HGA FIXED -76126 + + MSL_HAZCAM_FRONT_LEFT_A MSL_ROVER FIXED -76131 + MSL_HAZCAM_FRONT_RIGHT_A MSL_ROVER FIXED -76132 + MSL_HAZCAM_FRONT_LEFT_B MSL_ROVER FIXED -76133 + MSL_HAZCAM_FRONT_RIGHT_B MSL_ROVER FIXED -76134 + MSL_HAZCAM_BACK_LEFT_A MSL_ROVER FIXED -76141 + MSL_HAZCAM_BACK_RIGHT_A MSL_ROVER FIXED -76142 + MSL_HAZCAM_BACK_LEFT_B MSL_ROVER FIXED -76143 + MSL_HAZCAM_BACK_RIGHT_B MSL_ROVER FIXED -76144 + + MSL_RAD MSL_ROVER FIXED -76150 + + MSL_MARDI MSL_ROVER FIXED -76160 + + MSL_REMS_UVS MSL_ROVER FIXED -76170 + + MSL_DAN MSL_ROVER FIXED -76180 + MSL_SAM MSL_ROVER FIXED -76182 + MSL_CHEMIN MSL_ROVER FIXED -76183 + + RSM instrument and structures frames: + ------------------------------------- + + MSL_RSM_ZERO_AZ MSL_ROVER FIXED -76201 + MSL_RSM_AZ MSL_RSM_ZERO_AZ CK -76202 + MSL_RSM_ZERO_EL MSL_RSM_AZ FIXED -76203 + MSL_RSM_EL MSL_RSM_ZERO_EL CK -76204 + MSL_RSM_HEAD MSL_RSM_EL FIXED -76205 + + MSL_MASTCAM_LEFT MSL_RSM_HEAD FIXED -76210 + MSL_MASTCAM_RIGHT MSL_RSM_HEAD FIXED -76220 + + MSL_NAVCAM_LEFT_A MSL_RSM_HEAD FIXED -76231 + MSL_NAVCAM_RIGHT_A MSL_RSM_HEAD FIXED -76232 + MSL_NAVCAM_LEFT_B MSL_RSM_HEAD FIXED -76233 + MSL_NAVCAM_RIGHT_B MSL_RSM_HEAD FIXED -76234 + + MSL_CHEMCAM_LIBS_LASER MSL_RSM_HEAD FIXED -76241 + MSL_CHEMCAM_LIBS_CAM MSL_RSM_HEAD FIXED -76242 + MSL_CHEMCAM_RMI MSL_RSM_HEAD FIXED -76243 + + MSL_REMS_BOOM1 MSL_ROVER FIXED -76250 + MSL_REMS_BOOM1_WS1 MSL_REMS_BOOM1 FIXED -76251 + MSL_REMS_BOOM1_WS2 MSL_REMS_BOOM1 FIXED -76252 + MSL_REMS_BOOM1_WS3 MSL_REMS_BOOM1 FIXED -76253 + MSL_REMS_BOOM1_ATS MSL_REMS_BOOM1 FIXED -76254 + MSL_REMS_BOOM1_GTS MSL_REMS_BOOM1 FIXED -76255 + + MSL_REMS_BOOM2 MSL_ROVER FIXED -76260 + MSL_REMS_BOOM2_WS1 MSL_REMS_BOOM2 FIXED -76261 + MSL_REMS_BOOM2_WS2 MSL_REMS_BOOM2 FIXED -76262 + MSL_REMS_BOOM2_WS3 MSL_REMS_BOOM2 FIXED -76263 + MSL_REMS_BOOM2_ATS MSL_REMS_BOOM2 FIXED -76264 + MSL_REMS_BOOM2_HS MSL_REMS_BOOM2 FIXED -76265 + + RA instrument and structures frames: + ------------------------------------- + + MSL_RA_BASE MSL_ROVER FIXED -76300 + MSL_RA_SHOULDER_AZ MSL_RA_BASE CK -76301 + MSL_RA_SHOULDER_EL MSL_RA_SHOULDER_AZ CK -76302 + MSL_RA_ELBOW MSL_RA_SHOULDER_EL CK -76303 + MSL_RA_WRIST MSL_RA_ELBOW CK -76304 + MSL_RA_TURRET MSL_RA_WRIST CK -76305 + + MSL_MAHLI_REF MSL_RA_TURRET CK -76310 + MSL_MAHLI MSL_MAHLI_REF FIXED -76311 + + MSL_APXS_REF MSL_RA_TURRET CK -76320 + MSL_APXS MSL_APXS_REF FIXED -76321 + + MSL_PADS_REF MSL_RA_TURRET CK -76330 + MSL_PADS MSL_PADS_REF FIXED -76331 + + MSL_DRT_REF MSL_RA_TURRET CK -76340 + MSL_DRT MSL_DRT_REF FIXED -76341 + + MSL_CHIMRA_REF MSL_RA_TURRET CK -76350 + MSL_CHIMRA MSL_CHIMRA_REF FIXED -76351 + + +MSL Frame Tree +======================================================================== + + The diagram below shows the MSL frame hierarchy: + + + "J2000" + +---------------------------------+ + | |<-pck |<-pck + | v v + | "IAU_MARS" "IAU_EARTH" + | ---------- ----------- + | |<-fixed + | v + | "MSL_TOPO" "MSL_SURFACE_FIXED" + | ---------- --------------------- + | |<-fixed ^<-fixed + | v | + | "MSL_LOCAL_LEVEL" | + | --------------------------+ + | | + | | "MSL_DLGA/DUHF" + | | --------------- + | | fixed-> ^ + | | | + | | "MSL_PLGA/TLGA/PUHF/MGA" | + | | ------------------------ | + | | fixed-> ^ | + | | | | + | | "MSL_SPACECRAFT" | | + | | ---------------- | | + | | ^ <-fixed | | + | | | | | + | | | "MSL_CRUISE_STAGE" | + | | | ------------------ | + | | | ^ <-fixed | + | | | | | + | | | | "MSL_DESCENT_STAGE" + | | | | ------------------ + ck-> | | | | ^ <-fixed + | | | | | + "MSL_CACS" | | | | "MSL_ROVER_MECH" + ---------- | | | | ---------------- + ^ | | | | ^ <-fixed + ck-> | ck-> | | | | | + v v + "MSL_ROVER" + +--------------------------------------------------------------+ + | | | | | | | | | | | | | + | |<-fxd | | | |<-fxd | fxd->| | | | fxd->| | + | v | | | V | V | | | v | + | "MLS_RUHF" | | | "MSL_DAN" | "MSL_RAD" | | | "MLS_RLGA" | + | ---------- | | | --------- | --------- | | | ---------- | + | | | | | | | | | + | fixed-> | | | <-fixed | fixed-> | | | <-fixed | + | V | V | V | V | + | "MSL_REMS_UVS" | "MSL_HAZCAM*" | "MSL_MARDI" | "MSL_SAM" | + | -------------- | ------------- | ----------- | --------- | + | | | | | + | fixed-> | | | <-fixed | + | V | V | + | "MSL_REMS_BOOM1/2" | "MSL_CHEMIN" | + | ---------------- | ------------ | + | | | | + | fixed-> | | | + | V | | + | "MSL_REMS_BOOM1/2_*" | | + | -------------------- | | + | | | + | <-fixed | <-fixed | <-fixed + V V V + "MSL_RA_BASE" "MSL_RSM_ZERO_AZ" "MSL_HGA_ZERO_AZ" + ------------- ---------------- ----------------- + | | | + | <-ck | <-ck | <-ck + V V V + "MSL_RA_SHOULDER_AZ" "MSL_RSM_AZ" "MSL_HGA_AZ" + -------------------- ------------ ------------ + | | | + | <-ck | <-fixed | <-fixed + V V V + "MSL_RA_SHOULDER_EL" "MSL_RSM_ZERO_EL" "MSL_HGA_ZERO_EL" + -------------------- ----------------- ----------------- + | | | + | <-ck | <-ck | <-ck + V V V + "MSL_RA_ELBOW" "MSL_RSM_EL" "MSL_HGA_EL" + -------------- ------------ ------------ + | | | + | <-ck | | <-fixed + V | V + "MSL_RA_WRIST" | "MSL_HGA" + -------------- | --------- + | | | + | | | <-fixed + | | V + | | "MSL_HGA_EB" + | | ------------ + | | + | | <-fixed + | V + | "MSL_RSM_HEAD" + | +-------------------------------+ + | | | | + | | <-fixed | <-fixed | <-fixed + | V V V + | "MSL_MASTCAM_*" "MSL_NAVCAM_*" "MSL_CHEMCAM_RMI" + | --------------- -------------- +------------------+ + | | | + | | <-fixed | <-fixed + | V V + | "MSL_CHEMCAM_LIBS_LASER" "MSL_CHEMCAM_LIBS_CAM" + | ------------------------ ---------------------- + | + | <-ck + V + "MSL_RA_TURRET" + ---------------------------------------------------------------------+ + | | | | | + | <-ck | <-ck | <-ck | <-ck | <-ck + V V V V V + "MSL_MAHLI_REF" "MSL_APXS_REF" "MSL_PADS_REF" "MSL_DRT_REF" "MSL_CHIMRA_REF" + --------------- -------------- -------------- ------------- ---------------- + | | | | | + | <-fixed | <-fixed | <-fixed | <-fixed | <-fxd + V V V V V + "MSL_MAHLI" "MSL_APXS" "MSL_PADS" "MSL_DRT" "MSL_CHIMRA" + ----------- ---------- ---------- --------- ------------ + + + +MSL Surface Frames +======================================================================== + + The surface frames layout in this version of the FK is based on the + assumption that the total traverse distance during the mission will + be relatively short (hundreds of meters, not kilometers) and, + therefore, the local north and nadir directions, defining surface + frame orientations, will be approximately the same at any point + along the traverse path. This assumption allows defining surface + frames as fixed offset frames with respect to each other and/or to + Mars body-fixed frame, IAU_MARS. + + +Topocentric Frame +------------------------------------------------- + + MSL topocentric frame, MSL_TOPO, is defined as follows: + + -- +Z axis is along the outward normal at the landing site ("zenith"); + + -- +X axis is along the local north direction ("north"); + + -- +Y axis completes the right hand frame ("west"); + + -- the origin of this frame is located at the landing site. + + Orientation of the frame is given relative to the body fixed + rotating frame 'IAU_MARS' (x - along the line of zero longitude + intersecting the equator, z - along the spin axis, y - completing + the right hand coordinate frame.) + + The transformation from 'MSL_TOPO' frame to 'IAU_MARS' frame is a + 3-2-3 rotation with defined angles as the negative of the site + longitude, the negative of the site co-latitude, 180 degrees. + + The landing site Gaussian longitude and latitude upon which the + definition is built are: + + Lon = 137.441700 degrees East + Lat = -4.643851 degrees North + + The coordinates specified above are given with respect to the + 'IAU_MARS' instance defined by the rotation/shape model from the the + PCK file 'pck00008.tpc'. + + These keywords implement the frame definition. + + \begindata + + FRAME_MSL_TOPO = -76900 + FRAME_-76900_NAME = 'MSL_TOPO' + FRAME_-76900_CLASS = 4 + FRAME_-76900_CLASS_ID = -76900 + FRAME_-76900_CENTER = -76900 + + TKFRAME_-76900_RELATIVE = 'IAU_MARS' + TKFRAME_-76900_SPEC = 'ANGLES' + TKFRAME_-76900_UNITS = 'DEGREES' + TKFRAME_-76900_AXES = ( 3, 2, 3 ) + TKFRAME_-76900_ANGLES = ( -137.4417, -94.643851, 180.000 ) + + \begintext + + +Local Level Frame +------------------------------------------------- + + MSL local level frame, MSL_LOCAL_LEVEL, is defined as follows: + + -- +Z axis is along the downward normal at the landing site ("nadir"); + + -- +X axis is along the local north direction ("north"); + + -- +Y axis completes the right hand frame ("east"); + + -- the origin of this frame is located between the rover's middle + wheels and moves with the rover. + + Since this frame is essentially the MSL_TOPO frame flipped by 180 + degrees about +X ("north") to point +Z down, this frame is defined + as a fixed offset frame with respect to the MSL_TOPO frame. + + \begindata + + FRAME_MSL_LOCAL_LEVEL = -76910 + FRAME_-76910_NAME = 'MSL_LOCAL_LEVEL' + FRAME_-76910_CLASS = 4 + FRAME_-76910_CLASS_ID = -76910 + FRAME_-76910_CENTER = -76900 + TKFRAME_-76910_RELATIVE = 'MSL_TOPO' + TKFRAME_-76910_SPEC = 'ANGLES' + TKFRAME_-76910_UNITS = 'DEGREES' + TKFRAME_-76910_AXES = ( 1, 2, 3 ) + TKFRAME_-76910_ANGLES = ( 180.000, 0.000, 0.000 ) + + \begintext + + +Surface Fixed Frame +------------------------------------------------- + + MSL surface fixed frame -- MSL_SURFACE_FIXED -- is nominally + co-aligned in orientation with the MSL_LOCAL_LEVEL frame but its + origin does not move during the mission. Therefore, this frame is + defined as a zero-offset, fixed frame with respect to the MSL_LOCAL_LEVEL + frame. + + \begindata + + FRAME_MSL_SURFACE_FIXED = -76920 + FRAME_-76920_NAME = 'MSL_SURFACE_FIXED' + FRAME_-76920_CLASS = 4 + FRAME_-76920_CLASS_ID = -76920 + FRAME_-76920_CENTER = -76900 + TKFRAME_-76920_RELATIVE = 'MSL_LOCAL_LEVEL' + TKFRAME_-76920_SPEC = 'ANGLES' + TKFRAME_-76920_UNITS = 'DEGREES' + TKFRAME_-76920_AXES = ( 1, 2, 3 ) + TKFRAME_-76920_ANGLES = ( 0.000, 0.000, 0.000 ) + + \begintext + + +MSL Rover Frames +======================================================================== + + The MSL rover NAV frame, MSL_ROVER, is defined as follows: + + - +X points to the front of the rover, away from RTG + + - +Z points down + + - +Y completes the right handed frame + + - the origin on this frame is between the rover middle wheels + (midpoint between and on the rotation axis of the middle + wheels for deployed rover and suspension system on flat plane. + + The MSL rover NAV frame is shown on these diagrams: + + Rover -Y side view: + ------------------- + _ + | | RSM + `-' + | HGA + | .```. . + | | o --- .-' \ RTG + RA | `._.' | .-' \ + -|- |-.-------------------' .- + o---------o--------o| | | .-' + |.-------o----. |-.-' + .-`--------------`-.--' + | .-----`o------. + .-|-. .-|-. .-|-. + | o | | o | | o | + `._.' <-------x.' `._.' + Xr | + | + | + Zr v Yr is into the page. + + + Rover -Z side ("top") view: + --------------------------- + + .-----. .-----. .-----. + | | | | | | + | | | | | + `--|--' `-- Yr `--|--' + `----------o- ^ -----o------' + ..-.------- | ------. + RSM || | | |--------. + || | | |-------.| + RA |`- <-------x | || RTG + | | Xr HGA |-------'| + -o---------|--------|o-| =====-o---------' + | `-------------------' + .----------o---------o------. + .--|--. .--|--. .--|--. + | | | | | | + | | | | | | + `-----' `-----' `-----' + + Zr is into the page. + + + The orientation of this frame relative to other frames (J2000, + MSL_LOCAL_LEVEL) changes in time and is provided in CK files. + Therefore the MSL_ROVER frame is defined as a CK-based frame. + + \begindata + + FRAME_MSL_ROVER = -76000 + FRAME_-76000_NAME = 'MSL_ROVER' + FRAME_-76000_CLASS = 3 + FRAME_-76000_CLASS_ID = -76000 + FRAME_-76000_CENTER = -76 + CK_-76000_SCLK = -76 + CK_-76000_SPK = -76 + + \begintext + + The MSL rover mechanical frame -- MSL_ROVER_MECH -- is nominally + co-aligned in orientation with the rover NAV frame, MSL_ROVER. The + origin of this frame is different from the rover NAV frame origin + and is translated from it by a fixed offset along the Z axis, + provided in the MSL structures SPK file. + + The MSL rover and rover mechanical frames are shown on this diagram: + + _ + | | RSM + `-' + | HGA + | .```. . + | | o --- .-' \ RTG + RA | `._.' | .-' \ + -|- |-.-- <-------x ------' .- + o---------o--------o| | Xrm | | .-' + |.-------o- | . |-.-' + .-`---------- | -`-.--' + | Zrm v ----`o------. + .-|-. .- -. .-|-. + | o | | o | | o | + `._.' <-------x.' `._.' + Xr | + | + | + Zr v Yr, Yrm are into the page. + + + The MSL_ROVER_MECH frame is defined below as fixed, zero-offset + frame relative to the MSL_ROVER frame. + + \begindata + + FRAME_MSL_ROVER_MECH = -76040 + FRAME_-76040_NAME = 'MSL_ROVER_MECH' + FRAME_-76040_CLASS = 4 + FRAME_-76040_CLASS_ID = -76040 + FRAME_-76040_CENTER = -76 + TKFRAME_-76040_RELATIVE = 'MSL_ROVER' + TKFRAME_-76040_SPEC = 'ANGLES' + TKFRAME_-76040_UNITS = 'DEGREES' + TKFRAME_-76040_AXES = ( 1, 2, 3 ) + TKFRAME_-76040_ANGLES = ( 0.000, 0.000, 0.000 ) + + \begintext + + +MSL Cruise and Descent Frames +======================================================================== + + The following three MSL cruise and descent frames -- MSL_SPACECRAFT, + MSL_CRUISE_STAGE, and MSL_DESCENT_STAGE -- are nominally co-aligned + in orientation with the rover NAV frame, MSL_ROVER. The origins of + these frames are different from the rover NAV frame origin and are + translated from it fixed offsets along the Z axis, provided in the + MSL structures SPK file. + + These frames are defined below as fixed, zero-offset frames + relative to the MSL_ROVER frame. + + \begindata + + FRAME_MSL_SPACECRAFT = -76010 + FRAME_-76010_NAME = 'MSL_SPACECRAFT' + FRAME_-76010_CLASS = 4 + FRAME_-76010_CLASS_ID = -76010 + FRAME_-76010_CENTER = -76 + TKFRAME_-76010_RELATIVE = 'MSL_ROVER' + TKFRAME_-76010_SPEC = 'ANGLES' + TKFRAME_-76010_UNITS = 'DEGREES' + TKFRAME_-76010_AXES = ( 1, 2, 3 ) + TKFRAME_-76010_ANGLES = ( 0.000, 0.000, 0.000 ) + + FRAME_MSL_CRUISE_STAGE = -76020 + FRAME_-76020_NAME = 'MSL_CRUISE_STAGE' + FRAME_-76020_CLASS = 4 + FRAME_-76020_CLASS_ID = -76020 + FRAME_-76020_CENTER = -76 + TKFRAME_-76020_RELATIVE = 'MSL_ROVER' + TKFRAME_-76020_SPEC = 'ANGLES' + TKFRAME_-76020_UNITS = 'DEGREES' + TKFRAME_-76020_AXES = ( 1, 2, 3 ) + TKFRAME_-76020_ANGLES = ( 0.000, 0.000, 0.000 ) + + FRAME_MSL_DESCENT_STAGE = -76030 + FRAME_-76030_NAME = 'MSL_DESCENT_STAGE' + FRAME_-76030_CLASS = 4 + FRAME_-76030_CLASS_ID = -76030 + FRAME_-76030_CENTER = -76 + TKFRAME_-76030_RELATIVE = 'MSL_ROVER' + TKFRAME_-76030_SPEC = 'ANGLES' + TKFRAME_-76030_UNITS = 'DEGREES' + TKFRAME_-76030_AXES = ( 1, 2, 3 ) + TKFRAME_-76030_ANGLES = ( 0.000, 0.000, 0.000 ) + + \begintext + + The MSL Cruise ACS frame, MSL_CACS, is defined as follows: + + - +Z is co-aligned with the +Z axis of the MSL_ROVER frame + + - +Y is directly over the location of the cruise stage star + scanner + + - +X completes the right handed frame and is directly over the + B-string thruster cluster + + - the origin on this frame is the same as of the MSL_SPACECRAFT + frame. + + Nominally this frame is rotated -135 degrees about +Z from the + MSL_ROVER frame. + + The relation ship between MSL rover and CACS frames is shown on + this diagram: + + Xcacs + ^ + \ .> Ycacs + \ .-' + \ .-' + x-------> Xr + | + | + | + v + Yr Zr, Zcacs are into the page. + + + Because during cruise the orientation of this frame + relative the J2000 frame comes in telemetry and is provided in CK + files, this frame is defined as a CK-based frame. + + \begindata + + FRAME_MSL_CACS = -76050 + FRAME_-76050_NAME = 'MSL_CACS' + FRAME_-76050_CLASS = 3 + FRAME_-76050_CLASS_ID = -76050 + FRAME_-76050_CENTER = -76 + CK_-76050_SCLK = -76 + CK_-76050_SPK = -76 + + \begintext + + +MSL Antenna Frames +======================================================================== + + This section defines frames for the MSL antennas -- Cruise X-band + Parachute Cone Low Gain Antenna (PLGA), Cruise X-band Tilted Low + Gain Antenna (TLGA), Cruise Parachute Cone UHF Antenna (PUHF), + Cruise Medium Gain Antenna (MGA), X-band Descent Stage Low Gain + Antenna (DLGA), Descent Stage UHF Antenna (DUHF), X-band Rover Low + Gain Antenna (RLGA), Rover UHF Antenna (RUHF), X-band High Gain + Antenna (HGA). + +Cruise Antennas +------------------------------------------------- + + The frames for antennas mounted on the MSL cruise stage and + parachute capsule -- MSL_PLGA, MSL_TLGA, MSL_PUHF, MSL_MGA -- are + fixed with respect to the cruise stage frame, MSL_CRUISE_STAGE, and + defined as follows: + + - +Z is the antenna boresight, which is nominally along the + cruise stage -Z except for TLGA + + - +X is nominally co-aligned with the the cruise stage +X, + except for TLGA + + - +Y completes the right handed frame + + - the origin is at the center of the antenna side farthest from + the mounting plate (rim, tip, etc). + + The MSL_PLGA, MSL_PUHF, and MSL_MGA frames are rotated by 180 degrees + about +X from the MSL_CRUISE_STAGE frame. + + The MSL_TLGA frame is first rotated by 180 degrees about +X, then by + -17.5 (TBD) degrees about +Y from the MSL_CRUISE_STAGE frame. + + These frames are defined below as fixed frames relative to the + MSL_CRUISE_STAGE frame. + + \begindata + + FRAME_MSL_PLGA = -76060 + FRAME_-76060_NAME = 'MSL_PLGA' + FRAME_-76060_CLASS = 4 + FRAME_-76060_CLASS_ID = -76060 + FRAME_-76060_CENTER = -76 + TKFRAME_-76060_RELATIVE = 'MSL_CRUISE_STAGE' + TKFRAME_-76060_SPEC = 'ANGLES' + TKFRAME_-76060_UNITS = 'DEGREES' + TKFRAME_-76060_AXES = ( 1, 2, 3 ) + TKFRAME_-76060_ANGLES = ( 180.000, 0.000, 0.000 ) + + FRAME_MSL_TLGA = -76061 + FRAME_-76061_NAME = 'MSL_TLGA' + FRAME_-76061_CLASS = 4 + FRAME_-76061_CLASS_ID = -76061 + FRAME_-76061_CENTER = -76 + TKFRAME_-76061_RELATIVE = 'MSL_CRUISE_STAGE' + TKFRAME_-76061_SPEC = 'ANGLES' + TKFRAME_-76061_UNITS = 'DEGREES' + TKFRAME_-76061_AXES = ( 1, 2, 3 ) + TKFRAME_-76061_ANGLES = ( 180.000, 17.500, 0.000 ) + + FRAME_MSL_PUHF = -76062 + FRAME_-76062_NAME = 'MSL_PUHF' + FRAME_-76062_CLASS = 4 + FRAME_-76062_CLASS_ID = -76062 + FRAME_-76062_CENTER = -76 + TKFRAME_-76062_RELATIVE = 'MSL_CRUISE_STAGE' + TKFRAME_-76062_SPEC = 'ANGLES' + TKFRAME_-76062_UNITS = 'DEGREES' + TKFRAME_-76062_AXES = ( 1, 2, 3 ) + TKFRAME_-76062_ANGLES = ( 180.000, 0.000, 0.000 ) + + FRAME_MSL_MGA = -76063 + FRAME_-76063_NAME = 'MSL_MGA' + FRAME_-76063_CLASS = 4 + FRAME_-76063_CLASS_ID = -76063 + FRAME_-76063_CENTER = -76 + TKFRAME_-76063_RELATIVE = 'MSL_CRUISE_STAGE' + TKFRAME_-76063_SPEC = 'ANGLES' + TKFRAME_-76063_UNITS = 'DEGREES' + TKFRAME_-76063_AXES = ( 1, 2, 3 ) + TKFRAME_-76063_ANGLES = ( 180.000, 0.000, 0.000 ) + + \begintext + + +EDL Antennas +------------------------------------------------- + + The frames for the antennas mounted on the MSL descent stage -- + MSL_DLGA, MSL_DUHF -- are fixed with respect to the descent stage + frame, MSL_DESCENT_STAGE, and defined as follows: + + - +Z is the antenna boresight, nominally along the descent stage + -Z + + - +X is nominally co-aligned with the the descent stage +X + + - +Y completes the right handed frame + + - the origin is at the center of the antenna side farthest from + the mounting plate (rim, tip, etc). + + The MSL_DLGA and MSL_DUHF frames are rotated by 180 degrees about +X + from the MSL_DESCENT_STAGE frame. + + These frames are defined below as fixed frames relative to the + MSL_DESCENT_STAGE frame. + + \begindata + + FRAME_MSL_DLGA = -76064 + FRAME_-76064_NAME = 'MSL_DLGA' + FRAME_-76064_CLASS = 4 + FRAME_-76064_CLASS_ID = -76064 + FRAME_-76064_CENTER = -76 + TKFRAME_-76064_RELATIVE = 'MSL_DESCENT_STAGE' + TKFRAME_-76064_SPEC = 'ANGLES' + TKFRAME_-76064_UNITS = 'DEGREES' + TKFRAME_-76064_AXES = ( 1, 2, 3 ) + TKFRAME_-76064_ANGLES = ( 180.000, 0.000, 0.000 ) + + FRAME_MSL_DUHF = -76065 + FRAME_-76065_NAME = 'MSL_DUHF' + FRAME_-76065_CLASS = 4 + FRAME_-76065_CLASS_ID = -76065 + FRAME_-76065_CENTER = -76 + TKFRAME_-76065_RELATIVE = 'MSL_DESCENT_STAGE' + TKFRAME_-76065_SPEC = 'ANGLES' + TKFRAME_-76065_UNITS = 'DEGREES' + TKFRAME_-76065_AXES = ( 1, 2, 3 ) + TKFRAME_-76065_ANGLES = ( 180.000, 0.000, 0.000 ) + + \begintext + + +Rover Antennas +------------------------------------------------- + + The frames for the two MSL non-articulating antennas mounted on the + rover body -- MSL_RLGA, MSL_RUHF -- are fixed with respect to the + rover frame, MSL_ROVER, and defined as follows: + + - +Z is the antenna boresight, nominally along the rover -Z + + - +X is nominally co-aligned with the the rover +X + + - +Y completes the right handed frame + + - the origin is at the center of the antenna side farthest from + the mounting plate (rim, tip, etc). + + The MSL_RLGA and MSL_RUHF frames are rotated by 180 degrees about +X + from the MSL_ROVER frame. + + These frames are defined below as fixed frames relative to the + MSL_ROVER frame. + + \begindata + + FRAME_MSL_RLGA = -76110 + FRAME_-76110_NAME = 'MSL_RLGA' + FRAME_-76110_CLASS = 4 + FRAME_-76110_CLASS_ID = -76110 + FRAME_-76110_CENTER = -76 + TKFRAME_-76110_RELATIVE = 'MSL_ROVER' + TKFRAME_-76110_SPEC = 'ANGLES' + TKFRAME_-76110_UNITS = 'DEGREES' + TKFRAME_-76110_AXES = ( 1, 2, 3 ) + TKFRAME_-76110_ANGLES = ( 180.000, 0.000, 0.000 ) + + FRAME_MSL_RUHF = -76111 + FRAME_-76111_NAME = 'MSL_RUHF' + FRAME_-76111_CLASS = 4 + FRAME_-76111_CLASS_ID = -76111 + FRAME_-76111_CENTER = -76 + TKFRAME_-76111_RELATIVE = 'MSL_ROVER' + TKFRAME_-76111_SPEC = 'ANGLES' + TKFRAME_-76111_UNITS = 'DEGREES' + TKFRAME_-76111_AXES = ( 1, 2, 3 ) + TKFRAME_-76111_ANGLES = ( 180.000, 0.000, 0.000 ) + + \begintext + + + The frame chain for the MSL articulating high gain antenna (HGA) + includes six frames -- MSL_HGA_ZERO_AZ, MSL_HGA_AZ, MSL_HGA_ZERO_EL, + MSL_HGA_EL, MSL_HGA, and MSL_HGA_EB. + + Only the first frame -- MSL_HGA_ZERO_AZ -- and the final two frames + -- MSL_HGA and MSL_HGA_EB -- match the frames defined in [4] and + used in the HGA calibration documentation. The intermediate frames + not matching the documentation were introduced model the HGA + pointing using a more traditional kinematics approach. + + The MSL_HGA_ZERO_AZ frame (called HGAS frame in [4]) is a fixed + offset frame that has the +Z axis along the AZ rotation axis and the + +X axis in the direction of the EL rotation axis for the HGA in the + zero AZ/EL position. This frame is nominally rotated from the + MSL_ROVER frame by +25 degrees about +Z. + + The MSL_HGA_AZ frame is a CK-based frame rotated from the + MSL_HGA_ZERO_AZ frame by the -AZ angle about the +Z axis. + + The MSL_HGA_ZERO_EL frame is a fixed offset frame that has the +X axis + along the EL rotation axis and the +Z axis in the direction of the AZ + rotation axis. This frame is nominally co-aligned with the MSL_HGA_AZ + frame. + + The MSL_HGA_EL frame is a CK-based frame rotated from the + MSL_HGA_ZERO_EL frame by the EL angle about the +X axis. + + The MSL_HGA frame (called ANT frame in [4]) is a fixed-offset frame + nominally rotated from the MSL_HGA_EL frame by 180 degrees about the + +X axis to align the +Z axis of the frame with the antenna boresight + defined as the normal to the antenna's radiating surface. + + The MSL_HGA_EB frame (called EB frame in [4]) is a fixed offset + frame nominally co-aligned with the MSL_HGA frame. This frame's +Z + axis is the antenna boresight defined as the antenna electric + boresight. + + The HGA frames for the HGA in zero AZ/EL position are shown on this + diagram: + + Rover -Z side ("top") view, HGA in zero AZ/EL position: + ------------------------------------------------------- + + .-----. .-----. .-----. + | | | | | | + | | | | | + `--|--' `-- Yr `--|--' + `----------o- ^ -----o------' + ..-.------- | ------. + RSM || | | +Yhgaaz*,el* + || | | +Xhga* ^ --.| + RA |`- <-------x<.```. / || RTG + | | Xr | `o. |/ -----'| + -o---------|--------|o-| `/_.'x. -------' + | `-------------/----- + .----------o- v ----------. + .--|--. .- +Yhga,eb .--|--. + | | | | | + | | | | | | + `-----' `-----' `-----' + + Zr, Zhgaaz0, Zhgaaz, Zhgael0, Zhgael are into the page. + Zhga, Zhgaeb are out of the page. + + + HGA assembly "side" view, HGA in zero AZ/EL position: + ----------------------------------------------------- + + Azimuth + +Zhga,eb rotation + ^ axis + | | + .-----------|-----------..--------|--------.----- + | Xhga,eb | Xhgael0,el Yhgael0,al |---. Elevation + | <------o ---- <------x ----------------- rotation + | Yhga,eb |_/ | | | |---' axis + `-----------------------. | | |-----' + .'.' | | | + . .'.' v Zhgael0,el + \\.'.' | | + \.' .-------------------. + `-------------------' + | | + | | + -------------------------- <------x --------------- + Rover deck Xhgaaz0,az | Yhgaaz0,az + | + | + v Zhgaaz0,az + + Yhgag, Yhga are out of the page. + + + The MSL_HGA_AZ, MSL_HGA_ZERO_EL, and MSL_HGA_EL frames are + co-aligned with the MSL_HGA_ZERO_AZ frame in the zero AZ/EL + position. + + The nominal nominal offset angles for the fixed offset frames in the + HGA frame chain are: + + TKFRAME_-76121_ANGLES = ( -25.0, 0.0, 0.0 ) + TKFRAME_-76121_AXES = ( 3, 1, 2 ) + + TKFRAME_-76123_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76123_AXES = ( 3, 1, 2 ) + + TKFRAME_-76125_ANGLES = ( 0.0, 0.0, 180.0 ) + TKFRAME_-76125_AXES = ( 2, 3, 1 ) + + TKFRAME_-76126_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76126_AXES = ( 3, 1, 3 ) + + The actual offset angles were derived from the following HGA base frame + quaternion, directions of the HGA AZ and EL axes in the rover + frame at "zero" AZ position and HGA calibrated maximum transmission + gain direction (from [6] and [7]): + + base_q1 0.0015877 + base_q2 -0.0009219 + base_q3 -0.2166469 + base_q4 0.9762428 + az_axis_x -0.0007 + az_axis_y -0.0012 + az_axis_z 1.0000 + el_axis_x 0.9099 + el_axis_y 0.4148 + el_axis_z 0.0006 + el_azimuth 0.0 + + [Tx]= 0.999955833 0.000000000 -0.009398543 + -0.000023669 0.999996829 -0.002518213 + 0.009398513 0.002518324 0.999952662 + + The frame definitions below incorporate the actual offsets. + + \begindata + + FRAME_MSL_HGA_ZERO_AZ = -76121 + FRAME_-76121_NAME = 'MSL_HGA_ZERO_AZ' + FRAME_-76121_CLASS = 4 + FRAME_-76121_CLASS_ID = -76121 + FRAME_-76121_CENTER = -76 + TKFRAME_-76121_SPEC = 'ANGLES' + TKFRAME_-76121_RELATIVE = 'MSL_ROVER' + TKFRAME_-76121_ANGLES = ( -24.507049, -0.045924, 0.065014 ) + TKFRAME_-76121_AXES = ( 3, 1, 2 ) + TKFRAME_-76121_UNITS = 'DEGREES' + + FRAME_MSL_HGA_AZ = -76122 + FRAME_-76122_NAME = 'MSL_HGA_AZ' + FRAME_-76122_CLASS = 3 + FRAME_-76122_CLASS_ID = -76122 + FRAME_-76122_CENTER = -76 + CK_-76122_SCLK = -76 + CK_-76122_SPK = -76 + + FRAME_MSL_HGA_ZERO_EL = -76123 + FRAME_-76123_NAME = 'MSL_HGA_ZERO_EL' + FRAME_-76123_CLASS = 4 + FRAME_-76123_CLASS_ID = -76123 + FRAME_-76123_CENTER = -76 + TKFRAME_-76123_SPEC = 'ANGLES' + TKFRAME_-76123_RELATIVE = 'MSL_HGA_AZ' + TKFRAME_-76123_ANGLES = ( 0.000000, -0.000000, -0.030636 ) + TKFRAME_-76123_AXES = ( 3, 1, 2 ) + TKFRAME_-76123_UNITS = 'DEGREES' + + FRAME_MSL_HGA_EL = -76124 + FRAME_-76124_NAME = 'MSL_HGA_EL' + FRAME_-76124_CLASS = 3 + FRAME_-76124_CLASS_ID = -76124 + FRAME_-76124_CENTER = -76 + CK_-76124_SCLK = -76 + CK_-76124_SPK = -76 + + FRAME_MSL_HGA = -76125 + FRAME_-76125_NAME = 'MSL_HGA' + FRAME_-76125_CLASS = 4 + FRAME_-76125_CLASS_ID = -76125 + FRAME_-76125_CENTER = -76 + TKFRAME_-76125_SPEC = 'ANGLES' + TKFRAME_-76125_RELATIVE = 'MSL_HGA_EL' + TKFRAME_-76125_ANGLES = ( -0.177348, -0.517152, -179.798057 ) + TKFRAME_-76125_AXES = ( 2, 3, 1 ) + TKFRAME_-76125_UNITS = 'DEGREES' + + FRAME_MSL_HGA_EB = -76126 + FRAME_-76126_NAME = 'MSL_HGA_EB' + FRAME_-76126_CLASS = 4 + FRAME_-76126_CLASS_ID = -76126 + FRAME_-76126_CENTER = -76 + TKFRAME_-76126_SPEC = 'ANGLES' + TKFRAME_-76126_RELATIVE = 'MSL_HGA' + TKFRAME_-76126_ANGLES = ( 75.000000, 0.557500, -75.000677 ) + TKFRAME_-76126_AXES = ( 3, 1, 3 ) + TKFRAME_-76126_UNITS = 'DEGREES' + + \begintext + + +Rover-mounted Instrument Frames +======================================================================== + + This section defines frames for the instruments and structures + mounted on the rover body -- Hazard Avoidance Cameras (HAZCAMs), + Radiation Assessment Detector (RAD), Mars Descent Imager (MARDI), UV + and pressure sensors of the Rover Environmental Monitoring Station + (REMS/UVS, REMS/PS), Dynamic Albedo of Neutrons experiment (DAN), + Sample Analysis at Mars Instrument Suite (SAM), and Chemistry & + Mineralogy X-Ray Diffraction/X-Ray Fluorescence Instrument (CHEMIN). + + +HAZCAMs +------------------------------------------------- + + The frame for each of the eight MSL HAZCAMs (FRONT/REAR - LEFT/RIGHT + - A/B) is defined as follows: + + -- +Z axis is along the camera's central pixel view direction + ("into image"); + + -- +Y axis is along the image central column and points from the + image center toward the image top row ("up"); + + -- +X completes the right hand frame and is along the image central + row and points from the image center toward the image left + column ("left"); + + -- the origin of the frame is located at the camera focal point. + + This diagram illustrates rover HAZCAM frames: + + Rover -Y side view: + ------------------- + _ + | | RSM + `-' + | HGA + | .```. + | | o --- + RA Yhcf | `._.' | Yhcr + -|- <. .-------------------' .> + o---------o- `. | | .' + `. | -------o----. | .' + o`--------------`-.--'x' + .' .-----` `. + .' .-|-. `. + <' | o | `> + Zhcf <-------x.' Zhcr + Xr | + | + | + Zr v Xhcr are into the page. + Xhcf are out of the page. + + + Since all HAZCAMs are rigidly mounted on the rover body, their frames + are defined as fixed offset frames with orientation given with respect + to the rover frame. + + The nominal orientation for the HAZCAM frames are with + boresight in the direction of the rover +X and tilted 45 degrees + toward the ground for FRONT HAZCAMs and in the direction of -X and + tilted 45 degrees toward the ground for REAR HAZCAMs. The + following sets of keywords can be incorporated into the frame + definitions to provide this nominal orientation (provided for + reference only): + + TKFRAME_-76131_ANGLES = ( 0.0, -45.0, 90.0 ) + TKFRAME_-76131_AXES = ( 1, 2, 3 ) + + TKFRAME_-76132_ANGLES = ( 0.0, -45.0, 90.0 ) + TKFRAME_-76132_AXES = ( 1, 2, 3 ) + + TKFRAME_-76133_ANGLES = ( 0.0, -45.0, 90.0 ) + TKFRAME_-76133_AXES = ( 1, 2, 3 ) + + TKFRAME_-76134_ANGLES = ( 0.0, -45.0, 90.0 ) + TKFRAME_-76134_AXES = ( 1, 2, 3 ) + + TKFRAME_-76141_ANGLES = ( 0.0, 45.0, -90.0 ) + TKFRAME_-76141_AXES = ( 1, 2, 3 ) + + TKFRAME_-76142_ANGLES = ( 0.0, 45.0, -90.0 ) + TKFRAME_-76142_AXES = ( 1, 2, 3 ) + + TKFRAME_-76143_ANGLES = ( 0.0, 45.0, -90.0 ) + TKFRAME_-76143_AXES = ( 1, 2, 3 ) + + TKFRAME_-76144_ANGLES = ( 0.0, 45.0, -90.0 ) + TKFRAME_-76144_AXES = ( 1, 2, 3 ) + + + The actual MSL_HAZCAM_FRONT_LEFT_A frame orientation provided in the + frame definition below was computed using the CAHVOR(E) camera model + file, 'MSL_CAL_003_SN_0205-FHAZL-FLIGHT-RCE-A.cahvore'. According to + this model the reference frame, MSL_ROVER, can be transformed into + the camera frame, MSL_HAZCAM_FRONT_LEFT_A, by the following sequence + of rotations: first by 46.52247224 degrees about Y, then by + -0.75466490 degrees about X, and finally by -89.62067207 degrees + about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_HAZCAM_FRONT_LEFT_A = -76131 + FRAME_-76131_NAME = 'MSL_HAZCAM_FRONT_LEFT_A' + FRAME_-76131_CLASS = 4 + FRAME_-76131_CLASS_ID = -76131 + FRAME_-76131_CENTER = -76 + TKFRAME_-76131_RELATIVE = 'MSL_ROVER' + TKFRAME_-76131_SPEC = 'ANGLES' + TKFRAME_-76131_UNITS = 'DEGREES' + TKFRAME_-76131_AXES = ( 2, 1, 3 ) + TKFRAME_-76131_ANGLES = ( -46.522, 0.755, 89.621 ) + + \begintext + + + The actual MSL_HAZCAM_FRONT_LEFT_B frame orientation provided in the + frame definition below was computed using the CAHVOR(E) camera model + file, 'MSL_CAL_003_SN_0208-FHAZL-FLIGHT-RCE-B.cahvore'. According to + this model the reference frame, MSL_ROVER, can be transformed into + the camera frame, MSL_HAZCAM_FRONT_LEFT_B, by the following sequence + of rotations: first by 45.49902630 degrees about Y, then by + -1.29539651 degrees about X, and finally by -89.95051513 degrees + about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_HAZCAM_FRONT_LEFT_B = -76133 + FRAME_-76133_NAME = 'MSL_HAZCAM_FRONT_LEFT_B' + FRAME_-76133_CLASS = 4 + FRAME_-76133_CLASS_ID = -76133 + FRAME_-76133_CENTER = -76 + TKFRAME_-76133_RELATIVE = 'MSL_ROVER' + TKFRAME_-76133_SPEC = 'ANGLES' + TKFRAME_-76133_UNITS = 'DEGREES' + TKFRAME_-76133_AXES = ( 2, 1, 3 ) + TKFRAME_-76133_ANGLES = ( -45.499, 1.295, 89.951 ) + + \begintext + + + The actual MSL_HAZCAM_FRONT_RIGHT_A frame orientation provided in + the frame definition below was computed using the CAHVOR(E) camera + model file, 'MSL_CAL_003_SN_0213-FHAZR-FLIGHT-RCE-A.cahvore'. + According to this model the reference frame, MSL_ROVER, can be + transformed into the camera frame, MSL_HAZCAM_FRONT_RIGHT_A, by the + following sequence of rotations: first by 46.24015677 degrees about + Y, then by 0.01873572 degrees about X, and finally by -89.99878481 + degrees about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_HAZCAM_FRONT_RIGHT_A = -76132 + FRAME_-76132_NAME = 'MSL_HAZCAM_FRONT_RIGHT_A' + FRAME_-76132_CLASS = 4 + FRAME_-76132_CLASS_ID = -76132 + FRAME_-76132_CENTER = -76 + TKFRAME_-76132_RELATIVE = 'MSL_ROVER' + TKFRAME_-76132_SPEC = 'ANGLES' + TKFRAME_-76132_UNITS = 'DEGREES' + TKFRAME_-76132_AXES = ( 2, 1, 3 ) + TKFRAME_-76132_ANGLES = ( -46.240, -0.019, 89.999 ) + + \begintext + + + The actual MSL_HAZCAM_FRONT_RIGHT_B frame orientation provided in + the frame definition below was computed using the CAHVOR(E) camera + model file, 'MSL_CAL_003_SN_0209-FHAZR-FLIGHT-RCE-B.cahvore'. + According to this model the reference frame, MSL_ROVER, can be + transformed into the camera frame, MSL_HAZCAM_FRONT_RIGHT_B, by the + following sequence of rotations: first by 45.15683382 degrees about + Y, then by -0.35151197 degrees about X, and finally by -90.27295863 + degrees about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_HAZCAM_FRONT_RIGHT_B = -76134 + FRAME_-76134_NAME = 'MSL_HAZCAM_FRONT_RIGHT_B' + FRAME_-76134_CLASS = 4 + FRAME_-76134_CLASS_ID = -76134 + FRAME_-76134_CENTER = -76 + TKFRAME_-76134_RELATIVE = 'MSL_ROVER' + TKFRAME_-76134_SPEC = 'ANGLES' + TKFRAME_-76134_UNITS = 'DEGREES' + TKFRAME_-76134_AXES = ( 2, 1, 3 ) + TKFRAME_-76134_ANGLES = ( -45.157, 0.352, 90.273 ) + + \begintext + + + The actual MSL_HAZCAM_BACK_LEFT_A frame orientation provided in the + frame definition below was computed using the CAHVOR(E) camera model + file, 'MSL_CAL_003_SN_0211-RHAZL-FLIGHT-RCE-A.cahvore'. According to + this model the reference frame, MSL_ROVER, can be transformed into + the camera frame, MSL_HAZCAM_BACK_LEFT_A, by the following sequence + of rotations: first by -45.06141007 degrees about Y, then by + 1.82024949 degrees about X, and finally by 90.60566349 degrees about + Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_HAZCAM_BACK_LEFT_A = -76141 + FRAME_-76141_NAME = 'MSL_HAZCAM_BACK_LEFT_A' + FRAME_-76141_CLASS = 4 + FRAME_-76141_CLASS_ID = -76141 + FRAME_-76141_CENTER = -76 + TKFRAME_-76141_RELATIVE = 'MSL_ROVER' + TKFRAME_-76141_SPEC = 'ANGLES' + TKFRAME_-76141_UNITS = 'DEGREES' + TKFRAME_-76141_AXES = ( 2, 1, 3 ) + TKFRAME_-76141_ANGLES = ( 45.061, -1.820, -90.606 ) + + \begintext + + + The actual MSL_HAZCAM_BACK_LEFT_B frame orientation provided in the + frame definition below was computed using the CAHVOR(E) camera model + file, 'MSL_CAL_003_SN_0212-RHAZL-FLIGHT-RCE-B.cahvore'. According to + this model the reference frame, MSL_ROVER, can be transformed into + the camera frame, MSL_HAZCAM_BACK_LEFT_B, by the following sequence + of rotations: first by -45.44850801 degrees about Y, then by + 0.39620359 degrees about X, and finally by 90.00485341 degrees about + Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_HAZCAM_BACK_LEFT_B = -76143 + FRAME_-76143_NAME = 'MSL_HAZCAM_BACK_LEFT_B' + FRAME_-76143_CLASS = 4 + FRAME_-76143_CLASS_ID = -76143 + FRAME_-76143_CENTER = -76 + TKFRAME_-76143_RELATIVE = 'MSL_ROVER' + TKFRAME_-76143_SPEC = 'ANGLES' + TKFRAME_-76143_UNITS = 'DEGREES' + TKFRAME_-76143_AXES = ( 2, 1, 3 ) + TKFRAME_-76143_ANGLES = ( 45.449, -0.396, -90.005 ) + + \begintext + + + The actual MSL_HAZCAM_BACK_RIGHT_A frame orientation provided in the + frame definition below was computed using the CAHVOR(E) camera model + file, 'MSL_CAL_003_SN_0217-RHAZR-FLIGHT-RCE-A.cahvore'. According to + this model the reference frame, MSL_ROVER, can be transformed into + the camera frame, MSL_HAZCAM_BACK_RIGHT_A, by the following sequence + of rotations: first by -46.45607709 degrees about Y, then by + 1.48194872 degrees about X, and finally by 90.38345774 degrees about + Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_HAZCAM_BACK_RIGHT_A = -76142 + FRAME_-76142_NAME = 'MSL_HAZCAM_BACK_RIGHT_A' + FRAME_-76142_CLASS = 4 + FRAME_-76142_CLASS_ID = -76142 + FRAME_-76142_CENTER = -76 + TKFRAME_-76142_RELATIVE = 'MSL_ROVER' + TKFRAME_-76142_SPEC = 'ANGLES' + TKFRAME_-76142_UNITS = 'DEGREES' + TKFRAME_-76142_AXES = ( 2, 1, 3 ) + TKFRAME_-76142_ANGLES = ( 46.456, -1.482, -90.383 ) + + \begintext + + + The actual MSL_HAZCAM_BACK_RIGHT_B frame orientation provided in the + frame definition below was computed using the CAHVOR(E) camera model + file, 'MSL_CAL_003_SN_0207-RHAZR-FLIGHT-RCE-B.cahvore'. According to + this model the reference frame, MSL_ROVER, can be transformed into + the camera frame, MSL_HAZCAM_BACK_RIGHT_B, by the following sequence + of rotations: first by -43.65002223 degrees about Y, then by + -0.44628107 degrees about X, and finally by 89.00921165 degrees + about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_HAZCAM_BACK_RIGHT_B = -76144 + FRAME_-76144_NAME = 'MSL_HAZCAM_BACK_RIGHT_B' + FRAME_-76144_CLASS = 4 + FRAME_-76144_CLASS_ID = -76144 + FRAME_-76144_CENTER = -76 + TKFRAME_-76144_RELATIVE = 'MSL_ROVER' + TKFRAME_-76144_SPEC = 'ANGLES' + TKFRAME_-76144_UNITS = 'DEGREES' + TKFRAME_-76144_AXES = ( 2, 1, 3 ) + TKFRAME_-76144_ANGLES = ( 43.650, 0.446, -89.009 ) + + \begintext + + +RAD +------------------------------------------------- + + The RAD frame -- MSL_RAD -- is fixed with respect to the rover + frame, MSL_ROVER, and defined as follows: + + - +Z is the instrument boresight, nominally along the rover -Z + + - +X is nominally co-aligned with the the rover +X + + - +Y completes the right handed frame + + - the origin is at the intersection of the instrument FOV center + axis and the rover deck plane. + + The MSL_RAD frame is rotated by 180 degrees about +X from the + MSL_ROVER frame. + + \begindata + + FRAME_MSL_RAD = -76150 + FRAME_-76150_NAME = 'MSL_RAD' + FRAME_-76150_CLASS = 4 + FRAME_-76150_CLASS_ID = -76150 + FRAME_-76150_CENTER = -76 + TKFRAME_-76150_SPEC = 'ANGLES' + TKFRAME_-76150_RELATIVE = 'MSL_ROVER' + TKFRAME_-76150_ANGLES = ( 180.0, 0.0, 0.0 ) + TKFRAME_-76150_AXES = ( 1, 2, 3 ) + TKFRAME_-76150_UNITS = 'DEGREES' + + \begintext + + +MARDI +------------------------------------------------- + + The frame for MARDI -- MSL_MARDI -- is defined as follows: + + -- +Z axis is along the camera's central pixel view direction + ("into image"); + + -- +Y axis is along the image central column and points from the + image center toward the image top row ("up"); + + -- +X completes the right hand frame and is along the image central + row and points from the image center toward the image left + column ("left"); + + -- the origin of the frame is located at the camera focal point. + + This diagram illustrates the MARDI frame: + + Rover -Y side view: + ------------------- + _ + | | RSM + `-' + | HGA + | .```. . + | | o --- .-' \ RTG + RA | `._.' | .-' \ + -|- |-.-------------------' .- + o---------o--------o| | | .-' + |.-------o----. |-.-' + `x------->-----`-.--' + | Ymardi .-----`o------. + | .-|-. .-|-. + | | o | | o | + v <-------x.' `._.' + Zmardi Xr | + | + | + Zr v Yr is into the page. + Xmardi is into the page. + + Since MARDI are rigidly mounted on the rover body, its frame is + defined as fixed offset frames with orientation given with respect + to the rover frame. + + Nominally the MARDI frame is rotated by 90 degrees about Z relative + to the rover frame. This nominal orientation can be defined using the + following angles: + + TKFRAME_-76160_ANGLES = ( 0.0, 0.0, -90.0 ) + TKFRAME_-76160_AXES = ( 1, 2, 3 ) + + + The actual MSL_MARDI frame orientation provided in the frame + definition below was computed using the CAHVOR(E) camera model file, + 'MSL_CAL_002_SN_3001-MARDI-FLIGHT.cahvor'. According to this model + the reference frame, MSL_ROVER, can be transformed into the camera + frame, MSL_MARDI, by the following sequence of rotations: first by + 0.60374856 degrees about Y, then by 0.35729881 degrees about X, and + finally by 89.88147298 degrees about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_MARDI = -76160 + FRAME_-76160_NAME = 'MSL_MARDI' + FRAME_-76160_CLASS = 4 + FRAME_-76160_CLASS_ID = -76160 + FRAME_-76160_CENTER = -76 + TKFRAME_-76160_RELATIVE = 'MSL_ROVER' + TKFRAME_-76160_SPEC = 'ANGLES' + TKFRAME_-76160_UNITS = 'DEGREES' + TKFRAME_-76160_AXES = ( 2, 1, 3 ) + TKFRAME_-76160_ANGLES = ( -0.604, -0.357, -89.881 ) + + \begintext + + +REMS UVS +-------- + + The REMS/UVS frame -- MSL_REMS_UVS -- is fixed with respect to the + rover frame, MSL_ROVER, and defined as follows: + + - +Z is the instrument boresight, nominally along the rover -Z + + - +X is nominally co-aligned with the the rover +X + + - +Y completes the right handed frame + + - the origin is at the intersection of the instrument FOV center + axis and the rover deck plane. + + The MSL_REMS_UVS frame is rotated by 180 degrees about +X from the + MSL_ROVER frame. + + \begindata + + FRAME_MSL_REMS_UVS = -76170 + FRAME_-76170_NAME = 'MSL_REMS_UVS' + FRAME_-76170_CLASS = 4 + FRAME_-76170_CLASS_ID = -76170 + FRAME_-76170_CENTER = -76 + TKFRAME_-76170_SPEC = 'ANGLES' + TKFRAME_-76170_RELATIVE = 'MSL_ROVER' + TKFRAME_-76170_ANGLES = ( 180.0, 0.0, 0.0 ) + TKFRAME_-76170_AXES = ( 1, 2, 3 ) + TKFRAME_-76170_UNITS = 'DEGREES' + + \begintext + + +DAN +------------------------------------------------- + + The DAN frame -- MSL_DAN -- is fixed with respect to the rover + frame, MSL_ROVER, and defined as follows: + + - +Z is the instrument boresight, nominally along the rover +Z + + - +X is nominally co-aligned with the the rover +X + + - +Y completes the right handed frame + + - the origin is at the intersection of the instrument FOV center + axis and the rover bottom plane. + + The MSL_DAN frame is co-aligned wit the MSL_ROVER frame. + + \begindata + + FRAME_MSL_DAN = -76180 + FRAME_-76180_NAME = 'MSL_DAN' + FRAME_-76180_CLASS = 4 + FRAME_-76180_CLASS_ID = -76180 + FRAME_-76180_CENTER = -76 + TKFRAME_-76180_SPEC = 'ANGLES' + TKFRAME_-76180_RELATIVE = 'MSL_ROVER' + TKFRAME_-76180_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76180_AXES = ( 1, 2, 3 ) + TKFRAME_-76180_UNITS = 'DEGREES' + + \begintext + + +SAM and CHEMIN +------------------------------------------------- + + The SAM and CHEMIN frames -- MSL_SAM, and MSL_CHEMIN -- are fixed + with respect to the rover frame, MSL_ROVER, and defined to be + co-aligned with it. + + \begindata + + FRAME_MSL_SAM = -76182 + FRAME_-76182_NAME = 'MSL_SAM' + FRAME_-76182_CLASS = 4 + FRAME_-76182_CLASS_ID = -76182 + FRAME_-76182_CENTER = -76 + TKFRAME_-76182_SPEC = 'ANGLES' + TKFRAME_-76182_RELATIVE = 'MSL_ROVER' + TKFRAME_-76182_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76182_AXES = ( 1, 2, 3 ) + TKFRAME_-76182_UNITS = 'DEGREES' + + FRAME_MSL_CHEMIN = -76183 + FRAME_-76183_NAME = 'MSL_CHEMIN' + FRAME_-76183_CLASS = 4 + FRAME_-76183_CLASS_ID = -76183 + FRAME_-76183_CENTER = -76 + TKFRAME_-76183_SPEC = 'ANGLES' + TKFRAME_-76183_RELATIVE = 'MSL_ROVER' + TKFRAME_-76183_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76183_AXES = ( 1, 2, 3 ) + TKFRAME_-76183_UNITS = 'DEGREES' + + \begintext + + +Remote Sensing Mast (RSM) and RSM-mounted Instrument Frames +======================================================================== + + This section defines frames for the RSM instruments and structures + -- RSM joints and head, Mast Cameras (MASTCAM), Navigation Cameras + (NAVCAMs), Chemistry & Camera experiment (CHEMCAM), and the + booms and boom-mounted sensors of the Rover Environmental Monitoring + Station (REMS). + + +RSM +------------------------------------------------- + + Five frames are defined for the RSM gimbals and head -- + MSL_RSM_ZERO_AZ, MSL_RSM_AZ, MSL_RSM_ZERO_EL, MSL_RSM_EL, and + MSL_RSM_HEAD. + + The RSM "zero" AZ frame, MSL_RSM_ZERO_AZ, is defined to establish + the AZ gimbal "zero" position with its +Z axis being the AZ rotation + axis and its +X axis pointing toward the "zero" AZ hard stop (RSM + looking backward). It is defined as a fixed-offset frame relative to + the rover frame and is nominally rotated by -181 degrees about Z + from it. + + The RSM AZ frame, MSL_RSM_AZ, is rotated from the MSL_RSM_ZERO_AZ + frame by the AZ angle about Z. It is defined as a CK-based frame. + + This diagram shows the two AZ frames in the nominal forward-looking + "home" (181 deg AZ, 91 deg EL) position: + + Rover -Z side ("top") view: + --------------------------- + + .-----. .-----. .-----. + | | Yaz | | | | + | |^ | | | + `--|--'| `-- Yr `--|--' + `---|------o- ^ -----o------' + RSM | Xaz0 | ------. + <-------x-------> | |--------. + Xaz |||| | |-------.| + RA |`| <-------x | || RTG + | | | Xr HGA |-------'| + -o---------|--------|o-| v =====-o---------' + | ` Yaz0 ------------' + .----------o---------o------. + .--|--. .--|--. .--|--. + | | | | | | + | | | | | | + `-----' `-----' `-----' + + Zr, Zaz0, Zaz are into the page. + + The RSM "zero" EL frame, MSL_RSM_ZERO_EL, is defined to establish + the EL gimbal "zero" position with its +Y axis being the EL rotation + axis and its its +X axis pointing toward the "zero" EL hard stop + (RSM looking down). It is defined as a fixed-offset frame relative + to the RSM AZ frame and is nominally rotated by -91 degrees about Y + from it. + + The RSM EL frame, MSL_RSM_EL, is rotated from the MSL_RSM_ZERO_EL + frame by the EL angle about Y. It is defined as a CK-based frame. + + The RSM head frame, MSL_RSM_HEAD, is defined as a fixed-offset frame + relative to the MSL_RSM_EL frame by EL. It is defined to be + co-aligned with the ROVER frame in the "home" position. + + This diagram shows the two EL and the HEAD frames in the nominal + forward-looking "home" (181 deg AZ, 91 deg EL) position: + + Rover -Y side view: + ------------------- + + Xel,h _ Zel0 + <-------x-------> + `|' + | HGA + | Zel,h .```. . + v Xel0 | o --- .-' \ RTG + RA | `._.' | .-' \ + -|- |-.-------------------' .- + o---------o--------o| | | .-' + |.-------o----. |-.-' + .-`--------------`-.--' + | .-----`o------. + .-|-. .-|-. .-|-. + | o | | o | | o | + `._.' <-------x.' `._.' + Xr | + | + | + Zr v + + Yr, Yel0, Yh are into the page. + + The AZ, EL, and head frames are co-aligned with the rover frame in + the nominal forward-looking "home" (181 deg AZ, 91 deg EL) position. + + The nominal nominal offset angles for the fixed offset frames in the + RSM frame chain are: + + TKFRAME_-76201_ANGLES = ( 0.0, 0.0, 181.0 ) + TKFRAME_-76201_AXES = ( 1, 2, 3 ) + + TKFRAME_-76203_ANGLES = ( 0.0, 0.0, 91.0 ) + TKFRAME_-76203_AXES = ( 1, 3, 2 ) + + TKFRAME_-76205_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76205_AXES = ( 3 1 2 ) + + The actual offset angles were derived from the following AZ and EL + "home" gimbal positions (in radians) and directions of the AZ and EL + axes in the rover frame at "zero" AZ position (from [6]): + + home_az 3.167345 + home_el 1.588171 + az_axis_x -0.001 + az_axis_y 0 + az_axis_z 1 + el_axis_x -0.022 + el_axis_y -1 + el_axis_z 0 + el_azimuth 0 + + The frame definitions below incorporate the actual offsets. + + \begindata + + FRAME_MSL_RSM_ZERO_AZ = -76201 + FRAME_-76201_NAME = 'MSL_RSM_ZERO_AZ' + FRAME_-76201_CLASS = 4 + FRAME_-76201_CLASS_ID = -76201 + FRAME_-76201_CENTER = -76 + TKFRAME_-76201_SPEC = 'ANGLES' + TKFRAME_-76201_RELATIVE = 'MSL_ROVER' + TKFRAME_-76201_ANGLES = ( -178.739697, 0.001260, -0.057282 ) + TKFRAME_-76201_AXES = ( 3, 1, 2 ) + TKFRAME_-76201_UNITS = 'DEGREES' + + FRAME_MSL_RSM_AZ = -76202 + FRAME_-76202_NAME = 'MSL_RSM_AZ' + FRAME_-76202_CLASS = 3 + FRAME_-76202_CLASS_ID = -76202 + FRAME_-76202_CENTER = -76 + CK_-76202_SCLK = -76 + CK_-76202_SPK = -76 + + FRAME_MSL_RSM_ZERO_EL = -76203 + FRAME_-76203_NAME = 'MSL_RSM_ZERO_EL' + FRAME_-76203_CLASS = 4 + FRAME_-76203_CLASS_ID = -76203 + FRAME_-76203_CENTER = -76 + TKFRAME_-76203_SPEC = 'ANGLES' + TKFRAME_-76203_RELATIVE = 'MSL_RSM_AZ' + TKFRAME_-76203_ANGLES = ( -0.000000, -0.001260, 90.995495 ) + TKFRAME_-76203_AXES = ( 3, 1, 2 ) + TKFRAME_-76203_UNITS = 'DEGREES' + + FRAME_MSL_RSM_EL = -76204 + FRAME_-76204_NAME = 'MSL_RSM_EL' + FRAME_-76204_CLASS = 3 + FRAME_-76204_CLASS_ID = -76204 + FRAME_-76204_CENTER = -76 + CK_-76204_SCLK = -76 + CK_-76204_SPK = -76 + + FRAME_MSL_RSM_HEAD = -76205 + FRAME_-76205_NAME = 'MSL_RSM_HEAD' + FRAME_-76205_CLASS = 4 + FRAME_-76205_CLASS_ID = -76205 + FRAME_-76205_CENTER = -76 + TKFRAME_-76205_SPEC = 'ANGLES' + TKFRAME_-76205_RELATIVE = 'MSL_RSM_EL' + TKFRAME_-76205_ANGLES = ( 0.215198, 0.001260, -0.057291 ) + TKFRAME_-76205_AXES = ( 3, 1, 2 ) + TKFRAME_-76205_UNITS = 'DEGREES' + + \begintext + + +MASTCAM +------------------------------------------------- + + The MASTCAM frames are defined as follows: + + -- +Z axis is along the camera's central pixel view direction + ("into image"); + + -- +Y axis is along the image central column and points from the + image center toward the image top row ("up"); + + -- +X completes the right hand frame and is along the image central + row and points from the image center toward the image left + column ("left"); + + -- the origin of the frame is located at the camera focal point. + + The MASTCAM frames for the RSM in nominal forward-looking (181 deg + AZ, 91 deg EL) position are shown on this diagram: + + Rover -Y side view: + ------------------- + ^ Ymc + | + | + Zmc | + <-------* + Xh `|' + | HGA + | .```. . + v Zh | o --- .-' \ RTG + RA | `._.' | .-' \ + -|- |-.-------------------' .- + o---------o--------o| | | .-' + |.-------o----. |-.-' + .-`--------------`-.--' + | .-----`o------. + .-|-. .-|-. .-|-. + | o | | o | | o | + `._.' <-------x.' `._.' + Xr | + | + | + Zr v + + Yr, Yh are into the page. + Xmc is out of the page. + + Since MASTCAMs are rigidly mounted on RSM, their frames are defined + as fixed offset frames with orientation given with respect to the + RSM head frame. + + The nominal MASTCAM frame orientation are such that the MASTCAM left + and right boresights are "toe"ed in by 1.25 degrees toward the RSM + head +X axis. In order to align the RSM head frame with the camera + frames in this nominal orientation, it has to be rotated by +90 + degrees about Y and then by "toe"-in angles (-1.25 degrees for the + left camera and +1.25 degrees for the right camera) about X, and + finally by -90 degrees about Z (to line up Y axis with the vertical + direction.) The following sets of keywords can be incorporated into + the frame definitions to provide this nominal orientation: + + TKFRAME_-76210_ANGLES = ( -90.000, 1.250, 90.000 ) + TKFRAME_-76210_AXES = ( 2, 1, 3 ) + + TKFRAME_-76220_ANGLES = ( -90.000, -1.250, 90.000 ) + TKFRAME_-76220_AXES = ( 2, 1, 3 ) + + The actual MSL_MASTCAM_LEFT frame orientation provided in the frame + definition below was computed using the CAHVOR(E) camera model file, + 'MSL_CAL_003_SN_3003_FILTER_0_FOCUS_02315-MCAML-FLIGHT.cahvor'. + According to this model the reference frame, MSL_RSM_HEAD, can be + transformed into the camera frame, MSL_MASTCAM_LEFT, by the + following sequence of rotations: first by 90.00997282 degrees about + Y, then by -1.48435653 degrees about X, and finally by -89.65469934 + degrees about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_MASTCAM_LEFT = -76210 + FRAME_-76210_NAME = 'MSL_MASTCAM_LEFT' + FRAME_-76210_CLASS = 4 + FRAME_-76210_CLASS_ID = -76210 + FRAME_-76210_CENTER = -76 + TKFRAME_-76210_RELATIVE = 'MSL_RSM_HEAD' + TKFRAME_-76210_SPEC = 'ANGLES' + TKFRAME_-76210_UNITS = 'DEGREES' + TKFRAME_-76210_AXES = ( 2, 1, 3 ) + TKFRAME_-76210_ANGLES = ( -90.010, 1.484, 89.655 ) + + \begintext + + + The actual MSL_MASTCAM_RIGHT frame orientation provided in the frame + definition below was computed using the CAHVOR(E) camera model file, + 'MSL_CAL_003_SN_3004_FILTER_0_FOCUS_02702-MCAMR-FLIGHT.cahvor'. + According to this model the reference frame, MSL_RSM_HEAD, can be + transformed into the camera frame, MSL_MASTCAM_RIGHT, by the + following sequence of rotations: first by 89.99071558 degrees about + Y, then by 1.33167368 degrees about X, and finally by -90.43555383 + degrees about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_MASTCAM_RIGHT = -76220 + FRAME_-76220_NAME = 'MSL_MASTCAM_RIGHT' + FRAME_-76220_CLASS = 4 + FRAME_-76220_CLASS_ID = -76220 + FRAME_-76220_CENTER = -76 + TKFRAME_-76220_RELATIVE = 'MSL_RSM_HEAD' + TKFRAME_-76220_SPEC = 'ANGLES' + TKFRAME_-76220_UNITS = 'DEGREES' + TKFRAME_-76220_AXES = ( 2, 1, 3 ) + TKFRAME_-76220_ANGLES = ( -89.991, -1.332, 90.436 ) + + \begintext + + + +NAVCAMs +------------------------------------------------- + + The NAVCAM frames are defined as follows: + + -- +Z axis is along the camera's central pixel view direction + ("into image"); + + -- +Y axis is along the image central column and points from the + image center toward the image top row ("up"); + + -- +X completes the right hand frame and is along the image central + row and points from the image center toward the image left + column ("left"); + + -- the origin of the frame is located at the camera focal point. + + The NAVCAM frames for the RSM in nominal forward-looking (181 deg + AZ, 91 deg EL) position are shown on this diagram: + + Rover -Y side view: + ------------------- + ^ Ync + | + | + Znc | + <-------* + Xh `|' + | HGA + | .```. . + v Zh | o --- .-' \ RTG + RA | `._.' | .-' \ + -|- |-.-------------------' .- + o---------o--------o| | | .-' + |.-------o----. |-.-' + .-`--------------`-.--' + | .-----`o------. + .-|-. .-|-. .-|-. + | o | | o | | o | + `._.' <-------x.' `._.' + Xr | + | + | + Zr v + + Yr, Yh are into the page. + Xnc is out of the page. + + Since NAVCAMs are rigidly mounted on RSM, their frames are defined + as fixed offset frames with orientation given with respect to the + RSM head frame. + + The nominal NAVCAM frame orientation are such that the NAVCAM left + and right boresights are co-aligned with the RSM head +X axis. In + order to align the RSM head frame with the camera frames in this + nominal orientation, it has to be rotated by +90 degrees about Y, + then by -90 degrees about Z (to line up Y axis with the vertical + direction.) The following sets of keywords can be incorporated into + the frame definitions to provide this nominal orientation: + + TKFRAME_-76231_ANGLES = ( -90.000, 0.000, 90.000 ) + TKFRAME_-76231_AXES = ( 2, 1, 3 ) + + TKFRAME_-76232_ANGLES = ( -90.000, 0.000, 90.000 ) + TKFRAME_-76232_AXES = ( 2, 1, 3 ) + + TKFRAME_-76233_ANGLES = ( -90.000, 0.000, 90.000 ) + TKFRAME_-76233_AXES = ( 2, 1, 3 ) + + TKFRAME_-76234_ANGLES = ( -90.000, 0.000, 90.000 ) + TKFRAME_-76234_AXES = ( 2, 1, 3 ) + + The actual MSL_NAVCAM_LEFT_A frame orientation provided in the frame + definition below was computed using the CAHVOR(E) camera model file, + 'MSL_CAL_004_SN_0216-NAVL-FLIGHT-RCE-A.cahvor'. According to this + model the reference frame, MSL_RSM_HEAD, can be transformed into the + camera frame, MSL_NAVCAM_LEFT_A, by the following sequence of + rotations: first by 89.51443329 degrees about Y, then by -1.12581998 + degrees about X, and finally by -90.38864561 degrees about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_NAVCAM_LEFT_A = -76231 + FRAME_-76231_NAME = 'MSL_NAVCAM_LEFT_A' + FRAME_-76231_CLASS = 4 + FRAME_-76231_CLASS_ID = -76231 + FRAME_-76231_CENTER = -76 + TKFRAME_-76231_RELATIVE = 'MSL_RSM_HEAD' + TKFRAME_-76231_SPEC = 'ANGLES' + TKFRAME_-76231_UNITS = 'DEGREES' + TKFRAME_-76231_AXES = ( 2, 1, 3 ) + TKFRAME_-76231_ANGLES = ( -89.514, 1.126, 90.389 ) + + \begintext + + + The actual MSL_NAVCAM_LEFT_B frame orientation provided in the frame + definition below was computed using the CAHVOR(E) camera model file, + 'MSL_CAL_005_SN_0215-NAVL-FLIGHT-RCE-B.cahvor'. According to this + model the reference frame, MSL_RSM_HEAD, can be transformed into the + camera frame, MSL_NAVCAM_LEFT_B, by the following sequence of + rotations: first by 89.86145547 degrees about Y, then by -0.38921323 + degrees about X, and finally by -90.02355994 degrees about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_NAVCAM_LEFT_B = -76233 + FRAME_-76233_NAME = 'MSL_NAVCAM_LEFT_B' + FRAME_-76233_CLASS = 4 + FRAME_-76233_CLASS_ID = -76233 + FRAME_-76233_CENTER = -76 + TKFRAME_-76233_RELATIVE = 'MSL_RSM_HEAD' + TKFRAME_-76233_SPEC = 'ANGLES' + TKFRAME_-76233_UNITS = 'DEGREES' + TKFRAME_-76233_AXES = ( 2, 1, 3 ) + TKFRAME_-76233_ANGLES = ( -89.861, 0.389, 90.024 ) + + \begintext + + + The actual MSL_NAVCAM_RIGHT_A frame orientation provided in the + frame definition below was computed using the CAHVOR(E) camera model + file, 'MSL_CAL_004_SN_0206-NAVR-FLIGHT-RCE-A.cahvor'. According to + this model the reference frame, MSL_RSM_HEAD, can be transformed + into the camera frame, MSL_NAVCAM_RIGHT_A, by the following sequence + of rotations: first by 89.24730809 degrees about Y, then by + -0.53383267 degrees about X, and finally by -89.81089093 degrees + about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_NAVCAM_RIGHT_A = -76232 + FRAME_-76232_NAME = 'MSL_NAVCAM_RIGHT_A' + FRAME_-76232_CLASS = 4 + FRAME_-76232_CLASS_ID = -76232 + FRAME_-76232_CENTER = -76 + TKFRAME_-76232_RELATIVE = 'MSL_RSM_HEAD' + TKFRAME_-76232_SPEC = 'ANGLES' + TKFRAME_-76232_UNITS = 'DEGREES' + TKFRAME_-76232_AXES = ( 2, 1, 3 ) + TKFRAME_-76232_ANGLES = ( -89.247, 0.534, 89.811 ) + + \begintext + + + The actual MSL_NAVCAM_RIGHT_B frame orientation provided in the + frame definition below was computed using the CAHVOR(E) camera model + file, 'MSL_CAL_005_SN_0218-NAVR-FLIGHT-RCE-B.cahvor'. According to + this model the reference frame, MSL_RSM_HEAD, can be transformed + into the camera frame, MSL_NAVCAM_RIGHT_B, by the following sequence + of rotations: first by 89.91279432 degrees about Y, then by + -0.33489566 degrees about X, and finally by -90.29024820 degrees + about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_NAVCAM_RIGHT_B = -76234 + FRAME_-76234_NAME = 'MSL_NAVCAM_RIGHT_B' + FRAME_-76234_CLASS = 4 + FRAME_-76234_CLASS_ID = -76234 + FRAME_-76234_CENTER = -76 + TKFRAME_-76234_RELATIVE = 'MSL_RSM_HEAD' + TKFRAME_-76234_SPEC = 'ANGLES' + TKFRAME_-76234_UNITS = 'DEGREES' + TKFRAME_-76234_AXES = ( 2, 1, 3 ) + TKFRAME_-76234_ANGLES = ( -89.913, 0.335, 90.290 ) + + \begintext + + +CHEMCAM +------------------------------------------------- + + The CHEMCAM RMI frame is defined as follows: + + -- +Z axis is along the camera's central pixel view direction + ("into image"); + + -- +Y axis is along the image central column and points from the + image center toward the image top row ("up"); + + -- +X completes the right hand frame and is along the image central + row and points from the image center toward the image left + column ("left"); + + -- the origin of the frame is located at the camera focal point. + + The CHEMCAM LIBS laser and camera frames are defined to be nominally + co-aligned with the CHEMCAM RMI frame. + + The CHEMCAM frames for the RSM in nominal forward-looking (181 deg + AZ, 91 deg EL) position are shown on this diagram: + + Rover -Y side view: + ------------------- + ^ Ycc + | + | + Zcc | + <-------* + Xh `|' + | HGA + | .```. . + v Zh | o --- .-' \ RTG + RA | `._.' | .-' \ + -|- |-.-------------------' .- + o---------o--------o| | | .-' + |.-------o----. |-.-' + .-`--------------`-.--' + | .-----`o------. + .-|-. .-|-. .-|-. + | o | | o | | o | + `._.' <-------x.' `._.' + Xr | + | + | + Zr v + + Yr, Yh are into the page. + Xcc is out of the page. + + Since CHEMCAM is rigidly mounted on RSM, its frames are defined as + fixed offset frames with orientation given with respect to the RSM + head frame. + + The nominal CHEMCAM RMI orientation is such that the CHEMCAM RMI + boresight is co-aligned with the RSM head +X axis. In order to align + the RSM head frame with the RMI frame in this nominal orientation, + it has to be rotated by +90 degrees about Y, then by -90 degrees + about Z (to line up Y axis with the vertical direction.) The + following sets of keywords should be included into the frame + definitions to provide this nominal orientation: + + TKFRAME_-76243_ANGLES = ( -90.000, 0.000, 90.000 ) + TKFRAME_-76243_AXES = ( 2, 1, 3 ) + + The actual MSL_CHEMCAM_RMI frame orientation provided in the frame + definition below was computed using the CAHVOR(E) camera model file, + 'MSL_CAL_003_SN_0001_FOCUS_12658-RMI-FLIGHT.cahv'. According to this + model the reference frame, MSL_RSM_HEAD, can be transformed into the + camera frame, MSL_CHEMCAM_RMI, by the following sequence of + rotations: first by 89.81378695 degrees about Y, then by -0.21898509 + degrees about X, and finally by -90.08397425 degrees about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define + rotations from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_CHEMCAM_RMI = -76243 + FRAME_-76243_NAME = 'MSL_CHEMCAM_RMI' + FRAME_-76243_CLASS = 4 + FRAME_-76243_CLASS_ID = -76243 + FRAME_-76243_CENTER = -76 + TKFRAME_-76243_RELATIVE = 'MSL_RSM_HEAD' + TKFRAME_-76243_SPEC = 'ANGLES' + TKFRAME_-76243_UNITS = 'DEGREES' + TKFRAME_-76243_AXES = ( 2, 1, 3 ) + TKFRAME_-76243_ANGLES = ( -89.814, 0.219, 90.084 ) + + \begintext + + Based on the pre-launch calibrations the LIBS laser spot points along + the RMI pixel (496,531) view direction as shown on this diagram: + + ^ Yrmi + (0,0 | (0,1023) + o-------------|-------------o + | | | + | | | + | | | + | | | + | | (496,531) | + | | x | + <----------------x | + Zrmi | (511.5,511.5) | + | | + | | + | | + | | + | | + o---------------------------o + (1023,0) (1023,1023) + + Zrmi and Zlibs are into the page. + + + Assuming the nominal RMI pixel IFOV of 20 microradians, two + rotations needed to coalign the RMI frame with the LIBS laser frame + are first by -0.00039 radians about Y, then by -0.00031 radians + about X. This orientation is provided in the LIBS laser frame + definition below, containing the opposite of this transformation + because Euler angles specified in it define rotations from the + "destination" frame to the "reference" frame. + + The CHEMCAM LIBS camera frame is defined to be co-aligned with the + LIBS laser frame. + + \begindata + + FRAME_MSL_CHEMCAM_LIBS_LASER = -76241 + FRAME_-76241_NAME = 'MSL_CHEMCAM_LIBS_LASER' + FRAME_-76241_CLASS = 4 + FRAME_-76241_CLASS_ID = -76241 + FRAME_-76241_CENTER = -76 + TKFRAME_-76241_SPEC = 'ANGLES' + TKFRAME_-76241_RELATIVE = 'MSL_CHEMCAM_RMI' + TKFRAME_-76241_ANGLES = ( 0.00039, 0.00031, 0.000 ) + TKFRAME_-76241_AXES = ( 2, 1, 3 ) + TKFRAME_-76241_UNITS = 'RADIANS' + + FRAME_MSL_CHEMCAM_LIBS_CAM = -76242 + FRAME_-76242_NAME = 'MSL_CHEMCAM_LIBS_CAM' + FRAME_-76242_CLASS = 4 + FRAME_-76242_CLASS_ID = -76242 + FRAME_-76242_CENTER = -76 + TKFRAME_-76242_SPEC = 'ANGLES' + TKFRAME_-76242_RELATIVE = 'MSL_CHEMCAM_LIBS_LASER' + TKFRAME_-76242_ANGLES = ( 0.000, 0.000, 0.000 ) + TKFRAME_-76242_AXES = ( 2, 1, 3 ) + TKFRAME_-76242_UNITS = 'DEGREES' + + \begintext + + +REMS +------------------------------------------------- + + REMS boom frames -- MSL_REMS_BOOM1 and MSL_REMS_BOOM1 -- are defined + to have X axes along booms and Z axes nominally co-aligned with + the rover Z axis. + + The REMS BOOM 1 frame is nominally rotated from the rover frame by + 122 degrees about Z while the REMS BOOM 2 frame is nominally rotated + from the rover frame by 2 degrees about Z. + + This diagram illustrates the REMS boom frames: + + Rover -Z side ("top") view: + --------------------------- + + .-----. Xb2 .-----. .-----. + | Yb1 ^ | | | | + | ^ / | | | + `-- | / `-- Yr `--|--' + | --/----o- ^ -----o------' + |.-x------- | ------. + <-------x| |`-. Yb2 | |--------. + Xb1 || | `> | |-------.| + RA RSM |`- <-------x | || RTG + | | Xr HGA |-------'| + -o---------|--------|o-| =====-o---------' + | `-------------------' + .----------o---------o------. + .--|--. .--|--. .--|--. + | | | | | | + | | | | | | + `-----' `-----' `-----' + + Zr, Zb1, Zb2 is into the page. + + REMS sensor frames are defined to be co aligned with the their + corresponding boom frames. + + \begindata + + FRAME_MSL_REMS_BOOM1 = -76250 + FRAME_-76250_NAME = 'MSL_REMS_BOOM1' + FRAME_-76250_CLASS = 4 + FRAME_-76250_CLASS_ID = -76250 + FRAME_-76250_CENTER = -76 + TKFRAME_-76250_SPEC = 'ANGLES' + TKFRAME_-76250_RELATIVE = 'MSL_ROVER' + TKFRAME_-76250_ANGLES = ( 0.0, 0.0, -122.0 ) + TKFRAME_-76250_AXES = ( 1, 2, 3 ) + TKFRAME_-76250_UNITS = 'DEGREES' + + FRAME_MSL_REMS_BOOM1_WS1 = -76251 + FRAME_-76251_NAME = 'MSL_REMS_BOOM1_WS1' + FRAME_-76251_CLASS = 4 + FRAME_-76251_CLASS_ID = -76251 + FRAME_-76251_CENTER = -76 + TKFRAME_-76251_SPEC = 'ANGLES' + TKFRAME_-76251_RELATIVE = 'MSL_REMS_BOOM1' + TKFRAME_-76251_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76251_AXES = ( 1, 2, 3 ) + TKFRAME_-76251_UNITS = 'DEGREES' + + FRAME_MSL_REMS_BOOM1_WS2 = -76252 + FRAME_-76252_NAME = 'MSL_REMS_BOOM1_WS2' + FRAME_-76252_CLASS = 4 + FRAME_-76252_CLASS_ID = -76252 + FRAME_-76252_CENTER = -76 + TKFRAME_-76252_SPEC = 'ANGLES' + TKFRAME_-76252_RELATIVE = 'MSL_REMS_BOOM1' + TKFRAME_-76252_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76252_AXES = ( 1, 2, 3 ) + TKFRAME_-76252_UNITS = 'DEGREES' + + FRAME_MSL_REMS_BOOM1_WS3 = -76253 + FRAME_-76253_NAME = 'MSL_REMS_BOOM1_WS3' + FRAME_-76253_CLASS = 4 + FRAME_-76253_CLASS_ID = -76253 + FRAME_-76253_CENTER = -76 + TKFRAME_-76253_SPEC = 'ANGLES' + TKFRAME_-76253_RELATIVE = 'MSL_REMS_BOOM1' + TKFRAME_-76253_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76253_AXES = ( 1, 2, 3 ) + TKFRAME_-76253_UNITS = 'DEGREES' + + FRAME_MSL_REMS_BOOM1_ATS = -76254 + FRAME_-76254_NAME = 'MSL_REMS_BOOM1_ATS' + FRAME_-76254_CLASS = 4 + FRAME_-76254_CLASS_ID = -76254 + FRAME_-76254_CENTER = -76 + TKFRAME_-76254_SPEC = 'ANGLES' + TKFRAME_-76254_RELATIVE = 'MSL_REMS_BOOM1' + TKFRAME_-76254_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76254_AXES = ( 1, 2, 3 ) + TKFRAME_-76254_UNITS = 'DEGREES' + + FRAME_MSL_REMS_BOOM1_GTS = -76255 + FRAME_-76255_NAME = 'MSL_REMS_BOOM1_GTS' + FRAME_-76255_CLASS = 4 + FRAME_-76255_CLASS_ID = -76255 + FRAME_-76255_CENTER = -76 + TKFRAME_-76255_SPEC = 'ANGLES' + TKFRAME_-76255_RELATIVE = 'MSL_REMS_BOOM1' + TKFRAME_-76255_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76255_AXES = ( 1, 2, 3 ) + TKFRAME_-76255_UNITS = 'DEGREES' + + FRAME_MSL_REMS_BOOM2 = -76260 + FRAME_-76260_NAME = 'MSL_REMS_BOOM2' + FRAME_-76260_CLASS = 4 + FRAME_-76260_CLASS_ID = -76260 + FRAME_-76260_CENTER = -76 + TKFRAME_-76260_SPEC = 'ANGLES' + TKFRAME_-76260_RELATIVE = 'MSL_ROVER' + TKFRAME_-76260_ANGLES = ( 0.0, 0.0, -2.0 ) + TKFRAME_-76260_AXES = ( 1, 2, 3 ) + TKFRAME_-76260_UNITS = 'DEGREES' + + FRAME_MSL_REMS_BOOM2_WS1 = -76261 + FRAME_-76261_NAME = 'MSL_REMS_BOOM2_WS1' + FRAME_-76261_CLASS = 4 + FRAME_-76261_CLASS_ID = -76261 + FRAME_-76261_CENTER = -76 + TKFRAME_-76261_SPEC = 'ANGLES' + TKFRAME_-76261_RELATIVE = 'MSL_REMS_BOOM2' + TKFRAME_-76261_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76261_AXES = ( 1, 2, 3 ) + TKFRAME_-76261_UNITS = 'DEGREES' + + FRAME_MSL_REMS_BOOM2_WS2 = -76262 + FRAME_-76262_NAME = 'MSL_REMS_BOOM2_WS2' + FRAME_-76262_CLASS = 4 + FRAME_-76262_CLASS_ID = -76262 + FRAME_-76262_CENTER = -76 + TKFRAME_-76262_SPEC = 'ANGLES' + TKFRAME_-76262_RELATIVE = 'MSL_REMS_BOOM2' + TKFRAME_-76262_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76262_AXES = ( 1, 2, 3 ) + TKFRAME_-76262_UNITS = 'DEGREES' + + FRAME_MSL_REMS_BOOM2_WS3 = -76263 + FRAME_-76263_NAME = 'MSL_REMS_BOOM2_WS3' + FRAME_-76263_CLASS = 4 + FRAME_-76263_CLASS_ID = -76263 + FRAME_-76263_CENTER = -76 + TKFRAME_-76263_SPEC = 'ANGLES' + TKFRAME_-76263_RELATIVE = 'MSL_REMS_BOOM2' + TKFRAME_-76263_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76263_AXES = ( 1, 2, 3 ) + TKFRAME_-76263_UNITS = 'DEGREES' + + FRAME_MSL_REMS_BOOM2_ATS = -76264 + FRAME_-76264_NAME = 'MSL_REMS_BOOM2_ATS' + FRAME_-76264_CLASS = 4 + FRAME_-76264_CLASS_ID = -76264 + FRAME_-76264_CENTER = -76 + TKFRAME_-76264_SPEC = 'ANGLES' + TKFRAME_-76264_RELATIVE = 'MSL_REMS_BOOM2' + TKFRAME_-76264_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76264_AXES = ( 1, 2, 3 ) + TKFRAME_-76264_UNITS = 'DEGREES' + + FRAME_MSL_REMS_BOOM2_HS = -76265 + FRAME_-76265_NAME = 'MSL_REMS_BOOM2_HS' + FRAME_-76265_CLASS = 4 + FRAME_-76265_CLASS_ID = -76265 + FRAME_-76265_CENTER = -76 + TKFRAME_-76265_SPEC = 'ANGLES' + TKFRAME_-76265_RELATIVE = 'MSL_REMS_BOOM2' + TKFRAME_-76265_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76265_AXES = ( 1, 2, 3 ) + TKFRAME_-76265_UNITS = 'DEGREES' + + \begintext + + +Robot Arm (RA) and RA-mounted Instrument Frames +======================================================================== + + This section defines frames for the RA instruments and structures -- + RA joints and turret head, Mars Hand Lens Imager (MAHLI), Alpha + Particle X-ray Spectrometer (APXS), Powder Acquisition Drill System + (PADS), Dust Removal Tool (DRT), and Collection and Handling for + Interior Martian Rock Analysis (CHIMRA). + + +RA Joints +------------------------------------------------- + + MSL RA base frame, MSL_RA_BASE, is defined to be coincident in + orientation with the rover frame. As this frame is fixed with + respect to the rover it's defined as zero offset frame with respect + to the rover frame. + + All MSL RA joint frames -- SHOULDER_AZ, SHOULDER_EL, ELBOW, WRIST, + and TURRET -- are defined in accordance with normal kinematics + convention as follows: + + -- +Z axis is along the joint rotation axis, nominally pointing + along rover +Z for SHOULDER_AZ, along rover -Y (for RA in + straight out position) for SHOULDER_EL, ELBOW, and WRIST, and + along wrist +Y for TURRET; + + -- +X axis is along the link attached to the joint; + + -- +Y completes the right hand frame; + + -- the origin lies on the rotation axis at a point that provides for + the minimum magnitude of translations between the joints + (see diagram above). + + This diagram illustrates RA base and joint frames in "zero joint + rotation" position: + + + RA side view: + ------------- + + Shoulder/Az Turret + axis axis + + | | + . . + | | + + + //////// Xbase .___. + //o------> | o | + //|////// | o------> + /|/////// ._|_. Xtr + | | | .-.Xsh_az .-. |\ . + Ybase V | o----x->----> =======| x------> =====|=| x------> + ._|_. `| Xsh_el `|' Xelb V `|' Xwr + | | | Ztr | + | | | | + o------> V V Ysh_el V Yelb V Ywr + | Xr Zsh_az + | + | + V Yr, Ybase, Ysh_az, Ytr are out of page; + Zr Zsh_el, Zelb, Zwr are into page. + + + RA top view: + ------------ + + Shoulder/El Elbow Wrist + axis axis axis + + | | | + . . . + | | | + + ////// Zsh_el Zelb Zwr + /Rover// ^ ^ ^ + //////// .|. .|. | + ////Xbase ||| ||| | + //x----->| | Xsh_el | | | Xelb ._|_. Xwr + //| | x----x->----> | x------> -------| x------> + //|//`|'|__ Xsh_az |__|__|------------| | + //|///|/ \ `-----------' / '---' + //V///|/ `-----------------' APXS .-'. / Xtr + Ybase//V/ Ysh_az | x------> + ///// MAHLI `|' + | + | + x------> Xr V Ytr + | + | + | Zr, Zbase, Zsh_az, Ysh_el, + V Yr Yelb, Ywr, and Ztr are all + into the page + + + During normal surface operations the orientation of each of these + frames with respect to each other varies and is controlled and + telemetered using RA joint angles. Therefore, these frame are + defined as a CK frames with the orientation for each frame provided + with respect to its parent in the frame chain. + + \begindata + + FRAME_MSL_RA_BASE = -76300 + FRAME_-76300_NAME = 'MSL_RA_BASE' + FRAME_-76300_CLASS = 4 + FRAME_-76300_CLASS_ID = -76300 + FRAME_-76300_CENTER = -76 + TKFRAME_-76300_SPEC = 'ANGLES' + TKFRAME_-76300_RELATIVE = 'MSL_ROVER' + TKFRAME_-76300_ANGLES = ( 0.0, 0.0, 0.0 ) + TKFRAME_-76300_AXES = ( 1, 2, 3 ) + TKFRAME_-76300_UNITS = 'DEGREES' + + FRAME_MSL_RA_SHOULDER_AZ = -76301 + FRAME_-76301_NAME = 'MSL_RA_SHOULDER_AZ' + FRAME_-76301_CLASS = 3 + FRAME_-76301_CLASS_ID = -76301 + FRAME_-76301_CENTER = -76 + CK_-76301_SCLK = -76 + CK_-76301_SPK = -76 + + FRAME_MSL_RA_SHOULDER_EL = -76302 + FRAME_-76302_NAME = 'MSL_RA_SHOULDER_EL' + FRAME_-76302_CLASS = 3 + FRAME_-76302_CLASS_ID = -76302 + FRAME_-76302_CENTER = -76 + CK_-76302_SCLK = -76 + CK_-76302_SPK = -76 + + FRAME_MSL_RA_ELBOW = -76303 + FRAME_-76303_NAME = 'MSL_RA_ELBOW' + FRAME_-76303_CLASS = 3 + FRAME_-76303_CLASS_ID = -76303 + FRAME_-76303_CENTER = -76 + CK_-76303_SCLK = -76 + CK_-76303_SPK = -76 + + FRAME_MSL_RA_WRIST = -76304 + FRAME_-76304_NAME = 'MSL_RA_WRIST' + FRAME_-76304_CLASS = 3 + FRAME_-76304_CLASS_ID = -76304 + FRAME_-76304_CENTER = -76 + CK_-76304_SCLK = -76 + CK_-76304_SPK = -76 + + FRAME_MSL_RA_TURRET = -76305 + FRAME_-76305_NAME = 'MSL_RA_TURRET' + FRAME_-76305_CLASS = 3 + FRAME_-76305_CLASS_ID = -76305 + FRAME_-76305_CENTER = -76 + CK_-76305_SCLK = -76 + CK_-76305_SPK = -76 + + \begintext + + +RA Instruments +------------------------------------------------- + + Two frames are defined for each of the MSL RA instruments -- MAHLI, + APXS, PADS, DRT, and CHIMRA. + + The first frame for each instrument, named ``MSL_<INST>_REF'', is + the reference frame consistent with the FSW frame for which + orientation is provided in the RA telemetry. The X axis of this + frame is along the instrument's principal direction (boresight, + central axis, etc) and the Z axis is nominally co-aligned with the Z + axis of the TURRET frame. + + Although the ``_REF'' frames are rotated from the TURRET frame about + Z axis by the following fixed angles: + + Instrument Angle, deg [4] Angle, rad (deg ) [5] + ------------- -------------- -------------------------------- + MAHLI_REF 125.00 2.1380283 ( 122.50 ) + APXS_REF -133.00 3.9618974 (-133.00 ) + PADS_REF 0.00 0.0 ( 0.00 ) + DRT_REF +69.67 1.22612 ( +70.25150118 ) + CHIMRA_REF -60.00 (TBD) 5.20867 ( -61.56519212 ) + + They are defined as CK-based frames to allow storing their + orientation either relative to the TURRET frame (based on the angles + above) or relative to the ROVER frame (based on the orientation + quaternions provided in telemetry). + + The second frame for each instrument, named ``MSL_<INST>'', is the + reference frame that has the Z axis along the instrument's principal + direction (boresight, central axis, etc) and Y axis nominally + co-aligned with the Y axis of the ``_REF'' frame. + + These frames are defined as fixed-offset frames relative to the + corresponding ``_REF'' frames and are nominally rotated from them by + +90 degrees about Y. + + This diagram illustrates RA turret head and instrument frames (looking + in the direction of Ztr axis): + + Zapxs Yapxs ^ Zchimra + Xapxs_ref Yapxs_ref / Xchimra_ref + ^. ^ / + `. .' /*. + * `. .-------. / / `-> + `. `. | `./ Ychimra + `. `.---. `. Ychimra_ref + .------..' `. |==== + | / \----. + | | x------> |--*----> + | \ | Xtr ' | Zpads + `------ `. | . \ |=|== Xpads_ref + / `-|-' \----' v + Ymahli / / V \ \ Ypads + Ymahli_ref <-./ / Ytr \ \ Ypads_ref + `*./ \.*' + / <-' \ + / Ydrt \ + Zmahli V Ydrt_ref V Zdrt + Xmahli_ref Xdrt_ref + + + Ztr is into the page. + Z*ref are into the page. + X* are out of the page + + The RA instrument frames except for MAHLI are defined below. The + MAHLI frame definitions with additional comments are provided after + the block below. + + \begindata + + FRAME_MSL_APXS_REF = -76320 + FRAME_-76320_NAME = 'MSL_APXS_REF' + FRAME_-76320_CLASS = 3 + FRAME_-76320_CLASS_ID = -76320 + FRAME_-76320_CENTER = -76 + CK_-76320_SCLK = -76 + CK_-76320_SPK = -76 + + FRAME_MSL_APXS = -76321 + FRAME_-76321_NAME = 'MSL_APXS' + FRAME_-76321_CLASS = 4 + FRAME_-76321_CLASS_ID = -76321 + FRAME_-76321_CENTER = -76 + TKFRAME_-76321_SPEC = 'ANGLES' + TKFRAME_-76321_RELATIVE = 'MSL_APXS_REF' + TKFRAME_-76321_ANGLES = ( -90.0, 0.0, 0.0 ) + TKFRAME_-76321_AXES = ( 2, 1, 3 ) + TKFRAME_-76321_UNITS = 'DEGREES' + + FRAME_MSL_PADS_REF = -76330 + FRAME_-76330_NAME = 'MSL_PADS_REF' + FRAME_-76330_CLASS = 3 + FRAME_-76330_CLASS_ID = -76330 + FRAME_-76330_CENTER = -76 + CK_-76330_SCLK = -76 + CK_-76330_SPK = -76 + + FRAME_MSL_PADS = -76331 + FRAME_-76331_NAME = 'MSL_PADS' + FRAME_-76331_CLASS = 4 + FRAME_-76331_CLASS_ID = -76331 + FRAME_-76331_CENTER = -76 + TKFRAME_-76331_SPEC = 'ANGLES' + TKFRAME_-76331_RELATIVE = 'MSL_PADS_REF' + TKFRAME_-76331_ANGLES = ( -90.0, 0.0, 0.0 ) + TKFRAME_-76331_AXES = ( 2, 1, 3 ) + TKFRAME_-76331_UNITS = 'DEGREES' + + FRAME_MSL_DRT_REF = -76340 + FRAME_-76340_NAME = 'MSL_DRT_REF' + FRAME_-76340_CLASS = 3 + FRAME_-76340_CLASS_ID = -76340 + FRAME_-76340_CENTER = -76 + CK_-76340_SCLK = -76 + CK_-76340_SPK = -76 + + FRAME_MSL_DRT = -76341 + FRAME_-76341_NAME = 'MSL_DRT' + FRAME_-76341_CLASS = 4 + FRAME_-76341_CLASS_ID = -76341 + FRAME_-76341_CENTER = -76 + TKFRAME_-76341_SPEC = 'ANGLES' + TKFRAME_-76341_RELATIVE = 'MSL_DRT_REF' + TKFRAME_-76341_ANGLES = ( -90.0, 0.0, 0.0 ) + TKFRAME_-76341_AXES = ( 2, 1, 3 ) + TKFRAME_-76341_UNITS = 'DEGREES' + + FRAME_MSL_CHIMRA_REF = -76350 + FRAME_-76350_NAME = 'MSL_CHIMRA_REF' + FRAME_-76350_CLASS = 3 + FRAME_-76350_CLASS_ID = -76350 + FRAME_-76350_CENTER = -76 + CK_-76350_SCLK = -76 + CK_-76350_SPK = -76 + + FRAME_MSL_CHIMRA = -76351 + FRAME_-76351_NAME = 'MSL_CHIMRA' + FRAME_-76351_CLASS = 4 + FRAME_-76351_CLASS_ID = -76351 + FRAME_-76351_CENTER = -76 + TKFRAME_-76351_SPEC = 'ANGLES' + TKFRAME_-76351_RELATIVE = 'MSL_CHIMRA_REF' + TKFRAME_-76351_ANGLES = ( -90.0, 0.0, 0.0 ) + TKFRAME_-76351_AXES = ( 2, 1, 3 ) + TKFRAME_-76351_UNITS = 'DEGREES' + + \begintext + + This is the definition of the MAHLI_REF frame. + + \begindata + + FRAME_MSL_MAHLI_REF = -76310 + FRAME_-76310_NAME = 'MSL_MAHLI_REF' + FRAME_-76310_CLASS = 3 + FRAME_-76310_CLASS_ID = -76310 + FRAME_-76310_CENTER = -76 + CK_-76310_SCLK = -76 + CK_-76310_SPK = -76 + + \begintext + + The actual MSL_MAHLI frame orientation provided in the frame + definition below was computed using the CAHVOR(E) camera model file, + 'MSL_CAL_002_SN_3002_FOCUS_12594-MAHLI-FLIGHT.cahvor'. According to + this model the reference frame, MSL_MAHLI_REF, can be transformed + into the camera frame, MSL_MAHLI, by the following sequence of + rotations: first by 90.53516876 degrees about Y, then by 0.47298218 + degrees about X, and finally by 0.50359886 degrees about Z. + + The frame definition below contains the opposite of this + transformation because Euler angles specified in it define rotations + from the "destination" frame to the "reference" frame. + + \begindata + + FRAME_MSL_MAHLI = -76311 + FRAME_-76311_NAME = 'MSL_MAHLI' + FRAME_-76311_CLASS = 4 + FRAME_-76311_CLASS_ID = -76311 + FRAME_-76311_CENTER = -76 + TKFRAME_-76311_RELATIVE = 'MSL_MAHLI_REF' + TKFRAME_-76311_SPEC = 'ANGLES' + TKFRAME_-76311_UNITS = 'DEGREES' + TKFRAME_-76311_AXES = ( 2, 1, 3 ) + TKFRAME_-76311_ANGLES = ( -90.535, -0.473, -0.504 ) + + \begintext + + +MSL NAIF ID Codes -- Definition Section +======================================================================== + + This section contains name to NAIF ID mappings for the MSL. + + \begindata + + NAIF_BODY_NAME += ( 'MSL_LANDING_SITE' ) + NAIF_BODY_CODE += ( -76900 ) + + NAIF_BODY_NAME += ( 'MSL' ) + NAIF_BODY_CODE += ( -76 ) + + NAIF_BODY_NAME += ( 'MSL_ROVER' ) + NAIF_BODY_CODE += ( -76000 ) + + NAIF_BODY_NAME += ( 'MSL_SPACECRAFT' ) + NAIF_BODY_CODE += ( -76010 ) + + NAIF_BODY_NAME += ( 'MSL_CRUISE_STAGE' ) + NAIF_BODY_CODE += ( -76020 ) + + NAIF_BODY_NAME += ( 'MSL_DESCENT_STAGE' ) + NAIF_BODY_CODE += ( -76030 ) + + NAIF_BODY_NAME += ( 'MSL_ROVER_MECH' ) + NAIF_BODY_CODE += ( -76040 ) + + NAIF_BODY_NAME += ( 'MSL_CACS' ) + NAIF_BODY_CODE += ( -76050 ) + + NAIF_BODY_NAME += ( 'MSL_DIMU_A' ) + NAIF_BODY_CODE += ( -76031 ) + + NAIF_BODY_NAME += ( 'MSL_PLGA' ) + NAIF_BODY_CODE += ( -76060 ) + + NAIF_BODY_NAME += ( 'MSL_TLGA' ) + NAIF_BODY_CODE += ( -76061 ) + + NAIF_BODY_NAME += ( 'MSL_PUHF' ) + NAIF_BODY_CODE += ( -76062 ) + + NAIF_BODY_NAME += ( 'MSL_MGA' ) + NAIF_BODY_CODE += ( -76063 ) + + NAIF_BODY_NAME += ( 'MSL_DLGA' ) + NAIF_BODY_CODE += ( -76064 ) + + NAIF_BODY_NAME += ( 'MSL_DUHF' ) + NAIF_BODY_CODE += ( -76065 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MISP_T1' ) + NAIF_BODY_CODE += ( -76071 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MISP_T2' ) + NAIF_BODY_CODE += ( -76072 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MISP_T3' ) + NAIF_BODY_CODE += ( -76073 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MISP_T4' ) + NAIF_BODY_CODE += ( -76074 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MISP_T5' ) + NAIF_BODY_CODE += ( -76075 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MISP_T6' ) + NAIF_BODY_CODE += ( -76076 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MISP_T7' ) + NAIF_BODY_CODE += ( -76077 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MEADS_P1' ) + NAIF_BODY_CODE += ( -76081 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MEADS_P2' ) + NAIF_BODY_CODE += ( -76082 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MEADS_P3' ) + NAIF_BODY_CODE += ( -76083 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MEADS_P4' ) + NAIF_BODY_CODE += ( -76084 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MEADS_P5' ) + NAIF_BODY_CODE += ( -76085 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MEADS_P6' ) + NAIF_BODY_CODE += ( -76086 ) + + NAIF_BODY_NAME += ( 'MSL_MEDLI_MEADS_P7' ) + NAIF_BODY_CODE += ( -76087 ) + + NAIF_BODY_NAME += ( 'MSL_RLGA' ) + NAIF_BODY_CODE += ( -76110 ) + + NAIF_BODY_NAME += ( 'MSL_RUHF' ) + NAIF_BODY_CODE += ( -76111 ) + + NAIF_BODY_NAME += ( 'MSL_HGA_ZERO_AZ' ) + NAIF_BODY_CODE += ( -76121 ) + + NAIF_BODY_NAME += ( 'MSL_HGA_AZ' ) + NAIF_BODY_CODE += ( -76122 ) + + NAIF_BODY_NAME += ( 'MSL_HGA_ZERO_EL' ) + NAIF_BODY_CODE += ( -76123 ) + + NAIF_BODY_NAME += ( 'MSL_HGA_EL' ) + NAIF_BODY_CODE += ( -76124 ) + + NAIF_BODY_NAME += ( 'MSL_HGA' ) + NAIF_BODY_CODE += ( -76125 ) + + NAIF_BODY_NAME += ( 'MSL_HGA_EB' ) + NAIF_BODY_CODE += ( -76126 ) + + NAIF_BODY_NAME += ( 'MSL_HAZCAM_FRONT_LEFT_A' ) + NAIF_BODY_CODE += ( -76131 ) + + NAIF_BODY_NAME += ( 'MSL_HAZCAM_FRONT_RIGHT_A' ) + NAIF_BODY_CODE += ( -76132 ) + + NAIF_BODY_NAME += ( 'MSL_HAZCAM_FRONT_LEFT_B' ) + NAIF_BODY_CODE += ( -76133 ) + + NAIF_BODY_NAME += ( 'MSL_HAZCAM_FRONT_RIGHT_B' ) + NAIF_BODY_CODE += ( -76134 ) + + NAIF_BODY_NAME += ( 'MSL_HAZCAM_BACK_LEFT_A' ) + NAIF_BODY_CODE += ( -76141 ) + + NAIF_BODY_NAME += ( 'MSL_HAZCAM_BACK_RIGHT_A' ) + NAIF_BODY_CODE += ( -76142 ) + + NAIF_BODY_NAME += ( 'MSL_HAZCAM_BACK_LEFT_B' ) + NAIF_BODY_CODE += ( -76143 ) + + NAIF_BODY_NAME += ( 'MSL_HAZCAM_BACK_RIGHT_B' ) + NAIF_BODY_CODE += ( -76144 ) + + NAIF_BODY_NAME += ( 'MSL_RAD' ) + NAIF_BODY_CODE += ( -76150 ) + + NAIF_BODY_NAME += ( 'MSL_MARDI' ) + NAIF_BODY_CODE += ( -76160 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_UVS' ) + NAIF_BODY_CODE += ( -76170 ) + + NAIF_BODY_NAME += ( 'MSL_DAN' ) + NAIF_BODY_CODE += ( -76180 ) + + NAIF_BODY_NAME += ( 'MSL_DAN_PNG' ) + NAIF_BODY_CODE += ( -76191 ) + + NAIF_BODY_NAME += ( 'MSL_DAN_DE' ) + NAIF_BODY_CODE += ( -76192 ) + + NAIF_BODY_NAME += ( 'MSL_DAN_DE_CTN' ) + NAIF_BODY_CODE += ( -76193 ) + + NAIF_BODY_NAME += ( 'MSL_DAN_DE_CETN' ) + NAIF_BODY_CODE += ( -76194 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_PS' ) + NAIF_BODY_CODE += ( -76181 ) + + NAIF_BODY_NAME += ( 'MSL_SAM' ) + NAIF_BODY_CODE += ( -76182 ) + + NAIF_BODY_NAME += ( 'MSL_SAM_1_INLET' ) + NAIF_BODY_CODE += ( -76184 ) + + NAIF_BODY_NAME += ( 'MSL_SAM_2_INLET' ) + NAIF_BODY_CODE += ( -76185 ) + + NAIF_BODY_NAME += ( 'MSL_CHEMIN' ) + NAIF_BODY_CODE += ( -76183 ) + + NAIF_BODY_NAME += ( 'MSL_CHEMIN_INLET' ) + NAIF_BODY_CODE += ( -76186 ) + + NAIF_BODY_NAME += ( 'MSL_RSM_ZERO_AZ' ) + NAIF_BODY_CODE += ( -76201 ) + + NAIF_BODY_NAME += ( 'MSL_RSM_AZ' ) + NAIF_BODY_CODE += ( -76202 ) + + NAIF_BODY_NAME += ( 'MSL_RSM_ZERO_EL' ) + NAIF_BODY_CODE += ( -76203 ) + + NAIF_BODY_NAME += ( 'MSL_RSM_EL' ) + NAIF_BODY_CODE += ( -76204 ) + + NAIF_BODY_NAME += ( 'MSL_RSM_HEAD' ) + NAIF_BODY_CODE += ( -76205 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_LEFT' ) + NAIF_BODY_CODE += ( -76210 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_LEFT_F1' ) + NAIF_BODY_CODE += ( -76211 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_LEFT_F2' ) + NAIF_BODY_CODE += ( -76212 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_LEFT_F3' ) + NAIF_BODY_CODE += ( -76213 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_LEFT_F4' ) + NAIF_BODY_CODE += ( -76214 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_LEFT_F5' ) + NAIF_BODY_CODE += ( -76215 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_LEFT_F6' ) + NAIF_BODY_CODE += ( -76216 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_LEFT_F7' ) + NAIF_BODY_CODE += ( -76217 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_LEFT_F8' ) + NAIF_BODY_CODE += ( -76218 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_RIGHT' ) + NAIF_BODY_CODE += ( -76220 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_RIGHT_F1' ) + NAIF_BODY_CODE += ( -76221 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_RIGHT_F2' ) + NAIF_BODY_CODE += ( -76222 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_RIGHT_F3' ) + NAIF_BODY_CODE += ( -76223 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_RIGHT_F4' ) + NAIF_BODY_CODE += ( -76224 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_RIGHT_F5' ) + NAIF_BODY_CODE += ( -76225 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_RIGHT_F6' ) + NAIF_BODY_CODE += ( -76226 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_RIGHT_F7' ) + NAIF_BODY_CODE += ( -76227 ) + + NAIF_BODY_NAME += ( 'MSL_MASTCAM_RIGHT_F8' ) + NAIF_BODY_CODE += ( -76228 ) + + NAIF_BODY_NAME += ( 'MSL_NAVCAM_LEFT_A' ) + NAIF_BODY_CODE += ( -76231 ) + + NAIF_BODY_NAME += ( 'MSL_NAVCAM_RIGHT_A' ) + NAIF_BODY_CODE += ( -76232 ) + + NAIF_BODY_NAME += ( 'MSL_NAVCAM_LEFT_B' ) + NAIF_BODY_CODE += ( -76233 ) + + NAIF_BODY_NAME += ( 'MSL_NAVCAM_RIGHT_B' ) + NAIF_BODY_CODE += ( -76234 ) + + NAIF_BODY_NAME += ( 'MSL_CHEMCAM' ) + NAIF_BODY_CODE += ( -76240 ) + + NAIF_BODY_NAME += ( 'MSL_CHEMCAM_LIBS_LASER' ) + NAIF_BODY_CODE += ( -76241 ) + + NAIF_BODY_NAME += ( 'MSL_CHEMCAM_LIBS_CAM' ) + NAIF_BODY_CODE += ( -76242 ) + + NAIF_BODY_NAME += ( 'MSL_CHEMCAM_RMI' ) + NAIF_BODY_CODE += ( -76243 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM1' ) + NAIF_BODY_CODE += ( -76250 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM1_WS1' ) + NAIF_BODY_CODE += ( -76251 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM1_WS2' ) + NAIF_BODY_CODE += ( -76252 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM1_WS3' ) + NAIF_BODY_CODE += ( -76253 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM1_ATS' ) + NAIF_BODY_CODE += ( -76254 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM1_GTS' ) + NAIF_BODY_CODE += ( -76255 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM1_TIP' ) + NAIF_BODY_CODE += ( -76256 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM2' ) + NAIF_BODY_CODE += ( -76260 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM2_WS1' ) + NAIF_BODY_CODE += ( -76261 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM2_WS2' ) + NAIF_BODY_CODE += ( -76262 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM2_WS3' ) + NAIF_BODY_CODE += ( -76263 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM2_ATS' ) + NAIF_BODY_CODE += ( -76264 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM2_HS' ) + NAIF_BODY_CODE += ( -76265 ) + + NAIF_BODY_NAME += ( 'MSL_REMS_BOOM2_TIP' ) + NAIF_BODY_CODE += ( -76266 ) + + NAIF_BODY_NAME += ( 'MSL_RA_BASE' ) + NAIF_BODY_CODE += ( -76300 ) + + NAIF_BODY_NAME += ( 'MSL_RA_SHOULDER_AZ' ) + NAIF_BODY_CODE += ( -76301 ) + + NAIF_BODY_NAME += ( 'MSL_RA_SHOULDER_EL' ) + NAIF_BODY_CODE += ( -76302 ) + + NAIF_BODY_NAME += ( 'MSL_RA_ELBOW' ) + NAIF_BODY_CODE += ( -76303 ) + + NAIF_BODY_NAME += ( 'MSL_RA_WRIST' ) + NAIF_BODY_CODE += ( -76304 ) + + NAIF_BODY_NAME += ( 'MSL_RA_TURRET' ) + NAIF_BODY_CODE += ( -76305 ) + + NAIF_BODY_NAME += ( 'MSL_RA_TURRET_HEAD' ) + NAIF_BODY_CODE += ( -76306 ) + + NAIF_BODY_NAME += ( 'MSL_MAHLI_REF' ) + NAIF_BODY_CODE += ( -76310 ) + + NAIF_BODY_NAME += ( 'MSL_MAHLI' ) + NAIF_BODY_CODE += ( -76311 ) + + NAIF_BODY_NAME += ( 'MSL_APXS_REF' ) + NAIF_BODY_CODE += ( -76320 ) + + NAIF_BODY_NAME += ( 'MSL_APXS' ) + NAIF_BODY_CODE += ( -76321 ) + + NAIF_BODY_NAME += ( 'MSL_PADS_REF' ) + NAIF_BODY_CODE += ( -76330 ) + + NAIF_BODY_NAME += ( 'MSL_PADS' ) + NAIF_BODY_CODE += ( -76331 ) + + NAIF_BODY_NAME += ( 'MSL_DRT_REF' ) + NAIF_BODY_CODE += ( -76340 ) + + NAIF_BODY_NAME += ( 'MSL_DRT' ) + NAIF_BODY_CODE += ( -76341 ) + + NAIF_BODY_NAME += ( 'MSL_CHIMRA_REF' ) + NAIF_BODY_CODE += ( -76350 ) + + NAIF_BODY_NAME += ( 'MSL_CHIMRA' ) + NAIF_BODY_CODE += ( -76351 ) + + NAIF_BODY_NAME += ( 'MSL_FD_RESTRAINT_PORT' ) + NAIF_BODY_CODE += ( -76401 ) + + NAIF_BODY_NAME += ( 'MSL_FD_RESTRAINT_SBRD' ) + NAIF_BODY_CODE += ( -76402 ) + + NAIF_BODY_NAME += ( 'MSL_FD_DECK_SIDE_PORT' ) + NAIF_BODY_CODE += ( -76403 ) + + NAIF_BODY_NAME += ( 'MSL_FD_DECK_FRONT_PORT' ) + NAIF_BODY_CODE += ( -76404 ) + + NAIF_BODY_NAME += ( 'MSL_FD_DECK_CENTER_PORT' ) + NAIF_BODY_CODE += ( -76405 ) + + NAIF_BODY_NAME += ( 'MSL_FD_DECK_CENTER_SBRD' ) + NAIF_BODY_CODE += ( -76406 ) + + NAIF_BODY_NAME += ( 'MSL_FD_DECK_FRONT_SBRD' ) + NAIF_BODY_CODE += ( -76407 ) + + NAIF_BODY_NAME += ( 'MSL_FD_OCM_PORT' ) + NAIF_BODY_CODE += ( -76408 ) + + NAIF_BODY_NAME += ( 'MSL_FD_OCM_CENTER' ) + NAIF_BODY_CODE += ( -76409 ) + + NAIF_BODY_NAME += ( 'MSL_FD_OCM_STARBOARD' ) + NAIF_BODY_CODE += ( -76410 ) + + NAIF_BODY_NAME += ( 'MSL_SCI_OBS_TRAY' ) + NAIF_BODY_CODE += ( -76411 ) + + NAIF_BODY_NAME += ( 'MSL_ENG_OBS_TRAY' ) + NAIF_BODY_CODE += ( -76412 ) + + NAIF_BODY_NAME += ( 'MSL_BIT_BOX_1_TARGET' ) + NAIF_BODY_CODE += ( -76413 ) + + NAIF_BODY_NAME += ( 'MSL_BIT_BOX_2_TARGET' ) + NAIF_BODY_CODE += ( -76414 ) + + NAIF_BODY_NAME += ( 'MSL_OCM_LOCATION_1' ) + NAIF_BODY_CODE += ( -76415 ) + + NAIF_BODY_NAME += ( 'MSL_OCM_LOCATION_2' ) + NAIF_BODY_CODE += ( -76416 ) + + NAIF_BODY_NAME += ( 'MSL_OCM_LOCATION_3' ) + NAIF_BODY_CODE += ( -76417 ) + + NAIF_BODY_NAME += ( 'MSL_OCM_LOCATION_4' ) + NAIF_BODY_CODE += ( -76418 ) + + NAIF_BODY_NAME += ( 'MSL_OCM_LOCATION_5' ) + NAIF_BODY_CODE += ( -76419 ) + + NAIF_BODY_NAME += ( 'MSL_OCM_LOCATION_6' ) + NAIF_BODY_CODE += ( -76420 ) + + NAIF_BODY_NAME += ( 'MSL_APXS_CALTARGET' ) + NAIF_BODY_CODE += ( -76421 ) + + NAIF_BODY_NAME += ( 'MSL_MAHLI_CALTARGET' ) + NAIF_BODY_CODE += ( -76422 ) + + NAIF_BODY_NAME += ( 'MSL_CCAM_CAL1' ) + NAIF_BODY_CODE += ( -76423 ) + + NAIF_BODY_NAME += ( 'MSL_CCAM_CAL2' ) + NAIF_BODY_CODE += ( -76424 ) + + NAIF_BODY_NAME += ( 'MSL_CCAM_CAL3' ) + NAIF_BODY_CODE += ( -76425 ) + + NAIF_BODY_NAME += ( 'MSL_CCAM_CAL4' ) + NAIF_BODY_CODE += ( -76426 ) + + NAIF_BODY_NAME += ( 'MSL_CCAM_CAL5' ) + NAIF_BODY_CODE += ( -76427 ) + + NAIF_BODY_NAME += ( 'MSL_CCAM_CAL6' ) + NAIF_BODY_CODE += ( -76428 ) + + NAIF_BODY_NAME += ( 'MSL_CCAM_CAL7' ) + NAIF_BODY_CODE += ( -76429 ) + + NAIF_BODY_NAME += ( 'MSL_CCAM_CAL8' ) + NAIF_BODY_CODE += ( -76430 ) + + NAIF_BODY_NAME += ( 'MSL_CCAM_CAL9' ) + NAIF_BODY_CODE += ( -76431 ) + + NAIF_BODY_NAME += ( 'MSL_CCAM_CAL10' ) + NAIF_BODY_CODE += ( -76432 ) + + NAIF_BODY_NAME += ( 'MSL_MCAM_CAL' ) + NAIF_BODY_CODE += ( -76433 ) + + \begintext + + MSL site name to NAIF ID mappings. + + \begindata + + NAIF_BODY_NAME += ( 'MSL_SITE_1' ) + NAIF_BODY_CODE += ( -76501 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_2' ) + NAIF_BODY_CODE += ( -76502 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_3' ) + NAIF_BODY_CODE += ( -76503 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_4' ) + NAIF_BODY_CODE += ( -76504 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_5' ) + NAIF_BODY_CODE += ( -76505 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_6' ) + NAIF_BODY_CODE += ( -76506 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_7' ) + NAIF_BODY_CODE += ( -76507 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_8' ) + NAIF_BODY_CODE += ( -76508 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_9' ) + NAIF_BODY_CODE += ( -76509 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_10' ) + NAIF_BODY_CODE += ( -76510 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_11' ) + NAIF_BODY_CODE += ( -76511 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_12' ) + NAIF_BODY_CODE += ( -76512 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_13' ) + NAIF_BODY_CODE += ( -76513 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_14' ) + NAIF_BODY_CODE += ( -76514 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_15' ) + NAIF_BODY_CODE += ( -76515 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_16' ) + NAIF_BODY_CODE += ( -76516 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_17' ) + NAIF_BODY_CODE += ( -76517 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_18' ) + NAIF_BODY_CODE += ( -76518 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_19' ) + NAIF_BODY_CODE += ( -76519 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_20' ) + NAIF_BODY_CODE += ( -76520 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_21' ) + NAIF_BODY_CODE += ( -76521 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_22' ) + NAIF_BODY_CODE += ( -76522 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_23' ) + NAIF_BODY_CODE += ( -76523 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_24' ) + NAIF_BODY_CODE += ( -76524 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_25' ) + NAIF_BODY_CODE += ( -76525 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_26' ) + NAIF_BODY_CODE += ( -76526 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_27' ) + NAIF_BODY_CODE += ( -76527 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_28' ) + NAIF_BODY_CODE += ( -76528 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_29' ) + NAIF_BODY_CODE += ( -76529 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_30' ) + NAIF_BODY_CODE += ( -76530 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_31' ) + NAIF_BODY_CODE += ( -76531 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_32' ) + NAIF_BODY_CODE += ( -76532 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_33' ) + NAIF_BODY_CODE += ( -76533 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_34' ) + NAIF_BODY_CODE += ( -76534 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_35' ) + NAIF_BODY_CODE += ( -76535 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_36' ) + NAIF_BODY_CODE += ( -76536 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_37' ) + NAIF_BODY_CODE += ( -76537 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_38' ) + NAIF_BODY_CODE += ( -76538 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_39' ) + NAIF_BODY_CODE += ( -76539 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_40' ) + NAIF_BODY_CODE += ( -76540 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_41' ) + NAIF_BODY_CODE += ( -76541 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_42' ) + NAIF_BODY_CODE += ( -76542 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_43' ) + NAIF_BODY_CODE += ( -76543 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_44' ) + NAIF_BODY_CODE += ( -76544 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_45' ) + NAIF_BODY_CODE += ( -76545 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_46' ) + NAIF_BODY_CODE += ( -76546 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_47' ) + NAIF_BODY_CODE += ( -76547 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_48' ) + NAIF_BODY_CODE += ( -76548 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_49' ) + NAIF_BODY_CODE += ( -76549 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_50' ) + NAIF_BODY_CODE += ( -76550 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_51' ) + NAIF_BODY_CODE += ( -76551 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_52' ) + NAIF_BODY_CODE += ( -76552 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_53' ) + NAIF_BODY_CODE += ( -76553 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_54' ) + NAIF_BODY_CODE += ( -76554 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_55' ) + NAIF_BODY_CODE += ( -76555 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_56' ) + NAIF_BODY_CODE += ( -76556 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_57' ) + NAIF_BODY_CODE += ( -76557 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_58' ) + NAIF_BODY_CODE += ( -76558 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_59' ) + NAIF_BODY_CODE += ( -76559 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_60' ) + NAIF_BODY_CODE += ( -76560 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_61' ) + NAIF_BODY_CODE += ( -76561 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_62' ) + NAIF_BODY_CODE += ( -76562 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_63' ) + NAIF_BODY_CODE += ( -76563 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_64' ) + NAIF_BODY_CODE += ( -76564 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_65' ) + NAIF_BODY_CODE += ( -76565 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_66' ) + NAIF_BODY_CODE += ( -76566 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_67' ) + NAIF_BODY_CODE += ( -76567 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_68' ) + NAIF_BODY_CODE += ( -76568 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_69' ) + NAIF_BODY_CODE += ( -76569 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_70' ) + NAIF_BODY_CODE += ( -76570 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_71' ) + NAIF_BODY_CODE += ( -76571 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_72' ) + NAIF_BODY_CODE += ( -76572 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_73' ) + NAIF_BODY_CODE += ( -76573 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_74' ) + NAIF_BODY_CODE += ( -76574 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_75' ) + NAIF_BODY_CODE += ( -76575 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_76' ) + NAIF_BODY_CODE += ( -76576 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_77' ) + NAIF_BODY_CODE += ( -76577 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_78' ) + NAIF_BODY_CODE += ( -76578 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_79' ) + NAIF_BODY_CODE += ( -76579 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_80' ) + NAIF_BODY_CODE += ( -76580 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_81' ) + NAIF_BODY_CODE += ( -76581 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_82' ) + NAIF_BODY_CODE += ( -76582 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_83' ) + NAIF_BODY_CODE += ( -76583 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_84' ) + NAIF_BODY_CODE += ( -76584 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_85' ) + NAIF_BODY_CODE += ( -76585 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_86' ) + NAIF_BODY_CODE += ( -76586 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_87' ) + NAIF_BODY_CODE += ( -76587 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_88' ) + NAIF_BODY_CODE += ( -76588 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_89' ) + NAIF_BODY_CODE += ( -76589 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_90' ) + NAIF_BODY_CODE += ( -76590 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_91' ) + NAIF_BODY_CODE += ( -76591 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_92' ) + NAIF_BODY_CODE += ( -76592 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_93' ) + NAIF_BODY_CODE += ( -76593 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_94' ) + NAIF_BODY_CODE += ( -76594 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_95' ) + NAIF_BODY_CODE += ( -76595 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_96' ) + NAIF_BODY_CODE += ( -76596 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_97' ) + NAIF_BODY_CODE += ( -76597 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_98' ) + NAIF_BODY_CODE += ( -76598 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_99' ) + NAIF_BODY_CODE += ( -76599 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_100' ) + NAIF_BODY_CODE += ( -76600 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_101' ) + NAIF_BODY_CODE += ( -76601 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_102' ) + NAIF_BODY_CODE += ( -76602 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_103' ) + NAIF_BODY_CODE += ( -76603 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_104' ) + NAIF_BODY_CODE += ( -76604 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_105' ) + NAIF_BODY_CODE += ( -76605 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_106' ) + NAIF_BODY_CODE += ( -76606 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_107' ) + NAIF_BODY_CODE += ( -76607 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_108' ) + NAIF_BODY_CODE += ( -76608 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_109' ) + NAIF_BODY_CODE += ( -76609 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_110' ) + NAIF_BODY_CODE += ( -76610 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_111' ) + NAIF_BODY_CODE += ( -76611 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_112' ) + NAIF_BODY_CODE += ( -76612 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_113' ) + NAIF_BODY_CODE += ( -76613 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_114' ) + NAIF_BODY_CODE += ( -76614 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_115' ) + NAIF_BODY_CODE += ( -76615 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_116' ) + NAIF_BODY_CODE += ( -76616 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_117' ) + NAIF_BODY_CODE += ( -76617 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_118' ) + NAIF_BODY_CODE += ( -76618 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_119' ) + NAIF_BODY_CODE += ( -76619 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_120' ) + NAIF_BODY_CODE += ( -76620 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_121' ) + NAIF_BODY_CODE += ( -76621 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_122' ) + NAIF_BODY_CODE += ( -76622 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_123' ) + NAIF_BODY_CODE += ( -76623 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_124' ) + NAIF_BODY_CODE += ( -76624 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_125' ) + NAIF_BODY_CODE += ( -76625 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_126' ) + NAIF_BODY_CODE += ( -76626 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_127' ) + NAIF_BODY_CODE += ( -76627 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_128' ) + NAIF_BODY_CODE += ( -76628 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_129' ) + NAIF_BODY_CODE += ( -76629 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_130' ) + NAIF_BODY_CODE += ( -76630 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_131' ) + NAIF_BODY_CODE += ( -76631 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_132' ) + NAIF_BODY_CODE += ( -76632 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_133' ) + NAIF_BODY_CODE += ( -76633 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_134' ) + NAIF_BODY_CODE += ( -76634 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_135' ) + NAIF_BODY_CODE += ( -76635 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_136' ) + NAIF_BODY_CODE += ( -76636 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_137' ) + NAIF_BODY_CODE += ( -76637 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_138' ) + NAIF_BODY_CODE += ( -76638 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_139' ) + NAIF_BODY_CODE += ( -76639 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_140' ) + NAIF_BODY_CODE += ( -76640 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_141' ) + NAIF_BODY_CODE += ( -76641 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_142' ) + NAIF_BODY_CODE += ( -76642 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_143' ) + NAIF_BODY_CODE += ( -76643 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_144' ) + NAIF_BODY_CODE += ( -76644 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_145' ) + NAIF_BODY_CODE += ( -76645 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_146' ) + NAIF_BODY_CODE += ( -76646 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_147' ) + NAIF_BODY_CODE += ( -76647 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_148' ) + NAIF_BODY_CODE += ( -76648 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_149' ) + NAIF_BODY_CODE += ( -76649 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_150' ) + NAIF_BODY_CODE += ( -76650 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_151' ) + NAIF_BODY_CODE += ( -76651 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_152' ) + NAIF_BODY_CODE += ( -76652 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_153' ) + NAIF_BODY_CODE += ( -76653 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_154' ) + NAIF_BODY_CODE += ( -76654 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_155' ) + NAIF_BODY_CODE += ( -76655 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_156' ) + NAIF_BODY_CODE += ( -76656 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_157' ) + NAIF_BODY_CODE += ( -76657 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_158' ) + NAIF_BODY_CODE += ( -76658 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_159' ) + NAIF_BODY_CODE += ( -76659 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_160' ) + NAIF_BODY_CODE += ( -76660 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_161' ) + NAIF_BODY_CODE += ( -76661 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_162' ) + NAIF_BODY_CODE += ( -76662 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_163' ) + NAIF_BODY_CODE += ( -76663 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_164' ) + NAIF_BODY_CODE += ( -76664 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_165' ) + NAIF_BODY_CODE += ( -76665 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_166' ) + NAIF_BODY_CODE += ( -76666 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_167' ) + NAIF_BODY_CODE += ( -76667 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_168' ) + NAIF_BODY_CODE += ( -76668 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_169' ) + NAIF_BODY_CODE += ( -76669 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_170' ) + NAIF_BODY_CODE += ( -76670 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_171' ) + NAIF_BODY_CODE += ( -76671 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_172' ) + NAIF_BODY_CODE += ( -76672 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_173' ) + NAIF_BODY_CODE += ( -76673 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_174' ) + NAIF_BODY_CODE += ( -76674 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_175' ) + NAIF_BODY_CODE += ( -76675 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_176' ) + NAIF_BODY_CODE += ( -76676 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_177' ) + NAIF_BODY_CODE += ( -76677 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_178' ) + NAIF_BODY_CODE += ( -76678 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_179' ) + NAIF_BODY_CODE += ( -76679 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_180' ) + NAIF_BODY_CODE += ( -76680 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_181' ) + NAIF_BODY_CODE += ( -76681 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_182' ) + NAIF_BODY_CODE += ( -76682 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_183' ) + NAIF_BODY_CODE += ( -76683 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_184' ) + NAIF_BODY_CODE += ( -76684 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_185' ) + NAIF_BODY_CODE += ( -76685 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_186' ) + NAIF_BODY_CODE += ( -76686 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_187' ) + NAIF_BODY_CODE += ( -76687 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_188' ) + NAIF_BODY_CODE += ( -76688 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_189' ) + NAIF_BODY_CODE += ( -76689 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_190' ) + NAIF_BODY_CODE += ( -76690 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_191' ) + NAIF_BODY_CODE += ( -76691 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_192' ) + NAIF_BODY_CODE += ( -76692 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_193' ) + NAIF_BODY_CODE += ( -76693 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_194' ) + NAIF_BODY_CODE += ( -76694 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_195' ) + NAIF_BODY_CODE += ( -76695 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_196' ) + NAIF_BODY_CODE += ( -76696 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_197' ) + NAIF_BODY_CODE += ( -76697 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_198' ) + NAIF_BODY_CODE += ( -76698 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_199' ) + NAIF_BODY_CODE += ( -76699 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_200' ) + NAIF_BODY_CODE += ( -76700 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_201' ) + NAIF_BODY_CODE += ( -76701 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_202' ) + NAIF_BODY_CODE += ( -76702 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_203' ) + NAIF_BODY_CODE += ( -76703 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_204' ) + NAIF_BODY_CODE += ( -76704 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_205' ) + NAIF_BODY_CODE += ( -76705 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_206' ) + NAIF_BODY_CODE += ( -76706 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_207' ) + NAIF_BODY_CODE += ( -76707 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_208' ) + NAIF_BODY_CODE += ( -76708 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_209' ) + NAIF_BODY_CODE += ( -76709 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_210' ) + NAIF_BODY_CODE += ( -76710 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_211' ) + NAIF_BODY_CODE += ( -76711 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_212' ) + NAIF_BODY_CODE += ( -76712 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_213' ) + NAIF_BODY_CODE += ( -76713 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_214' ) + NAIF_BODY_CODE += ( -76714 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_215' ) + NAIF_BODY_CODE += ( -76715 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_216' ) + NAIF_BODY_CODE += ( -76716 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_217' ) + NAIF_BODY_CODE += ( -76717 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_218' ) + NAIF_BODY_CODE += ( -76718 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_219' ) + NAIF_BODY_CODE += ( -76719 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_220' ) + NAIF_BODY_CODE += ( -76720 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_221' ) + NAIF_BODY_CODE += ( -76721 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_222' ) + NAIF_BODY_CODE += ( -76722 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_223' ) + NAIF_BODY_CODE += ( -76723 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_224' ) + NAIF_BODY_CODE += ( -76724 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_225' ) + NAIF_BODY_CODE += ( -76725 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_226' ) + NAIF_BODY_CODE += ( -76726 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_227' ) + NAIF_BODY_CODE += ( -76727 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_228' ) + NAIF_BODY_CODE += ( -76728 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_229' ) + NAIF_BODY_CODE += ( -76729 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_230' ) + NAIF_BODY_CODE += ( -76730 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_231' ) + NAIF_BODY_CODE += ( -76731 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_232' ) + NAIF_BODY_CODE += ( -76732 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_233' ) + NAIF_BODY_CODE += ( -76733 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_234' ) + NAIF_BODY_CODE += ( -76734 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_235' ) + NAIF_BODY_CODE += ( -76735 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_236' ) + NAIF_BODY_CODE += ( -76736 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_237' ) + NAIF_BODY_CODE += ( -76737 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_238' ) + NAIF_BODY_CODE += ( -76738 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_239' ) + NAIF_BODY_CODE += ( -76739 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_240' ) + NAIF_BODY_CODE += ( -76740 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_241' ) + NAIF_BODY_CODE += ( -76741 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_242' ) + NAIF_BODY_CODE += ( -76742 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_243' ) + NAIF_BODY_CODE += ( -76743 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_244' ) + NAIF_BODY_CODE += ( -76744 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_245' ) + NAIF_BODY_CODE += ( -76745 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_246' ) + NAIF_BODY_CODE += ( -76746 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_247' ) + NAIF_BODY_CODE += ( -76747 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_248' ) + NAIF_BODY_CODE += ( -76748 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_249' ) + NAIF_BODY_CODE += ( -76749 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_250' ) + NAIF_BODY_CODE += ( -76750 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_251' ) + NAIF_BODY_CODE += ( -76751 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_252' ) + NAIF_BODY_CODE += ( -76752 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_253' ) + NAIF_BODY_CODE += ( -76753 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_254' ) + NAIF_BODY_CODE += ( -76754 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_255' ) + NAIF_BODY_CODE += ( -76755 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_256' ) + NAIF_BODY_CODE += ( -76756 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_257' ) + NAIF_BODY_CODE += ( -76757 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_258' ) + NAIF_BODY_CODE += ( -76758 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_259' ) + NAIF_BODY_CODE += ( -76759 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_260' ) + NAIF_BODY_CODE += ( -76760 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_261' ) + NAIF_BODY_CODE += ( -76761 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_262' ) + NAIF_BODY_CODE += ( -76762 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_263' ) + NAIF_BODY_CODE += ( -76763 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_264' ) + NAIF_BODY_CODE += ( -76764 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_265' ) + NAIF_BODY_CODE += ( -76765 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_266' ) + NAIF_BODY_CODE += ( -76766 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_267' ) + NAIF_BODY_CODE += ( -76767 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_268' ) + NAIF_BODY_CODE += ( -76768 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_269' ) + NAIF_BODY_CODE += ( -76769 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_270' ) + NAIF_BODY_CODE += ( -76770 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_271' ) + NAIF_BODY_CODE += ( -76771 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_272' ) + NAIF_BODY_CODE += ( -76772 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_273' ) + NAIF_BODY_CODE += ( -76773 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_274' ) + NAIF_BODY_CODE += ( -76774 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_275' ) + NAIF_BODY_CODE += ( -76775 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_276' ) + NAIF_BODY_CODE += ( -76776 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_277' ) + NAIF_BODY_CODE += ( -76777 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_278' ) + NAIF_BODY_CODE += ( -76778 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_279' ) + NAIF_BODY_CODE += ( -76779 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_280' ) + NAIF_BODY_CODE += ( -76780 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_281' ) + NAIF_BODY_CODE += ( -76781 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_282' ) + NAIF_BODY_CODE += ( -76782 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_283' ) + NAIF_BODY_CODE += ( -76783 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_284' ) + NAIF_BODY_CODE += ( -76784 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_285' ) + NAIF_BODY_CODE += ( -76785 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_286' ) + NAIF_BODY_CODE += ( -76786 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_287' ) + NAIF_BODY_CODE += ( -76787 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_288' ) + NAIF_BODY_CODE += ( -76788 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_289' ) + NAIF_BODY_CODE += ( -76789 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_290' ) + NAIF_BODY_CODE += ( -76790 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_291' ) + NAIF_BODY_CODE += ( -76791 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_292' ) + NAIF_BODY_CODE += ( -76792 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_293' ) + NAIF_BODY_CODE += ( -76793 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_294' ) + NAIF_BODY_CODE += ( -76794 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_295' ) + NAIF_BODY_CODE += ( -76795 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_296' ) + NAIF_BODY_CODE += ( -76796 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_297' ) + NAIF_BODY_CODE += ( -76797 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_298' ) + NAIF_BODY_CODE += ( -76798 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_299' ) + NAIF_BODY_CODE += ( -76799 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_300' ) + NAIF_BODY_CODE += ( -76800 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_301' ) + NAIF_BODY_CODE += ( -76801 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_302' ) + NAIF_BODY_CODE += ( -76802 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_303' ) + NAIF_BODY_CODE += ( -76803 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_304' ) + NAIF_BODY_CODE += ( -76804 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_305' ) + NAIF_BODY_CODE += ( -76805 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_306' ) + NAIF_BODY_CODE += ( -76806 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_307' ) + NAIF_BODY_CODE += ( -76807 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_308' ) + NAIF_BODY_CODE += ( -76808 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_309' ) + NAIF_BODY_CODE += ( -76809 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_310' ) + NAIF_BODY_CODE += ( -76810 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_311' ) + NAIF_BODY_CODE += ( -76811 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_312' ) + NAIF_BODY_CODE += ( -76812 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_313' ) + NAIF_BODY_CODE += ( -76813 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_314' ) + NAIF_BODY_CODE += ( -76814 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_315' ) + NAIF_BODY_CODE += ( -76815 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_316' ) + NAIF_BODY_CODE += ( -76816 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_317' ) + NAIF_BODY_CODE += ( -76817 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_318' ) + NAIF_BODY_CODE += ( -76818 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_319' ) + NAIF_BODY_CODE += ( -76819 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_320' ) + NAIF_BODY_CODE += ( -76820 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_321' ) + NAIF_BODY_CODE += ( -76821 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_322' ) + NAIF_BODY_CODE += ( -76822 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_323' ) + NAIF_BODY_CODE += ( -76823 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_324' ) + NAIF_BODY_CODE += ( -76824 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_325' ) + NAIF_BODY_CODE += ( -76825 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_326' ) + NAIF_BODY_CODE += ( -76826 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_327' ) + NAIF_BODY_CODE += ( -76827 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_328' ) + NAIF_BODY_CODE += ( -76828 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_329' ) + NAIF_BODY_CODE += ( -76829 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_330' ) + NAIF_BODY_CODE += ( -76830 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_331' ) + NAIF_BODY_CODE += ( -76831 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_332' ) + NAIF_BODY_CODE += ( -76832 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_333' ) + NAIF_BODY_CODE += ( -76833 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_334' ) + NAIF_BODY_CODE += ( -76834 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_335' ) + NAIF_BODY_CODE += ( -76835 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_336' ) + NAIF_BODY_CODE += ( -76836 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_337' ) + NAIF_BODY_CODE += ( -76837 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_338' ) + NAIF_BODY_CODE += ( -76838 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_339' ) + NAIF_BODY_CODE += ( -76839 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_340' ) + NAIF_BODY_CODE += ( -76840 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_341' ) + NAIF_BODY_CODE += ( -76841 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_342' ) + NAIF_BODY_CODE += ( -76842 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_343' ) + NAIF_BODY_CODE += ( -76843 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_344' ) + NAIF_BODY_CODE += ( -76844 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_345' ) + NAIF_BODY_CODE += ( -76845 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_346' ) + NAIF_BODY_CODE += ( -76846 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_347' ) + NAIF_BODY_CODE += ( -76847 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_348' ) + NAIF_BODY_CODE += ( -76848 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_349' ) + NAIF_BODY_CODE += ( -76849 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_350' ) + NAIF_BODY_CODE += ( -76850 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_351' ) + NAIF_BODY_CODE += ( -76851 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_352' ) + NAIF_BODY_CODE += ( -76852 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_353' ) + NAIF_BODY_CODE += ( -76853 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_354' ) + NAIF_BODY_CODE += ( -76854 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_355' ) + NAIF_BODY_CODE += ( -76855 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_356' ) + NAIF_BODY_CODE += ( -76856 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_357' ) + NAIF_BODY_CODE += ( -76857 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_358' ) + NAIF_BODY_CODE += ( -76858 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_359' ) + NAIF_BODY_CODE += ( -76859 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_360' ) + NAIF_BODY_CODE += ( -76860 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_361' ) + NAIF_BODY_CODE += ( -76861 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_362' ) + NAIF_BODY_CODE += ( -76862 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_363' ) + NAIF_BODY_CODE += ( -76863 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_364' ) + NAIF_BODY_CODE += ( -76864 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_365' ) + NAIF_BODY_CODE += ( -76865 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_366' ) + NAIF_BODY_CODE += ( -76866 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_367' ) + NAIF_BODY_CODE += ( -76867 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_368' ) + NAIF_BODY_CODE += ( -76868 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_369' ) + NAIF_BODY_CODE += ( -76869 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_370' ) + NAIF_BODY_CODE += ( -76870 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_371' ) + NAIF_BODY_CODE += ( -76871 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_372' ) + NAIF_BODY_CODE += ( -76872 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_373' ) + NAIF_BODY_CODE += ( -76873 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_374' ) + NAIF_BODY_CODE += ( -76874 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_375' ) + NAIF_BODY_CODE += ( -76875 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_376' ) + NAIF_BODY_CODE += ( -76876 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_377' ) + NAIF_BODY_CODE += ( -76877 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_378' ) + NAIF_BODY_CODE += ( -76878 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_379' ) + NAIF_BODY_CODE += ( -76879 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_380' ) + NAIF_BODY_CODE += ( -76880 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_381' ) + NAIF_BODY_CODE += ( -76881 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_382' ) + NAIF_BODY_CODE += ( -76882 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_383' ) + NAIF_BODY_CODE += ( -76883 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_384' ) + NAIF_BODY_CODE += ( -76884 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_385' ) + NAIF_BODY_CODE += ( -76885 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_386' ) + NAIF_BODY_CODE += ( -76886 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_387' ) + NAIF_BODY_CODE += ( -76887 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_388' ) + NAIF_BODY_CODE += ( -76888 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_389' ) + NAIF_BODY_CODE += ( -76889 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_390' ) + NAIF_BODY_CODE += ( -76890 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_391' ) + NAIF_BODY_CODE += ( -76891 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_392' ) + NAIF_BODY_CODE += ( -76892 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_393' ) + NAIF_BODY_CODE += ( -76893 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_394' ) + NAIF_BODY_CODE += ( -76894 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_395' ) + NAIF_BODY_CODE += ( -76895 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_396' ) + NAIF_BODY_CODE += ( -76896 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_397' ) + NAIF_BODY_CODE += ( -76897 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_398' ) + NAIF_BODY_CODE += ( -76898 ) + + NAIF_BODY_NAME += ( 'MSL_SITE_399' ) + NAIF_BODY_CODE += ( -76899 ) + + \begintext + +End of FK file. diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/naif0012.tls b/tests/pytests/data/2264ML0121141200805116C00_DRCL/naif0012.tls new file mode 100755 index 0000000000000000000000000000000000000000..e1afdee1b626e01a3f1b04ef8a43154e83972e56 --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/naif0012.tls @@ -0,0 +1,152 @@ +KPL/LSK + + +LEAPSECONDS KERNEL FILE +=========================================================================== + +Modifications: +-------------- + +2016, Jul. 14 NJB Modified file to account for the leapsecond that + will occur on December 31, 2016. + +2015, Jan. 5 NJB Modified file to account for the leapsecond that + will occur on June 30, 2015. + +2012, Jan. 5 NJB Modified file to account for the leapsecond that + will occur on June 30, 2012. + +2008, Jul. 7 NJB Modified file to account for the leapsecond that + will occur on December 31, 2008. + +2005, Aug. 3 NJB Modified file to account for the leapsecond that + will occur on December 31, 2005. + +1998, Jul 17 WLT Modified file to account for the leapsecond that + will occur on December 31, 1998. + +1997, Feb 22 WLT Modified file to account for the leapsecond that + will occur on June 30, 1997. + +1995, Dec 14 KSZ Corrected date of last leapsecond from 1-1-95 + to 1-1-96. + +1995, Oct 25 WLT Modified file to account for the leapsecond that + will occur on Dec 31, 1995. + +1994, Jun 16 WLT Modified file to account for the leapsecond on + June 30, 1994. + +1993, Feb. 22 CHA Modified file to account for the leapsecond on + June 30, 1993. + +1992, Mar. 6 HAN Modified file to account for the leapsecond on + June 30, 1992. + +1990, Oct. 8 HAN Modified file to account for the leapsecond on + Dec. 31, 1990. + + +Explanation: +------------ + +The contents of this file are used by the routine DELTET to compute the +time difference + +[1] DELTA_ET = ET - UTC + +the increment to be applied to UTC to give ET. + +The difference between UTC and TAI, + +[2] DELTA_AT = TAI - UTC + +is always an integral number of seconds. The value of DELTA_AT was 10 +seconds in January 1972, and increases by one each time a leap second +is declared. Combining [1] and [2] gives + +[3] DELTA_ET = ET - (TAI - DELTA_AT) + + = (ET - TAI) + DELTA_AT + +The difference (ET - TAI) is periodic, and is given by + +[4] ET - TAI = DELTA_T_A + K sin E + +where DELTA_T_A and K are constant, and E is the eccentric anomaly of the +heliocentric orbit of the Earth-Moon barycenter. Equation [4], which ignores +small-period fluctuations, is accurate to about 0.000030 seconds. + +The eccentric anomaly E is given by + +[5] E = M + EB sin M + +where M is the mean anomaly, which in turn is given by + +[6] M = M + M t + 0 1 + +where t is the number of ephemeris seconds past J2000. + +Thus, in order to compute DELTA_ET, the following items are necessary. + + DELTA_TA + K + EB + M0 + M1 + DELTA_AT after each leap second. + +The numbers, and the formulation, are taken from the following sources. + + 1) Moyer, T.D., Transformation from Proper Time on Earth to + Coordinate Time in Solar System Barycentric Space-Time Frame + of Reference, Parts 1 and 2, Celestial Mechanics 23 (1981), + 33-56 and 57-68. + + 2) Moyer, T.D., Effects of Conversion to the J2000 Astronomical + Reference System on Algorithms for Computing Time Differences + and Clock Rates, JPL IOM 314.5--942, 1 October 1985. + +The variable names used above are consistent with those used in the +Astronomical Almanac. + +\begindata + +DELTET/DELTA_T_A = 32.184 +DELTET/K = 1.657D-3 +DELTET/EB = 1.671D-2 +DELTET/M = ( 6.239996D0 1.99096871D-7 ) + +DELTET/DELTA_AT = ( 10, @1972-JAN-1 + 11, @1972-JUL-1 + 12, @1973-JAN-1 + 13, @1974-JAN-1 + 14, @1975-JAN-1 + 15, @1976-JAN-1 + 16, @1977-JAN-1 + 17, @1978-JAN-1 + 18, @1979-JAN-1 + 19, @1980-JAN-1 + 20, @1981-JUL-1 + 21, @1982-JUL-1 + 22, @1983-JUL-1 + 23, @1985-JUL-1 + 24, @1988-JAN-1 + 25, @1990-JAN-1 + 26, @1991-JAN-1 + 27, @1992-JUL-1 + 28, @1993-JUL-1 + 29, @1994-JUL-1 + 30, @1996-JAN-1 + 31, @1997-JUL-1 + 32, @1999-JAN-1 + 33, @2006-JAN-1 + 34, @2009-JAN-1 + 35, @2012-JUL-1 + 36, @2015-JUL-1 + 37, @2017-JAN-1 ) + +\begintext + + diff --git a/tests/pytests/data/2264ML0121141200805116C00_DRCL/pck00008.tpc b/tests/pytests/data/2264ML0121141200805116C00_DRCL/pck00008.tpc new file mode 100755 index 0000000000000000000000000000000000000000..5bab4d06a5c9eebb715d1b50f3e4bc3fbfb4e63b --- /dev/null +++ b/tests/pytests/data/2264ML0121141200805116C00_DRCL/pck00008.tpc @@ -0,0 +1,3381 @@ +KPL/PCK +P_constants (PcK) SPICE kernel file +=========================================================================== + + By: Nat Bachman (NAIF) 2004 September 21 + + +File Organization +-------------------------------------------------------- + + The contents of this file are as follows. + + Introductory Information: + + -- File Organization + + -- Version description + + -- Disclaimer + + -- Sources + + -- Explanation + + -- Body numbers and names + + + PcK Data: + + + Orientation Data + ---------------- + + -- Orientation constants for the Sun and planets. + Additional items included in this section: + + - Earth north geomagnetic centered dipole values + for epochs 1945-2000 + + - Mars prime meridian offset "lambda_a" + + -- Orientation constants for satellites + + -- Orientation constants for asteroids Gaspra, Ida, + Vesta, and Eros + + + Radii of Bodies + --------------- + + -- Radii of Sun and planets + + -- Radii of satellites, where available + + -- Radii of asteroids Gaspra, Ida, Kleopatra, and Eros + + + +Version description +-------------------------------------------------------- + + This file was created on September 21, 2004. This version + incorporates data from reference [2]: "Report of the IAU/IAG + Working Group on Cartographic Coordinates and Rotational Elements + of the Planets and Satellites: 2000." Note that the 2003 + version of this report is as yet unpublished. + + This file contains size, shape, and orientation data for all + objects described by the previous version of the file, plus data + for the asteroids Vesta, Kleopatra, and Eros. + + +Disclaimer +-------------------------------------------------------- + + +Applicability of Data + + This constants file may not contain the parameter values that + you prefer. Note that this file may be readily modified by + you or anyone else. NAIF suggests that you inspect this file + visually before proceeding with any critical or extended + data processing. + +File Modifications by Users + + NAIF requests that you update the "by line" and date if you + modify this file. + +Known Limitations and Caveats + + In general, the orientation models given here are claimed by the + IAU/IAG Working Group Report [2] to be accurate to 0.1 degree + ([2], p.85). However, NAIF notes that orientation models for + natural satellites and asteroids have in some cases changed + substantially with the availability of new observational data, so + users are urged to investigate the suitability for their + applications of the models presented here. + + + NAIF strongly cautions against using the earth rotation model + (from [2]) given here for work demanding high accuracy. This + model has been determined by NAIF to have an error in the prime + meridian location of magnitude at least 150 arcseconds, with a + local minimum occurring during the year 1999. Regarding + availability of better earth orientation data for use with the + SPICE system: + + Earth orientation data are available from NAIF in the form of + binary earth PCK files. NAIF employs an automated process to + create these files; each time JPL's section 335 produces a new + earth orientation parameter (EOP) file, a new PCK is produced. + These PCKs cover a 12-month time span starting about nine + months prior to the current date. In these PCK files, the + following effects are accounted for in modeling the earth's + rotation: + + + - Precession: 1976 IAU model + + - Nutation: 1980 IAU model, plus interpolated + EOP nutation corrections + + - Polar motion: interpolated from EOP file + + - True sidereal time: + + + UT1 - UT1R (if needed): given by analytic formula + + TAI - UT1 (or UT1R): interpolated from EOP file + + UT1 - GMST: given by analytic formula + + equation of equinoxes: given by analytic formula + + where + + TAI = International Atomic Time + UT1 = Greenwich hour angle of computed mean sun - 12h + UT1R = Regularized UT1 + GMST = Greenwich mean sidereal time + + These kernels are available via anonymous ftp from the server + + naif.jpl.nasa.gov + + The kernels are in the path + + pub/naif/generic_kernels/pck + + At this time, these kernels have file names of the form + + earth_000101_yymmdd_yymmdd.bpc + + The second and third dates are, respectively, the file's + coverage end time and the epoch of the last datum. + + These binary PCK files are very accurate (error < 0.1 + microradian) for epochs preceding the epoch of the last datum. + For later epochs, the error rises to several microradians. + + Binary PCK files giving accurate earth orientation back to 1972 + and *low accuracy* predicted earth orientation to 2023 are also + available in the same location. + + How does the rotation model used in the long term predict + binary earth PCK compare to that used in this file? Because of + the unpredictability of the earth's orientation, in particular + of its spin, it's not possible to answer with certainty. + However, we can make these observations: + + - The long term predict binary PCK presumably does a better + job of predicting the orientation of the earth's equator + since the binary PCK accounts for nutation and the model + from [2] does not. + + - The prime meridian error in the model from [2] amounts + to, at a minimum, about 10 seconds of rotation. It should + take years for the spin error of the binary long term + predict PCK to grow as large. + + Characteristics and names of the binary kernels described here + are subject to change. Contact NAIF for details concerning + binary earth PCKs. + + + The SPICE Toolkit doesn't currently contain software to model the + earth's north geomagnetic centered dipole as a function of time. + As a convenience for users, the north dipole location from the + J2000 epoch was selected as a representative datum, and the + planetocentric longitude and latitude of this location have been + associated with the keywords + + BODY399_N_GEOMAG_CTR_DIPOLE_LON + BODY399_N_GEOMAG_CTR_DIPOLE_LAT + + Values for the earth's north geomagnetic centered dipole are + presented in comments as a discrete time series for the time range + 1945-2000. For details concerning the the geomagnetic field model + from which these values were derived, including a discussion of + the model's accuracy, see [13]. + + + The Mars prime meridian offset given by [10] is not used by + SPICE geometry software for computations involving the shape + of Mars (for example, in sub-observer point or surface intercept + computations). The value is provided for informational + purposes only. + + + SPICE Toolkits prior to version N0057 cannot make use of + trigonometric polynomial terms in the formulas for orientation of + the planets. The only planet for which such terms are used is + Neptune. Use of trigonometric polynomial terms for natural + satellites is and has been supported for all SPICE Toolkit + versions. + + + + + +Sources +-------------------------------------------------------- + + The sources for the constants listed in this file are: + + [1] Seidelmann, P.K., Archinal, B.A., A'Hearn, M.F., + Cruikshank, D.P., Hilton, J.L., Keller, H.U., Oberst, J., + Simon, J.L., Stooke, P., Tholen, D.J., and Thomas, P.C. + "Report of the IAU/IAG Working Group on Cartographic + Coordinates and Rotational Elements of the Planets and + Satellites: 2003," Unpublished. + + [2] Seidelmann, P.K., Abalakin, V.K., Bursa, M., Davies, M.E., + Bergh, C. de, Lieske, J.H., Oberst, J., Simon, J.L., + Standish, E.M., Stooke, P., and Thomas, P.C. (2002). + "Report of the IAU/IAG Working Group on Cartographic + Coordinates and Rotational Elements of the Planets and + Satellites: 2000," Celestial Mechanics and Dynamical + Astronomy, v.82, Issue 1, pp. 83-111. + + [3] Davies, M.E., Abalakin, V.K., Bursa, M., Kinoshita, H., + Kirk, R.L., Lieske, J.H., Marov, M.Ya., Seidelmann, P.K., + and Simon, J.-L. "Report of the IAU/IAG/COSPAR Working + Group on Cartographic Coordinates and Rotational Elements + of the Planets and Satellites: 1997," Unpublished. + + [4] Davies, M.E., Abalakin, V.K., Bursa, M., Lieske, J.H., + Morando, B., Morrison, D., Seidelmann, P.K., Sinclair, + A.T., Yallop, B., and Tjuflin, Y.S. (1996). "Report of + the IAU/IAG/COSPAR Working Group on Cartographic + Coordinates and Rotational Elements of the Planets and + Satellites: 1994," Celestial Mechanics and Dynamical + Astronomy, v.63, pp. 127-148. + + [5] Davies, M.E., Abalakin, V.K., Brahic, A., Bursa, M., + Chovitz., B.H., Lieske, J.H., Seidelmann, P.K., + Sinclair, A.T., and Tiuflin, I.S. (1992). "Report of the + IAU/IAG/COSPAR Working Group on Cartographic Coordinates + and Rotational Elements of the Planets and Satellites: + 1991," Celestial Mechanics and Dynamical Astronomy, + v.53, no.4, pp. 377-397. + + [6] Davies, M.E., Abalakin, V.K., Bursa, M., Hunt, G.E., + and Lieske, J.H. (1989). "Report of the IAU/IAG/COSPAR + Working Group on Cartographic Coordinates and Rotational + Elements of the Planets and Satellites: 1988," Celestial + Mechanics and Dynamical Astronomy, v.46, no.2, pp. + 187-204. + + [7] Nautical Almanac Office, United States Naval Observatory + and H.M. Nautical Almanac Office, Rutherford Appleton + Laboratory (2005). "The Astronomical Almanac for + the Year 2005," U.S. Government Printing Office, + Washington, D.C.: and The Stationary Office, London. + + [8] Nautical Almanac Office, United States Naval Observatory, + H.M. Nautical Almanac Office, Royal Greenwich + Observatory, Jet Propulsion Laboratory, Bureau des + Longitudes, and The Time Service and Astronomy + Departments, United States Naval Observatory (1992). + "Explanatory Supplement to the Astronomical Almanac," P. + Kenneth Seidelmann, ed. University Science Books, 20 + Edgehill Road, Mill Valley, CA 9494. + + [9] Duxbury, Thomas C. (2001). "IAU/IAG 2000 Mars Cartographic + Conventions," presentation to the Mars Express Data + Archive Working Group, Dec. 14, 2001. + + [10] Russell, C.T. and Luhmann, J.G. (1990). "Earth: Magnetic + Field and Magnetosphere." <http://www-ssc.igpp.ucla. + edu/personnel/russell/papers/earth_mag>. Originally + published in "Encyclopedia of Planetary Sciences," J.H. + Shirley and R.W. Fainbridge, eds. Chapman and Hall, + New York, pp 208-211. + + [11] Russell, C.T. (1971). "Geophysical Coordinate + Transformations," Cosmic Electrodynamics 2 184-186. + NAIF document 181.0. + + [12] ESA/ESTEC Space Environment Information System (SPENVIS) + (2003). Web page: "Dipole approximations of the + geomagnetic field." <http://www.spenvis.oma.be/spenvis/ + help/background/magfield/cd.html>. + + [13] International Association of Geomagnetism and Aeronomy + and International Union of Geodesy and Geophysics (2004). + Web page: "The 9th Generation International Geomagnetic + Reference Field." <http://www.ngdc.noaa.gov/ + IAGA/vmod/igrf.html>. + + [14] Duxbury, Thomas C. (1979). "Planetary Geodetic Control + Using Satellite Imaging," Journal of Geophysical Research, + vol. 84, no. B3. This paper is cataloged as NAIF + document 190.0. + + [15] Letter from Thomas C. Duxbury to Dr. Ephraim Lazeryevich + Akim, Keldish Institute of Applied Mathematics, USSR + Academy of Sciences, Moscow, USSR. This letter is + cataloged as NAIF document number 195.0. + + [16] "Placeholder" values were supplied by NAIF for some radii + of the bodies listed below: + + Body NAIF ID code + ---- ------------ + Metis 516 + Helene 612 + Larissa 807 + + See the discussion below for further information. + + + Most values are from [2]. All exceptions are + commented where they occur in this file. The exceptions are: + + + -- Radii for the Sun are from [7]. + + -- The second nutation precession angle (M2) for Mars is + represented by a quadratic polynomial in the 2000 + IAU report. The SPICELIB subroutine BODEUL can not + handle this term (which is extremely small), so we + truncate the polynomial to a linear one. + + -- For several satellites, the 2000 IAU report either gives + a single radius value or a polar radius and a single + equatorial radius. SPICE Toolkit software that uses body + radii expects to find three radii whenever these data are + read from the kernel pool. In the cases listed below, + NAIF has used the mean radius value for all three radii. + Wherever this was done, the fact has been noted. + + The affected satellites are: + + Body NAIF ID code + ---- ------------ + Metis 516 + Helene 612 + Larissa 807 + + -- Earth north geomagnetic centered dipole values are from + [12]. The article [10] was used to check most of + these values, and the values were also re-computed from + the 9th generation IGRF [13] by Nat Bachman. + + -- The Mars prime meridian offset angle is from [9]. + + + "Old values" listed are from the SPICE P_constants file + dated April 24, 2000. Most of these values came from the + 1994 IAU report [4]. + + + + +Explanation +-------------------------------------------------------- + + The SPICE Toolkit software that uses this file is documented in + the SPICE "Required Reading" file pck.req. For a terse + description of the PCK file format, see the section below titled + "File Format." See the SPICE "Required Reading" file kernel.req + for a detailed explanation of the SPICE text kernel file format. + The files pck.req and kernel.req are included in the documentation + provided with the SPICE Toolkit. + + This file, which is logically part of the SPICE P-kernel, contains + constants used to model the orientation, size and shape of the + Sun, planets, and satellites. The orientation models express the + direction of the pole and location of the prime meridian of a body + as a function of time. The size/shape models ("shape models" for + short) represent all bodies as ellipsoids, using two equatorial + radii and a polar radius. Spheroids and spheres are obtained when + two or all three radii are equal. + + +File Format + + This file consists of a series of comment blocks and data blocks. + Comment blocks, which contain free-form descriptive or explanatory + text, are preceded by a \begintext token. Data blocks follow a + \begindata token. In order to be recognized, each token shown + here must be placed on a line by itself. + + The portion of the file preceding the first data block is treated + as a comment block; it doesn't require an initial comment block + token. + + This file identifies data using a series of + + KEYWORD = VALUE + + assignments. The left hand side of each assignment is a + "kernel variable" name; the right hand side is an associated value + or list of values. The SPICE subroutine API allows SPICE routines + and user applications to retrieve the set of values associated + with each kernel variable name. + + Kernel variable names are case-sensitive and are limited to + 32 characters in length. + + Numeric values may be integer or floating point. String values + are normally limited to 80 characters in length; however, SPICE + provides a mechanism for identifying longer, "continued" strings. + See the SPICE routine STPOOL for details. + + String values are single quoted. + + When the right hand side of an assignment is a list of values, + the list items may be separated by commas or simply by blanks. + The list must be bracketed by parentheses. Example: + + BODY399_RADII = ( 6378.14 6378.14 6356.75 ) + + Any blanks preceding or following keyword names, values and equal + sign are ignored. + + Assignments may be spread over multiple lines, for example: + + BODY399_RADII = ( 6378.14 + 6378.14 + 6356.75 ) + + This file may contain blank lines anywhere. Non-printing + characters including TAB should not be present in the file: the + presence of such characters may make the file unreadable by + SPICE software. + + +Time systems and reference frames + + The 2000 IAU/IAG Working Group Report [1] states that, to the + accuracy of the formulas given, the time system used may be + regarded as any of TDB (Barycentric Dynamical Time), TT + (Terrestrial time, formerly called TDT), or T_eph (the independent + variable of the JPL planetary ephemerides). Reference [2], from + which most data in this report were taken, erroneously identifies + the time system as TCB (Barycentric Coordinate Time). + + SPICE software treats the time system used in this file as T_eph, + but for historical reasons SPICE documentation refers to the time + system as both "ET" and "TDB." For consistency, documentation in + this version of the file retains use of the name TDB. + + The origin of the time system is 2000 January 1 12:00:00 (TDB). + Throughout SPICE documentation and in this file, we use the names + "J2000 TDB" and "J2000" for this epoch. The name "J2000.0" is + equivalent. + + The inertial reference frame used for the rotational elements in + this file is identified by [1] as the ICRF (International + Celestial Reference Frame). In this file, the frame is treated + as J2000. The difference between the J2000 frame and the ICRF is + on the order of tens of milliarcseconds and is well below the + accuracy level of the formulas in this file. + +Orientation models + + All of the orientation models use three Euler angles to describe + body orientation. To be precise, the Euler angles describe the + orientation of the coordinate axes of the "Body Equator and Prime + Meridian" system with respect to an inertial system. By default, + the inertial system is J2000 (also called "EME2000"), but other + frames can be specified in the file. See the PCK Required Reading + for details. + + The first two angles, in order, are the J2000 right ascension and + declination (henceforth RA and DEC) of the north pole of a body as + a function of time. The third angle is the prime meridian location + (represented by "W"), which is expressed as a rotation about the + north pole, and is also a function of time. + + For the Sun and planets, the expressions for the north pole's + right ascension and declination, as well as prime meridian + location, are sums (as far as the models that appear in this file + are concerned) of quadratic polynomials and trigonometric + polynomials, where the independent variable is time. Some + coefficients may be zero. Currently Neptune is the only planet + for which trigonometric polynomial terms are used. + + In this file, the time arguments in expressions always refer to + Barycentric Dynamical Time (TDB), measured in centuries or days + past a reference epoch. By default, the reference epoch is + the J2000 epoch, which is Julian ephemeris date 2451545.0, but + other epochs can be specified in the file. See the PCK Required + Reading for details. + + Example: 1991 IAU Model for orientation of the Earth. Note that + these values are used as an example only; see the data area below + for current values. + + + alpha = 0.00 - 0.641 T ( RA ) + 0 + + delta = 90.0 - 0.557 T ( DEC ) + 0 + + W = 190.16 + 360.9856235 d ( Prime meridian ) + + + T represents centuries past J2000 ( TDB ), + + d represents days past J2000 ( TDB ). + + In this file, the polynomials' coefficients above are assigned to the + symbols + + BODY399_POLE_RA + BODY399_POLE_DEC + BODY399_POLE_PM + + as follows: + + BODY399_POLE_RA = ( 0. -0.641 0. ) + BODY399_POLE_DEC = ( 90. -0.557 0. ) + BODY399_PM = ( 190.16 360.9856235 0. ) + + Note the number "399"; this is the NAIF ID code for the Earth. + + You'll see an additional symbol grouped with the ones listed here; it + is + + BODY399_LONG_AXIS + + This term is zero for all bodies except Mars. It represents the + angular offset between the meridian containing the longest axis of + the triaxial ellipsoid used to model a body and the prime meridian + of the body. + + Expressions for satellites are a little more complicated; in addition + to polynomial terms, there are trigonometric terms. The arguments of + the trigonometric terms are linear polynomials. In this file, we call + the arguments of these trigonometric terms "nutation precession + angles." + + In this file, the polynomial expressions for the nutation precession + angles are listed along with the planet's RA, DEC, and prime meridian + terms. + + Example: 1991 IAU nutation precession angles for Earth. Note that these + values are used as an example only; see the data area below for current + values. + + E1 = 125.045 - 0.052992 d + E2 = 250.090 - 0.105984 d + E3 = 260.008 + 13.012001 d + E4 = 176.625 + 13.340716 d + E5 = 357.529 + 0.985600 d + + d represents days past J2000 ( TDB ) + + Because the SPICE Toolkit software expects the time units for the + angles to be CENTURIES (as in the IAU models for most bodies--the + Earth is an exception), the linear coefficients are scaled by + 36525.0 (days/century) in the assignments: + + BODY3_NUT_PREC_ANGLES = ( 125.045 -1935.5328 + 250.090 -3871.0656 + 260.008 475263.336525 + 176.625 487269.6519 + 357.529 35999.04 ) + + As stated above, the satellite orientation models use polynomial and + trigonometric terms, where the arguments of the trigonometric terms + are the "nutation precession angles." + + Example: 1988 IAU values for the Moon. Again, these values are used + as an example only; see the data area below for current values. + + + alpha = 270.000 + 0.003 T - 3.878 sin(E1) - 0.120 sin(E2) + 0 + + 0.070 sin(E3) - 0.017 sin(E4) (RA) + + + delta = 66.541 + 0.013 T + 1.543 cos(E1) + 0.024 cos(E2) + 0 + - 0.028 cos(E3) + 0.007 cos(E4) (DEC) + + + W = 38.317 + 13.1763582 d + 3.558 sin(E1) + + + 0.121 sin(E2) + + - 0.064 sin(E3) + + + 0.016 sin(E4) + + + 0.025 sin(E5) ( Prime + meridian ) + + d represents days past J2000. + + E1--E5 are the nutation precession angles. + + The polynomial terms are assigned to symbols by the statements + + BODY301_POLE_RA = ( 270.000 0.003 0. ) + BODY301_POLE_DEC = ( 66.541 0.013 0. ) + BODY301_PM = ( 38.317 13.1763582 0. ) + + The coefficients of the trigonometric terms are assigned to symbols by + the statements + + BODY301_NUT_PREC_RA = ( -3.878 -0.120 0.070 -0.017 0. ) + BODY301_NUT_PREC_DEC = ( 1.543 0.024 -0.028 0.007 0. ) + BODY301_NUT_PREC_PM = ( 3.558 0.121 -0.064 0.016 0.025 ) + + Note that for the RA and PM (prime meridian) assignments, the ith term + is the coefficient of sin(Ei) in the expression used in the IAU model, + while for the DEC assignment, the ith term is the coefficient of + cos(Ei) in the expression used in the IAU model. + + SPICE software expects the models for satellite orientation to + follow the form of the model shown here: the polynomial portions of the + RA, DEC, and W expressions are expected to be quadratic, the + trigonometric terms for RA and W (satellite prime meridian) are expected + to be linear combinations of sines of nutation precession angles, the + trigonometric terms for DEC are expected to be linear combinations of + cosines of nutation precession angles, and the polynomials for the + nutation precession angles themselves are expected to be linear. + + Eventually, the software will handle more complex expressions, we + expect. + + +Shape models + + There is only one kind of shape model supported by the SPICE Toolkit + software at present: the triaxial ellipsoid. The 2000 IAU report does + not use any other models, except in the case of Mars, where + separate values are given for the north and south polar radii. + + For each body, three radii are listed: The first number is + the largest equatorial radius (the length of the semi-axis + containing the prime meridian), the second number is the smaller + equatorial radius, and the third is the polar radius. + + Example: Radii of the Earth. + + BODY399_RADII = ( 6378.14 6378.14 6356.75 ) + + +Body numbers and names +-------------------------------------------------------- + + + 1 Mercury barycenter + 2 Venus barycenter + 3 Earth barycenter + 4 Mars barycenter + 5 Jupiter barycenter + 6 Saturn barycenter + 7 Uranus barycenter + 8 Neptune barycenter + 9 Pluto barycenter + 10 Sun + + While not relevant to the P_constants kernel, we note here for + completeness that 0 is used to represent the solar system + barycenter. + + 199 Mercury + + + 299 Venus + + + 399 Earth + + 301 Moon + + + 499 Mars + + 401 Phobos 402 Deimos + + + 599 Jupiter + + 501 Io 502 Europa 503 Ganymede 504 Callisto + 505 Amalthea 506 Himalia 507 Elara 508 Pasiphae + 509 Sinope 510 Lysithea 511 Carme 512 Ananke + 513 Leda 514 Thebe 515 Adrastea 516 Metis + + + 699 Saturn + + 601 Mimas 602 Enceladus 603 Tethys 604 Dione + 605 Rhea 606 Titan 607 Hyperion 608 Iapetus + 609 Phoebe 610 Janus 611 Epimetheus 612 Helene + 613 Telesto 614 Calypso 615 Atlas 616 Prometheus + 617 Pandora 618 Pan + + + 799 Uranus + + 701 Ariel 702 Umbriel 703 Titania 704 Oberon + 705 Miranda 706 Cordelia 707 Ophelia 708 Bianca + 709 Cressida 710 Desdemona 711 Juliet 712 Portia + 713 Rosalind 714 Belinda 715 Puck + + + 899 Neptune + + 801 Triton 802 Nereid 803 Naiad 804 Thalassa + 805 Despina 806 Galatea 807 Larissa 808 Proteus + + + 999 Pluto + + 901 Charon + + + 2000004 Asteroid Vesta + 2000216 Asteroid Kleopatra + 2000433 Asteroid Eros + 2431010 Asteroid Ida + 9511010 Asteroid Gaspra + + +Orientation constants for the Sun and planets +-------------------------------------------------------- + + +Sun + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY10_POLE_RA = ( 286.13 0. 0. ) + BODY10_POLE_DEC = ( 63.87 0. 0. ) + BODY10_PM = ( 84.10 14.18440 0. ) + BODY10_LONG_AXIS = ( 0. ) + + \begintext + +Mercury + + Old values: + + body199_pole_ra = ( 281.01, -0.033, 0. ) + body199_pole_dec = ( 61.45, -0.005, 0. ) + body199_pm = ( 329.55 6.1385025 0. ) + + body199_long_axis = ( 0. ) + + + Current values: + + \begindata + + BODY199_POLE_RA = ( 281.01 -0.033 0. ) + BODY199_POLE_DEC = ( 61.45 -0.005 0. ) + BODY199_PM = ( 329.548 6.1385025 0. ) + + BODY199_LONG_AXIS = ( 0. ) + + \begintext + + +Venus + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY299_POLE_RA = ( 272.76 0. 0. ) + BODY299_POLE_DEC = ( 67.16 0. 0. ) + BODY299_PM = ( 160.20 -1.4813688 0. ) + + BODY299_LONG_AXIS = ( 0. ) + + \begintext + + +Earth + + Old values: + + Values shown are from the 1994 IAU report [4]. + + body399_pole_ra = ( 0. -0.641 0. ) + body399_pole_dec = ( 90. -0.557 0. ) + body399_pm = ( 190.16 360.9856235 0. ) + body399_long_axis = ( 0. ) + + Nutation precession angles are unchanged in the 2000 report. + + + Current values: + + \begindata + + BODY399_POLE_RA = ( 0. -0.641 0. ) + BODY399_POLE_DEC = ( 90. -0.557 0. ) + BODY399_PM = ( 190.147 360.9856235 0. ) + BODY399_LONG_AXIS = ( 0. ) + + \begintext + + + Nutation precession angles for the Earth-Moon system: + + The linear coefficients have been scaled up from degrees/day + to degrees/century, because the SPICELIB PCK reader expects + these units. The original constants were: + + 125.045D0 -0.0529921D0 + 250.089D0 -0.1059842D0 + 260.008D0 13.0120009D0 + 176.625D0 13.3407154D0 + 357.529D0 0.9856003D0 + 311.589D0 26.4057084D0 + 134.963D0 13.0649930D0 + 276.617D0 0.3287146D0 + 34.226D0 1.7484877D0 + 15.134D0 -0.1589763D0 + 119.743D0 0.0036096D0 + 239.961D0 0.1643573D0 + 25.053D0 12.9590088D0 + + + \begindata + + + BODY3_NUT_PREC_ANGLES = ( 125.045 -1935.5364525000 + 250.089 -3871.0729050000 + 260.008 475263.3328725000 + 176.625 487269.6299850000 + 357.529 35999.0509575000 + 311.589 964468.4993100000 + 134.963 477198.8693250000 + 276.617 12006.3007650000 + 34.226 63863.5132425000 + 15.134 -5806.6093575000 + 119.743 131.8406400000 + 239.961 6003.1503825000 + 25.053 473327.7964200000 ) + + + \begintext + + + Earth north geomagnetic centered dipole: + + Old values: + + Values are from [11]. Note the year of publication was 1971. + + body399_mag_north_pole_lon = ( -69.761 ) + body399_mag_north_pole_lat = ( 78.565 ) + + + Current values: + + The north dipole location is time-varying. The values shown + below, taken from [12], represent a discrete sampling of the + north dipole location from 1945 to 2000. The terms DGRF and + IGRF refer to, respectively, "Definitive Geomagnetic + Reference Field" and "International Geomagnetic Reference + Field." See references [10], [12], and [13] for details. + + Coordinates are planetocentric. + + Data source Lat Lon + ----------- ----- ------ + DGRF 1945 78.47 291.47 + DGRF 1950 78.47 291.15 + DGRF 1955 78.46 290.84 + DGRF 1960 78.51 290.53 + DGRF 1965 78.53 290.15 + DGRF 1970 78.59 289.82 + DGRF 1975 78.69 289.53 + DGRF 1980 78.81 289.24 + DGRF 1985 78.97 289.10 + DGRF 1990 79.13 288.89 + IGRF 1995 79.30 288.59 + IGRF 2000 79.54 288.43 + + + Values are given for the epoch 2000 and are from the final row + of the above table, which is from [12]. As shown by the table + these values constitute a low-accuracy approximation for epochs + not close to 2000. + + \begindata + + BODY399_N_GEOMAG_CTR_DIPOLE_LON = ( 288.43 ) + BODY399_N_GEOMAG_CTR_DIPOLE_LAT = ( 79.54 ) + + \begintext + + +Mars + + Old values: + + Values shown are from the 1994 IAU report [4]. + + body499_pole_ra = ( 317.681 -0.108 0. ) + body499_pole_dec = ( 52.886 -0.061 0. ) + body499_pm = ( 176.901 350.8919830 0. ) + + Nutation precession angles are unchanged in the 2000 IAU report. + + Old lambda_a values were specified as POSITIVE WEST LONGITUDE. + Reference [14] gave the value + + body499_long_axis = ( 110. ) + + and reference [15] gave the value + + body499_long_axis = ( 104.9194 ) + + + Current values: + + \begindata + + BODY499_POLE_RA = ( 317.68143 -0.1061 0. ) + BODY499_POLE_DEC = ( 52.88650 -0.0609 0. ) + BODY499_PM = ( 176.630 350.89198226 0. ) + + \begintext + + Source [9] specifies the following value for the lambda_a term + (BODY499_LONG_AXIS ) for Mars. This term is the POSITIVE EAST + LONGITUDE, measured from the prime meridian, of the meridian + containing the longest axis of the reference ellipsoid. + (CAUTION: previous values were POSITIVE WEST.) + + body499_long_axis = ( 252. ) + + We list this lambda_a value for completeness. The IAU report + [2] gives equal values for both equatorial radii, so the + lambda_a offset does not apply to the IAU model. + + The 2000 IAU report defines M2, the second nutation precession angle, + by: + + 2 + 192.93 + 1128.4096700 d + 8.864 T + + We truncate the M2 series to a linear expression, because the PCK + software cannot handle the quadratic term. + + Again, the linear terms are scaled by 36525.0: + + -0.4357640000000000 --> -15916.28010000000 + 1128.409670000000 --> 41215163.19675000 + -1.8151000000000000E-02 --> -662.9652750000000 + + We also introduce a fourth nutation precession angle, which + is the pi/2-complement of the third angle. This angle is used + in computing the prime meridian location for Deimos. See the + discussion of this angle below in the section containing orientation + constants for Deimos. + + \begindata + + BODY4_NUT_PREC_ANGLES = ( 169.51 -15916.2801 + 192.93 41215163.19675 + 53.47 -662.965275 + 36.53 662.965275 ) + + \begintext + + +Jupiter + + Old values: + + body599_pole_ra = ( 268.05 -0.009 0. ) + body599_pole_dec = ( +64.49 +0.003 0. ) + body599_pm = ( 284.95 +870.5366420 0. ) + body599_long_axis = ( 0. ) + + body5_nut_prec_angles = ( 73.32 +91472.9 + 24.62 +45137.2 + 283.90 +4850.7 + 355.80 +1191.3 + 119.90 +262.1 + 229.80 +64.3 + 352.25 +2382.6 + 113.35 +6070.0 + 146.64 +182945.8 + 49.24 +90274.4 ) + + Current values: + + The number of nutation precession angles is ten. The ninth and + tenth are twice the first and second, respectively. + + \begindata + + + BODY599_POLE_RA = ( 268.05 -0.009 0. ) + BODY599_POLE_DEC = ( 64.49 0.003 0. ) + BODY599_PM = ( 284.95 870.5366420 0. ) + BODY599_LONG_AXIS = ( 0. ) + + BODY5_NUT_PREC_ANGLES = ( 73.32 91472.9 + 24.62 45137.2 + 283.90 4850.7 + 355.80 1191.3 + 119.90 262.1 + 229.80 64.3 + 352.35 2382.6 + 113.35 6070.0 + 146.64 182945.8 + 49.24 90274.4 ) + \begintext + + +Saturn + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY699_POLE_RA = ( 40.589 -0.036 0. ) + BODY699_POLE_DEC = ( 83.537 -0.004 0. ) + BODY699_PM = ( 38.90 810.7939024 0. ) + BODY699_LONG_AXIS = ( 0. ) + + \begintext + + The first seven angles given here are the angles S1 + through S7 from the 2000 report; the eighth and + ninth angles are 2*S1 and 2*S2, respectively. + + + \begindata + + BODY6_NUT_PREC_ANGLES = ( 353.32 75706.7 + 28.72 75706.7 + 177.40 -36505.5 + 300.00 -7225.9 + 316.45 506.2 + 345.20 -1016.3 + 29.80 -52.1 + 706.64 151413.4 + 57.44 151413.4 ) + \begintext + + +Uranus + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY799_POLE_RA = ( 257.311 0. 0. ) + BODY799_POLE_DEC = ( -15.175 0. 0. ) + BODY799_PM = ( 203.81 -501.1600928 0. ) + BODY799_LONG_AXIS = ( 0. ) + + \begintext + + The first 16 angles given here are the angles U1 + through U16 from the 2000 report; the 17th and + 18th angles are 2*U11 and 2*U12, respectively. + + \begindata + + BODY7_NUT_PREC_ANGLES = ( 115.75 54991.87 + 141.69 41887.66 + 135.03 29927.35 + 61.77 25733.59 + 249.32 24471.46 + 43.86 22278.41 + 77.66 20289.42 + 157.36 16652.76 + 101.81 12872.63 + 138.64 8061.81 + 102.23 -2024.22 + 316.41 2863.96 + 304.01 -51.94 + 308.71 -93.17 + 340.82 -75.32 + 259.14 -504.81 + 204.46 -4048.44 + 632.82 5727.92 ) + + \begintext + + + +Neptune + + Old values: + + Values are unchanged in the 2000 IAU report. However, + the kernel variables used to store the values have changed. + See note immediately below. + + Current values: + + The kernel variables + + BODY899_NUT_PREC_RA + BODY899_NUT_PREC_DEC + BODY899_NUT_PREC_PM + + are new in this PCK version (dated October 17, 2003). + These variables capture trigonometric terms in the expressions + for Neptune's pole direction and prime meridian location. + Version N0057 of the SPICE Toolkit uses these variables; + earlier versions can read them but ignore them when + computing Neptune's orientation. + + \begindata + + BODY899_POLE_RA = ( 299.36 0. 0. ) + BODY899_POLE_DEC = ( 43.46 0. 0. ) + BODY899_PM = ( 253.18 536.3128492 0. ) + BODY899_LONG_AXIS = ( 0. ) + + + BODY899_NUT_PREC_RA = ( 0.70 0. 0. 0. 0. 0. 0. 0. ) + BODY899_NUT_PREC_DEC = ( -0.51 0. 0. 0. 0. 0. 0. 0. ) + BODY899_NUT_PREC_PM = ( -0.48 0. 0. 0. 0. 0. 0. 0. ) + + \begintext + + The 2000 report defines the nutation precession angles + + N, N1, N2, ... , N7 + + and also uses the multiples of N1 and N7 + + 2*N1 + + and + + 2*N7, 3*N7, ..., 9*N7 + + In this file, we treat the angles and their multiples as + separate angles. In the kernel variable + + BODY8_NUT_PREC_ANGLES + + the order of the angles is + + N, N1, N2, ... , N7, 2*N1, 2*N7, 3*N7, ..., 9*N7 + + Each angle is defined by a linear polynomial, so two + consecutive array elements are allocated for each + angle. The first term of each pair is the constant term, + the second is the linear term. + + \begindata + + BODY8_NUT_PREC_ANGLES = ( 357.85 52.316 + 323.92 62606.6 + 220.51 55064.2 + 354.27 46564.5 + 75.31 26109.4 + 35.36 14325.4 + 142.61 2824.6 + 177.85 52.316 + 647.840 125213.200 + 355.700 104.632 + 533.550 156.948 + 711.400 209.264 + 889.250 261.580 + 1067.100 313.896 + 1244.950 366.212 + 1422.800 418.528 + 1600.650 470.844 ) + + \begintext + + + +Pluto + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY999_POLE_RA = ( 313.02 0. 0. ) + BODY999_POLE_DEC = ( 9.09 0. 0. ) + BODY999_PM = ( 236.77 -56.3623195 0. ) + BODY999_LONG_AXIS = ( 0. ) + + \begintext + + + + +Orientation constants for the satellites +-------------------------------------------------------- + + +Satellites of Earth + + Old values: + + Values are from the 1988 IAU report. + + body301_pole_ra = ( 270.000 0. 0. ) + body301_pole_dec = ( 66.534 0. 0. ) + body301_pm = ( 38.314 13.1763581 0. ) + body301_long_axis = ( 0. ) + + body301_nut_prec_ra = ( -3.878 -0.120 0.070 -0.017 0. ) + body301_nut_prec_dec = ( 1.543 0.024 -0.028 0.007 0. ) + body301_nut_prec_pm = ( 3.558 0.121 -0.064 0.016 0.025 ) + + BODY301_POLE_RA = ( 269.9949 0.0031 0. ) + BODY301_POLE_DEC = ( 66.5392 0.0130 0. ) + BODY301_PM = ( 38.3213 13.17635815 -1.4D-12 ) + BODY301_LONG_AXIS = ( 0. ) + + BODY301_NUT_PREC_RA = ( -3.8787 -0.1204 0.0700 -0.0172 + 0. 0.0072 0. 0. + 0. -0.0052 0. 0. + 0.0043 ) + + BODY301_NUT_PREC_DEC = ( 1.5419 0.0239 -0.0278 0.0068 + 0. -0.0029 0.0009 0. + 0. 0.0008 0. 0. + -0.0009 ) + + BODY301_NUT_PREC_PM = ( 3.5610 0.1208 -0.0642 0.0158 + 0.0252 -0.0066 -0.0047 -0.0046 + 0.0028 0.0052 0.0040 0.0019 + -0.0044 ) + + New values: + + \begindata + + + + + + BODY301_POLE_RA = ( 269.9949 0.0031 0. ) + BODY301_POLE_DEC = ( 66.5392 0.0130 0. ) + BODY301_PM = ( 38.3213 13.17635815 -1.4D-12 ) + BODY301_LONG_AXIS = ( 0. ) + + BODY301_NUT_PREC_RA = ( -3.8787 -0.1204 0.0700 -0.0172 + 0.0 0.0072 0.0 0.0 + 0.0 -0.0052 0.0 0.0 + 0.0043 ) + + BODY301_NUT_PREC_DEC = ( 1.5419 0.0239 -0.0278 0.0068 + 0.0 -0.0029 0.0009 0.0 + 0.0 0.0008 0.0 0.0 + -0.0009 ) + + BODY301_NUT_PREC_PM = ( 3.5610 0.1208 -0.0642 0.0158 + 0.0252 -0.0066 -0.0047 -0.0046 + 0.0028 0.0052 0.0040 0.0019 + -0.0044 ) + \begintext + + + +Satellites of Mars + + + Phobos + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + The quadratic prime meridian term is scaled by 1/36525**2: + + 8.864000000000000 ---> 6.6443009930565219E-09 + + \begindata + + BODY401_POLE_RA = ( 317.68 -0.108 0. ) + BODY401_POLE_DEC = ( 52.90 -0.061 0. ) + BODY401_PM = ( 35.06 1128.8445850 6.6443009930565219E-09 ) + + BODY401_LONG_AXIS = ( 0. 0. ) + + BODY401_NUT_PREC_RA = ( 1.79 0. 0. 0. ) + BODY401_NUT_PREC_DEC = ( -1.08 0. 0. 0. ) + BODY401_NUT_PREC_PM = ( -1.42 -0.78 0. 0. ) + + + \begintext + + + Deimos + + Old values: + + Values are unchanged in the 2000 IAU report. + + + New values: + + The Deimos prime meridian expression is: + + + 2 + W = 79.41 + 285.1618970 d - 0.520 T - 2.58 sin M + 3 + + + 0.19 cos M . + 3 + + + At the present time, the PCK kernel software (the routine + BODEUL in particular) cannot handle the cosine term directly, + but we can represent it as + + 0.19 sin M + 4 + + where + + M = 90.D0 - M + 4 3 + + Therefore, the nutation precession angle assignments for Phobos + and Deimos contain four coefficients rather than three. + + The quadratic prime meridian term is scaled by 1/36525**2: + + -0.5200000000000000 ---> -3.8978300049519307E-10 + + \begindata + + BODY402_POLE_RA = ( 316.65 -0.108 0. ) + BODY402_POLE_DEC = ( 53.52 -0.061 0. ) + BODY402_PM = ( 79.41 285.1618970 -3.897830D-10 ) + BODY402_LONG_AXIS = ( 0. ) + + BODY402_NUT_PREC_RA = ( 0. 0. 2.98 0. ) + BODY402_NUT_PREC_DEC = ( 0. 0. -1.78 0. ) + BODY402_NUT_PREC_PM = ( 0. 0. -2.58 0.19 ) + + \begintext + + + + +Satellites of Jupiter + + + Io + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY501_POLE_RA = ( 268.05 -0.009 0. ) + BODY501_POLE_DEC = ( 64.50 0.003 0. ) + BODY501_PM = ( 200.39 203.4889538 0. ) + BODY501_LONG_AXIS = ( 0. ) + + BODY501_NUT_PREC_RA = ( 0. 0. 0.094 0.024 ) + BODY501_NUT_PREC_DEC = ( 0. 0. 0.040 0.011 ) + BODY501_NUT_PREC_PM = ( 0. 0. -0.085 -0.022 ) + + \begintext + + + + Europa + + + Old values: + + body502_pole_ra = ( 268.08 -0.009 0. ) + body502_pole_dec = ( 64.51 0.003 0. ) + body502_pm = ( 35.67 101.3747235 0. ) + body502_long_axis = ( 0. ) + + body502_nut_prec_ra = ( 0. 0. 0. 1.086 0.060 0.015 0.009 ) + body502_nut_prec_dec = ( 0. 0. 0. 0.468 0.026 0.007 0.002 ) + body502_nut_prec_pm = ( 0. 0. 0. -0.980 -0.054 -0.014 -0.008 ) + + Current values: + + \begindata + + BODY502_POLE_RA = ( 268.08 -0.009 0. ) + BODY502_POLE_DEC = ( 64.51 0.003 0. ) + BODY502_PM = ( 36.022 101.3747235 0. ) + BODY502_LONG_AXIS = ( 0. ) + + BODY502_NUT_PREC_RA = ( 0. 0. 0. 1.086 0.060 0.015 0.009 ) + BODY502_NUT_PREC_DEC = ( 0. 0. 0. 0.468 0.026 0.007 0.002 ) + BODY502_NUT_PREC_PM = ( 0. 0. 0. -0.980 -0.054 -0.014 -0.008 ) + + \begintext + + + Ganymede + + Old values: + + body503_pole_ra = ( 268.20 -0.009 0. ) + body503_pole_dec = ( +64.57 +0.003 0. ) + body503_pm = ( 44.04 +50.3176081 0. ) + body503_long_axis = ( 0. ) + + body503_nut_prec_ra = ( 0. 0. 0. -0.037 +0.431 +0.091 ) + body503_nut_prec_dec = ( 0. 0. 0. -0.016 +0.186 +0.039 ) + body503_nut_prec_pm = ( 0. 0. 0. +0.033 -0.389 -0.082 ) + + Current values: + + \begindata + + BODY503_POLE_RA = ( 268.20 -0.009 0. ) + BODY503_POLE_DEC = ( 64.57 0.003 0. ) + BODY503_PM = ( 44.064 50.3176081 0. ) + BODY503_LONG_AXIS = ( 0. ) + + BODY503_NUT_PREC_RA = ( 0. 0. 0. -0.037 0.431 0.091 ) + BODY503_NUT_PREC_DEC = ( 0. 0. 0. -0.016 0.186 0.039 ) + BODY503_NUT_PREC_PM = ( 0. 0. 0. 0.033 -0.389 -0.082 ) + + \begintext + + + Callisto + + + Old values: + + body504_pole_ra = ( 268.72 -0.009 0. ) + body504_pole_dec = ( +64.83 +0.003 0. ) + body504_pm = ( 259.73 +21.5710715 0. ) + body504_long_axis = ( 0. ) + + body504_nut_prec_ra = ( 0. 0. 0. 0. -0.068 +0.590 0. +0.010 ) + body504_nut_prec_dec = ( 0. 0. 0. 0. -0.029 +0.254 0. -0.004 ) + body504_nut_prec_pm = ( 0. 0. 0. 0. +0.061 -0.533 0. -0.009 ) + + Current values: + + + \begindata + + BODY504_POLE_RA = ( 268.72 -0.009 0. ) + BODY504_POLE_DEC = ( 64.83 0.003 0. ) + BODY504_PM = ( 259.51 21.5710715 0. ) + BODY504_LONG_AXIS = ( 0. ) + + BODY504_NUT_PREC_RA = ( 0. 0. 0. 0. -0.068 0.590 0. 0.010 ) + BODY504_NUT_PREC_DEC = ( 0. 0. 0. 0. -0.029 0.254 0. -0.004 ) + BODY504_NUT_PREC_PM = ( 0. 0. 0. 0. 0.061 -0.533 0. -0.009 ) + + \begintext + + + Amalthea + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY505_POLE_RA = ( 268.05 -0.009 0. ) + BODY505_POLE_DEC = ( 64.49 0.003 0. ) + BODY505_PM = ( 231.67 722.6314560 0. ) + BODY505_LONG_AXIS = ( 0. ) + + BODY505_NUT_PREC_RA = ( -0.84 0. 0. 0. 0. 0. 0. 0. 0.01 0. ) + BODY505_NUT_PREC_DEC = ( -0.36 0. 0. 0. 0. 0. 0. 0. 0. 0. ) + BODY505_NUT_PREC_PM = ( 0.76 0. 0. 0. 0. 0. 0. 0. -0.01 0. ) + + \begintext + + + Thebe + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY514_POLE_RA = ( 268.05 -0.009 0. ) + BODY514_POLE_DEC = ( 64.49 0.003 0. ) + BODY514_PM = ( 8.56 533.7004100 0. ) + BODY514_LONG_AXIS = ( 0. ) + + BODY514_NUT_PREC_RA = ( 0. -2.11 0. 0. 0. 0. 0. 0. 0. 0.04 ) + BODY514_NUT_PREC_DEC = ( 0. -0.91 0. 0. 0. 0. 0. 0. 0. 0.01 ) + BODY514_NUT_PREC_PM = ( 0. 1.91 0. 0. 0. 0. 0. 0. 0. -0.04 ) + + \begintext + + + Adrastea + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + + + BODY515_POLE_RA = ( 268.05 -0.009 0. ) + BODY515_POLE_DEC = ( 64.49 0.003 0. ) + BODY515_PM = ( 33.29 1206.9986602 0. ) + BODY515_LONG_AXIS = ( 0. ) + + \begintext + + + Metis + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY516_POLE_RA = ( 268.05 -0.009 0. ) + BODY516_POLE_DEC = ( 64.49 0.003 0. ) + BODY516_PM = ( 346.09 1221.2547301 0. ) + BODY516_LONG_AXIS = ( 0. ) + + \begintext + + + +Satellites of Saturn + + + Mimas + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY601_POLE_RA = ( 40.66 -0.036 0. ) + BODY601_POLE_DEC = ( 83.52 -0.004 0. ) + BODY601_PM = ( 337.46 381.9945550 0. ) + BODY601_LONG_AXIS = ( 0. ) + + BODY601_NUT_PREC_RA = ( 0. 0. 13.56 0. 0. 0. 0. 0. 0. ) + BODY601_NUT_PREC_DEC = ( 0. 0. -1.53 0. 0. 0. 0. 0. 0. ) + BODY601_NUT_PREC_PM = ( 0. 0. -13.48 0. -44.85 0. 0. 0. 0. ) + + \begintext + + + Enceladus + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY602_POLE_RA = ( 40.66 -0.036 0. ) + BODY602_POLE_DEC = ( 83.52 -0.004 0. ) + BODY602_PM = ( 2.82 262.7318996 0. ) + BODY602_LONG_AXIS = ( 0. ) + + \begintext + + + + Tethys + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY603_POLE_RA = ( 40.66 -0.036 0. ) + BODY603_POLE_DEC = ( 83.52 -0.004 0. ) + BODY603_PM = ( 10.45 190.6979085 0. ) + BODY603_LONG_AXIS = ( 0. ) + + BODY603_NUT_PREC_RA = ( 0. 0. 0. 9.66 0. 0. 0. 0. 0. ) + BODY603_NUT_PREC_DEC = ( 0. 0. 0. -1.09 0. 0. 0. 0. 0. ) + BODY603_NUT_PREC_PM = ( 0. 0. 0. -9.60 2.23 0. 0. 0. 0. ) + + \begintext + + + Dione + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY604_POLE_RA = ( 40.66 -0.036 0. ) + BODY604_POLE_DEC = ( 83.52 -0.004 0. ) + BODY604_PM = ( 357.00 131.5349316 0. ) + BODY604_LONG_AXIS = ( 0. ) + + \begintext + + + + Rhea + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY605_POLE_RA = ( 40.38 -0.036 0. ) + BODY605_POLE_DEC = ( 83.55 -0.004 0. ) + BODY605_PM = ( 235.16 79.6900478 0. ) + BODY605_LONG_AXIS = ( 0. ) + + BODY605_NUT_PREC_RA = ( 0. 0. 0. 0. 0. 3.10 0. 0. 0. ) + BODY605_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. -0.35 0. 0. 0. ) + BODY605_NUT_PREC_PM = ( 0. 0. 0. 0. 0. -3.08 0. 0. 0. ) + + \begintext + + + + Titan + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY606_POLE_RA = ( 36.41 -0.036 0. ) + BODY606_POLE_DEC = ( 83.94 -0.004 0. ) + BODY606_PM = ( 189.64 22.5769768 0. ) + BODY606_LONG_AXIS = ( 0. ) + + BODY606_NUT_PREC_RA = ( 0. 0. 0. 0. 0. 0. 2.66 0. 0 ) + BODY606_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. 0. -0.30 0. 0 ) + BODY606_NUT_PREC_PM = ( 0. 0. 0. 0. 0. 0. -2.64 0. 0 ) + + \begintext + + + + Hyperion + + The IAU report does not give an orientation model for Hyperion. + Hyperion's rotation is in chaotic and is not predictable for + long periods. + + + Iapetus + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY608_POLE_RA = ( 318.16 -3.949 0. ) + BODY608_POLE_DEC = ( 75.03 -1.143 0. ) + BODY608_PM = ( 350.20 4.5379572 0. ) + BODY608_LONG_AXIS = ( 0. ) + + \begintext + + + + Phoebe + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY609_POLE_RA = ( 355.00 0. 0. ) + BODY609_POLE_DEC = ( 68.70 0. 0. ) + BODY609_PM = ( 304.70 930.8338720 0. ) + BODY609_LONG_AXIS = ( 0. ) + + \begintext + + + Janus + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY610_POLE_RA = ( 40.58 -0.036 0. ) + BODY610_POLE_DEC = ( 83.52 -0.004 0. ) + BODY610_PM = ( 58.83 518.2359876 0. ) + BODY610_LONG_AXIS = ( 0. ) + + BODY610_NUT_PREC_RA = ( 0. -1.623 0. 0. 0. 0. 0. 0. 0.023 ) + BODY610_NUT_PREC_DEC = ( 0. -0.183 0. 0. 0. 0. 0. 0. 0.001 ) + BODY610_NUT_PREC_PM = ( 0. 1.613 0. 0. 0. 0. 0. 0. -0.023 ) + + \begintext + + + + Epimetheus + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY611_POLE_RA = ( 40.58 -0.036 0. ) + BODY611_POLE_DEC = ( 83.52 -0.004 0. ) + BODY611_PM = ( 293.87 518.4907239 0. ) + BODY611_LONG_AXIS = ( 0. ) + + BODY611_NUT_PREC_RA = ( -3.153 0. 0. 0. 0. 0. 0. 0.086 0. ) + BODY611_NUT_PREC_DEC = ( -0.356 0. 0. 0. 0. 0. 0. 0.005 0. ) + BODY611_NUT_PREC_PM = ( 3.133 0. 0. 0. 0. 0. 0. -0.086 0. ) + + \begintext + + + + Helene + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY612_POLE_RA = ( 40.85 -0.036 0. ) + BODY612_POLE_DEC = ( 83.34 -0.004 0. ) + BODY612_PM = ( 245.12 131.6174056 0. ) + BODY612_LONG_AXIS = ( 0. ) + + \begintext + + + + Telesto + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY613_POLE_RA = ( 50.51 -0.036 0. ) + BODY613_POLE_DEC = ( 84.06 -0.004 0. ) + BODY613_PM = ( 56.88 190.6979332 0. ) + BODY613_LONG_AXIS = ( 0. ) + + \begintext + + + + Calypso + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY614_POLE_RA = ( 36.41 -0.036 0. ) + BODY614_POLE_DEC = ( 85.04 -0.004 0. ) + BODY614_PM = ( 153.51 190.6742373 0. ) + BODY614_LONG_AXIS = ( 0. ) + + \begintext + + + + Atlas + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY615_POLE_RA = ( 40.58 -0.036 0. ) + BODY615_POLE_DEC = ( 83.53 -0.004 0. ) + BODY615_PM = ( 137.88 598.3060000 0. ) + BODY615_LONG_AXIS = ( 0. ) + + \begintext + + + + Prometheus + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY616_POLE_RA = ( 40.58 -0.036 ) + BODY616_POLE_DEC = ( 83.53 -0.004 ) + BODY616_PM = ( 296.14 587.289000 ) + BODY616_LONG_AXIS = ( 0. ) + + \begintext + + + + Pandora + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY617_POLE_RA = ( 40.58 -0.036 0. ) + BODY617_POLE_DEC = ( 83.53 -0.004 0. ) + BODY617_PM = ( 162.92 572.7891000 0. ) + BODY617_LONG_AXIS = ( 0. ) + + \begintext + + + + Pan + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY618_POLE_RA = ( 40.6 -0.036 0. ) + BODY618_POLE_DEC = ( 83.5 -0.004 0. ) + BODY618_PM = ( 48.8 626.0440000 0. ) + BODY618_LONG_AXIS = ( 0. ) + + \begintext + + + + + +Satellites of Uranus + + + + Ariel + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY701_POLE_RA = ( 257.43 0. 0. ) + BODY701_POLE_DEC = ( -15.10 0. 0. ) + BODY701_PM = ( 156.22 -142.8356681 0. ) + BODY701_LONG_AXIS = ( 0. ) + + BODY701_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0.29 ) + + BODY701_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0.28 ) + + BODY701_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0.05 0.08 ) + \begintext + + + + Umbriel + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY702_POLE_RA = ( 257.43 0. 0. ) + BODY702_POLE_DEC = ( -15.10 0. 0. ) + BODY702_PM = ( 108.05 -86.8688923 0. ) + BODY702_LONG_AXIS = ( 0. ) + + BODY702_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0. 0.21 ) + + BODY702_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0. 0.20 ) + + BODY702_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. -0.09 0. 0.06 ) + + \begintext + + + + Titania + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY703_POLE_RA = ( 257.43 0. 0. ) + BODY703_POLE_DEC = ( -15.10 0. 0. ) + BODY703_PM = ( 77.74 -41.3514316 0. ) + BODY703_LONG_AXIS = ( 0. ) + + BODY703_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.29 ) + + BODY703_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.28 ) + + BODY703_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.08 ) + \begintext + + + + Oberon + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY704_POLE_RA = ( 257.43 0. 0. ) + BODY704_POLE_DEC = ( -15.10 0. 0. ) + BODY704_PM = ( 6.77 -26.7394932 0. ) + BODY704_LONG_AXIS = ( 0. ) + + + BODY704_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0.16 ) + + BODY704_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0.16 ) + + BODY704_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. 0.04 ) + \begintext + + + + Miranda + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + + BODY705_POLE_RA = ( 257.43 0. 0. ) + BODY705_POLE_DEC = ( -15.08 0. 0. ) + BODY705_PM = ( 30.70 -254.6906892 0. ) + BODY705_LONG_AXIS = ( 0. ) + + BODY705_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 4.41 0. 0. 0. 0. + 0. -0.04 0. ) + + BODY705_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 4.25 0. 0. 0. 0. + 0. -0.02 0. ) + + BODY705_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 1.15 -1.27 0. 0. 0. + 0. -0.09 0.15 ) + \begintext + + + + Cordelia + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY706_POLE_RA = ( 257.31 0. 0. ) + BODY706_POLE_DEC = ( -15.18 0. 0. ) + BODY706_PM = ( 127.69 -1074.5205730 0. ) + BODY706_LONG_AXIS = ( 0. ) + + BODY706_NUT_PREC_RA = ( -0.15 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY706_NUT_PREC_DEC = ( 0.14 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY706_NUT_PREC_PM = ( -0.04 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Ophelia + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY707_POLE_RA = ( 257.31 0. 0. ) + BODY707_POLE_DEC = ( -15.18 0. 0. ) + BODY707_PM = ( 130.35 -956.4068150 0. ) + BODY707_LONG_AXIS = ( 0. ) + + BODY707_NUT_PREC_RA = ( 0. -0.09 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY707_NUT_PREC_DEC = ( 0. 0.09 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY707_NUT_PREC_PM = ( 0. -0.03 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Bianca + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY708_POLE_RA = ( 257.31 0. 0. ) + BODY708_POLE_DEC = ( -15.18 0. 0. ) + BODY708_PM = ( 105.46 -828.3914760 0. ) + BODY708_LONG_AXIS = ( 0. ) + + BODY708_NUT_PREC_RA = ( 0. 0. -0.16 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY708_NUT_PREC_DEC = ( 0. 0. 0.16 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY708_NUT_PREC_PM = ( 0. 0. -0.04 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Cressida + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + + BODY709_POLE_RA = ( 257.31 0. 0. ) + BODY709_POLE_DEC = ( -15.18 0. 0. ) + BODY709_PM = ( 59.16 -776.5816320 0. ) + BODY709_LONG_AXIS = ( 0. ) + + + BODY709_NUT_PREC_RA = ( 0. 0. 0. -0.04 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + + BODY709_NUT_PREC_DEC = ( 0. 0. 0. 0.04 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + + BODY709_NUT_PREC_PM = ( 0. 0. 0. -0.01 0. + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + + \begintext + + + + Desdemona + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY710_POLE_RA = ( 257.31 0. 0. ) + BODY710_POLE_DEC = ( -15.18 0. 0. ) + BODY710_PM = ( 95.08 -760.0531690 0. ) + BODY710_LONG_AXIS = ( 0. ) + + BODY710_NUT_PREC_RA = ( 0. 0. 0. 0. -0.17 + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY710_NUT_PREC_DEC = ( 0. 0. 0. 0. 0.16 + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY710_NUT_PREC_PM = ( 0. 0. 0. 0. -0.04 + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Juliet + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY711_POLE_RA = ( 257.31 0. 0. ) + BODY711_POLE_DEC = ( -15.18 0. 0. ) + BODY711_PM = ( 302.56 -730.1253660 0. ) + BODY711_LONG_AXIS = ( 0. ) + + BODY711_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + -0.06 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY711_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0.06 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY711_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + -0.02 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Portia + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY712_POLE_RA = ( 257.31 0. 0. ) + BODY712_POLE_DEC = ( -15.18 0. 0. ) + BODY712_PM = ( 25.03 -701.4865870 0. ) + BODY712_LONG_AXIS = ( 0. ) + + BODY712_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. -0.09 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY712_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0.09 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY712_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. -0.02 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Rosalind + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY713_POLE_RA = ( 257.31 0. 0. ) + BODY713_POLE_DEC = ( -15.18 0. 0. ) + BODY713_PM = ( 314.90 -644.6311260 0. ) + BODY713_LONG_AXIS = ( 0. ) + + BODY713_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. -0.29 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY713_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0.28 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY713_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. -0.08 0. 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + Belinda + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY714_POLE_RA = ( 257.31 0. 0. ) + BODY714_POLE_DEC = ( -15.18 0. 0. ) + BODY714_PM = ( 297.46 -577.3628170 0. ) + BODY714_LONG_AXIS = ( 0. ) + + BODY714_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. -0.03 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY714_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0.03 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY714_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. -0.01 0. + 0. 0. 0. 0. 0. + 0. 0. 0. ) + \begintext + + + + Puck + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY715_POLE_RA = ( 257.31 0. 0. ) + BODY715_POLE_DEC = ( -15.18 0. 0. ) + BODY715_PM = ( 91.24 -472.5450690 0. ) + BODY715_LONG_AXIS = ( 0. ) + + BODY715_NUT_PREC_RA = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. -0.33 + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY715_NUT_PREC_DEC = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0.31 + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + BODY715_NUT_PREC_PM = ( 0. 0. 0. 0. 0. + 0. 0. 0. 0. -0.09 + 0. 0. 0. 0. 0. + 0. 0. 0. ) + + \begintext + + + + +Satellites of Neptune + + + Triton + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY801_POLE_RA = ( 299.36 0. 0. ) + BODY801_POLE_DEC = ( 41.17 0. 0. ) + BODY801_PM = ( 296.53 -61.2572637 0. ) + BODY801_LONG_AXIS = ( 0. ) + + + BODY801_NUT_PREC_RA = ( 0. 0. 0. 0. + 0. 0. 0. -32.35 + 0. -6.28 -2.08 -0.74 + -0.28 -0.11 -0.07 -0.02 + -0.01 ) + + + BODY801_NUT_PREC_DEC = ( 0. 0. 0. 0. + 0. 0. 0. 22.55 + 0. 2.10 0.55 0.16 + 0.05 0.02 0.01 0. + 0. ) + + + BODY801_NUT_PREC_PM = ( 0. 0. 0. 0. + 0. 0. 0. 22.25 + 0. 6.73 2.05 0.74 + 0.28 0.11 0.05 0.02 + 0.01 ) + + \begintext + + + + + Nereid + + Old values: + + Values are from the 1988 IAU report. Note that this + rotation model pre-dated the 1989 Voyager 2 Neptune + encounter. + + + body802_pole_ra = ( 273.48 0. 0. ) + body802_pole_dec = ( 67.22 0. 0. ) + body802_pm = ( 237.22 0.9996465 0. ) + body802_long_axis = ( 0. ) + + + The report seems to have a typo: in the nut_prec_ra expression, + where the report gives -0.51 sin 3N3, we use -0.51 3N2. + + body802_nut_prec_ra = ( 0. -17.81 + 0. 0. 0. 0. + 0. 0. 0. + 2.56 -0.51 0.11 -0.03 ) + + body802_nut_prec_dec = ( 0. -6.67 + 0. 0. 0. 0. + 0. 0. 0. + 0.47 -0.07 0.01 ) + + body802_nut_prec_pm = ( 0. 16.48 + 0. 0. 0. 0. + 0. 0. 0. + -2.57 0.51 -0.11 0.02 ) + + + + Current values: + + The 2000 report [2] states that values for Nereid are not + given because Nereid is not in synchronous rotation with Neptune + (note (j), p.99). + + + + Naiad + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + + \begindata + + BODY803_POLE_RA = ( 299.36 0. 0. ) + BODY803_POLE_DEC = ( 43.36 0. 0. ) + BODY803_PM = ( 254.06 +1222.8441209 0. ) + BODY803_LONG_AXIS = ( 0. ) + + + BODY803_NUT_PREC_RA = ( 0.70 -6.49 0. 0. + 0. 0. 0. 0. + 0.25 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY803_NUT_PREC_DEC = ( -0.51 -4.75 0. 0. + 0. 0. 0. 0. + 0.09 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY803_NUT_PREC_PM = ( -0.48 4.40 0. 0. + 0. 0. 0. 0. + -0.27 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + \begintext + + + + + Thalassa + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY804_POLE_RA = ( 299.36 0. 0. ) + BODY804_POLE_DEC = ( 43.45 0. 0. ) + BODY804_PM = ( 102.06 1155.7555612 0. ) + BODY804_LONG_AXIS = ( 0. ) + + + BODY804_NUT_PREC_RA = ( 0.70 0. -0.28 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + + BODY804_NUT_PREC_DEC = ( -0.51 0. -0.21 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY804_NUT_PREC_PM = ( -0.48 0. 0.19 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + \begintext + + + + Despina + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + + \begindata + + BODY805_POLE_RA = ( 299.36 0. 0. ) + BODY805_POLE_DEC = ( 43.45 0. 0. ) + BODY805_PM = ( 306.51 +1075.7341562 0. ) + BODY805_LONG_AXIS = ( 0. ) + + + BODY805_NUT_PREC_RA = ( 0.70 0. 0. -0.09 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY805_NUT_PREC_DEC = ( -0.51 0. 0. -0.07 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY805_NUT_PREC_PM = ( -0.49 0. 0. 0.06 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + \begintext + + + + Galatea + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + + \begindata + + BODY806_POLE_RA = ( 299.36 0. 0. ) + BODY806_POLE_DEC = ( 43.43 0. 0. ) + BODY806_PM = ( 258.09 839.6597686 0. ) + BODY806_LONG_AXIS = ( 0. ) + + + BODY806_NUT_PREC_RA = ( 0.70 0. 0. 0. + -0.07 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY806_NUT_PREC_DEC = ( -0.51 0. 0. 0. + -0.05 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY806_NUT_PREC_PM = ( -0.48 0. 0. 0. + 0.05 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + \begintext + + + Larissa + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY807_POLE_RA = ( 299.36 0. 0. ) + BODY807_POLE_DEC = ( 43.41 0. 0. ) + BODY807_PM = ( 179.41 +649.0534470 0. ) + BODY807_LONG_AXIS = ( 0. ) + + + BODY807_NUT_PREC_RA = ( 0.70 0. 0. 0. + 0. -0.27 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY807_NUT_PREC_DEC = ( -0.51 0. 0. 0. + 0. -0.20 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY807_NUT_PREC_PM = ( -0.48 0. 0. 0. + 0. 0.19 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + \begintext + + + + Proteus + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY808_POLE_RA = ( 299.27 0. 0. ) + BODY808_POLE_DEC = ( 42.91 0. 0. ) + BODY808_PM = ( 93.38 +320.7654228 0. ) + BODY808_LONG_AXIS = ( 0. ) + + + BODY808_NUT_PREC_RA = ( 0.70 0. 0. 0. + 0. 0. -0.05 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY808_NUT_PREC_DEC = ( -0.51 0. 0. 0. + 0. 0. -0.04 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + BODY808_NUT_PREC_PM = ( -0.48 0. 0. 0. + 0. 0. 0.04 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. ) + + \begintext + + + + + +Satellites of Pluto + + Charon + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY901_POLE_RA = ( 313.02 0. 0. ) + BODY901_POLE_DEC = ( 9.09 0. 0. ) + BODY901_PM = ( 56.77 -56.3623195 0. ) + BODY901_LONG_AXIS = ( 0. ) + + \begintext + + + +Orientation constants for Asteroids Gaspra, Ida, Vesta, and Eros +-------------------------------------------------------- + + +Gaspra + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY9511010_POLE_RA = ( 9.47 0. 0. ) + BODY9511010_POLE_DEC = ( 26.70 0. 0. ) + BODY9511010_PM = ( 83.67 1226.9114850 0. ) + BODY9511010_LONG_AXIS = ( 0. ) + + \begintext + + +Ida + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY2431010_POLE_RA = ( 348.76 0. 0. ) + BODY2431010_POLE_DEC = ( 87.12 0. 0. ) + BODY2431010_PM = ( 265.95 -1864.6280070 0. ) + BODY2431010_LONG_AXIS = ( 0. ) + + \begintext + + +Vesta + + Current values: + + \begindata + + BODY2000004_POLE_RA = ( 301. 0. 0. ) + BODY2000004_POLE_DEC = ( 41. 0. 0. ) + BODY2000004_PM = ( 292. 1617.332776 0. ) + BODY2000004_LONG_AXIS = ( 0. ) + + \begintext + + +Eros + + Current values: + + \begindata + + BODY2000433_POLE_RA = ( 11.35 0. 0. ) + BODY2000433_POLE_DEC = ( 17.22 0. 0. ) + BODY2000433_PM = ( 326.07 1639.38864745 0. ) + BODY2000433_LONG_AXIS = ( 0. ) + + \begintext + + + + +Radii of Sun and Planets +-------------------------------------------------------- + + +Sun + + Value for the Sun is from the [7], page K7. + + \begindata + + BODY10_RADII = ( 696000. 696000. 696000. ) + + \begintext + + +Mercury + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY199_RADII = ( 2439.7 2439.7 2439.7 ) + + \begintext + + +Venus + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY299_RADII = ( 6051.8 6051.8 6051.8 ) + + \begintext + + +Earth + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY399_RADII = ( 6378.14 6378.14 6356.75 ) + + \begintext + + +Mars + + + Old values: + + body499_radii = ( 3397. 3397. 3375. ) + + Current values: + + + The IAU report gives separate values for the north and south + polar radii: + + north: 3373.19 + south: 3379.21 + + We use the average of these values as the polar radius for + the triaxial model. + + \begindata + + BODY499_RADII = ( 3396.19 3396.19 3376.20 ) + + \begintext + + + +Jupiter + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY599_RADII = ( 71492 71492 66854 ) + + \begintext + + + +Saturn + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY699_RADII = ( 60268 60268 54364 ) + + \begintext + + + +Uranus + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY799_RADII = ( 25559 25559 24973 ) + + \begintext + + + +Neptune + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + (Values are for the 1 bar pressure level.) + + \begindata + + BODY899_RADII = ( 24764 24764 24341 ) + + \begintext + + + +Pluto + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY999_RADII = ( 1195 1195 1195 ) + + \begintext + + + + +Radii of Satellites +-------------------------------------------------------- + + +Moon + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY301_RADII = ( 1737.4 1737.4 1737.4 ) + + \begintext + + + +Satellites of Mars + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY401_RADII = ( 13.4 11.2 9.2 ) + BODY402_RADII = ( 7.5 6.1 5.2 ) + + \begintext + + + +Satellites of Jupiter + + Old values: + + Old values for Io, Europa, Ganymede, Callisto and Amalthea. + These are from the 1997 IAU report. + + body501_radii = ( 1826. 1815. 1812. ) + body502_radii = ( 1562. 1560. 1559. ) + body503_radii = ( 2635. 2633. 2633. ) + body504_radii = ( 2409. 2409. 2409. ) + body505_radii = ( 131. 73. 67. ) + body506_radii = ( 85 85 85 ) + body507_radii = ( 40 40 40 ) + body508_radii = ( 18 18 18 ) + body509_radii = ( 14 14 14 ) + body510_radii = ( 12 12 12 ) + body511_radii = ( 15 15 15 ) + body512_radii = ( 10 10 10 ) + body513_radii = ( 5 5 5 ) + body514_radii = ( 50 50 50 ) + body515_radii = ( 13 10 8 ) + body516_radii = ( 20 20 20 ) + + + Current values: + + \begindata + + BODY501_RADII = ( 1829.4 1819.3 1815.7 ) + BODY502_RADII = ( 1564.13 1561.23 1560.93 ) + BODY503_RADII = ( 2632.4 2632.29 2632.35 ) + BODY504_RADII = ( 2409.4 2409.2 2409.3 ) + BODY505_RADII = ( 125 73 64 ) + + \begintext + + Only mean radii are available in the 2000 IAU report for bodies + 506-513. + + \begindata + + BODY506_RADII = ( 85 85 85 ) + BODY507_RADII = ( 40 40 40 ) + BODY508_RADII = ( 18 18 18 ) + BODY509_RADII = ( 14 14 14 ) + BODY510_RADII = ( 12 12 12 ) + BODY511_RADII = ( 15 15 15 ) + BODY512_RADII = ( 10 10 10 ) + BODY513_RADII = ( 5 5 5 ) + BODY514_RADII = ( 58 49 42 ) + BODY515_RADII = ( 10 8 7 ) + + \begintext + + The value for the second radius for body 516 is not given in + 2000 IAU report. The values given are: + + BODY516_RADII = ( 30 --- 20 ) + + For use within the SPICE system, we use only the mean radius. + \begindata + + BODY516_RADII = ( 21.5 21.5 21.5 ) + + \begintext + + + +Satellites of Saturn + + + Old values: + + body601_radii = ( 210.3 197.4 192.6 ) + body602_radii = ( 256.2 247.3 244.0 ) + body603_radii = ( 535.6 528.2 525.8 ) + body604_radii = ( 560. 560. 560. ) + body605_radii = ( 764. 764. 764. ) + body606_radii = ( 2575. 2575. 2575. ) + body607_radii = ( 180. 140. 112.5 ) + body608_radii = ( 718. 718. 718. ) + body609_radii = ( 115. 110. 105. ) + body610_radii = ( 97. 95. 77. ) + body611_radii = ( 69. 55. 55. ) + body612_radii = ( 16 16 16 ) + body613_radii = ( 15 12.5 7.5 ) + body614_radii = ( 15 8 8 ) + body615_radii = ( 18.5 17.2 13.5 ) + body616_radii = ( 74 50 34 ) + body617_radii = ( 55 44 31 ) + body618_radii = ( 10 10 10 ) + + + Current values: + + \begindata + + BODY601_RADII = ( 209.1 196.2 191.4 ) + BODY602_RADII = ( 256.3 247.3 244.6 ) + BODY603_RADII = ( 535.6 528.2 525.8 ) + BODY604_RADII = ( 560 560 560 ) + BODY605_RADII = ( 764 764 764 ) + BODY606_RADII = ( 2575 2575 2575 ) + BODY607_RADII = ( 164 130 107 ) + BODY608_RADII = ( 718 718 718 ) + BODY609_RADII = ( 115 110 105 ) + BODY610_RADII = ( 97.0 95.0 77.0 ) + BODY611_RADII = ( 69.0 55.0 55.0 ) + + \begintext + + Only the first equatorial radius for Helene (body 612) is given in the + 2000 IAU report: + + BODY612_RADII = ( 17.5 --- --- ) + + The mean radius is 16km; we use this radius for all three axes, as + we do for the satellites for which only the mean radius is available. + + + \begindata + + BODY612_RADII = ( 16 16 16 ) + BODY613_RADII = ( 15 12.5 7.5 ) + BODY614_RADII = ( 15.0 8.0 8.0 ) + BODY615_RADII = ( 18.5 17.2 13.5 ) + BODY616_RADII = ( 74.0 50.0 34.0 ) + BODY617_RADII = ( 55.0 44.0 31.0 ) + + \begintext + + + For Pan, only a mean radius is given in the 2000 report. + + \begindata + + BODY618_RADII = ( 10 10 10 ) + + \begintext + + + +Satellites of Uranus + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY701_RADII = ( 581.1 577.9 577.7 ) + BODY702_RADII = ( 584.7 584.7 584.7 ) + BODY703_RADII = ( 788.9 788.9 788.9 ) + BODY704_RADII = ( 761.4 761.4 761.4 ) + BODY705_RADII = ( 240.4 234.2 232.9 ) + + \begintext + + The 2000 report gives only mean radii for satellites 706--715. + + \begindata + + BODY706_RADII = ( 13 13 13 ) + BODY707_RADII = ( 15 15 15 ) + BODY708_RADII = ( 21 21 21 ) + BODY709_RADII = ( 31 31 31 ) + BODY710_RADII = ( 27 27 27 ) + BODY711_RADII = ( 42 42 42 ) + BODY712_RADII = ( 54 54 54 ) + BODY713_RADII = ( 27 27 27 ) + BODY714_RADII = ( 33 33 33 ) + BODY715_RADII = ( 77 77 77 ) + + \begintext + + + + +Satellites of Neptune + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + The 2000 report gives mean radii only for bodies 801-806. + + \begindata + + BODY801_RADII = ( 1352.6 1352.6 1352.6 ) + BODY802_RADII = ( 170 170 170 ) + BODY803_RADII = ( 29 29 29 ) + BODY804_RADII = ( 40 40 40 ) + BODY805_RADII = ( 74 74 74 ) + BODY806_RADII = ( 79 79 79 ) + + \begintext + + + The second equatorial radius for Larissa is not given in the 2000 + report. The available values are: + + BODY807_RADII = ( 104 --- 89 ) + + For use within the SPICE system, we use only the mean radius. + \begindata + + BODY807_RADII = ( 96 96 96 ) + BODY808_RADII = ( 218 208 201 ) + + \begintext + + + + +Satellites of Pluto + + + Old values: + + Values are unchanged in the 2000 IAU report. + + Current values: + + \begindata + + BODY901_RADII = ( 593 593 593 ) + + \begintext + + + +Radii of Selected Asteroids +-------------------------------------------------------- + + +Gaspra + + + Current values: + + + \begindata + + BODY9511010_RADII = ( 9.1 5.2 4.4 ) + + \begintext + + + + +Ida + + + Current values: + + + \begindata + + BODY2431010_RADII = ( 26.8 12.0 7.6 ) + + \begintext + + + + +Kleopatra + + + Current values: + + + \begindata + + BODY2000216_RADII = ( 108.5 47 40.5 ) + + \begintext + + + +Eros + + Current values: + + + \begindata + + BODY2000433_RADII = ( 7.311 7.311 7.311 ) + + \begintext + + +=========================================================================== +End of file pck00008.tpc +=========================================================================== + + + diff --git a/tests/pytests/data/isds/msl_isd.json b/tests/pytests/data/isds/msl_isd.json new file mode 100644 index 0000000000000000000000000000000000000000..496fc0da7def7bf69ccdd64d15fe1e79ead75af9 --- /dev/null +++ b/tests/pytests/data/isds/msl_isd.json @@ -0,0 +1,309 @@ +{ + "isis_camera_version": 1, + "image_lines": 1193, + "image_samples": 1338, + "name_platform": "MARS SCIENCE LABORATORY", + "name_sensor": "MAST CAMERA LEFT", + "reference_height": { + "maxheight": 1000, + "minheight": -1000, + "unit": "m" + }, + "name_model": "USGS_ASTRO_FRAME_SENSOR_MODEL", + "center_ephemeris_time": 598494669.4412209, + "radii": { + "semimajor": 3396.19, + "semiminor": 3376.2, + "unit": "km" + }, + "body_rotation": { + "time_dependent_frames": [ + 10014, + 1 + ], + "ck_table_start_time": 598494669.4412209, + "ck_table_end_time": 598494669.4412209, + "ck_table_original_size": 1, + "ephemeris_times": [ + 598494669.4412209 + ], + "quaternions": [ + [ + -0.31921039676060065, + 0.2937636389682398, + -0.12264933637077348, + 0.8926168199781396 + ] + ], + "angular_velocities": [ + [ + 3.1623010827381965e-05, + -2.881378599775597e-05, + 5.651578887273642e-05 + ] + ], + "reference_frame": 1 + }, + "instrument_pointing": { + "time_dependent_frames": [ + -76204, + -76203, + -76202, + -76201, + -76000, + -76910, + -76900, + 10014, + 1 + ], + "ck_table_start_time": 598494669.4412209, + "ck_table_end_time": 598494669.4412209, + "ck_table_original_size": 1, + "ephemeris_times": [ + 598494669.4412209 + ], + "quaternions": [ + [ + 0.5220816838298279, + -0.21018675356622796, + -0.22520580724316586, + -0.7953204312845581 + ] + ], + "angular_velocities": [ + [ + 0.00023743002562463675, + -0.005620403629369784, + -0.003106243307946095 + ] + ], + "reference_frame": 1, + "constant_frames": [ + -76573, + -76205, + -76204 + ], + "constant_rotation": [ + 0.41995474711084907, + 0.9072597689641163, + -0.022753505185826722, + -0.7790017804603829, + 0.3732225088642592, + 0.5038463901990582, + 0.4656116798563116, + -0.19386766232728606, + 0.8634935396892888 + ] + }, + "naif_keywords": { + "BODY499_RADII": [ + 3396.19, + 3396.19, + 3376.2 + ], + "BODY_FRAME_CODE": 10014, + "BODY_CODE": 499, + "FRAME_-76210_NAME": "MSL_MASTCAM_LEFT", + "INS-76210_CAHVOR_H": [ + 712.373106, + 4664.465028, + 33.182389 + ], + "TKFRAME_-76210_UNITS": "DEGREES", + "INS-76210_IFOV_VERTICAL": 0.01230196, + "INS-76210_CAHVOR_O": [ + 0.999627, + 0.026908, + 0.004759 + ], + "INS-76210_CAHVOR_R": [ + -0.000151, + -0.139189, + -1.250336 + ], + "INS-76210_CAHVOR_V": [ + 570.612488, + -14.279011, + 4648.733195 + ], + "INS-76210_CAHVOR_FILE": "MSL_CAL_003_SN_3003_FILTER_0_FOCUS_02315-MCAML-FLIGHT.cahvor", + "INS-76210_DISTORTION_PIXEL": [ + 837.77915717, + 592.14046615 + ], + "TKFRAME_-76210_AXES": [ + 2.0, + 1.0, + 3.0 + ], + "TKFRAME_-76210_SPEC": "ANGLES", + "INS-76210_FOCAL_LENGTH": 34.0, + "INS-76210_CAHVOR_QUAT": [ + 1e-05, + -0.00325, + -0.00104, + 0.99999 + ], + "INS-76210_CAHVOR_POS": [ + 0.80436, + 0.55942, + -1.90608 + ], + "INS-76210_FOV_BOUNDARY": [ + 0.17483767, + 0.12730492, + 0.97633255, + -0.0, + 0.12834274, + 0.99172987, + -0.17476887, + 0.12719345, + 0.9763594, + -0.17553059 + ], + "INS-76210_PIXEL_LINES": 1200.0, + "INS-76210_CAHVOR_MODEL": " CAHVOR", + "INS-76210_PIXEL_SIZE": 0.0074, + "INS-76210_CAHVOR_HC": 829.187822, + "INS-76210_IFOV_NOMINAL": 0.01247026, + "INS-76210_CAHVOR_HS": 4645.242086, + "INS-76210_BORESIGHT_PIXEL": [ + 829.18782212, + 601.33514402 + ], + "FRAME_-76210_CLASS_ID": -76210.0, + "INS-76210_FOV_CENTER_PIXEL": [ + 823.5, + 599.5 + ], + "INS-76210_FOV_CLASS_SPEC": "CORNERS", + "INS-76210_BORESIGHT": [ + -0.0, + -0.0, + 1.0 + ], + "INS-76210_CAHVOR_THETA": -1.5710039999999998, + "INS-76210_IFOV": 0.01228988, + "TKFRAME_-76210_RELATIVE": "MSL_RSM_HEAD", + "FRAME_-76210_CLASS": 4.0, + "INS-76210_CAHVOR_DIMS": [ + 1648.0, + 1200.0 + ], + "INS-76210_FOV_SHAPE": "POLYGON", + "INS-76210_PIXEL_SAMPLES": 1648.0, + "INS-76210_IFOV_HORIZONTAL": 0.0122778, + "INS-76210_CAHVOR_VC": 601.335144, + "INS-76210_CAHVOR_VS": 4644.882626, + "TKFRAME_-76210_ANGLES": [ + -90.01, + 1.484, + 89.655 + ], + "FRAME_-76210_CENTER": -76.0, + "INS-76210_CAHVOR_A": [ + 0.999664, + 0.025047, + 0.006727 + ], + "INS-76210_CAHVOR_C": [ + 0.767151, + 0.433709, + -1.971648 + ], + "INS-76210_FOV_FRAME": "MSL_MASTCAM_LEFT", + "BODY499_POLE_DEC": [ + 52.8865, + -0.0609, + 0.0 + ], + "BODY499_POLE_RA": [ + 317.68143, + -0.1061, + 0.0 + ], + "BODY499_PM": [ + 176.63, + 350.89198226, + 0.0 + ] + }, + "detector_sample_summing": 1, + "detector_line_summing": 1, + "focal_length_model": { + "focal_length": 34.0 + }, + "detector_center": { + "line": 576.4026068104001, + "sample": 680.1442422028802 + }, + "focal2pixel_lines": [ + 0, + 0, + 136.49886775101945 + ], + "focal2pixel_samples": [ + 0, + -136.49886775101945, + 0 + ], + "optical_distortion": { + "cahvor": { + "coefficients": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "starting_detector_line": 0, + "starting_detector_sample": 0, + "instrument_position": { + "spk_table_start_time": 598494669.4412209, + "spk_table_end_time": 598494669.4412209, + "spk_table_original_size": 1, + "ephemeris_times": [ + 598494669.4412209 + ], + "positions": [ + [ + -42.94908602840011, + -2878.1178384691016, + -1794.0007301446622 + ] + ], + "velocities": [ + [ + 0.2143509476698853, + 0.054297300199827, + -0.09225670467004271 + ] + ], + "reference_frame": 1 + }, + "sun_position": { + "spk_table_start_time": 598494669.4412209, + "spk_table_end_time": 598494669.4412209, + "spk_table_original_size": 1, + "ephemeris_times": [ + 598494669.4412209 + ], + "positions": [ + [ + -178112289.0644448, + -111686023.67244285, + -46420243.18796099 + ] + ], + "velocities": [ + [ + 12.688344510456547, + -19.98128446099907, + -9.507348850576207 + ] + ], + "reference_frame": 1 + } +} \ No newline at end of file diff --git a/tests/pytests/test_msl_drivers.py b/tests/pytests/test_msl_drivers.py index 84fb73be88a97c7054234b7609cc0390cec52150..35900160ef85bc225a8fc6884d65b6bbd71be2ed 100644 --- a/tests/pytests/test_msl_drivers.py +++ b/tests/pytests/test_msl_drivers.py @@ -1,16 +1,40 @@ +import json import numpy as np +import os +import pytest import unittest +import ale +from conftest import get_image, get_image_label, get_isd, get_image_kernels, convert_kernels, compare_dicts from ale.drivers.msl_drivers import MslMastcamPds3NaifSpiceDriver from conftest import get_image_label from unittest.mock import PropertyMock, patch + +@pytest.fixture(scope='module') +def test_mastcam_kernels(): + kernels = get_image_kernels('2264ML0121141200805116C00_DRCL') + updated_kernels, binary_kernels = convert_kernels(kernels) + yield updated_kernels + for kern in binary_kernels: + os.remove(kern) + +def test_msl_mastcam_load(test_mastcam_kernels): + label_file = get_image_label('2264ML0121141200805116C00_DRCL', "pds3") + compare_dict = get_isd("msl") + + isd_str = ale.loads(label_file, props={'kernels': test_mastcam_kernels}) + isd_obj = json.loads(isd_str) + assert compare_dicts(isd_obj, compare_dict) == [] + + class test_mastcam_pds_naif(unittest.TestCase): def setUp(self): label = get_image_label("1664MR0086340000802438C00_DRCL", "pds3") self.driver = MslMastcamPds3NaifSpiceDriver(label) + def test_instrument_id(self): assert self.driver.instrument_id == "MSL_MASTCAM_RIGHT"