diff --git a/tools/tests/test_data/spice/IMAP_launch20250429_1D.bsp b/tools/tests/test_data/spice/IMAP_launch20250429_1D.bsp deleted file mode 100644 index ae24b4728..000000000 Binary files a/tools/tests/test_data/spice/IMAP_launch20250429_1D.bsp and /dev/null differ diff --git a/tools/tests/test_data/spice/earth_000101_230322_221227.bpc b/tools/tests/test_data/spice/earth_000101_230322_221227.bpc new file mode 100644 index 000000000..f8148ead7 Binary files /dev/null and b/tools/tests/test_data/spice/earth_000101_230322_221227.bpc differ diff --git a/tools/tests/test_data/spice/imap3hPrecession_2025_153.ck b/tools/tests/test_data/spice/imap3hPrecession_2025_153.ck deleted file mode 100644 index 7b36705ac..000000000 Binary files a/tools/tests/test_data/spice/imap3hPrecession_2025_153.ck and /dev/null differ diff --git a/tools/tests/test_data/spice/imap_2023_101_2023_103_01.ah.bc b/tools/tests/test_data/spice/imap_2023_101_2023_103_01.ah.bc new file mode 100644 index 000000000..caa6a4d13 --- /dev/null +++ b/tools/tests/test_data/spice/imap_2023_101_2023_103_01.ah.bc @@ -0,0 +1,150 @@ +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/tools/tests/test_data/spice/imap_frames_demo_euler.tf b/tools/tests/test_data/spice/imap_frames_demo_euler.tf new file mode 100644 index 000000000..5fe109006 --- /dev/null +++ b/tools/tests/test_data/spice/imap_frames_demo_euler.tf @@ -0,0 +1,364 @@ +KPL/FK + +Insterstellar Mapping and Acceleration Probe Frames Kernel +======================================================================== + + This frames kernel contains the current set of coordinate frame + definitions for the IMAP spacecraft, and Ultra Instruments. + +Version and Date +======================================================================== + + The TEXT_KERNEL_ID stores version information of loaded project text + kernels. Each entry associated with the keyword is a string that consists + of four parts: the kernel name, version, entry date, and type. For example, + the frames kernel might have an entry as follows: + + TEXT_KERNEL_ID += 'SPP_FRAMES V1.0.0 25-JUNE-2018 FK' + | | | | + | | | | + KERNEL NAME <-------+ | | | + | | V + VERSION <------+ | KERNEL TYPE + | + V + ENTRY DATE + + Parker Solar Probe Frames Kernel Version: + + \begindata + + TEXT_KERNEL_ID += 'IMAP_FRAMES V1.0.0 23-DEC-2022 FK' + + NAIF_BODY_NAME += ( 'IMAP' ) + NAIF_BODY_CODE += ( -43 ) + + \begintext + + + Version 0.0.1 -- Nov. 30, 2022 -- Nick Dutton, JHU/APL + + + Initial Version for Spacecraft, Ultra + + +References +======================================================================== + + 1. 'Frames Required Reading' + + 2. 'Kernel Pool Required Reading' + + 3. 'C-Kernel Required Reading' + + 4. 'IMAP Mapping.pdf', received from Matina G., JHU/APL + + +Contact Information +======================================================================== + + Lillian Nguyen, JHU/APL, + (443)778-5477, Lillian.Nguyen@jhuapl.edu + + Scott Turner, JHU/APL + (443)778-1693, Scott.Turner@jhuapl.edu + + M. Alexandra Matiella Novak, JHU/APL, + (443)802-1417, Alexandra.Matiella.Novak@jhuapl.edu + + Wen-Jong Shyong, JHU/APL + (443)778-8564, Wen-Jong.Shyong@jhuapl.edu + + +Implementation Notes +======================================================================== + + This file is used by the SPICE system as follows: programs that make + use of this frame kernel must `load' the kernel, normally during + program initialization. Loading the kernel associates the data items with + their names in a data structure called the `kernel pool'. The SPICELIB + routine FURNSH loads a kernel into the pool as shown below: + + FORTRAN: (SPICELIB) + + CALL FURNSH ( frame_kernel_name ) + + C: (CSPICE) + + furnsh_c ( frame_kernel_name ); + + IDL: (ICY) + + cspice_furnsh, frame_kernel_name + + MATLAB: (MICE) + + cspice_furnsh ( frame_kernel_name ) + + This file was created and may be updated with a text editor or word + processor. + + +IMAP Frames +======================================================================== + + The ID codes -43000 to -43999 have been reserved for the Interstellar + Mapping and Acceleration Probe frames kernel. + + The following frames are defined in this kernel file: + + Frame Name Relative To Type NAIF ID + ======================= =================== ======= ======= + + Spacecraft Frames: + ------------------ + IMAP_BODY ECLIPJ2000 CK -43000 + + ULTRA Inst Frames: + ------------------ + IMAP_ULTRA90 IMAP_BODY FIXED -43002 + IMAP_ULTRA45 IMAP_BODY FIXED -43003 + + Hi Inst Frames: + --------------- + IMAP_HI90 IMAP_BODY FIXED -43051 + IMAP_HI45 IMAP_BODY FIXED -43052 + + Lo Inst Frames: + --------------- + IMAP_LO IMAP_BODY FIXED -43030 + + MAG Frames (TBD): + ------------- + ID codes -43200 to -43299 + + SWE Frames (TBD): + -------------------- + ID codes -43300 to -43399 + + SWAPI Frames (TBD): + -------------------- + ID codes -43400 to -43499 + + CODICE Frames (TBD): + -------------------- + ID codes -43500 to -43599 + + HIT Frames (TBD): + -------------------- + ID codes -43600 to -43699 + + IDEX Frames (TBD): + -------------------- + ID codes -43700 to -43799 + + GLOWS Frames (TBD): + -------------------- + ID codes -43800 to -43899 + + + +IMAP Frame Tree +======================================================================== + + The diagram below illustrates the IMAP frame hierarchy: + + TBD + + +Spacecraft Frames +======================================================================== + + The orientation of the spacecraft body frame with respect to an inertial + frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3] + for details). + + This frame specifies the rotating X,Y and pointing Z coordinate body + frame. + + \begindata + + FRAME_IMAP_BODY = -43000 + FRAME_-43000_NAME = 'IMAP_BODY' + FRAME_-43000_CLASS = 4 + FRAME_-43000_CLASS_ID = -43000 + FRAME_-43000_CENTER = -43 + CK_-43000_SCLK = -43 + CK_-43000_SPK = -43 + TKFRAME_-43000_SPEC = 'MATRIX' + TKFRAME_-43000_MATRIX = ( 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1 ) + TKFRAME_-43000_RELATIVE = 'IMAP_SPIN' + + \begintext + +Euler / Spinning Frame definition +================================================================== + + Euler definition assuming nominal 4 rpm rotation + (15 seconds per rotation); no nutation. We rotate 24 degrees + per second about the +Z axis in the right-handed sense (CCW if + looking in the -Z direction). + + Initial Freeze epoch is given in TDB. The value is + 2025-APR-15/00:00:00.0 in UTC + + \begindata + + FRAME_IMAP_SPIN = -43005 + FRAME_-43005_NAME = 'IMAP_SPIN' + FRAME_-43005_CLASS = 5 + FRAME_-43005_CLASS_ID = -43005 + FRAME_-43005_CENTER = -43 + FRAME_-43005_RELATIVE = 'IMAP_DPS' + FRAME_-43005_DEF_STYLE = 'PARAMETERIZED' + FRAME_-43005_FAMILY = 'EULER' + FRAME_-43005_EPOCH = @2025-APR-15/00:01:09.185 + FRAME_-43005_AXES = (1,2,3) + FRAME_-43005_UNITS = 'DEGREES' + FRAME_-43005_ANGLE_1_COEFFS = (0, 0) + FRAME_-43005_ANGLE_2_COEFFS = (0, 0) + FRAME_-43005_ANGLE_3_COEFFS = (0, -24) + + \begintext + +Dynamic IMAP SUN Frame Definition +=============================================================== +Note the freeze epoch must be overwritten as defined for each Pointing +Initial Freeze epoch is given in TDB. The value is 2025-APR-15/00:00:00.0 +in UTC + +\begindata + FRAME_IMAP_SUN = -43006 + FRAME_-43006_NAME = 'IMAP_SUN' + FRAME_-43006_CLASS = 5 + FRAME_-43006_CLASS_ID = -43006 + FRAME_-43006_CENTER = -43 + FRAME_-43006_RELATIVE = 'ECLIPJ2000' + FRAME_-43006_DEF_STYLE = 'PARAMETERIZED' + FRAME_-43006_FAMILY = 'TWO-VECTOR' + FRAME_-43006_PRI_AXIS = 'Z' + FRAME_-43006_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' + FRAME_-43006_PRI_OBSERVER = -43 + FRAME_-43006_PRI_TARGET = 'SUN' + FRAME_-43006_PRI_ABCORR = 'NONE' + FRAME_-43006_PRI_FRAME = 'ECLIPJ2000' + FRAME_-43006_SEC_AXIS = 'X' + FRAME_-43006_SEC_VECTOR_DEF = 'CONSTANT' + FRAME_-43006_SEC_SPEC = 'RECTANGULAR' + FRAME_-43006_SEC_FRAME = 'ECLIPJ2000' + FRAME_-43006_SEC_VECTOR = (0,0,1) + FRAME_-43006_FREEZE_EPOCH = @2025-APR-15/00:01:09.185 + + +\begintext + +IMAP DPS frame - a rotation of the IMAP SUN frame 4 degrees off the sun +======================================================================= + +\begindata + + FRAME_IMAP_DPS = -43007 + FRAME_-43007_NAME = 'IMAP_DPS' + FRAME_-43007_CLASS = 4 + FRAME_-43007_CLASS_ID = -43007 + FRAME_-43007_CENTER = -43 + TKFRAME_-43007_SPEC = 'ANGLES' + TKFRAME_-43007_UNITS = 'DEGREES' + TKFRAME_-43007_AXES = (1, 2, 3) + TKFRAME_-43007_ANGLES = (4.0, 0.0, 0.0) + TKFRAME_-43007_RELATIVE = 'IMAP_SUN' + + +\begintext + +ULTRA 90 +======================================================================== + + IMAP Ultra 90 Nominal Alignment [ref: IMAP Mapping Doc] + + Ultra 90's boresight is in the IMAP Body X-Y plane and 168 degrees + from the +Y body axis. We define its frame orientation by a series of + Euler Angle rotations. + + In the body frame, +Z points into the page, X and Y are 90 degrees + apart in a plane perpendicular to the Z axis. + + The first rotation is 90 degrees about the body +X direction CW + if looking in the -X direction. This orients the +Z' angle with the + body frame +Y and +Y' pointing out of the page. The next rotation + is about the +Y' axis by the offset angle 168 degrees and aligns + +Z'' with the instrument boresight and offsets +X' = +X by 168 degrees + as well. The Final rotation is about the +Z'', again CW if looking in + the -Z'' direction, about 90 degrees to put the +Y'' and +X'' in the + proper instrument frame orientation. +Y''' points in the opposite + direction of the spacecrafts rotation. + + + \begindata + + FRAME_IMAP_ULTRA90 = -43002 + FRAME_-43002_NAME = 'IMAP_ULTRA90' + FRAME_-43002_CLASS = 4 + FRAME_-43002_CLASS_ID = -43002 + FRAME_-43002_CENTER = -43 + TKFRAME_-43002_SPEC = 'ANGLES' + TKFRAME_-43002_ANGLES = (90, 168.0, 90.0) + TKFRAME_-43002_AXES = (1, 2, 3) + TKFRAME_-43002_UNITS = 'DEGREES' + TKFRAME_-43002_RELATIVE = 'IMAP_BODY' + + \begintext + +ULTRA 45 +======================================================================== + + + IMAP Ultra 45 Nominal Alignment [ref: IMAP Mapping Doc] + + Ultra 45's boresight is 45 degrees off of the IMAP Body X-Y plane and + -12 degrees from the +Y body axis. + + We define its frame orientation by a series of Euler Angle rotations. + + In the body frame, +Z points into the page, X and Y are 90 degrees + apart in a plane perpendicular to the Z axis. + + The first rotation is 12 degrees about the body +Z direction CW + if looking in the -Z direction. This orients the +Y' angle 12 degrees + off the with the body frame +Y and +X' 12 degrees off of the body frame + +X. The next rotation is about the +X' axis by the offset 135 degrees + and aligns +Z'' with the instrument boresight. The Final rotation is + about the +Z'', CW if looking in the -Z'' direction, 90 degrees to put + the +Y'''' and +X'''' in the proper instrument frame orientation. +Y''' + points in the opposite direction of the spacecrafts rotation. + + \begindata + + FRAME_IMAP_ULTRA45 = -43003 + FRAME_-43003_NAME = 'IMAP_ULTRA45' + FRAME_-43003_CLASS = 4 + FRAME_-43003_CLASS_ID = -43003 + FRAME_-43003_CENTER = -43 + TKFRAME_-43003_SPEC = 'ANGLES' + TKFRAME_-43003_ANGLES = (12, 135, 90.0) + TKFRAME_-43003_AXES = (3, 1, 3) + TKFRAME_-43003_UNITS = 'DEGREES' + TKFRAME_-43003_RELATIVE = 'IMAP_BODY' + + + \begintext + + +IMAP-Hi90 Frames +=========================================================================== + +TBD + diff --git a/tools/tests/test_data/spice/imap_lo_starsensor_instrument_demo.ti b/tools/tests/test_data/spice/imap_lo_starsensor_instrument_demo.ti new file mode 100644 index 000000000..257fe23c7 --- /dev/null +++ b/tools/tests/test_data/spice/imap_lo_starsensor_instrument_demo.ti @@ -0,0 +1,321 @@ +KPL/IK + +Insterstellar Mapping and Acceleration Probe - Star Sensor Instrument Kernel +======================================================================== + + This instrument kernel contains the instrument field of view for the + IMAP-Lo Star Sensor instrument. + +Version and Date +======================================================================== + + The TEXT_KERNEL_ID stores version information of loaded project text + kernels. Each entry associated with the keyword is a string that consists + of four parts: the kernel name, version, entry date, and type. For example, + the frames kernel might have an entry as follows: + + TEXT_KERNEL_ID += 'SPP_FRAMES V1.0.0 25-JUNE-2018 FK' + | | | | + | | | | + KERNEL NAME <-------+ | | | + | | V + VERSION <------+ | KERNEL TYPE + | + V + ENTRY DATE + Define the instrument kernel for the normal FOV. + See build_ultra_fov_boundary.m + + \begindata + + NAIF_BODY_NAME += ( 'IMAP_LO_SS1' ) + NAIF_BODY_CODE += ( -43031 ) + + NAIF_BODY_NAME += ( 'IMAP_LO_SS2' ) + NAIF_BODY_CODE += ( -43032 ) + + + INS-43031_FOV_SHAPE = 'POLYGON' + INS-43031_FOV_CLASS_SPEC = 'CORNERS' + INS-43031_FOV_FRAME = 'IMAP_LO_SS1' + INS-43031_BORESIGHT = (0.0, 0.0, 1.0) + INS-43031_FOV_BOUNDARY_CORNERS = (-0.054654, -0.005486, 0.99849, + -0.072446, 0.063889, 0.99532, + -0.072684, 0.064643, 0.99526, + -0.073004, 0.06537, 0.99519, + -0.073404, 0.066063, 0.99511, + -0.073882, 0.066718, 0.99503, + -0.074434, 0.067329, 0.99495, + -0.075056, 0.067892, 0.99487, + -0.075743, 0.068403, 0.99478, + -0.076489, 0.068857, 0.99469, + -0.077289, 0.069251, 0.9946, + -0.078137, 0.069583, 0.99451, + -0.079026, 0.069849, 0.99442, + -0.07995, 0.070048, 0.99433, + -0.080902, 0.070178, 0.99425, + -0.081874, 0.070239, 0.99416, + -0.082859, 0.070229, 0.99408, + -0.08385, 0.070149, 0.99401, + -0.084839, 0.069999, 0.99393, + -0.085818, 0.069781, 0.99386, + -0.08678, 0.069496, 0.9938, + -0.087718, 0.069147, 0.99374, + -0.088624, 0.068735, 0.99369, + -0.089492, 0.068265, 0.99365, + -0.090316, 0.067739, 0.99361, + -0.091088, 0.067162, 0.99358, + -0.091803, 0.066538, 0.99355, + -0.092456, 0.065872, 0.99354, + -0.093041, 0.065169, 0.99353, + -0.093555, 0.064434, 0.99353, + -0.093993, 0.063673, 0.99353, + -0.094351, 0.062892, 0.99355, + -0.094628, 0.062096, 0.99357, + -0.094821, 0.061292, 0.99361, + -0.094929, 0.060485, 0.99364, + -0.09495, 0.059683, 0.99369, + -0.094885, 0.05889, 0.99374, + -0.094734, 0.058113, 0.9938, + -0.076999, -0.011276, 0.99697, + -0.058868, -0.080608, 0.99501, + -0.058623, -0.081362, 0.99496, + -0.058296, -0.082087, 0.99492, + -0.057888, -0.08278, 0.99489, + -0.057403, -0.083434, 0.99486, + -0.056844, -0.084044, 0.99484, + -0.056216, -0.084606, 0.99483, + -0.055524, -0.085116, 0.99482, + -0.054772, -0.085569, 0.99483, + -0.053967, -0.085963, 0.99484, + -0.053114, -0.086294, 0.99485, + -0.05222, -0.08656, 0.99488, + -0.051292, -0.086758, 0.99491, + -0.050337, -0.086888, 0.99495, + -0.049363, -0.086948, 0.99499, + -0.048375, -0.086938, 0.99504, + -0.047383, -0.086858, 0.99509, + -0.046394, -0.086708, 0.99515, + -0.045414, -0.08649, 0.99522, + -0.044452, -0.086205, 0.99529, + -0.043515, -0.085855, 0.99536, + -0.04261, -0.085444, 0.99543, + -0.041744, -0.084974, 0.99551, + -0.040924, -0.084449, 0.99559, + -0.040155, -0.083872, 0.99567, + -0.039443, -0.083249, 0.99575, + -0.038795, -0.082583, 0.99583, + -0.038214, -0.081881, 0.99591, + -0.037706, -0.081147, 0.99599, + -0.037274, -0.080387, 0.99607, + -0.036921, -0.079606, 0.99614, + -0.03665, -0.078811, 0.99622, + -0.036464, -0.078007, 0.99629, + -0.036364, -0.077202, 0.99635, + -0.036349, -0.0764, 0.99641, + -0.036422, -0.075608, 0.99647, + -0.03658, -0.074833, 0.99652) + + + +INS-43003_FOV_SHAPE = 'POLYGON' + INS-43032_FOV_CLASS_SPEC = 'CORNERS' + INS-43032_FOV_FRAME = 'IMAP_LO_SS2' + INS-43032_BORESIGHT = (0.0, 0.0, 1.0) + INS-43032_FOV_BOUNDARY_CORNERS = (0.076999, -0.011276, 0.99697, + 0.094734, 0.058113, 0.9938, + 0.094885, 0.05889, 0.99374, + 0.09495, 0.059683, 0.99369, + 0.094929, 0.060485, 0.99364, + 0.094821, 0.061292, 0.99361, + 0.094628, 0.062096, 0.99357, + 0.094351, 0.062892, 0.99355, + 0.093993, 0.063673, 0.99353, + 0.093555, 0.064434, 0.99353, + 0.093041, 0.065169, 0.99353, + 0.092456, 0.065872, 0.99354, + 0.091803, 0.066538, 0.99355, + 0.091088, 0.067162, 0.99358, + 0.090316, 0.067739, 0.99361, + 0.089492, 0.068265, 0.99365, + 0.088624, 0.068735, 0.99369, + 0.087718, 0.069147, 0.99374, + 0.08678, 0.069496, 0.9938, + 0.085818, 0.069781, 0.99386, + 0.084839, 0.069999, 0.99393, + 0.08385, 0.070149, 0.99401, + 0.082859, 0.070229, 0.99408, + 0.081874, 0.070239, 0.99416, + 0.080902, 0.070178, 0.99425, + 0.07995, 0.070048, 0.99433, + 0.079026, 0.069849, 0.99442, + 0.078137, 0.069583, 0.99451, + 0.077289, 0.069251, 0.9946, + 0.076489, 0.068857, 0.99469, + 0.075743, 0.068403, 0.99478, + 0.075056, 0.067892, 0.99487, + 0.074434, 0.067329, 0.99495, + 0.073882, 0.066718, 0.99503, + 0.073404, 0.066063, 0.99511, + 0.073004, 0.06537, 0.99519, + 0.072684, 0.064643, 0.99526, + 0.072446, 0.063889, 0.99532, + 0.054654, -0.005486, 0.99849, + 0.03658, -0.074833, 0.99652, + 0.036422, -0.075608, 0.99647, + 0.036349, -0.0764, 0.99641, + 0.036364, -0.077202, 0.99635, + 0.036464, -0.078007, 0.99629, + 0.03665, -0.078811, 0.99622, + 0.036921, -0.079606, 0.99614, + 0.037274, -0.080387, 0.99607, + 0.037706, -0.081147, 0.99599, + 0.038214, -0.081881, 0.99591, + 0.038795, -0.082583, 0.99583, + 0.039443, -0.083249, 0.99575, + 0.040155, -0.083872, 0.99567, + 0.040924, -0.084449, 0.99559, + 0.041744, -0.084974, 0.99551, + 0.04261, -0.085444, 0.99543, + 0.043515, -0.085855, 0.99536, + 0.044452, -0.086205, 0.99529, + 0.045414, -0.08649, 0.99522, + 0.046394, -0.086708, 0.99515, + 0.047383, -0.086858, 0.99509, + 0.048375, -0.086938, 0.99504, + 0.049363, -0.086948, 0.99499, + 0.050337, -0.086888, 0.99495, + 0.051292, -0.086758, 0.99491, + 0.05222, -0.08656, 0.99488, + 0.053114, -0.086294, 0.99485, + 0.053967, -0.085963, 0.99484, + 0.054772, -0.085569, 0.99483, + 0.055524, -0.085116, 0.99482, + 0.056216, -0.084606, 0.99483, + 0.056844, -0.084044, 0.99484, + 0.057403, -0.083434, 0.99486, + 0.057888, -0.08278, 0.99489, + 0.058296, -0.082087, 0.99492, + 0.058623, -0.081362, 0.99496, + 0.058868, -0.080608, 0.99501) + + \begintext + + + Version 0.0.1 -- Dec. 05, 2022 -- Nick Dutton, JHU/APL + + + Initial Version + + +References +======================================================================== + + 1. 'Frames Required Reading' + + 2. 'Kernel Pool Required Reading' + + 3. 'C-Kernel Required Reading' + + 4. 'IMAP Mapping.pdf', received from Matina G., JHU/APL + + +Contact Information +======================================================================== + + Lillian Nguyen, JHU/APL, + (443)778-5477, Lillian.Nguyen@jhuapl.edu + + Scott Turner, JHU/APL + (443)778-1693, Scott.Turner@jhuapl.edu + + M. Alexandra Matiella Novak, JHU/APL, + (443)802-1417, Alexandra.Matiella.Novak@jhuapl.edu + + Wen-Jong Shyong, JHU/APL + (443)778-8564, Wen-Jong.Shyong@jhuapl.edu + + +Implementation Notes +======================================================================== + + This file is used by the SPICE system as follows: programs that make + use of this frame kernel must `load' the kernel, normally during + program initialization. Loading the kernel associates the data items with + their names in a data structure called the `kernel pool'. The SPICELIB + routine FURNSH loads a kernel into the pool as shown below: + + FORTRAN: (SPICELIB) + + CALL FURNSH ( frame_kernel_name ) + + C: (CSPICE) + + furnsh_c ( frame_kernel_name ); + + IDL: (ICY) + + cspice_furnsh, frame_kernel_name + + MATLAB: (MICE) + + cspice_furnsh ( frame_kernel_name ) + + This file was created and may be updated with a text editor or word + processor. + + +IMAP Frames +======================================================================== + + The ID codes -96900 to -96999 have been reserved for the Parker Solar + Probe dynamics frames kernel [12] and are not utilized in this file. + + The following frames are defined in this kernel file: + + Frame Name Relative To Type NAIF ID + ======================= =================== ======= ======= + + Spacecraft Frames: + ------------------ + IMAP_SPACECRAFT ECLIPJ2000 CK -43000 + + Spacecraft ENA Inst Frames: + ----------------------- + IMAP_ULTRA90 IMAP_SPACECRAFT FIXED -43002 + IMAP_ULTRA45 IMAP_SPACECRAFT FIXED -43003 + IMAP_HI_90 IMAP_SPACECRAFT FIXED -43061 + IMAP_HI_45 IMAP_SPACECRAFT FIXED -43062 + IMAP_LO IMAP_SPACECRAFT FIXED -43030 + + MAG Frames (TBD): + ------------- + ID codes -43200 to -43299 + + SWE Frames (TBD): + -------------------- + ID codes -43300 to -43399 + + SWAPI Frames (TBD): + -------------------- + ID codes -43400 to -43499 + + CODICE Frames (TBD): + -------------------- + ID codes -43500 to -43599 + + HIT Frames (TBD): + -------------------- + ID codes -43600 to -43699 + + IDEX Frames (TBD): + -------------------- + ID codes -43700 to -43799 + + GLOWS Frames (TBD): + -------------------- + ID codes -43800 to -43899 + + + + diff --git a/tools/tests/test_data/spice/imap_sclk_0000.tsc b/tools/tests/test_data/spice/imap_sclk_0000.tsc index c52514a3c..345cedeb0 100644 --- a/tools/tests/test_data/spice/imap_sclk_0000.tsc +++ b/tools/tests/test_data/spice/imap_sclk_0000.tsc @@ -1,147 +1,156 @@ -\begintext - -FILENAME = "imap_0000.tsc" -CREATION_DATE = "2-October-2018" - - -IMAP Spacecraft Clock Kernel (SCLK) -=========================================================================== - - This file is a SPICE spacecraft clock (SCLK) kernel containing - information required for time conversions involving the on-board - IMAP spacecraft clock. - -Version --------------------------------------------------------- - - IMAP SCLK Kernel Version: - - IMAP Version 0.0 - April 12, 2023 -- Ian W. Murphy - The initial IMAP spice kernel. - This file was created by using DART initial kernel and - modifying the spacecraft ID. - - -Usage --------------------------------------------------------- - - This file is used by the SPICE system as follows: programs that - make use of this SCLK kernel must 'load' the kernel, normally - during program initialization. Loading the kernel associates - the data items with their names in a data structure called the - 'kernel pool'. The SPICELIB routine FURNSH loads text kernel - files, such as this one, into the pool as shown below: - - FORTRAN: - - CALL FURNSH ( SCLK_kernel_name ) - - C: - - furnsh_c ( SCLK_kernel_name ); - - Once loaded, the SCLK time conversion routines will be able to - access the necessary data located in this kernel for their - designed purposes. - -References --------------------------------------------------------- - - 1. "SCLK Required Reading" - -Inquiries --------------------------------------------------------- - - If you have any questions regarding this file or its usage, - contact: - - Scott Turner - (443)778-1693 - Scott.Turner@jhuapl.edu - -Kernel Data --------------------------------------------------------- - - The first block of keyword equals value assignments define the - type, parallel time system, and format of the spacecraft clock. - These fields are invariant from SCLK kernel update to SCLK - kernel update. - - The IMAP spacecraft clock is represented by the SPICE - type 1 SCLK kernel. It uses TDT, Terrestrial Dynamical Time, - as its parallel time system. - -\begindata - -SCLK_KERNEL_ID = ( @2009-07-09T12:20:32 ) -SCLK_DATA_TYPE_43 = ( 1 ) -SCLK_DATA_TYPE_43000 = ( 1 ) -SCLK01_TIME_SYSTEM_43 = ( 2 ) - -\begintext - - In a particular partition of the IMAP spacecraft clock, - the clock read-out consists of two separate stages: - - 1/18424652:24251 - - The first stage, a 32 bit field, represents the spacecraft - clock seconds count. The second, a 16 bit field, represents - counts of 20 microsecond increments of the spacecraft clock. - - The following keywords and their values establish this structure: - -\begindata - -SCLK01_N_FIELDS_43 = ( 2 ) -SCLK01_MODULI_43 = ( 4294967296 50000 ) -SCLK01_OFFSETS_43 = ( 0 0 ) -SCLK01_OUTPUT_DELIM_43 = ( 2 ) - - -\begintext - - This concludes the invariant portion of the SCLK kernel data. The - remaining sections of the kernel may require updates as the clock - correlation coefficients evolve in time. The first section below - establishes the clock partitions. The data in this section consists - of two parallel arrays, which denote the start and end values in - ticks of each partition of the spacecraft clock. - - SPICE utilizes these two arrays to map from spacecraft clock ticks, - determined with the usual modulo arithmetic, to encoded SCLK--the - internal, monotonically increasing sequence used to tag various - data sources with spacecraft clock. - -\begindata - -SCLK_PARTITION_START_43 = ( 0.00000000000000e+00 ) - -SCLK_PARTITION_END_43 = ( 2.14748364799999e+14 ) - -\begintext - - The remaining section of the SCLK kernel defines the clock correlation - coefficients. Each line contains a 'coefficient triple': - - Encoded SCLK at which Rate is introduced. - Corresponding TDT Epoch at which Rate is introduced. - Rate in TDT (seconds) / most significant clock count (~seconds). - - SPICE uses linear extrapolation to convert between the parallel time - system and encoded SCLK. The triples are stored in the array defined - below. - - The first time triplet below was entered manually and represents the - approximate time (in TDT) at which MET = zero. The current plan for - IMAP is that the given epoch will be used for both Observatory I&T - and launch. Note that the conversion from UTC to TDT used 34 leap - seconds. - -\begindata - -SCLK01_COEFFICIENTS_43 = ( - - 0 @01-JAN-2010-00:01:06.184000 1.00000000000 - -) +\begintext + +FILENAME = "imap_0000.tsc" +CREATION_DATE = "5-January-2021" + + +IMAP Spacecraft Clock Kernel (SCLK) +=========================================================================== + + This file is a SPICE spacecraft clock (SCLK) kernel containing + information required for time conversions involving the on-board + IMAP spacecraft clock. + +Version +-------------------------------------------------------- + + IMAP SCLK Kernel Version: + + IMAP version 0.3 - April 22, 2022 -- Mike Ruffolo + Updated to use NAIF SC ID 43 + + IMAP Version 0.2 - June 2, 2021 -- Caroline Cocca + Updated to use temporary spacecraft id of 225 + + IMAP Version 0.1 - March 6, 2015 -- Eric Melin + Updated text to replace references to RBSP with SPP + + IMAP Version 0.0 - August 7, 2014 -- Eric Melin + The initial SPP spice kernel. + This file was created by using RBSPA initial kernel and + modifying the spacecraft ID. + + +Usage +-------------------------------------------------------- + + This file is used by the SPICE system as follows: programs that + make use of this SCLK kernel must 'load' the kernel, normally + during program initialization. Loading the kernel associates + the data items with their names in a data structure called the + 'kernel pool'. The SPICELIB routine FURNSH loads text kernel + files, such as this one, into the pool as shown below: + + FORTRAN: + + CALL FURNSH ( SCLK_kernel_name ) + + C: + + furnsh_c ( SCLK_kernel_name ); + + Once loaded, the SCLK time conversion routines will be able to + access the necessary data located in this kernel for their + designed purposes. + +References +-------------------------------------------------------- + + 1. "SCLK Required Reading" + +Inquiries +-------------------------------------------------------- + + If you have any questions regarding this file or its usage, + contact: + + Scott Turner + (443)778-1693 + Scott.Turner@jhuapl.edu + +Kernel Data +-------------------------------------------------------- + + The first block of keyword equals value assignments define the + type, parallel time system, and format of the spacecraft clock. + These fields are invariant from SCLK kernel update to SCLK + kernel update. + + The IMAP spacecraft clock is represented by the SPICE + type 1 SCLK kernel. It uses TDT, Terrestrial Dynamical Time, + as its parallel time system. + +\begindata + +SCLK_KERNEL_ID = ( @2009-07-09T12:20:32 ) +SCLK_DATA_TYPE_43 = ( 1 ) +SCLK01_TIME_SYSTEM_43 = ( 2 ) + + +\begintext + + In a particular partition of the IMAP spacecraft clock, + the clock read-out consists of two separate stages: + + 1/18424652:24251 + + The first stage, a 32 bit field, represents the spacecraft + clock seconds count. The second, a 16 bit field, represents + counts of 20 microsecond increments of the spacecraft clock. + + The following keywords and their values establish this structure: + +\begindata + +SCLK01_N_FIELDS_43 = ( 2 ) +SCLK01_MODULI_43 = ( 4294967296 50000 ) +SCLK01_OFFSETS_43 = ( 0 0 ) +SCLK01_OUTPUT_DELIM_43 = ( 2 ) + + +\begintext + + This concludes the invariant portion of the SCLK kernel data. The + remaining sections of the kernel may require updates as the clock + correlation coefficients evolve in time. The first section below + establishes the clock partitions. The data in this section consists + of two parallel arrays, which denote the start and end values in + ticks of each partition of the spacecraft clock. + + SPICE utilizes these two arrays to map from spacecraft clock ticks, + determined with the usual modulo arithmetic, to encoded SCLK--the + internal, monotonically increasing sequence used to tag various + data sources with spacecraft clock. + +\begindata + +SCLK_PARTITION_START_43 = ( 0.00000000000000e+00 ) + +SCLK_PARTITION_END_43 = ( 2.14748364799999e+14 ) + +\begintext + + The remaining section of the SCLK kernel defines the clock correlation + coefficients. Each line contains a 'coefficient triple': + + Encoded SCLK at which Rate is introduced. + Corresponding TDT Epoch at which Rate is introduced. + Rate in TDT (seconds) / most significant clock count (~seconds). + + SPICE uses linear extrapolation to convert between the parallel time + system and encoded SCLK. The triples are stored in the array defined + below. + + The first time triplet below was entered manually and represents the + approximate time (in TDT) at which SCLK = zero. The current plan for + IMAP is that the given epoch will be used for both Observatory I&T + and launch. Note that the conversion from UTC to TDT used 34 leap + seconds. + +\begindata + +SCLK01_COEFFICIENTS_43 = ( + + 0 @01-JAN-2010-00:01:06.184000 1.00000000000 + +) diff --git a/tools/tests/test_data/spice/imap_spk_demo.bsp b/tools/tests/test_data/spice/imap_spk_demo.bsp new file mode 100644 index 000000000..e8b7578f6 Binary files /dev/null and b/tools/tests/test_data/spice/imap_spk_demo.bsp differ diff --git a/tools/tests/test_data/spice/imap_static_kernels_euler.tm b/tools/tests/test_data/spice/imap_static_kernels_euler.tm new file mode 100644 index 000000000..8ae8e2475 --- /dev/null +++ b/tools/tests/test_data/spice/imap_static_kernels_euler.tm @@ -0,0 +1,17 @@ +KPL/MK + +Meta kernel that loads the IMAP configuration kernels. + +\begindata + + PATH_SYMBOLS += ( 'IMAP' ) + PATH_VALUES += ( '.' ) + + + KERNELS_TO_LOAD += ( '$IMAP/naif0012.tls' + '$IMAP/imap_frames_demo_euler.tf' + '$IMAP/imap_ultra_instrument_demo.ti' + '$IMAP/de440.bsp' ) + + +\begintext diff --git a/tools/tests/test_data/spice/imap_ultra_instrument_demo.ti b/tools/tests/test_data/spice/imap_ultra_instrument_demo.ti new file mode 100644 index 000000000..f2181098e --- /dev/null +++ b/tools/tests/test_data/spice/imap_ultra_instrument_demo.ti @@ -0,0 +1,268 @@ +KPL/IK + +Insterstellar Mapping and Acceleration Probe - Ultra Instrument Kernel +======================================================================== + + This instrument kernel contains the instrument field of view for the + IMAP-Ultra instrument. + +Version and Date +======================================================================== + + The TEXT_KERNEL_ID stores version information of loaded project text + kernels. Each entry associated with the keyword is a string that consists + of four parts: the kernel name, version, entry date, and type. For example, + the frames kernel might have an entry as follows: + + TEXT_KERNEL_ID += 'SPP_FRAMES V1.0.0 25-JUNE-2018 FK' + | | | | + | | | | + KERNEL NAME <-------+ | | | + | | V + VERSION <------+ | KERNEL TYPE + | + V + ENTRY DATE + Define the instrument kernel for the normal FOV. + See build_ultra_fov_boundary.m + + \begindata + + NAIF_BODY_NAME += ( 'IMAP_ULTRA90' ) + NAIF_BODY_CODE += ( -43002 ) + + NAIF_BODY_NAME += ( 'IMAP_ULTRA45' ) + NAIF_BODY_CODE += ( -43003 ) + + + INS-43002_FOV_SHAPE = 'POLYGON' + INS-43002_FOV_CLASS_SPEC = 'CORNERS' + INS-43002_FOV_FRAME = 'IMAP_ULTRA90' + INS-43002_BORESIGHT = (0.0, 0.0, 1.0) + INS-43002_FOV_BOUNDARY_CORNERS = (0.72139, -0.59975, 0.34627, + 0.74009, -0.55089, 0.38574, + 0.75402, -0.50318, 0.42222, + 0.76463, -0.45571, 0.45571, + 0.77286, -0.4079, 0.48612, + 0.77929, -0.35944, 0.51334, + 0.78432, -0.31018, 0.53724, + 0.78824, -0.26006, 0.55771, + 0.79124, -0.20915, 0.57462, + 0.79346, -0.15752, 0.58789, + 0.79498, -0.10534, 0.59742, + 0.79587, -0.05277, 0.60316, + 0.79616, 0, 0.60508, + 0.79587, 0.05277, 0.60316, + 0.79498, 0.10534, 0.59742, + 0.79346, 0.15752, 0.58789, + 0.79124, 0.20915, 0.57462, + 0.78824, 0.26006, 0.55771, + 0.78432, 0.31018, 0.53724, + 0.77929, 0.35944, 0.51334, + 0.77286, 0.4079, 0.48612, + 0.76463, 0.45571, 0.45571, + 0.75402, 0.50318, 0.42222, + 0.74009, 0.55089, 0.38574, + 0.72139, 0.59975, 0.34627, + -0.72139, 0.59975, 0.34627, + -0.74009, 0.55089, 0.38574, + -0.75402, 0.50318, 0.42222, + -0.76463, 0.45571, 0.45571, + -0.77286, 0.4079, 0.48612, + -0.77929, 0.35944, 0.51334, + -0.78432, 0.31018, 0.53724, + -0.78824, 0.26006, 0.55771, + -0.79124, 0.20915, 0.57462, + -0.79346, 0.15752, 0.58789, + -0.79498, 0.10534, 0.59742, + -0.79587, 0.05277, 0.60316, + -0.79616, 0, 0.60508, + -0.79587, -0.05277, 0.60316, + -0.79498, -0.10534, 0.59742, + -0.79346, -0.15752, 0.58789, + -0.79124, -0.20915, 0.57462, + -0.78824, -0.26006, 0.55771, + -0.78432, -0.31018, 0.53724, + -0.77929, -0.35944, 0.51334, + -0.77286, -0.4079, 0.48612, + -0.76463, -0.45571, 0.45571, + -0.75402, -0.50318, 0.42222, + -0.74009, -0.55089, 0.38574, + -0.72139, -0.59975, 0.34627) + + + +INS-43003_FOV_SHAPE = 'POLYGON' + INS-43003_FOV_CLASS_SPEC = 'CORNERS' + INS-43003_FOV_FRAME = 'IMAP_ULTRA45' + INS-43003_BORESIGHT = (0.0, 0.0, 1.0) + INS-43003_FOV_BOUNDARY_CORNERS = (0.72139, -0.59975, 0.34627, + 0.74009, -0.55089, 0.38574, + 0.75402, -0.50318, 0.42222, + 0.76463, -0.45571, 0.45571, + 0.77286, -0.4079, 0.48612, + 0.77929, -0.35944, 0.51334, + 0.78432, -0.31018, 0.53724, + 0.78824, -0.26006, 0.55771, + 0.79124, -0.20915, 0.57462, + 0.79346, -0.15752, 0.58789, + 0.79498, -0.10534, 0.59742, + 0.79587, -0.05277, 0.60316, + 0.79616, 0, 0.60508, + 0.79587, 0.05277, 0.60316, + 0.79498, 0.10534, 0.59742, + 0.79346, 0.15752, 0.58789, + 0.79124, 0.20915, 0.57462, + 0.78824, 0.26006, 0.55771, + 0.78432, 0.31018, 0.53724, + 0.77929, 0.35944, 0.51334, + 0.77286, 0.4079, 0.48612, + 0.76463, 0.45571, 0.45571, + 0.75402, 0.50318, 0.42222, + 0.74009, 0.55089, 0.38574, + 0.72139, 0.59975, 0.34627, + -0.72139, 0.59975, 0.34627, + -0.74009, 0.55089, 0.38574, + -0.75402, 0.50318, 0.42222, + -0.76463, 0.45571, 0.45571, + -0.77286, 0.4079, 0.48612, + -0.77929, 0.35944, 0.51334, + -0.78432, 0.31018, 0.53724, + -0.78824, 0.26006, 0.55771, + -0.79124, 0.20915, 0.57462, + -0.79346, 0.15752, 0.58789, + -0.79498, 0.10534, 0.59742, + -0.79587, 0.05277, 0.60316, + -0.79616, 0, 0.60508, + -0.79587, -0.05277, 0.60316, + -0.79498, -0.10534, 0.59742, + -0.79346, -0.15752, 0.58789, + -0.79124, -0.20915, 0.57462, + -0.78824, -0.26006, 0.55771, + -0.78432, -0.31018, 0.53724, + -0.77929, -0.35944, 0.51334, + -0.77286, -0.4079, 0.48612, + -0.76463, -0.45571, 0.45571, + -0.75402, -0.50318, 0.42222, + -0.74009, -0.55089, 0.38574, + -0.72139, -0.59975, 0.34627) + + \begintext + + + Version 0.0.1 -- Dec. 05, 2022 -- Nick Dutton, JHU/APL + + + Initial Version + + +References +======================================================================== + + 1. 'Frames Required Reading' + + 2. 'Kernel Pool Required Reading' + + 3. 'C-Kernel Required Reading' + + 4. 'IMAP Mapping.pdf', received from Matina G., JHU/APL + + +Contact Information +======================================================================== + + Lillian Nguyen, JHU/APL, + (443)778-5477, Lillian.Nguyen@jhuapl.edu + + Scott Turner, JHU/APL + (443)778-1693, Scott.Turner@jhuapl.edu + + M. Alexandra Matiella Novak, JHU/APL, + (443)802-1417, Alexandra.Matiella.Novak@jhuapl.edu + + Wen-Jong Shyong, JHU/APL + (443)778-8564, Wen-Jong.Shyong@jhuapl.edu + + +Implementation Notes +======================================================================== + + This file is used by the SPICE system as follows: programs that make + use of this frame kernel must `load' the kernel, normally during + program initialization. Loading the kernel associates the data items with + their names in a data structure called the `kernel pool'. The SPICELIB + routine FURNSH loads a kernel into the pool as shown below: + + FORTRAN: (SPICELIB) + + CALL FURNSH ( frame_kernel_name ) + + C: (CSPICE) + + furnsh_c ( frame_kernel_name ); + + IDL: (ICY) + + cspice_furnsh, frame_kernel_name + + MATLAB: (MICE) + + cspice_furnsh ( frame_kernel_name ) + + This file was created and may be updated with a text editor or word + processor. + + +IMAP Frames +======================================================================== + + The ID codes -96900 to -96999 have been reserved for the Parker Solar + Probe dynamics frames kernel [12] and are not utilized in this file. + + The following frames are defined in this kernel file: + + Frame Name Relative To Type NAIF ID + ======================= =================== ======= ======= + + Spacecraft Frames: + ------------------ + IMAP_SPACECRAFT ECLIPJ2000 CK -43000 + + Spacecraft ENA Inst Frames: + ----------------------- + IMAP_ULTRA90 IMAP_SPACECRAFT FIXED -43002 + IMAP_ULTRA 45 IMAP_SPACECRAFT FIXED -43003 + IMAP_HI_90 IMAP_SPACECRAFT FIXED -43061 + IMAP_HI_45 IMAP_SPACECRAFT FIXED -43062 + + MAG Frames (TBD): + ------------- + ID codes -43200 to -43299 + + SWE Frames (TBD): + -------------------- + ID codes -43300 to -43399 + + SWAPI Frames (TBD): + -------------------- + ID codes -43400 to -43499 + + CODICE Frames (TBD): + -------------------- + ID codes -43500 to -43599 + + HIT Frames (TBD): + -------------------- + ID codes -43600 to -43699 + + IDEX Frames (TBD): + -------------------- + ID codes -43700 to -43799 + + GLOWS Frames (TBD): + -------------------- + ID codes -43800 to -43899 + + + + diff --git a/tools/tests/test_data/spice/imap_wkcp.tf b/tools/tests/test_data/spice/imap_wkcp.tf deleted file mode 100644 index d81657549..000000000 --- a/tools/tests/test_data/spice/imap_wkcp.tf +++ /dev/null @@ -1,1851 +0,0 @@ -KPL/FK - -Interstellar Mapping and Acceleration Probe Frames Kernel -======================================================================== - - This frames kernel contains the current set of coordinate frame - definitions for the Interstellar Mapping and Acceleration Probe - (IMAP) spacecraft, structures, and science instruments. - - This kernel also contains NAIF ID/name mapping for the IMAP - instruments. - - -Version and Date -======================================================================== - - The TEXT_KERNEL_ID stores version information of loaded project text - kernels. Each entry associated with the keyword is a string that - consists of four parts: the kernel name, version, entry date, and - type. For example, the frames kernel might have an entry as follows: - - - TEXT_KERNEL_ID += 'IMAP_FRAMES V1.0.0 2024-XXXX-NN FK' - | | | | - | | | | - KERNEL NAME <-------+ | | | - | | V - VERSION <------+ | KERNEL TYPE - | - V - ENTRY DATE - - - Interstellar Mapping and Acceleration Probe Frames Kernel Version: - - \begindata - - TEXT_KERNEL_ID += 'IMAP_FRAMES V1.0.0 2024-XXXX-NN FK' - - \begintext - - Version 1.0.0 -- XXXX NN, 2024 -- Douglas Rodgers - Lillian Nguyen - Nicholas Dutton - - Initial complete release. Frame/Body codes for thrusters redefined - - Version 0.0.1 -- July 9, 2021 -- Ian Wick Murphy - - Modifying dart_008.tf to add basic IMAP frame components. This - includes IMAP, IMAP_THRUSTER, and CK/SCLK IDs. Also adding a place - holder for the IMAP-Lo instrument with the ID -43001 and IMAP_LO - name. Future work includes adding more detailed instrument frames, - and reaching out to mechanical for an "official" IMAP_SPACECRAFT - frame definition. - - -References -======================================================================== - - 1. "Frames Required Reading" - - 2. "Kernel Pool Required Reading" - - 3. "C-Kernel Required Reading" - - 4. "7516-9067: IMAP Mechanical Interface Control Document", - Johns Hopkins Applied Physics Laboratory - - 5. "7516-9050: IMAP Coordinate Frame & Technical Definitions Doc.", - Johns Hopkins Applied Physics Laboratory - - 6. "7516-0011: IMAP Mechanical Interface Control Drawing", - [EXPORT CONTROLLED], Johns Hopkins Applied Physics Laboratory - - 7. "7523-0008: IMAP ULTRA Mechanical Interface Control Drawing", - [EXPORT CONTROLLED], Johns Hopkins Applied Physics Laboratory - - 8. "058991000: IMAP SWAPI Mechanical Interface Control Drawing", - Princeton University Space Physics - - 9. "GLOWS-CBK-DWG-2020-08-25-019-v4.4: IMAP GLOWS Mechanical - Interface Control Drawing", Centrum Badag Kosmicznych, Polska - Akademia Nauks - - 10. Responses from IMAP instrument teams on their base frame axis - definitions, received in email. - - -Contact Information -======================================================================== - - Douglas Rodgers, JHU/APL, Douglas.Rodgers@jhuapl.edu - - Lillian Nguyen, JHU/APL, Lillian.Nguyen@jhuapl.edu - - Nicholas Dutton, JHU/APL, Nicholas.Dutton@jhuapl.edu - - Ian Wick Murphy, JHU/APL, Ian.Murphy@jhuapl.edu - - -Implementation Notes -======================================================================== - - This file is used by the SPICE system as follows: programs that make - use of this frame kernel must `load' the kernel, normally during - program initialization. Loading the kernel associates the data items - with their names in a data structure called the `kernel pool'. The - SPICELIB routine FURNSH loads a kernel into the pool as shown below: - - FORTRAN: (SPICELIB) - - CALL FURNSH ( frame_kernel_name ) - - C: (CSPICE) - - furnsh_c ( frame_kernel_name ); - - IDL: (ICY) - - cspice_furnsh, frame_kernel_name - - MATLAB: (MICE) - - cspice_furnsh ( frame_kernel_name ) - - This file was created and may be updated with a text editor or word - processor. - - -IMAP NAIF ID Codes -- Definitions -======================================================================== - - This section contains name to NAIF ID mappings for the IMAP mission. - Once the contents of this file are loaded into the KERNEL POOL, these - mappings become available within SPICE, making it possible to use - names instead of ID code in high level SPICE routine calls. - - \begindata - - NAIF_BODY_NAME += ( 'IMAP' ) - NAIF_BODY_CODE += ( -43 ) - - NAIF_BODY_NAME += ( 'IMAP_SPACECRAFT' ) - NAIF_BODY_CODE += ( -43000 ) - - NAIF_BODY_NAME += ( 'IMAP_THRUSTER_A1' ) - NAIF_BODY_CODE += ( -43010 ) - - NAIF_BODY_NAME += ( 'IMAP_THRUSTER_A2' ) - NAIF_BODY_CODE += ( -43011 ) - - NAIF_BODY_NAME += ( 'IMAP_THRUSTER_A3' ) - NAIF_BODY_CODE += ( -43012 ) - - NAIF_BODY_NAME += ( 'IMAP_THRUSTER_A4' ) - NAIF_BODY_CODE += ( -43013 ) - - NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R1' ) - NAIF_BODY_CODE += ( -43020 ) - - NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R2' ) - NAIF_BODY_CODE += ( -43021 ) - - NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R3' ) - NAIF_BODY_CODE += ( -43022 ) - - NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R4' ) - NAIF_BODY_CODE += ( -43023 ) - - NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R5' ) - NAIF_BODY_CODE += ( -43024 ) - - NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R6' ) - NAIF_BODY_CODE += ( -43025 ) - - NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R7' ) - NAIF_BODY_CODE += ( -43026 ) - - NAIF_BODY_NAME += ( 'IMAP_THRUSTER_R8' ) - NAIF_BODY_CODE += ( -43027 ) - - NAIF_BODY_NAME += ( 'IMAP_SUN_SENSOR_PZ' ) - NAIF_BODY_CODE += ( -42030 ) - - NAIF_BODY_NAME += ( 'IMAP_SUN_SENSOR_MZ' ) - NAIF_BODY_CODE += ( -42031 ) - - NAIF_BODY_NAME += ( 'IMAP_STAR_TRACKER_PX' ) - NAIF_BODY_CODE += ( -42040 ) - - NAIF_BODY_NAME += ( 'IMAP_STAR_TRACKER_MX' ) - NAIF_BODY_CODE += ( -42041 ) - - NAIF_BODY_NAME += ( 'IMAP_LOW_GAIN_ANTENNA' ) - NAIF_BODY_CODE += ( -42050 ) - - NAIF_BODY_NAME += ( 'IMAP_MED_GAIN_ANTENNA' ) - NAIF_BODY_CODE += ( -42051 ) - - NAIF_BODY_NAME += ( 'IMAP_NUTATION_DAMPER_01' ) - NAIF_BODY_CODE += ( -42060 ) - - NAIF_BODY_NAME += ( 'IMAP_NUTATION_DAMPER_02' ) - NAIF_BODY_CODE += ( -42061 ) - - NAIF_BODY_NAME += ( 'IMAP_LO_ENA_SENSOR' ) - NAIF_BODY_CODE += ( -42102 ) - - NAIF_BODY_NAME += ( 'IMAP_LO_STAR_SENSOR' ) - NAIF_BODY_CODE += ( -42103 ) - - NAIF_BODY_NAME += ( 'IMAP_HI_45' ) - NAIF_BODY_CODE += ( -42150 ) - - NAIF_BODY_NAME += ( 'IMAP_HI_90' ) - NAIF_BODY_CODE += ( -42175 ) - - NAIF_BODY_NAME += ( 'IMAP_ULTRA_45' ) - NAIF_BODY_CODE += ( -42200 ) - - NAIF_BODY_NAME += ( 'IMAP_ULTRA_90' ) - NAIF_BODY_CODE += ( -42225 ) - - NAIF_BODY_NAME += ( 'IMAP_MAG' ) - NAIF_BODY_CODE += ( -42250 ) - - NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_P63' ) - NAIF_BODY_CODE += ( -42301 ) - - NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_P42' ) - NAIF_BODY_CODE += ( -42302 ) - - NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_P21' ) - NAIF_BODY_CODE += ( -42303 ) - - NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_000' ) - NAIF_BODY_CODE += ( -42304 ) - - NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_M21' ) - NAIF_BODY_CODE += ( -42305 ) - - NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_M42' ) - NAIF_BODY_CODE += ( -42306 ) - - NAIF_BODY_NAME += ( 'IMAP_SWE_DETECTOR_M63' ) - NAIF_BODY_CODE += ( -42307 ) - - NAIF_BODY_NAME += ( 'IMAP_SWAPI_APERTURE_L' ) - NAIF_BODY_CODE += ( -42351 ) - - NAIF_BODY_NAME += ( 'IMAP_SWAPI_APERTURE_R' ) - NAIF_BODY_CODE += ( -42352 ) - - NAIF_BODY_NAME += ( 'IMAP_SWAPI_SUNGLASSES' ) - NAIF_BODY_CODE += ( -42353 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_01' ) - NAIF_BODY_CODE += ( -42401 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_02' ) - NAIF_BODY_CODE += ( -42402 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_03' ) - NAIF_BODY_CODE += ( -42403 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_04' ) - NAIF_BODY_CODE += ( -42404 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_05' ) - NAIF_BODY_CODE += ( -42405 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_06' ) - NAIF_BODY_CODE += ( -42406 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_07' ) - NAIF_BODY_CODE += ( -42407 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_08' ) - NAIF_BODY_CODE += ( -42408 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_09' ) - NAIF_BODY_CODE += ( -42409 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_10' ) - NAIF_BODY_CODE += ( -42410 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_11' ) - NAIF_BODY_CODE += ( -42411 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_12' ) - NAIF_BODY_CODE += ( -42412 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_13' ) - NAIF_BODY_CODE += ( -42413 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_14' ) - NAIF_BODY_CODE += ( -42414 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_15' ) - NAIF_BODY_CODE += ( -42415 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_16' ) - NAIF_BODY_CODE += ( -42416 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_17' ) - NAIF_BODY_CODE += ( -42417 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_18' ) - NAIF_BODY_CODE += ( -42418 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_19' ) - NAIF_BODY_CODE += ( -42419 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_20' ) - NAIF_BODY_CODE += ( -42420 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_21' ) - NAIF_BODY_CODE += ( -42421 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_22' ) - NAIF_BODY_CODE += ( -42422 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_23' ) - NAIF_BODY_CODE += ( -42423 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_LO_APERTURE_24' ) - NAIF_BODY_CODE += ( -42424 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_01' ) - NAIF_BODY_CODE += ( -42425 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_02' ) - NAIF_BODY_CODE += ( -42426 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_03' ) - NAIF_BODY_CODE += ( -42427 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_04' ) - NAIF_BODY_CODE += ( -42428 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_05' ) - NAIF_BODY_CODE += ( -42429 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_06' ) - NAIF_BODY_CODE += ( -42430 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_07' ) - NAIF_BODY_CODE += ( -42431 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_08' ) - NAIF_BODY_CODE += ( -42432 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_09' ) - NAIF_BODY_CODE += ( -42433 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_10' ) - NAIF_BODY_CODE += ( -42434 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_11' ) - NAIF_BODY_CODE += ( -42435 ) - - NAIF_BODY_NAME += ( 'IMAP_CODICE_HI_APERTURE_12' ) - NAIF_BODY_CODE += ( -42436 ) - - NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_01' ) - NAIF_BODY_CODE += ( -42501 ) - - NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_02' ) - NAIF_BODY_CODE += ( -42502 ) - - NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_03' ) - NAIF_BODY_CODE += ( -42503 ) - - NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_04' ) - NAIF_BODY_CODE += ( -42504 ) - - NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_05' ) - NAIF_BODY_CODE += ( -42505 ) - - NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_06' ) - NAIF_BODY_CODE += ( -42506 ) - - NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_07' ) - NAIF_BODY_CODE += ( -42507 ) - - NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_08' ) - NAIF_BODY_CODE += ( -42508 ) - - NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_09' ) - NAIF_BODY_CODE += ( -42509 ) - - NAIF_BODY_NAME += ( 'IMAP_HIT_L1_APERTURE_10' ) - NAIF_BODY_CODE += ( -42510 ) - - NAIF_BODY_NAME += ( 'IMAP_IDEX_DETECTOR' ) - NAIF_BODY_CODE += ( -42701 ) - - NAIF_BODY_NAME += ( 'IMAP_IDEX_FULL_SCIENCE' ) - NAIF_BODY_CODE += ( -42702 ) - - NAIF_BODY_NAME += ( 'IMAP_GLOWS' ) - NAIF_BODY_CODE += ( -42750 ) - - \begintext - - -IMAP NAIF ID Codes -- Definitions -======================================================================== - - The ID codes -43900 to -43999 have been reserved for the IMAP dynamic - frames kernel and are not utilized in this file. - - The following frames are defined in this kernel file: - - Frame Name Relative To Type NAIF ID - ========================== =============== ======= ======= - - Spacecraft (000-099) - -------------------------- - IMAP_SPACECRAFT J2000 CK -43000 - IMAP_THRUSTER_A1 IMAP_SPACECRAFT FIXED -43010 - IMAP_THRUSTER_A2 IMAP_SPACECRAFT FIXED -43011 - IMAP_THRUSTER_A3 IMAP_SPACECRAFT FIXED -43012 - IMAP_THRUSTER_A4 IMAP_SPACECRAFT FIXED -43013 - IMAP_THRUSTER_R1 IMAP_SPACECRAFT FIXED -43020 - IMAP_THRUSTER_R2 IMAP_SPACECRAFT FIXED -43021 - IMAP_THRUSTER_R3 IMAP_SPACECRAFT FIXED -43022 - IMAP_THRUSTER_R4 IMAP_SPACECRAFT FIXED -43023 - IMAP_THRUSTER_R5 IMAP_SPACECRAFT FIXED -43024 - IMAP_THRUSTER_R6 IMAP_SPACECRAFT FIXED -43025 - IMAP_THRUSTER_R7 IMAP_SPACECRAFT FIXED -43026 - IMAP_THRUSTER_R8 IMAP_SPACECRAFT FIXED -43027 - IMAP_SUN_SENSOR_PZ IMAP_SPACECRAFT FIXED -42030 - IMAP_SUN_SENSOR_MZ IMAP_SPACECRAFT FIXED -42031 - IMAP_STAR_TRACKER_PX IMAP_SPACECRAFT FIXED -42040 - IMAP_STAR_TRACKER_MX IMAP_SPACECRAFT FIXED -42041 - IMAP_LOW_GAIN_ANTENNA IMAP_SPACECRAFT FIXED -42050 - IMAP_MED_GAIN_ANTENNA IMAP_SPACECRAFT FIXED -42051 - IMAP_NUTATION_DAMPER_01 IMAP_SPACECRAFT FIXED -42060 - IMAP_NUTATION_DAMPER_02 IMAP_SPACECRAFT FIXED -42061 - - IMAP-Lo (100-149) - -------------------------- - IMAP_LO_BASE IMAP_SPACECRAFT FIXED -42100 - IMAP_LO_PIVOT IMAP_LO_BASE CK -42101 - IMAP_LO_ENA_SENSOR IMAP_LO_PIVOT FIXED -42102 - IMAP_LO_STAR_SENSOR IMAP_LO_PIVOT FIXED -42103 - - IMAP-Hi (150-199) - -------------------------- - IMAP_HI_45 IMAP_SPACECRAFT FIXED -42150 - IMAP_HI_90 IMAP_SPACECRAFT FIXED -42175 - - IMAP-Ultra (200-249) - -------------------------- - IMAP_ULTRA_45 IMAP_SPACECRAFT FIXED -42200 - IMAP_ULTRA_90 IMAP_SPACECRAFT FIXED -42225 - - MAG (250-299) - -------------------------- - IMAP_MAG IMAP_SPACECRAFT FIXED -42250 - - SWE (300-349) - -------------------------- - IMAP_SWE IMAP_SPACECRAFT FIXED -42300 - IMAP_SWE_DETECTOR_P63 IMAP_SWE FIXED -42301 - IMAP_SWE_DETECTOR_P42 IMAP_SWE FIXED -42302 - IMAP_SWE_DETECTOR_P21 IMAP_SWE FIXED -42303 - IMAP_SWE_DETECTOR_000 IMAP_SWE FIXED -42304 - IMAP_SWE_DETECTOR_M21 IMAP_SWE FIXED -42305 - IMAP_SWE_DETECTOR_M42 IMAP_SWE FIXED -42306 - IMAP_SWE_DETECTOR_M63 IMAP_SWE FIXED -42307 - - SWAPI (350-399) - -------------------------- - IMAP_SWAPI IMAP_SPACECRAFT FIXED -42350 - IMAP_SWAPI_APERTURE_L IMAP_SWAPI FIXED -42351 - IMAP_SWAPI_APERTURE_R IMAP_SWAPI FIXED -42352 - IMAP_SWAPI_SUNGLASSES IMAP_SWAPI FIXED -42353 - - CODICE (400-499) - -------------------------- - IMAP_CODICE IMAP_SPACECRAFT FIXED -42400 - IMAP_CODICE_LO_APERTURE_01 IMAP_CODICE FIXED -42401 - IMAP_CODICE_LO_APERTURE_02 IMAP_CODICE FIXED -42402 - IMAP_CODICE_LO_APERTURE_03 IMAP_CODICE FIXED -42403 - IMAP_CODICE_LO_APERTURE_04 IMAP_CODICE FIXED -42404 - IMAP_CODICE_LO_APERTURE_05 IMAP_CODICE FIXED -42405 - IMAP_CODICE_LO_APERTURE_06 IMAP_CODICE FIXED -42406 - IMAP_CODICE_LO_APERTURE_07 IMAP_CODICE FIXED -42407 - IMAP_CODICE_LO_APERTURE_08 IMAP_CODICE FIXED -42408 - IMAP_CODICE_LO_APERTURE_09 IMAP_CODICE FIXED -42409 - IMAP_CODICE_LO_APERTURE_10 IMAP_CODICE FIXED -42410 - IMAP_CODICE_LO_APERTURE_11 IMAP_CODICE FIXED -42411 - IMAP_CODICE_LO_APERTURE_12 IMAP_CODICE FIXED -42412 - IMAP_CODICE_LO_APERTURE_13 IMAP_CODICE FIXED -42413 - IMAP_CODICE_LO_APERTURE_14 IMAP_CODICE FIXED -42414 - IMAP_CODICE_LO_APERTURE_15 IMAP_CODICE FIXED -42415 - IMAP_CODICE_LO_APERTURE_16 IMAP_CODICE FIXED -42416 - IMAP_CODICE_LO_APERTURE_17 IMAP_CODICE FIXED -42417 - IMAP_CODICE_LO_APERTURE_18 IMAP_CODICE FIXED -42418 - IMAP_CODICE_LO_APERTURE_19 IMAP_CODICE FIXED -42419 - IMAP_CODICE_LO_APERTURE_20 IMAP_CODICE FIXED -42420 - IMAP_CODICE_LO_APERTURE_21 IMAP_CODICE FIXED -42421 - IMAP_CODICE_LO_APERTURE_22 IMAP_CODICE FIXED -42422 - IMAP_CODICE_LO_APERTURE_23 IMAP_CODICE FIXED -42423 - IMAP_CODICE_LO_APERTURE_24 IMAP_CODICE FIXED -42424 - IMAP_CODICE_HI_APERTURE_01 IMAP_CODICE FIXED -42425 - IMAP_CODICE_HI_APERTURE_02 IMAP_CODICE FIXED -42426 - IMAP_CODICE_HI_APERTURE_03 IMAP_CODICE FIXED -42427 - IMAP_CODICE_HI_APERTURE_04 IMAP_CODICE FIXED -42428 - IMAP_CODICE_HI_APERTURE_05 IMAP_CODICE FIXED -42429 - IMAP_CODICE_HI_APERTURE_06 IMAP_CODICE FIXED -42430 - IMAP_CODICE_HI_APERTURE_07 IMAP_CODICE FIXED -42431 - IMAP_CODICE_HI_APERTURE_08 IMAP_CODICE FIXED -42432 - IMAP_CODICE_HI_APERTURE_09 IMAP_CODICE FIXED -42433 - IMAP_CODICE_HI_APERTURE_10 IMAP_CODICE FIXED -42434 - IMAP_CODICE_HI_APERTURE_11 IMAP_CODICE FIXED -42435 - IMAP_CODICE_HI_APERTURE_12 IMAP_CODICE FIXED -42436 - - HIT (500-699) - -------------------------- - IMAP_HIT IMAP_SPACECRAFT FIXED -42500 - IMAP_HIT_L1_APERTURE_01 IMAP_HIT FIXED -42501 - IMAP_HIT_L1_APERTURE_02 IMAP_HIT FIXED -42502 - IMAP_HIT_L1_APERTURE_03 IMAP_HIT FIXED -42503 - IMAP_HIT_L1_APERTURE_04 IMAP_HIT FIXED -42504 - IMAP_HIT_L1_APERTURE_05 IMAP_HIT FIXED -42505 - IMAP_HIT_L1_APERTURE_06 IMAP_HIT FIXED -42506 - IMAP_HIT_L1_APERTURE_07 IMAP_HIT FIXED -42507 - IMAP_HIT_L1_APERTURE_08 IMAP_HIT FIXED -42508 - IMAP_HIT_L1_APERTURE_09 IMAP_HIT FIXED -42509 - IMAP_HIT_L1_APERTURE_10 IMAP_HIT FIXED -42510 - - IDEX (700-749) - -------------------------- - IMAP_IDEX IMAP_SPACECRAFT FIXED -42700 - IMAP_IDEX_DETECTOR IMAP_IDEX FIXED -42701 - IMAP_IDEX_FULL_SCIENCE IMAP_IDEX FIXED -42702 - - GLOWS (750-799) - -------------------------- - IMAP_GLOWS IMAP_SPACECRAFT FIXED -42750 - - -IMAP Frame Tree -======================================================================== - - The diagram below illustrates the IMAP frame hierarchy: - - J2000 - | - |<---ck - | - IMAP_SPACECRAFT - | - IMAP_THRUSTER_A1 - | - |... - | - IMAP_THRUSTER_A4 - | - IMAP_THRUSTER_R1 - | - |... - | - IMAP_THRUSTER_R8 - | - IMAP_SUN_SENSOR_PZ - | - IMAP_SUN_SENSOR_MZ - | - IMAP_STAR_TRACKER_PX - | - IMAP_STAR_TRACKER_MX - | - IMAP_LOW_GAIN_ANTENNA - | - IMAP_MED_GAIN_ANTENNA - | - IMAP_NUTATION_DAMPER_01 - | - IMAP_NUTATION_DAMPER_02 - | - IMAP_LO_BASE - | | - | |<---ck - | | - | IMAP_LO_PIVOT - | | - | IMAP_LO_ENA_SENSOR - | | - | IMAP_LO_STAR_SENSOR - | - IMAP_HI_45 - | - IMAP_HI_90 - | - IMAP_ULTRA_45 - | - IMAP_ULTRA_90 - | - IMAP_MAG - | - IMAP_SWE - | | - | IMAP_SWE_DETECTOR_P63 - | | - | IMAP_SWE_DETECTOR_P42 - | | - | IMAP_SWE_DETECTOR_P21 - | | - | IMAP_SWE_DETECTOR_000 - | | - | IMAP_SWE_DETECTOR_M21 - | | - | IMAP_SWE_DETECTOR_M42 - | | - | IMAP_SWE_DETECTOR_M63 - | - IMAP_SWAPI - | | - | IMAP_SWAPI_APERTURE_L - | | - | IMAP_SWAPI_APERTURE_R - | | - | IMAP_SWAPI_SUNGLASSES - | - IMAP_CODICE - | | - | IMAP_CODICE_LO_APERTURE_01 - | | - | |... - | | - | IMAP_CODICE_LO_APERTURE_24 - | | - | IMAP_CODICE_HI_APERTURE_01 - | | - | |... - | | - | IMAP_CODICE_HI_APERTURE_12 - | - IMAP_HIT - | | - | IMAP_HIT_L1_APERTURE_01 - | | - | |... - | | - | IMAP_HIT_L1_APERTURE_10 - | - IMAP_IDEX - | | - | IMAP_IDEX_DETECTOR - | | - | IMAP_IDEX_FULL_SCIENCE - | - IMAP_GLOWS - - -IMAP Spacecraft Frame -======================================================================== - - The orientation of the spacecraft body frame with respect to an - inertial frame, J2000 for IMAP, is provided by a C-kernel (see [3] - for details). - - The spacecraft coordinate frames are defined by the IMAP control - documents (see [4,5], NB, figure 2.2). There are two frames described - there: Observatory Mechanical Design Reference Frame (most relevant) - and Observatory Pointing and Dynamics Reference Frame (less relevant - for this frame kernel). - - - Observatory Mechanical Design Reference Frame (IMAP_SPACECRAFT) - --------------------------------------------------------------------- - - If not explicitly stated, references to 'spacecraft mechanical frame' - 'spacecraft frame', or 'S/C frame' will refer to this frame. - - All instruments and component placements and orientations are defined - using this coordinate frame reference. - - Origin: Center of the launch vehicle adapter ring at the - observatory/launch vehicle interface plane - - +Z axis: Perpendicular to the launch vehicle interface plane pointed - in the direction of the top deck (runs through the center - of the central cylinder structure element) - - +Y axis: Direction of the vector orthogonal to the +Z axis and - parallel to the deployed MAG boom - - +X axis: The third orthogonal axis defined using an X, Y, Z ordered - right hand rule - - NB: The Observatory Pointing and Dynamics Reference Frame is also - defined in [5]. It is identical to the observatory mechanical design - reference frame, but with the origin translated to the observatory - center of mass (which changes with boom deployment and fuel usage). - The offset difference between the mechanical and dynamic frame is - within the uncertainty range of the ephemeris, so the mechanical - design frame is used here for definiteness. - - Three different views [5,6] of the spacecraft with labeled components - are presented below for illustrative purposes. - - - IMAP -Z Bottom View (Figure 3-2 in [5], G-G in [6] rotated 180°) - --------------------------------------------------------------------- - --------- - | +X axis | -------------------- - --------- | +Z axis facing Sun | - . | into page | - /|\ -------------------- - | - | - | - _ - HI 45 /`~~__HI 90 `+ direction of - , = .^ - /_ ``-. '. positive - .+ + `^~/ ./ ~ rotation - ^ + + . -- ' `` \ _-~ \ - _ / ',= ' \~'` \ IMAP \ - ULTRA /' '-_ .~ ' \,.=.. \ LO \|/ - 90 / ~ _,.,_ + + \ ' - / ,~' +' `'+ + + \ - / ~^ .' , = .'. '- ='' -`` --------- - ^/ / , = . + + \ \~'` | +Y axis |-----> - | . + + + + . \ --------- ___ - | | + + ' = ' | \--------------------| | - SWAPI| | ' = ', - . | /--------------------|___| - _+_: ' + + ' / MAG boom - \_ __\__ \ + + / /^*~, - + | SWE '. ' = ' .' ULTRA / - `~-' '~..,___,..~' 45 /~,* - _\ / /~,*` - * / CODICE ^*._/ *` HIT - *\ _/`. / - * / /~ _ _ ,.-^-., _ _ _ / - '=' + + - GLOWS + + - '-.,.-' - IDEX - - - IMAP +X Side View (F-F in [6]) - --------------------------------------------------------------------- - --------- - | +Z axis | - --------- --------------------- - . | +X axis out of page | - /|\ --------------------- - | LGA - __________________|______|^|_________ ___ - SWAPI|__________________|__________________|====================| | - #|-| | | .-==-, | / MAG boom '---' - #|-| {|## | | / \ | | - | {|## | |{ HI 90 }| IMAP LO| - | {|## | _.._ | \ / | _., | - | ULTRA | / \ | `-==-' | / __`',| - | 90 | \ HI 45/ | | \ \_\ ;| - | | '----` | | ~._ + | - '-------------------|----------/--------' - | | \_________O_________/ | | ----------------> - |__| ----------- /_\ --------- - STAR | S/C FRAME | MGA | +Y axis | - TRACKERS | ORIGIN | --------- - ----------- - - - IMAP -X Side View (C-C in [6]) - --------------------------------------------------------------------- - --------- - | +Z axis | - ------------------- --------- - | +X axis into page | . - ------------------- /|\ - LGA | - ___ _________|^|______|__________________ - | |====================|__________________|_____________ __ _|SWAPI - '---' MAG boom \ __ | | | // \ /--|# - |( )=|__|| | | \\__/ \--|# - | HIT | _|_ IDEX | CODICE | - | | ,.' | '., | | - | ____ | [ \ | / ] | SWE| - ULTRA ##',', |,.'|'.,| GLOWS (#)| - 45 ####'. + | + \\(O) |-|| - '----####/----- + | + --------------' - <---------------- | | \______'-.O.-'______/ | | - --------- /_\ ----------- |__| - | +Y axis | MGA | S/C FRAME | STAR - --------- | ORIGIN | TRACKERS - ----------- - - - IMAP Component Location and Orientation - --------------------------------------------------------------------- - - Payload and subsystem component locations are specified[5,6] in the - Observatory Mechanical Design Reference Frame (described above). - Boresights are defined in azimuth and elevation (and resultant - direction cosign matrices) of these angles[6] in the same reference - frame. The azimuth and elevation angle diagram is provided below. - - In general, descriptions in this kernel treat the +Z direction as - "up" and the -Z direction as "down." Locations referred to as "above" - are generally closer to the Sun, and vice versa for "below." The - "upper" side of the spacecraft is the plane of the solar panels, - while the "lower" side may refer to the area near the adapter ring. - If ambiguity could arise, more thorough descriptions will be used. - - - Toward Sun - - +Z axis - . - | - . - | - . Component - | Location/ - . Orientation - | @ - Toward . .'| - MAG | +` | - .~ '` Boom S/C . .` \ | - .~ '` FRAME |.` : | - / ~'` ORIGIN O | | - *--- .~ '` \ Elevation - .~ '` \ | | - .~ '` \ ; |~ - .~ '\ \ / | ^~ - +Y axis \ \ + | ^~ - '. '~, \ | ^~ - '~ Azimuth \ | ^~ - '~. `^~-> \| -X axis - ' ~ ., _ _ ,.~ - ``'`` - - - \begindata - - FRAME_IMAP_SPACECRAFT = -43000 - FRAME_-43000_NAME = 'IMAP_SPACECRAFT' - FRAME_-43000_CLASS = 3 - FRAME_-43000_CLASS_ID = -43000 - FRAME_-43000_CENTER = -43 - CK_-43000_SCLK = -43 - CK_-43000_SPK = -43 - - \begintext - - -IMAP Thruster Frames -======================================================================== - - There are four axial (A) thrusters and eight radial (R) thrusters on - IMAP[6]. The table below shows the thruster positions defined in the - spacecraft frame[6], at the intersection of the thrust axis and the - nozzle exit plane. The unit direction vectors listed in the table - below point in the direction of the thruster exhaust. The positional - information is captured in the IMAP structure SPK, while the - orientation information is captured here. - - - Thruster ID X (mm) Y (mm) Z (mm) UnitDir (X,Y,Z) - ---------------- ------ -------- -------- ------- --------------- - IMAP_THRUSTER_A1 -43010 1007.28 516.50 1312.40 ( 0, 0, 1 ) - IMAP_THRUSTER_A2 -43011 -1007.28 -516.50 1312.40 ( 0, 0, 1 ) - IMAP_THRUSTER_A3 -43012 -1007.28 -516.50 101.77 ( 0, 0, -1 ) - IMAP_THRUSTER_A4 -43013 1007.28 516.50 101.77 ( 0, 0, -1 ) - IMAP_THRUSTER_R1 -43020 -126.90 1237.78 841.12 (-0.5, 0.866,0) - IMAP_THRUSTER_R2 -43021 126.90 -1237.78 841.12 ( 0.5,-0.866,0) - IMAP_THRUSTER_R3 -43022 -1008.49 728.79 841.12 (-0.5, 0.866,0) - IMAP_THRUSTER_R4 -43023 1008.49 -728.79 841.12 ( 0.5,-0.866,0) - IMAP_THRUSTER_R5 -43024 -126.90 1237.78 447.42 (-0.5, 0.866,0) - IMAP_THRUSTER_R6 -43025 126.90 -1237.78 447.42 ( 0.5,-0.866,0) - IMAP_THRUSTER_R7 -43026 -1008.49 728.79 447.42 (-0.5, 0.866,0) - IMAP_THRUSTER_R8 -43027 1008.49 -728.79 447.42 ( 0.5,-0.866,0) - - - Thruster Locations and Directions - --------------------------------------------------------------------- - - The four axial thrusters[6] are directed along the spacecraft Z axis, - with A1,A2 located on the +Z side of the spacecraft and A3,A4 located - on the -Z side. A1,A2 fire in the +Z direction, while A3,A4 fire in - the -Z direction. A1 and A4 are aligned in the Z direction, while - A2 and A3 are aligned but on the opposite side of the S/C as A1/A4. - - The eight radial thrusters[6] are grouped into four pairs (R1/R5, - R2/R6, R3/R7, R4/R8); each pair is aligned along the Z direction and - fire in the same direction. There are two distinct firing directions, - all perpendicular to the spacecraft Z axis: R1/R5 & R3/R7 fire toward - the +Y direction (with a slight -X component), while R2/R6 & R4/R8 - fire in the -Y direction (with a slight +X component). Thrusters - R1-R4 are located above the center of mass (towards the Sun), while - thrusters R5-R8 are located below the center of mass (away from the - Sun). The table below shows the azimuth of location and direction of - radial thrusters calculated from using thruster table above. - - - Location Azim Direction Azim - -------------- -------------- - R1/R5 5.85° 30.0° - R2/R6 180° + 5.85° 180° + 30.0° - R3/R7 54.15° 30.0° - R4/R8 180° + 54.15° 180° + 30.0° - - - +X axis +Z axis facing Sun - . into page - /|\ - | - | - | A1 (on +Z side) - A4 (on -Z side) - R4/R8 Dir /`~~__ / - '~._ , = .^ - /_ ``-. / - /~._ .+ + `^~/ .\/ - 30°| '~. + . -- ' `` @\ _-~ - - - + - - - -# R4/R8 \~'` \ - /' '-_ . \,.=.. \ - / ~ _,.,_ + + \ - R2/R6 Dir / ,~' +' `'+ + + \ - '~._ / ~^ .' , = .'. '- ='' -`` - /~._ ^/ / , = . + + \ \~'` - 30°| '~. | . + + + + . \ +Y axis -----> - - - + - - - -|# R2/R6 | + + ' = ' | \ - | | ' = ', - . | R1/R5 #._- - - - - + - - - _+_: ' + + ' / '~._ | - \_ __\__ \ + + / /^*~, '~._ / 30° - + | \ '. ' = ' .' / / '~. - `~-' '~..,___,..~' / /~,* R1/R5 Dir - _\ / /~,*` - * / \ ^*._/ *` - *\ _/`. R3/R7 #/._- - - - - + - - - * / /\@_ _ ,.-^-., _ _ _ / '~._ | - '=' | + + '~._ / 30° - | + + '~. - | '-.,.-' R3/R7 Dir - | - A2 (on +Z side) - A3 (on -Z side) - - - Axial Thruster Frames - --------------------------------------------------------------------- - - Each axial thruster has a frame defined so that the thruster exhaust - exits in the +Z' direction. The +Y' axis is chosen to lie in the - direction of the MAG boom. X' = Y' x Z' completes the frame. - - [X] [ 1 0 0 ] [X'] - [Y] = [ 0 1 0 ] [Y'] - [Z]S/C [ 0 0 1 ] [Z']Axial Thrusters A1,A2 - - [X] [ -1 0 0 ] [X'] - [Y] = [ 0 1 0 ] [Y'] - [Z]S/C [ 0 0 -1 ] [Z']Axial Thrusters A3,A4 - - - Axial Thruster - Exhaust Direction - - +Z' axis - | - | - _. -|- ._ - ,' | ', - |, | ,| - | ' -.,_|_,.- ' | - ' ' - \ / - \ / - \ / - \ / - \ / Toward - ',_,' ^~ MAG - .~ '` ^~ ^~ Boom - .~ '` ^~ ^~ - .~ '` ^~ ^~ - .~ '` ^~ ^~ \ - +X' axis ^~ --* - ^~ - ^~ - +Y' axis - - - \begindata - - FRAME_IMAP_THRUSTER_A1 = -43010 - FRAME_-43010_NAME = 'IMAP_THRUSTER_A1' - FRAME_-43010_CLASS = 4 - FRAME_-43010_CLASS_ID = -43010 - FRAME_-43010_CENTER = -43 - TKFRAME_-43011_RELATIVE = 'IMAP_SPACECRAFT' - TKFRAME_-43010_SPEC = 'MATRIX' - TKFRAME_-43010_MATRIX = ( 1, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 1 ) - - FRAME_IMAP_THRUSTER_A2 = -43011 - FRAME_-43011_NAME = 'IMAP_THRUSTER_A2' - FRAME_-43011_CLASS = 4 - FRAME_-43011_CLASS_ID = -43011 - FRAME_-43011_CENTER = -43 - TKFRAME_-43011_RELATIVE = 'IMAP_SPACECRAFT' - TKFRAME_-43011_SPEC = 'MATRIX' - TKFRAME_-43011_MATRIX = ( 1, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 1 ) - - FRAME_IMAP_THRUSTER_A3 = -43012 - FRAME_-43012_NAME = 'IMAP_THRUSTER_A3' - FRAME_-43012_CLASS = 4 - FRAME_-43012_CLASS_ID = -43012 - FRAME_-43012_CENTER = -43 - TKFRAME_-43012_RELATIVE = 'IMAP_SPACECRAFT' - TKFRAME_-43012_SPEC = 'MATRIX' - TKFRAME_-43012_MATRIX = ( -1, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - -1 ) - - FRAME_IMAP_THRUSTER_A4 = -43013 - FRAME_-43013_NAME = 'IMAP_THRUSTER_A4' - FRAME_-43013_CLASS = 4 - FRAME_-43013_CLASS_ID = -43013 - FRAME_-43013_CENTER = -43 - TKFRAME_-43013_RELATIVE = 'IMAP_SPACECRAFT' - TKFRAME_-43013_SPEC = 'MATRIX' - TKFRAME_-43013_MATRIX = ( -1, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - -1 ) - - \begintext - - - Radial Thrusters - --------------------------------------------------------------------- - - Each radial thruster has a frame defined so that the thruster exhaust - exits in the +Y' direction. The +Z' axis is chosen to lie along the - spacecraft +Z axis (toward Sun). X' = Y' x Z' completes the frame. - - [X] [ cos( 30) -sin( 30) 0 ] [X'] - [Y] = [ sin( 30) cos( 30) 0 ] [Y'] - [Z]S/C [ 0 0 1 ] [Z']Rad. Thrusters R1,R3,R5,R7 - - [X] [ cos(210) -sin(210) 0 ] [X'] - [Y] = [ sin(210) cos(210) 0 ] [Y'] - [Z]S/C [ 0 0 1 ] [Z']Rad. Thrusters R2,R4,R6,R8 - - - Toward Sun - - +Z' axis - . - | - . - | - . - | - . - Radial Thruster | - Exhaust Direction . - | - .~ '` . - /.~ '` _,,~ ~ ~ ~ ~ ~ ~ ~ | - *-- .;-. \ ~ - ,' '. ~ ^~ - ; \ ~' ^~ - | .~ '`: ~' ^~ - .~ '` | ~' ^~ - ~ '` \ ; _ ~' ^~ - +Y' axis '.,_._;-' ^~ - ^~ - -X' axis - - - \begindata - - FRAME_IMAP_THRUSTER_R1 = -43020 - FRAME_-43020_NAME = 'IMAP_THRUSTER_R1' - FRAME_-43020_CLASS = 4 - FRAME_-43020_CLASS_ID = -43020 - FRAME_-43020_CENTER = -43 - TKFRAME_-43020_RELATIVE = 'IMAP_SPACECRAFT' - TKFRAME_-43020_SPEC = 'MATRIX' - TKFRAME_-43020_MATRIX = ( 0.86602540378443865, - 0.50000000000000000, - 0.00000000000000000, - -0.50000000000000000, - 0.86602540378443865, - 0.00000000000000000, - 0.00000000000000000, - 0.00000000000000000, - 1.00000000000000000 ) - - FRAME_IMAP_THRUSTER_R2 = -43021 - FRAME_-43021_NAME = 'IMAP_THRUSTER_R1' - FRAME_-43021_CLASS = 4 - FRAME_-43021_CLASS_ID = -43021 - FRAME_-43021_CENTER = -43 - TKFRAME_-43021_RELATIVE = 'IMAP_SPACECRAFT' - TKFRAME_-43021_SPEC = 'MATRIX' - TKFRAME_-43021_MATRIX = ( -0.86602540378443865, - -0.50000000000000000, - 0.00000000000000000, - 0.50000000000000000, - -0.86602540378443865, - 0.00000000000000000, - 0.00000000000000000, - 0.00000000000000000, - 1.00000000000000000 ) - - FRAME_IMAP_THRUSTER_R3 = -43022 - FRAME_-43022_NAME = 'IMAP_THRUSTER_R3' - FRAME_-43022_CLASS = 4 - FRAME_-43022_CLASS_ID = -43022 - FRAME_-43022_CENTER = -43 - TKFRAME_-43022_RELATIVE = 'IMAP_SPACECRAFT' - TKFRAME_-43022_SPEC = 'MATRIX' - TKFRAME_-43022_MATRIX = ( 0.86602540378443865, - 0.50000000000000000, - 0.00000000000000000, - -0.50000000000000000, - 0.86602540378443865, - 0.00000000000000000, - 0.00000000000000000, - 0.00000000000000000, - 1.00000000000000000 ) - - FRAME_IMAP_THRUSTER_R4 = -43023 - FRAME_-43023_NAME = 'IMAP_THRUSTER_R4' - FRAME_-43023_CLASS = 4 - FRAME_-43023_CLASS_ID = -43023 - FRAME_-43023_CENTER = -43 - TKFRAME_-43023_RELATIVE = 'IMAP_SPACECRAFT' - TKFRAME_-43023_SPEC = 'MATRIX' - TKFRAME_-43023_MATRIX = ( -0.86602540378443865, - -0.50000000000000000, - 0.00000000000000000, - 0.50000000000000000, - -0.86602540378443865, - 0.00000000000000000, - 0.00000000000000000, - 0.00000000000000000, - 1.00000000000000000 ) - - FRAME_IMAP_THRUSTER_R5 = -43024 - FRAME_-43024_NAME = 'IMAP_THRUSTER_R5' - FRAME_-43024_CLASS = 4 - FRAME_-43024_CLASS_ID = -43024 - FRAME_-43024_CENTER = -43 - TKFRAME_-43024_RELATIVE = 'IMAP_SPACECRAFT' - TKFRAME_-43024_SPEC = 'MATRIX' - TKFRAME_-43024_MATRIX = ( 0.86602540378443865, - 0.50000000000000000, - 0.00000000000000000, - -0.50000000000000000, - 0.86602540378443865, - 0.00000000000000000, - 0.00000000000000000, - 0.00000000000000000, - 1.00000000000000000 ) - - FRAME_IMAP_THRUSTER_R6 = -43025 - FRAME_-43025_NAME = 'IMAP_THRUSTER_R6' - FRAME_-43025_CLASS = 4 - FRAME_-43025_CLASS_ID = -43025 - FRAME_-43025_CENTER = -43 - TKFRAME_-43025_RELATIVE = 'IMAP_SPACECRAFT' - TKFRAME_-43025_SPEC = 'MATRIX' - TKFRAME_-43025_MATRIX = ( -0.86602540378443865, - -0.50000000000000000, - 0.00000000000000000, - 0.50000000000000000, - -0.86602540378443865, - 0.00000000000000000, - 0.00000000000000000, - 0.00000000000000000, - 1.00000000000000000 ) - - FRAME_IMAP_THRUSTER_R7 = -43026 - FRAME_-43026_NAME = 'IMAP_THRUSTER_R7' - FRAME_-43026_CLASS = 4 - FRAME_-43026_CLASS_ID = -43026 - FRAME_-43026_CENTER = -43 - TKFRAME_-43026_RELATIVE = 'IMAP_SPACECRAFT' - TKFRAME_-43026_SPEC = 'MATRIX' - TKFRAME_-43026_MATRIX = ( 0.86602540378443865, - 0.50000000000000000, - 0.00000000000000000, - -0.50000000000000000, - 0.86602540378443865, - 0.00000000000000000, - 0.00000000000000000, - 0.00000000000000000, - 1.00000000000000000 ) - - FRAME_IMAP_THRUSTER_R8 = -43027 - FRAME_-43027_NAME = 'IMAP_THRUSTER_R6' - FRAME_-43027_CLASS = 4 - FRAME_-43027_CLASS_ID = -43027 - FRAME_-43027_CENTER = -43 - TKFRAME_-43027_RELATIVE = 'IMAP_SPACECRAFT' - TKFRAME_-43027_SPEC = 'MATRIX' - TKFRAME_-43027_MATRIX = ( -0.86602540378443865, - -0.50000000000000000, - 0.00000000000000000, - 0.50000000000000000, - -0.86602540378443865, - 0.00000000000000000, - 0.00000000000000000, - 0.00000000000000000, - 1.00000000000000000 ) - - \begintext - - -IMAP Sun Sensor Frames -======================================================================== - - There are two digital sun sensors (DSS): one on the +Z side of the - spacecraft pointing in +Z direction, and one on the -Z side pointing - mostly in the radial direction with a mild tilt in the -Z direction. - The positional information is captured in the IMAP structure SPK, - while the orientation information is captured here. - - Each DSS has a frame defined so that the look-direction is along the - +Z' axis (toward Sun). The digital image rows and columns are aligned - with the X' and Y' axes of the frame. - - [X] [ cos(az) -sin(az) 0 ] [X'] - [Y] = [ sin(az) cos(az) 0 ] [Y'] - [Z]S/C [ 0 0 1 ] [Z']Digital Sun Sensor - - -IMAP Star Trackers Frames -======================================================================== - - -IMAP Antenna Frames -======================================================================== - - -IMAP-Lo Frames -======================================================================== - - TODO: FIX ME...The orientation of the spacecraft body frame with - respect to an inertial - frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3] - for details). - - This frame specifies the rotating X,Y and pointing Z coordinate body - frame. - - \begindata - - FRAME_IMAP_LO_BASE = -43100 - FRAME_-43100_NAME = 'IMAP_LO_BASE' - FRAME_-43100_CLASS = 4 - FRAME_-43100_CLASS_ID = -43100 - FRAME_-43100_CENTER = -43 - CK_-43100_SCLK = -43 - CK_-43100_SPK = -43 - TKFRAME_-43100_SPEC = 'MATRIX' - TKFRAME_-43100_MATRIX = ( -0.866025, - 0.500000, - 0.000000, - 0.500000, - 0.866025, - 0.000000, - 0.000000, - 0.000000, - 1.000000 ) - TKFRAME_-43100_RELATIVE = 'IMAP_SPACECRAFT' - - \begintext - - -IMAP-Hi Frames -======================================================================== - - TODO: general discussion of Ultra. - - - IMAP-Hi 45 Frames - ===================================================================== - - \begindata - - FRAME_IMAP_HI_45 = -43150 - FRAME_-43150_NAME = 'IMAP_HI_45' - FRAME_-43150_CLASS = 4 - FRAME_-43150_CLASS_ID = -43150 - FRAME_-43150_CENTER = -43 - CK_-43150_SCLK = -43 - CK_-43150_SPK = -43 - TKFRAME_-43150_SPEC = 'MATRIX' - TKFRAME_-43150_MATRIX = ( 0.066987, - -0.250000, - 0.965926, - 0.965926, - 0.258819, - 0.000000, - -0.250000, - 0.933013, - 0.258819 ) - TKFRAME_-43150_RELATIVE = 'IMAP_SPACECRAFT' - - \begintext - - - IMAP-Hi 90 Frames - ===================================================================== - - TODO: FIX ME...The orientation of the spacecraft body frame with - respect to an inertial - frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3] - for details). - - This frame specifies the rotating X,Y and pointing Z coordinate body - frame. - - \begindata - - FRAME_IMAP_HI_90 = -43160 - FRAME_-43160_NAME = 'IMAP_HI_90' - FRAME_-43160_CLASS = 4 - FRAME_-43160_CLASS_ID = -43160 - FRAME_-43160_CENTER = -43 - CK_-43160_SCLK = -43 - CK_-43160_SPK = -43 - TKFRAME_-43160_SPEC = 'MATRIX' - TKFRAME_-43160_MATRIX = ( -0.668531, - 0.233315, - -0.706138, - 0.683013, - -0.183013, - -0.707107, - -0.294210, - -0.955024, - -0.037007 ) - TKFRAME_-43160_RELATIVE = 'IMAP_SPACECRAFT' - - \begintext -Hack start - \begindata - FRAME_IMAP_DPS = -43906 - FRAME_-43906_NAME = 'IMAP_DPS' - FRAME_-43906_CLASS = 5 - FRAME_-43906_CLASS_ID = -43006 - FRAME_-43906_CENTER = -43 - FRAME_-43906_RELATIVE = 'ECLIPJ2000' - FRAME_-43906_DEF_STYLE = 'PARAMETERIZED' - FRAME_-43906_FAMILY = 'TWO-VECTOR' - FRAME_-43906_PRI_AXIS = 'Z' - FRAME_-43906_PRI_VECTOR_DEF = 'CONSTANT' - FRAME_-43906_PRI_SPEC = 'RECTANGULAR' - FRAME_-43906_PRI_FRAME = 'IMAP_SPACECRAFT' - FRAME_-43906_PRI_VECTOR = (0,0,1) - FRAME_-43906_SEC_AXIS = 'X' - FRAME_-43906_SEC_VECTOR_DEF = 'CONSTANT' - FRAME_-43906_SEC_SPEC = 'RECTANGULAR' - FRAME_-43906_SEC_FRAME = 'ECLIPJ2000' - FRAME_-43906_SEC_VECTOR = (0,0,1) - \begintext -Hack end - -IMAP-Ultra Frames -======================================================================== - - TODO: general discussion of Ultra. - - - IMAP-Ultra 45 Frames - ===================================================================== - - TODO: add diagrams - - ULTRA-45 has the following nominal alignment to the spacecraft frame, - reference Table 1 of [6]. The azimuth and elevation angles are - illustrated in the 'IMAP I&T Component Placement' section near the top - of this document. - - azimuth | elevation - (deg) | (deg) - ---------+--------- - 127 | 15 - - The ULTRA-45 base frame is defined by the instrument team as follows [10]: - - * +Z axis is the boresight (center axis of the instrument pointing - away from the spacecraft body). - * +X axis is along the instrument slit, in the anti-sunward direction. - - The azimuth and elevation give the instrument boresight vector, +Z in - the instrument frame: - - Z = [ -sin(az) * cos(el), cos(az) * cos(el), sin(el) ] - instr - - The instrument +X axis is in the anti-sunward direction, towards the - spacecraft -Z axis: - - X = [ 0 0 -1 ] - instr - - Taking the cross product and normalizing, we arrive at the instrumet +Y - axis: - Z x X - Y = --------- - instr | Z x X | - - And adjusting X: - - Y x Z - X = --------- - instr | Y x Z | - - This definition is captured in the keywords below. - - \begindata - - FRAME_IMAP_ULTRA_45 = -43200 - FRAME_-43200_NAME = 'IMAP_ULTRA_45' - FRAME_-43200_CLASS = 4 - FRAME_-43200_CLASS_ID = -43200 - FRAME_-43200_CENTER = -43 - CK_-43200_SCLK = -43 - CK_-43200_SPK = -43 - TKFRAME_-43200_SPEC = 'MATRIX' - TKFRAME_-43200_MATRIX = ( 0.385117954958023, - -0.593029645775782, - -0.707106781186548, - -0.838670567945424, - -0.544639035015027, - -0.000000000000000, - -0.385117954958023, - 0.593029645775783, - -0.707106781186547 ) - TKFRAME_-43200_RELATIVE = 'IMAP_SPACECRAFT' - - \begintext - - - IMAP-Ultra 45 Frames - ===================================================================== - - TODO: FIX ME...The orientation of the spacecraft body frame with - respect to an inertial - frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3] - for details). - - This frame specifies the rotating X,Y and pointing Z coordinate body - frame. - - \begindata - - FRAME_IMAP_ULTRA_90 = -43210 - FRAME_-43210_NAME = 'IMAP_ULTRA_90' - FRAME_-43210_CLASS = 4 - FRAME_-43210_CLASS_ID = -43210 - FRAME_-43210_CENTER = -43 - CK_-43210_SCLK = -43 - CK_-43210_SPK = -43 - TKFRAME_-43210_SPEC = 'MATRIX' - TKFRAME_-43210_MATRIX = ( 0.000000, - 0.000000, - 1.000000, - -0.866025, - -0.500000, - 0.000000, - 0.500000, - -0.866025, - 0.000000 ) - TKFRAME_-43210_RELATIVE = 'IMAP_SPACECRAFT' - - \begintext - - -IMAP Magnetometer (MAG) Frames -======================================================================== - - TODO: FIX ME...The orientation of the spacecraft body frame with - respect to an inertial - frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3] - for details). - - Basically just maps Z-inst to Y-body - - This frame specifies the rotating X,Y and pointing Z coordinate body - frame. - - \begindata - - FRAME_IMAP_MAG = -43250 - FRAME_-43250_NAME = 'IMAP_MAG' - FRAME_-43250_CLASS = 4 - FRAME_-43250_CLASS_ID = -43250 - FRAME_-43250_CENTER = -43 - CK_-43250_SCLK = -43 - CK_-43250_SPK = -43 - TKFRAME_-43250_SPEC = 'MATRIX' - TKFRAME_-43250_MATRIX = ( 0.000000, - 0.000000, - 0.000000, - 0.000000, - 0.000000, - 1.000000, - 0.000000, - 0.000000, - 0.000000 ) - TKFRAME_-43250_RELATIVE = 'IMAP_SPACECRAFT' - -\begintext - - -IMAP Solar Wind Electron (SWE) Frames -======================================================================== - - TODO: FIX ME...The orientation of the spacecraft body frame with - respect to an inertial - frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3] - for details). - - This frame specifies the rotating X,Y and pointing Z coordinate body - frame. - - \begindata - - FRAME_IMAP_SWE = -43300 - FRAME_-43300_NAME = 'IMAP_SWE' - FRAME_-43300_CLASS = 4 - FRAME_-43300_CLASS_ID = -43300 - FRAME_-43300_CENTER = -43 - CK_-43300_SCLK = -43 - CK_-43300_SPK = -43 - TKFRAME_-43300_SPEC = 'MATRIX' - TKFRAME_-43300_MATRIX = ( 0.453990, - 0.891007, - 0.000000, - -0.891007, - 0.453990, - 0.000000, - 0.000000, - 0.000000, - 1.000000 ) - TKFRAME_-43300_RELATIVE = 'IMAP_SPACECRAFT' - -\begintext - - -IMAP Solar Wind and Pickup Ion (SWAPI) Frames -======================================================================== - - TODO: add diagrams - - SWAPI has the following nominal alignment to the spacecraft frame, - reference Table 1 of [6]. The azimuth and elevation angles are - illustrated in the 'IMAP I&T Component Placement' section near the top - of this document. - - azimuth | elevation - (deg) | (deg) - ---------+--------- - 168 | 0 - - The SWAPI base frame is defined in the instrument MICD [8] as follows: - - * -Z axis is the axis of symmetry of the instrument, pointing - away from the spacecraft body. - * +Y axis is along the aperture center, in the anti-sunward direction. - - The azimuth and elevation give the outward axis of symmetry, -Z in the - instrument frame: - - -Z = -[ -sin(az) * cos(el), cos(az) * cos(el), sin(el) ] - instr - - The instrument +Y axis is in the sunward direction, towards the - spacecraft +Z axis: - - Y = [ 0 0 1 ] - instr - - Taking the cross product and normalizing, we arrive at the instrumet +X - axis: - Y x Z - X = --------- - instr | Y x Z | - - And adjusting Y: - - Z x X - Y = --------- - instr | Z x X | - - This definition is captured in the keywords below. - - \begindata - - FRAME_IMAP_SWAPI = -43350 - FRAME_-43350_NAME = 'IMAP_SWAPI' - FRAME_-43350_CLASS = 4 - FRAME_-43350_CLASS_ID = -43350 - FRAME_-43350_CENTER = -43 - CK_-43350_SCLK = -43 - CK_-43350_SPK = -43 - TKFRAME_-43350_SPEC = 'MATRIX' - TKFRAME_-43350_MATRIX = ( -0.97814760073381, - 0.20791169081776, - 0.00000000000000, - 0.00000000000000, - 0.00000000000000, - 1.00000000000000, - 0.20791169081776, - 0.97814760073381, - 0.00000000000000 ) - TKFRAME_-43350_RELATIVE = 'IMAP_SPACECRAFT' - -\begintext - - -IMAP Compact Dual Ion Composition Experiment (CoDICE) Frames -======================================================================== - - TODO: FIX ME...The orientation of the spacecraft body frame with - respect to an inertial - frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3] - for details). - - This frame specifies the rotating X,Y and pointing Z coordinate body - frame. - - \begindata - - FRAME_IMAP_CODICE = -43400 - FRAME_-43400_NAME = 'IMAP_CODICE' - FRAME_-43400_CLASS = 4 - FRAME_-43400_CLASS_ID = -43400 - FRAME_-43400_CENTER = -43 - CK_-43400_SCLK = -43 - CK_-43400_SPK = -43 - TKFRAME_-43400_SPEC = 'MATRIX' - TKFRAME_-43400_MATRIX = ( 0.694626, - 0.719371, - 0.000000, - -0.719371, - 0.694626, - 0.000000, - 0.000000, - 0.000000, - 1.000000 ) - TKFRAME_-43400_RELATIVE = 'IMAP_SPACECRAFT' - -\begintext - - -IMAP High-energy Ion Telescope (HIT) Frames -======================================================================== - - TODO: FIX ME...The orientation of the spacecraft body frame with - respect to an inertial - frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3] - for details). - - This frame specifies the rotating X,Y and pointing Z coordinate body - frame. - - \begindata - - FRAME_IMAP_HIT = -43500 - FRAME_-43500_NAME = 'IMAP_HIT' - FRAME_-43500_CLASS = 4 - FRAME_-43500_CLASS_ID = -43500 - FRAME_-43500_CENTER = -43 - CK_-43500_SCLK = -43 - CK_-43500_SPK = -43 - TKFRAME_-43500_SPEC = 'MATRIX' - TKFRAME_-43500_MATRIX = ( 0.866025, - 0.500000, - 0.000000, - -0.500000, - 0.866025, - 0.000000, - 0.000000, - 0.000000, - 1.000000 ) - TKFRAME_-43500_RELATIVE = 'IMAP_SPACECRAFT' - -\begintext - - -IMAP Interstellar Dust Experiment (IDEX) Frames -======================================================================== - - TODO: FIX ME...The orientation of the spacecraft body frame with - respect to an inertial - frame, for IMAP - ECLIPJ2000, is provided by a C-kernel (see [3] - for details). - - This frame specifies the rotating X,Y and pointing Z coordinate body - frame. - - \begindata - - FRAME_IMAP_IDEX = -43700 - FRAME_-43700_NAME = 'IMAP_IDEX' - FRAME_-43700_CLASS = 4 - FRAME_-43700_CLASS_ID = -43700 - FRAME_-43700_CENTER = -43 - CK_-43700_SCLK = -43 - CK_-43700_SPK = -43 - TKFRAME_-43700_SPEC = 'MATRIX' - TKFRAME_-43700_MATRIX = ( 0.000000, - 1.000000, - 0.000000, - -0.707107, - 0.000000, - -0.707107, - -0.707107, - 0.000000, - 0.707107 ) - TKFRAME_-43700_RELATIVE = 'IMAP_SPACECRAFT' - -\begintext - - -IMAP GLObal solar Wind Structure (GLOWS) Frames -======================================================================== - - TODO: add diagrams - - GLOWS has the following nominal alignment to the spacecraft frame, - reference Table 1 of [6]. The azimuth and elevation angles are - illustrated in the 'IMAP I&T Component Placement' section near the top - of this document. - - azimuth | elevation - (deg) | (deg) - ---------+--------- - 127 | 15 - - The GLOWS base frame is defined by the instrument team as follows [10]: - - * +Z axis points in the anti-boresight direction - * +Y axis points in the anti-sunward direction. - - The azimuth and elevation give the outward axis of symmetry, -Z in the - instrument frame: - - Z = -[ -sin(az) * cos(el), cos(az) * cos(el), sin(el) ] - instr - - The instrument +Y axis is in the anti-sunward direction, towards the - spacecraft -Z axis: - - Y = [ 0 0 -1 ] - instr - - Taking the cross product and normalizing, we arrive at the instrumet +X - axis: - Y x Z - X = --------- - instr | Y x Z | - - And adjusting Y: - - Z x X - Y = --------- - instr | Z x X | - - This definition is captured in the keywords below. - - \begindata - - FRAME_IMAP_GLOWS = -43750 - FRAME_-43750_NAME = 'IMAP_GLOWS' - FRAME_-43750_CLASS = 4 - FRAME_-43750_CLASS_ID = -43750 - FRAME_-43750_CENTER = -43 - CK_-43750_SCLK = -43 - CK_-43750_SPK = -43 - TKFRAME_-43750_SPEC = 'MATRIX' - TKFRAME_-43750_MATRIX = ( 0.60181502315205, - -0.79863551004729, - 0.00000000000000, - -0.20670208009540, - -0.15576118962056, - -0.96592582628907, - 0.77142266494622, - 0.58130867351132, - -0.25881904510252 ) - TKFRAME_-43750_RELATIVE = 'IMAP_SPACECRAFT' - -\begintext - - Generic axis - - +Z axis - . - | - . - | - . - | - . - | - . - | - . - | - .~ ~ - .~ '` ^~ - .~ '` ^~ - .~ '` ^~ - .~ '` ^~ - +X axis ^~ - ^~ - ^~ - +Y axis - -End of FK file. diff --git a/tools/tests/test_data/spice/naif0012.tls b/tools/tests/test_data/spice/naif0012.tls new file mode 100644 index 000000000..caa6a4d13 --- /dev/null +++ b/tools/tests/test_data/spice/naif0012.tls @@ -0,0 +1,150 @@ +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/tools/tests/test_data/spice/spp_v100.tf b/tools/tests/test_data/spice/spp_v100.tf new file mode 100644 index 000000000..b568a0be1 --- /dev/null +++ b/tools/tests/test_data/spice/spp_v100.tf @@ -0,0 +1,2576 @@ +KPL/FK + +Parker Solar Probe Frames Kernel +======================================================================== + + This frames kernel contains the current set of coordinate frame + definitions for the Parker Solar Probe spacecraft, structures, and + science instruments. + + To be consistent with conventions prior to the mission name change + from Solar Probe Plus (SPP) to Parker Solar Probe (PSP) in 2017, frame + names and other text IDs are prefixed with the legacy acronym, SPP. + +Version and Date +======================================================================== + + The TEXT_KERNEL_ID stores version information of loaded project text + kernels. Each entry associated with the keyword is a string that consists + of four parts: the kernel name, version, entry date, and type. For example, + the frames kernel might have an entry as follows: + + TEXT_KERNEL_ID += 'SPP_FRAMES V1.0.0 25-JUNE-2018 FK' + | | | | + | | | | + KERNEL NAME <-------+ | | | + | | V + VERSION <------+ | KERNEL TYPE + | + V + ENTRY DATE + + Parker Solar Probe Frames Kernel Version: + + \begindata + + TEXT_KERNEL_ID += 'SPP_FRAMES V1.0.0 18-DEC-2018 FK' + + NAIF_BODY_NAME += ( 'SPP' ) + NAIF_BODY_CODE += ( -96 ) + + \begintext + + + Version 1.0.0 -- Dec. 18, 2018 -- Lillian Nguyen + Scott Turner + Alexandra Matiella Novak + + Added EPI-Lo frames. + Added WISPR frames. + Added NAIF body name to ID mapping for the spacecraft. + Added comments (references, frame table, frame tree, etc.) + + Version 0.0.1 -- May 12, 2017 -- Wen-Jong Shyong + + Spacecraft, high gain antenna, and solar panel frames. + + +References +======================================================================== + + 1. 'Frames Required Reading' + + 2. 'Kernel Pool Required Reading' + + 3. 'C-Kernel Required Reading' + + 4. 'SPP_ISIS_EPI_lo_mechanical_ICD_7464-0008.pdf', received from Matt Hill, + JHU/APL + + 5. 'EPI_Lo_collimators_FOV_mechanical_SteveLayman_drawings_pathlength_SSD_ + foil_distances_angles_for_GEANT_7464-matt-hill_b.pdf', received from + Matt Hill, JHU/APL + + 6. 'EPI-Lo_wedge_aperture_naming_orientation_2016_11_18.pptx', received + from Matt Hill, JHU/APL + + 7. '7434-0011.pdf', from JHU/APL engineering database PLM Windchill + + 8. '16105 1001 EM ISIS MICD 14-08-13 Rev-.pdf', received from Alexandra + Dupont, JHU/APL + + 9. 'EPI LO FOV.pptx', received from Steve Layman, JHU/APL + + 10. 'epiLO.xlsx', received from Chris Choi, JHU/APL + + 11. 'EPI_LO_FOV_2014_07_29_2014_09_09.xlsx', received from Matt Hill, + JHU/APL + + 12. Email from Martha Kusterer regarding frame IDs, received 2/7/2018. + + 13. '7434-9056_Rev_D.pdf', received from Martha Kusterer on 5/29/2018. + + 14. Email from Roberto Livi confirming SWEAP FOVs as described in Appendix + A of [13], received 7/13/2018. + + 15. Frames kernel spp_v004.tf, having SPICE TEXT_KERNEL_ID + 'SPP V0.0.4 26-JUL-2016 FK', received from Angelos Vourlidas on + 5/29/2018 + + 16. 'PSPalignment020718-v29b.pptx', received from Chris Choi 5/29/2018. + + 17. 'spp_001.tf', received 9/12/18 from Wen-Jong Shyong + + 18. 'spp_v004', kernel ID 'SPP V0.0.4 26-JUL-2016 FK', received 5/29/18 + from Angelos Vourlidas + + 19. Email from Angelos Vourlidas containing updates boresights, + received 9/11/18. + + 20. "PSP Kernel Review EPI-Lo WISPR.pptx", Lillian Nguyen 12/12/2018 + +Contact Information +======================================================================== + + Lillian Nguyen, JHU/APL, + (443)778-5477, Lillian.Nguyen@jhuapl.edu + + Scott Turner, JHU/APL + (443)778-1693, Scott.Turner@jhuapl.edu + + M. Alexandra Matiella Novak, JHU/APL, + (443)802-1417, Alexandra.Matiella.Novak@jhuapl.edu + + Wen-Jong Shyong, JHU/APL + (443)778-8564, Wen-Jong.Shyong@jhuapl.edu + + +Implementation Notes +======================================================================== + + This file is used by the SPICE system as follows: programs that make + use of this frame kernel must `load' the kernel, normally during + program initialization. Loading the kernel associates the data items with + their names in a data structure called the `kernel pool'. The SPICELIB + routine FURNSH loads a kernel into the pool as shown below: + + FORTRAN: (SPICELIB) + + CALL FURNSH ( frame_kernel_name ) + + C: (CSPICE) + + furnsh_c ( frame_kernel_name ); + + IDL: (ICY) + + cspice_furnsh, frame_kernel_name + + MATLAB: (MICE) + + cspice_furnsh ( frame_kernel_name ) + + This file was created and may be updated with a text editor or word + processor. + + +SPP Frames +======================================================================== + + The ID codes -96900 to -96999 have been reserved for the Parker Solar + Probe dynamics frames kernel [12] and are not utilized in this file. + + The following frames are defined in this kernel file: + + Frame Name Relative To Type NAIF ID + ======================= =================== ======= ======= + + Spacecraft Frames: + ------------------ + SPP_SPACECRAFT J2000 CK -96000 + + Solar Array Frames: + ------------------- + SPP_SOLARPANEL_PLUS SPP_SPACECRAFT CK -96001 + SPP_SP_PLUS_BASE SPP_SPACECRAFT FIXED -96011 + SPP_SOLARPANEL_MINUS SPP_SPACECRAFT CK -96002 + SPP_SP_MINUS_BASE SPP_SPACECRAFT FIXED -96012 + + Antenna Frames: + --------------- + SPP_HIGH_GAIN_ANTENNA SPP_SPACECRAFT CK -96003 + SPP_HGA_BASE SPP_SPACECRAFT FIXED -96013 + + Spacecraft Deck Frames: + ----------------------- + SPP_DECK_1 SPP_SPACECRAFT FIXED -96081 + SPP_DECK_2 SPP_SPACECRAFT FIXED -96082 + SPP_DECK_3 SPP_SPACECRAFT FIXED -96083 + SPP_DECK_4 SPP_SPACECRAFT FIXED -96084 + SPP_DECK_5 SPP_SPACECRAFT FIXED -96085 + SPP_DECK_6 SPP_SPACECRAFT FIXED -96086 + + WISPR Frames: + ------------- + SPP_WISPR_INNER SPP_SPACECRAFT FIXED -96100 + SPP_WISPR_OUTER SPP_SPACECRAFT FIXED -96120 + + SWEAP Frames (TBD): + ------------- + ID codes -96200 to -96299 + + FIELDS Frames (TBD): + -------------------- + ID codes -96300 to -96399 + + ISOIS EPI-Lo Frames: + -------------------- + SPP_EPILO_BASE SPP_DECK_1 FIXED -96401 + SPP_EPILO_W0 SPP_EPILO_BASE FIXED -96411 + SPP_EPILO_L00 SPP_EPILO_W0 FIXED -96412 + SPP_EPILO_L01 SPP_EPILO_W0 FIXED -96413 + SPP_EPILO_L02 SPP_EPILO_W0 FIXED -96414 + SPP_EPILO_L03 SPP_EPILO_W0 FIXED -96415 + SPP_EPILO_L04 SPP_EPILO_W0 FIXED -96416 + SPP_EPILO_L05 SPP_EPILO_W0 FIXED -96417 + SPP_EPILO_L06 SPP_EPILO_W0 FIXED -96418 + SPP_EPILO_L07 SPP_EPILO_W0 FIXED -96419 + SPP_EPILO_L08 SPP_EPILO_W0 FIXED -96420 + SPP_EPILO_L09 SPP_EPILO_W0 FIXED -96421 + SPP_EPILO_W1 SPP_EPILO_BASE FIXED -96422 + SPP_EPILO_L10 SPP_EPILO_W1 FIXED -96423 + SPP_EPILO_L11 SPP_EPILO_W1 FIXED -96424 + SPP_EPILO_L12 SPP_EPILO_W1 FIXED -96425 + SPP_EPILO_L13 SPP_EPILO_W1 FIXED -96426 + SPP_EPILO_L14 SPP_EPILO_W1 FIXED -96427 + SPP_EPILO_L15 SPP_EPILO_W1 FIXED -96428 + SPP_EPILO_L16 SPP_EPILO_W1 FIXED -96429 + SPP_EPILO_L17 SPP_EPILO_W1 FIXED -96430 + SPP_EPILO_L18 SPP_EPILO_W1 FIXED -96431 + SPP_EPILO_L19 SPP_EPILO_W1 FIXED -96432 + ... + SPP_EPILO_W7 SPP_EPILO_BASE FIXED -96488 + SPP_EPILO_L70 SPP_EPILO_W7 FIXED -96489 + SPP_EPILO_L71 SPP_EPILO_W7 FIXED -96490 + SPP_EPILO_L72 SPP_EPILO_W7 FIXED -96491 + SPP_EPILO_L73 SPP_EPILO_W7 FIXED -96492 + SPP_EPILO_L74 SPP_EPILO_W7 FIXED -96493 + SPP_EPILO_L75 SPP_EPILO_W7 FIXED -96494 + SPP_EPILO_L76 SPP_EPILO_W7 FIXED -96495 + SPP_EPILO_L77 SPP_EPILO_W7 FIXED -96496 + SPP_EPILO_L78 SPP_EPILO_W7 FIXED -96497 + SPP_EPILO_L79 SPP_EPILO_W7 FIXED -96498 + + NOTE: ID codes -96400 through -96699 are reserved for EPI-Lo frames + and fields of view. + + ISOIS EPI-Hi Frames (TBD): + -------------------------- + -96700 to -96799 + + +SPP Frame Tree +======================================================================== + + The diagram below illustrates the SPP frame hierarchy: + + J2000 + | + |<---ck + | + SPP_SPACECRAFT + | + SPP_SP_PLUS_BASE + | + |<---ck + | + SPP_SOLARPANEL_PLUS + | + SPP_SP_MINUS_BASE + | + |<---ck + | + SPP_SOLARPANEL_MINUS + | + SPP_HGA_BASE + | + |<---ck + | + SPP_HIGH_GAIN_ANTENNA + | + SPP_DECK_1 + | | + | SPP_EPILO_BASE + | | + | SPP_EPILO_W0 + | | | + | | SPP_EPILO_L00 + | | | + | | SPP_EPILO_L01 + | | | + | | ... + | | SPP_EPILO_L09 + | | + | SPP_EPILO_W1 + | | | + | | SPP_EPILO_L10 + | | | + | | SPP_EPILO_L11 + | | | + | | ... + | | SPP_EPILO_L19 + | | + | ... + | SPP_EPILO_W7 + | | + | SPP_EPILO_L70 + | | + | SPP_EPILO_L71 + | | + | ... + | SPP_EPILO_L79 + | + SPP_DECK_2 + | + SPP_DECK_3 + | + SPP_DECK_4 + | + SPP_DECK_5 + | + SPP_DECK_6 + | + SPP_WISPR_INNER + | + SPP_WISPR_OUTER + + +Spacecraft Frames +======================================================================== + + The orientation of the spacecraft body frame with respect to an inertial + frame, typically J2000, is provided by a C-kernel (see [3] for details). + + \begindata + + FRAME_SPP_SPACECRAFT = -96000 + FRAME_-96000_NAME = 'SPP_SPACECRAFT' + FRAME_-96000_CLASS = 3 + FRAME_-96000_CLASS_ID = -96000 + FRAME_-96000_CENTER = -96 + CK_-96000_SCLK = -96 + CK_-96000_SPK = -96 + + \begintext + + +Solar Array Frames +======================================================================== + + Solar Array Reference Frames and Nominal Alignments [17] + + The default transformation matrix for the solar array frames to the + S/C body frame for flap angle of 0 degree and feather angle of 0 degree + is: + + [X] [ -1 0 0 ] [X] + [Y] = [ 0 -1 0 ] [Y] + [Z]S/C [ 0 0 1 ] [Z]+Y SA + + [X] [ 1 0 0 ] [X] + [Y] = [ 0 1 0 ] [Y] + [Z]S/C [ 0 0 1 ] [Z]-Y SA + + The orientation of the solar array frames with respect to an inertial + frame, typically J2000, is provided by a C-kernel (see [3] for details). + + \begindata + + FRAME_SPP_SP_PLUS_BASE = -96011 + FRAME_-96011_NAME = 'SPP_SP_PLUS_BASE' + FRAME_-96011_CLASS = 4 + FRAME_-96011_CLASS_ID = -96011 + FRAME_-96011_CENTER = -96 + TKFRAME_-96011_SPEC = 'MATRIX' + TKFRAME_-96011_RELATIVE = 'SPP_SPACECRAFT' + TKFRAME_-96011_MATRIX = ( 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1 ) + + FRAME_SPP_SOLARPANEL_PLUS = -96001 + FRAME_-96001_NAME = 'SPP_SOLARPANEL_PLUS' + FRAME_-96001_CLASS = 3 + FRAME_-96001_CLASS_ID = -96001 + FRAME_-96001_CENTER = -96 + CK_-96001_SCLK = -96 + CK_-96001_SPK = -96 + + FRAME_SPP_SP_MINUS_BASE = -96012 + FRAME_-96012_NAME = 'SPP_SP_MINUS_BASE' + FRAME_-96012_CLASS = 4 + FRAME_-96012_CLASS_ID = -96012 + FRAME_-96012_CENTER = -96 + TKFRAME_-96012_SPEC = 'MATRIX' + TKFRAME_-96012_RELATIVE = 'SPP_SPACECRAFT' + TKFRAME_-96012_MATRIX = ( 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1 ) + + FRAME_SPP_SOLARPANEL_MINUS = -96002 + FRAME_-96002_NAME = 'SPP_SOLARPANEL_MINUS' + FRAME_-96002_CLASS = 3 + FRAME_-96002_CLASS_ID = -96002 + FRAME_-96002_CENTER = -96 + CK_-96002_SCLK = -96 + CK_-96002_SPK = -96 + + + \begintext + + +Antenna Frames +======================================================================== + + High-Gain Antenna Nominal Alignment [17] + + The HGA reference axis is nominally the spacecraft -Y axis. + The reference angle is nominally 90 degree and the reference axis is + nominally the sapcecraft -X axis. + + [X] [ 0 0 -1 ] [X] + [Y] = [ 0 -1 0 ] [Y] + [Z]S/C [ -1 0 0 ] [Z]HGA + + A more general representation of the transormation for a specified + rotation angle about the gimbal axis is: + + [X] [ -cos(s) 0 -sin(s) ] [X] + [Y] = [ 0 -1 0 ] [Y] + [Z]S/C [ -sin(s) 0 cos(s) ] [Z]HGA + + where s varires between 45 degree and 135 degree as the antenna rotates + about the -Y axis. + + The orientation of the high gain antenna frame with respect to an inertial + frame, typically J2000, is provided by a C-kernel (see [3] for details). + + \begindata + + FRAME_SPP_HGA_BASE = -96013 + FRAME_-96013_NAME = 'SPP_HGA_BASE' + FRAME_-96013_CLASS = 4 + FRAME_-96013_CLASS_ID = -96013 + FRAME_-96013_CENTER = -96 + TKFRAME_-96013_SPEC = 'MATRIX' + TKFRAME_-96013_RELATIVE = 'SPP_SPACECRAFT' + TKFRAME_-96013_MATRIX = ( 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1 ) + + FRAME_SPP_HIGH_GAIN_ANTENNA = -96003 + FRAME_-96003_NAME = 'SPP_HIGH_GAIN_ANTENNA' + FRAME_-96003_CLASS = 3 + FRAME_-96003_CLASS_ID = -96003 + FRAME_-96003_CENTER = -96 + CK_-96003_SCLK = -96 + CK_-96003_SPK = -96 + + \begintext + + +Deck Frames +=========================================================================== + + The shape of the spacecraft bus is a hexagonal prism [7]. Defined here are + frames for each of the six panels, or spacecraft decks. Including frames + for the spacecraft decks simplify the nominal frame definitions for + some instruments. + + The decks are numbered arbitrarily from 1 to 6, beginning with the deck + in the first quadrant of the spacecraft XY plane and increasing clockwise + as viewed looking up the spacecraft +Z axis. The deck numbering is + illustrated below. + + X + sc + ^ + | + deck 6 . '|' . deck 1 + . ' | ' . + ' | ' + ' -. | .- ' + deck 5 | `- . | .- ' | deck 2 + <------------------x-------------------> Y + | . -' | `- . | sc + .-' | `- . + ' | ' + ' . | . ` + deck 4 '.|. ' deck 3 + | + v + + + Defined below for each deck is a coordinate system that has its +Z axis + aligned with the spacecraft +Z axis, and the outward pointing normal to + the deck as its +X axis. + + The rotation matrices taking vectors from the deck frames to the + spacecraft frame are defined below. + + \begindata + + FRAME_SPP_DECK_1 = -96081 + FRAME_-96081_NAME = 'SPP_DECK_1' + FRAME_-96081_CLASS = 4 + FRAME_-96081_CLASS_ID = -96081 + FRAME_-96081_CENTER = -96 + TKFRAME_-96081_SPEC = 'MATRIX' + TKFRAME_-96081_RELATIVE = 'SPP_SPACECRAFT' + TKFRAME_-96081_MATRIX = ( + 0.866025403784 + 0.5 + 0.0 + -0.5 + 0.866025403784 + 0.0 + 0.0 + 0.0 + 1.0 ) + + FRAME_SPP_DECK_2 = -96082 + FRAME_-96082_NAME = 'SPP_DECK_2' + FRAME_-96082_CLASS = 4 + FRAME_-96082_CLASS_ID = -96082 + FRAME_-96082_CENTER = -96 + TKFRAME_-96082_SPEC = 'MATRIX' + TKFRAME_-96082_RELATIVE = 'SPP_SPACECRAFT' + TKFRAME_-96082_MATRIX = ( + 0.0 + 1.0 + 0.0 + -1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 ) + + FRAME_SPP_DECK_3 = -96083 + FRAME_-96083_NAME = 'SPP_DECK_3' + FRAME_-96083_CLASS = 4 + FRAME_-96083_CLASS_ID = -96083 + FRAME_-96083_CENTER = -96 + TKFRAME_-96083_SPEC = 'MATRIX' + TKFRAME_-96083_RELATIVE = 'SPP_SPACECRAFT' + TKFRAME_-96083_MATRIX = ( + -0.866025403784 + 0.5 + 0.0 + -0.5 + -0.866025403784 + 0.0 + 0.0 + 0.0 + 1.0 ) + + FRAME_SPP_DECK_4 = -96084 + FRAME_-96084_NAME = 'SPP_DECK_4' + FRAME_-96084_CLASS = 4 + FRAME_-96084_CLASS_ID = -96084 + FRAME_-96084_CENTER = -96 + TKFRAME_-96084_SPEC = 'MATRIX' + TKFRAME_-96084_RELATIVE = 'SPP_SPACECRAFT' + TKFRAME_-96084_MATRIX = ( + -0.866025403784 + -0.5 + 0.0 + 0.5 + -0.866025403784 + 0.0 + 0.0 + 0.0 + 1.0 ) + + FRAME_SPP_DECK_5 = -96085 + FRAME_-96085_NAME = 'SPP_DECK_5' + FRAME_-96085_CLASS = 4 + FRAME_-96085_CLASS_ID = -96085 + FRAME_-96085_CENTER = -96 + TKFRAME_-96085_SPEC = 'MATRIX' + TKFRAME_-96085_RELATIVE = 'SPP_SPACECRAFT' + TKFRAME_-96085_MATRIX = ( + 0.0 + -1.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 ) + + FRAME_SPP_DECK_6 = -96086 + FRAME_-96086_NAME = 'SPP_DECK_6' + FRAME_-96086_CLASS = 4 + FRAME_-96086_CLASS_ID = -96086 + FRAME_-96086_CENTER = -96 + TKFRAME_-96086_SPEC = 'MATRIX' + TKFRAME_-96086_RELATIVE = 'SPP_SPACECRAFT' + TKFRAME_-96086_MATRIX = ( + 0.866025403784 + -0.5 + 0.0 + 0.5 + 0.866025403784 + 0.0 + 0.0 + 0.0 + 1.0 ) + + \begintext + + +WISPR Frames +=========================================================================== + + From [18]: + + WISPR consists of two different telescopes that have slightly + overlapping fields of view. The current implementation of these + define these two frames as independently connected to the + SPP_SPACECRAFT frame, but this can be altered as needed if in + practice one is calibrated relative to the other. + + The axes of each of the two WISPR frames are as follows: + + Z-axis is the boresight of the telescope (vector pointing out + of the telescope along its line of sight) + + Y-axis is the normal to the plane containing both camera boresights. + + X-axis completes the right handed system. + + WISPR Inner Telescope Boresight (instrument Z axis): + + The nominal boresight [18] of this detector is 32.2 degrees off the + SPP_SPACECRAFT +Z-axis towards the spacecraft +X-axis (ram direction + in encounter orientation). It is inclined 10 degrees out of the + ecliptic "southward" in the encounter orientation. "Southward" is + along the Y-axis nominally, so this translates into a boresight + vector in the spacecraft frame of: + + [ cos(10.0)*sin(32.2) ] = [ 0.52478068807072864 ] + Z_Inner = [ sin(10.0) ] = [ 0.17364817766693033 ] + [ cos(10.0)*cos(32.2) ] = [ 0.83333759054837242 ] + + [19] provides an update to this nominal boresight, normalized here: + + [ 0.53806848033103727 ] + Z_Inner = [ 0.08578895005278017 ] + [ 0.83852404051588747 ] + + WISPR Outer Telescope Boresight (instrument Z axis): + + The nominal boresight [18] of this detector is 77.0 degrees off the + SPP_SPACECRAFT +Z-axis towards the spacecraft +X-axis (ram direction + in encounter orientation). It is inclined 10 degrees out of the + ecliptic "southward" in the encounter orientation. "Southward" is + along the Y-axis nominally, so this translates into a boresight + vector in the spacecraft frame of: + + [ cos(10.0)*sin(77.0) ] = [ 0.95956719410350710 ] + Z_Outer = [ sin(10.0) ] = [ 0.17364817766693033 ] + [ cos(10.0)*cos(77.0) ] = [ 0.22153354236610870 ] + + [19] provides an update to this nominal boresight, normalized here: + + [ 0.96022820172582790 ] + Z_Outer = [ 0.16541537029730274 ] + [ 0.22494345040429314 ] + + WISPR Inner and Outer Telescope X and Y axes + + The Y-axis for both cameras is the the normal to the updated Inner and + Outer Telescope boresights. This is accomplished with the cross product: + + [ -0.17192917141267056 ] + Y = Z_Inner x Z_Outer = [ 0.98506308873062820 ] + [ 0.00954312516039215 ] + + The X-axis completes the right handed frame: + + X_Inner = Y x Z_Inner + X_Outer = Y x Z_Outer + + WISPR Inner Telescope Frame (SPP_WISPR_INNER): + + The resultant rotation from the inner telescope frame to the spacecraft + is then: + + [ X_Inner Y Z_Inner ] = + + [ 0.82518038663773430 -0.17192917141267056 0.53806848033103727 ] + [ 0.14930159834816223 0.98506308873062820 0.08578895005278017 ] + [ -0.54478102228242442 0.00954312516039215 0.83852404051588747 ] + + And the corresponding frame definition: + + \begindata + FRAME_SPP_WISPR_INNER = -96100 + FRAME_-96100_NAME = 'SPP_WISPR_INNER' + FRAME_-96100_CLASS = 4 + FRAME_-96100_CLASS_ID = -96100 + FRAME_-96100_CENTER = 'SPP' + TKFRAME_-96100_RELATIVE = 'SPP_SPACECRAFT' + TKFRAME_-96100_SPEC = 'MATRIX' + TKFRAME_-96100_MATRIX = ( 0.82518038663773430 + 0.14930159834816223 + -0.54478102228242442 + -0.17192917141267056 + 0.98506308873062820 + 0.00954312516039215 + 0.53806848033103727 + 0.08578895005278017 + 0.83852404051588747 ) + \begintext + + WISPR Outer Telescope Frame (SPP_WISPR_OUTER): + + The resultant rotation from the outer telescope frame to the spacecraft + is then: + + [ X_Outer Y Z_Outer ] = + + [ 0.22000491046277809 -0.17192917141267056 0.96022820172582790 ] + [ 0.04783791895432513 0.98506308873062820 0.16541537029730274 ] + [ -0.97432508583243616 0.00954312516039215 0.22494345040429314 ] + + And the corresponding frame definition: + + \begindata + FRAME_SPP_WISPR_OUTER = -96120 + FRAME_-96120_NAME = 'SPP_WISPR_OUTER' + FRAME_-96120_CLASS = 4 + FRAME_-96120_CLASS_ID = -96120 + FRAME_-96120_CENTER = 'SPP' + TKFRAME_-96120_RELATIVE = 'SPP_SPACECRAFT' + TKFRAME_-96120_SPEC = 'MATRIX' + TKFRAME_-96120_MATRIX = ( 0.22000491046277809 + 0.04783791895432513 + -0.97432508583243616 + -0.17192917141267056 + 0.98506308873062820 + 0.00954312516039215 + 0.96022820172582790 + 0.16541537029730274 + 0.22494345040429314 ) + \begintext + + +SWEAP Frames +=========================================================================== + +TBD + + +FIELDS Frames +=========================================================================== + +TBD + + +EPI-Lo Frames +=========================================================================== + + [20] describes in detail the EPI-Lo frame determination described in the + following sections. + + EPI-Lo Frame Naming and Numbering Convention + ------------------------------------------------------------------------ + + EPI-Lo has 8 octants, or wedges, each having 10 apertures, for a total of + 80 apertures. Each wedge and each aperture has its own frame defined below. + + Frame Naming: + + [6] shows the wedge and aperture locations in the instrument. The eight + wedges are named W0 - W7. The ten apertures in a wedge are named + L#0 - L#9, where # is the wedge number, to give eighty unique names + L00 - L79 for the apertures. + + Frame Numbering: + + Each wedge frame is assigned the NAIF ID -964##, where ## is + the corresponding double digit number listed below. + + Wedge 0 has number 11 + Wedge 1 has number 22 + Wedge 2 has number 33 + Wedge 3 has number 44 + Wedge 4 has number 55 + Wedge 5 has number 66 + Wedge 6 has number 77 + Wedge 7 has number 88 + + The aperture frames are also assigned NAIF IDs -964##, where ## is + incremented from the NAIF ID of the containing wedge. Thus, + + Wedge 0 apertures L00-L09 have numbers 12-21 + Wedge 1 apertures L10-L19 have numbers 23-32 + Wedge 2 apertures L20-L29 have numbers 34-43 + Wedge 3 apertures L30-L39 have numbers 45-54 + Wedge 4 apertures L40-L49 have numbers 56-65 + Wedge 5 apertures L50-L59 have numbers 67-76 + Wedge 6 apertures L60-L69 have numbers 78-87 + Wedge 7 apertures L70-L79 have numbers 89-98 + + + EPI-Lo Mounting Alignment Frame + ------------------------------------------------------------------------ + + From page 17 of [7] we see that EPI-Lo is mounted onto spacecraft deck 1 + by a bracket. The deck 1 orientation is described in the Spacecraft Frames + section of this document, and the bracket orientation is described on sheet + 2 of [8]. The rotation taking vectors from the instrument base frame to the + deck 1 frame is captured below. + + The instrument base coordinate system is defined in [4]. There, the + instrument +Z axis points outward from the center of symmetry of the + instrument and is normal to the instrument base, or mounting face. By + comparing the location of the connectors in that drawing with those on + page 2 of [6], the instrument +X axis lies in the plane of the instrument + base and points outward from the center of the instrument between wedges + W6 and W7. The instrument +Y axis lies in the plane of the instrument + base and points outward from the center of the instrument between wedges + W4 and W5. The following diagram illustrates the base frame. + + Y + base + View looking down on the + ^ instrument (apertures point + | out of the plane of the + , W4 | W5 . page toward the viewer) + , | . + , | . + W3 ,|. W6 + -----------o-----------> X + W2 '|` W7 base + ' | ` + ' | ` + ' W1 | W0 ` + | + + From the mounting bracket drawing in [8], the instrument mounting face is + a 13.35 degree rotation about the +Y axis of deck 1, and a -9.70 degree + rotation about the +Z axis of deck 1. We determine the normal to the mounting + face by taking the cross product of two orthogonal vectors lying in the + plane of the mounting face. This normal vector is the instrument base + frame's +Z axis. The diagram further shows a twist about the base frame's + Z axis. This nominal twist was adjusted to align the L12, L30, L31, L51, + and L52 apertures to their pre-environmental measured positions given in + [10]. The + + The rotation described above taking vectors from the SPP_EPILO_BASE frame + to the SPP_DECK_1 frame is given below. + + \begindata + + FRAME_SPP_EPILO_BASE = -96401 + FRAME_-96401_NAME = 'SPP_EPILO_BASE' + FRAME_-96401_CLASS = 4 + FRAME_-96401_CLASS_ID = -96401 + FRAME_-96401_CENTER = -96 + TKFRAME_-96401_SPEC = 'MATRIX' + TKFRAME_-96401_RELATIVE = 'SPP_DECK_1' + TKFRAME_-96401_MATRIX = ( + -0.12716527279986342 + 0.4692559064526792 + -0.873858047770352 + 0.2502482446581486 + 0.8676883125456071 + 0.42952626033488644 + 0.9597941495129318 + -0.16406061846473613 + -0.22777028785536657) + + \begintext + + + EPI-Lo Wedge Frames + ------------------------------------------------------------------------ + + Each wedge frame is defined such that +Z axis is in the mounting plane of + the instrument and points outward from the center of the instrument along + the azimuthal center line of the wedge. The wedge +Y axis is normal to the + mounting plane and points outward from the center of the instrument to the + side containing the instrument apertures (i.e. each wedge has its +Y axis + aligned with SPP_EPILO_BASE's +Z axis). The wedge frame is illustrated + below. + + Looking crosswise through the wedge: + + Y + wedge + + ^ + | + | + \`` '|- - . + \ | ` - + \ | ` - + \ | `. + \|_________________\----> Z + wedge + + Looking down on the wedge (apertures point out of the plane + of the page toward the viewer): + + X + wedge + + ^ + | + | .'| + | .' | + | .' | + | .'`. 45/2 deg | + | .' ` | + |.'_________'__________|_____\ Z + `. | / wedge + `. | + `. | + `. | + `. | + `.| + + As there are 8 wedges, each wedge's +Z axis is 45 degrees apart from its + neighbor's. The matrices taking vectors from the wedge frames to the + SPP_EPILO_BASE frame are described below. + + \begindata + + FRAME_SPP_EPILO_W0 = -96411 + FRAME_-96411_NAME = 'SPP_EPILO_W0' + FRAME_-96411_CLASS = 4 + FRAME_-96411_CLASS_ID = -96411 + FRAME_-96411_CENTER = -96 + TKFRAME_-96411_SPEC = 'MATRIX' + TKFRAME_-96411_RELATIVE = 'SPP_EPILO_BASE' + TKFRAME_-96411_MATRIX = (0.9238795325112866 + 0.38268343236509 + 0 + 0 + 0 + 1 + 0.38268343236509 + -0.9238795325112866 + 0) + + + FRAME_SPP_EPILO_W1 = -96422 + FRAME_-96422_NAME = 'SPP_EPILO_W1' + FRAME_-96422_CLASS = 4 + FRAME_-96422_CLASS_ID = -96422 + FRAME_-96422_CENTER = -96 + TKFRAME_-96422_SPEC = 'MATRIX' + TKFRAME_-96422_RELATIVE = 'SPP_EPILO_BASE' + TKFRAME_-96422_MATRIX = (0.9238795325112865 + -0.38268343236509034 + 0 + 0 + 0 + 1 + -0.38268343236509034 + -0.9238795325112865 + 0) + + + FRAME_SPP_EPILO_W2 = -96433 + FRAME_-96433_NAME = 'SPP_EPILO_W2' + FRAME_-96433_CLASS = 4 + FRAME_-96433_CLASS_ID = -96433 + FRAME_-96433_CENTER = -96 + TKFRAME_-96433_SPEC = 'MATRIX' + TKFRAME_-96433_RELATIVE = 'SPP_EPILO_BASE' + TKFRAME_-96433_MATRIX = (0.38268343236508967 + -0.9238795325112868 + 0 + 0 + 0 + 1 + -0.9238795325112868 + -0.38268343236508967 + 0) + + + FRAME_SPP_EPILO_W3 = -96444 + FRAME_-96444_NAME = 'SPP_EPILO_W3' + FRAME_-96444_CLASS = 4 + FRAME_-96444_CLASS_ID = -96444 + FRAME_-96444_CENTER = -96 + TKFRAME_-96444_SPEC = 'MATRIX' + TKFRAME_-96444_RELATIVE = 'SPP_EPILO_BASE' + TKFRAME_-96444_MATRIX = (-0.3826834323650899 + -0.9238795325112867 + 0 + 0 + 0 + 1 + -0.9238795325112867 + 0.3826834323650899 + 0) + + + FRAME_SPP_EPILO_W4 = -96455 + FRAME_-96455_NAME = 'SPP_EPILO_W4' + FRAME_-96455_CLASS = 4 + FRAME_-96455_CLASS_ID = -96455 + FRAME_-96455_CENTER = -96 + TKFRAME_-96455_SPEC = 'MATRIX' + TKFRAME_-96455_RELATIVE = 'SPP_EPILO_BASE' + TKFRAME_-96455_MATRIX = (-0.9238795325112867 + -0.3826834323650897 + 0 + 0 + 0 + 1 + -0.3826834323650897 + 0.9238795325112867 + 0) + + + FRAME_SPP_EPILO_W5 = -96466 + FRAME_-96466_NAME = 'SPP_EPILO_W5' + FRAME_-96466_CLASS = 4 + FRAME_-96466_CLASS_ID = -96466 + FRAME_-96466_CENTER = -96 + TKFRAME_-96466_SPEC = 'MATRIX' + TKFRAME_-96466_RELATIVE = 'SPP_EPILO_BASE' + TKFRAME_-96466_MATRIX = (-0.9238795325112867 + 0.38268343236508984 + 0 + 0 + 0 + 1 + 0.38268343236508984 + 0.9238795325112867 + 0) + + + FRAME_SPP_EPILO_W6 = -96477 + FRAME_-96477_NAME = 'SPP_EPILO_W6' + FRAME_-96477_CLASS = 4 + FRAME_-96477_CLASS_ID = -96477 + FRAME_-96477_CENTER = -96 + TKFRAME_-96477_SPEC = 'MATRIX' + TKFRAME_-96477_RELATIVE = 'SPP_EPILO_BASE' + TKFRAME_-96477_MATRIX = (-0.3826834323650898 + 0.9238795325112867 + 0 + 0 + 0 + 1 + 0.9238795325112867 + 0.3826834323650898 + 0) + + + FRAME_SPP_EPILO_W7 = -96488 + FRAME_-96488_NAME = 'SPP_EPILO_W7' + FRAME_-96488_CLASS = 4 + FRAME_-96488_CLASS_ID = -96488 + FRAME_-96488_CENTER = -96 + TKFRAME_-96488_SPEC = 'MATRIX' + TKFRAME_-96488_RELATIVE = 'SPP_EPILO_BASE' + TKFRAME_-96488_MATRIX = (0.3826834323650898 + 0.9238795325112867 + 0 + 0 + 0 + 1 + 0.9238795325112867 + -0.3826834323650898 + 0) + + + \begintext + + EPI-Lo Aperture Frames + ------------------------------------------------------------------------ + + [5] describes the aperture orientations and angles. Each aperture frame is + defined such that its +Z axis points out of the aperture from the Ion pixel + center. The aperture +Y axis is the projection of the wedge +Y axis onto the + plane perpendicular to the aperture +Z axis. The aperture +X axis completes + the right-handed frame. The aperture +X axis is aligned with the wedge +X + axis for the apertures that lie along the wedge line of symmetry, namely + L#8 and L#9. + + The following cross-section illustrates the aperture frame. Note that the + aperture Y axis has a component into or out of the page for apertures L#0 + through L#7. + + + Y + wedge + ^ + | + | Y __ Z + | __ aperture .'/ aperture + | /. .' + | `. .' + \`` '|- - . `. .' + \ | ` -.' + \ | .' ` - + \ | .' `. + \|.' \----> Z + *------------------- wedge + + Ion pixel + center + + + The following view looking down on a wedge roughly illustrates the location + of each aperture within the wedge. The circles represent the apertures; + positions are not to scale. + + + X + wedge + + ^ + | + | .'| + | .' L#0| + | .' O | + | .'L#6 L#4 | + | .' O O L#1| + |.L#9 L#8 O | + . O O L#2|-----> Z + `. L#7 L#5 O | wedge + `. O O | + `. L#3| + `. O | + `. | + `.| + + + Wedge 0 aperture frames: + + \begindata + + FRAME_SPP_EPILO_L00 = -96412 + FRAME_-96412_NAME = 'SPP_EPILO_L00' + FRAME_-96412_CLASS = 4 + FRAME_-96412_CLASS_ID = -96412 + FRAME_-96412_CENTER = -96 + TKFRAME_-96412_SPEC = 'MATRIX' + TKFRAME_-96412_RELATIVE = 'SPP_EPILO_W0' + TKFRAME_-96412_MATRIX = (0.9569185564499445 + -0.0027262750100587, + -0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + 0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L01 = -96413 + FRAME_-96413_NAME = 'SPP_EPILO_L01' + FRAME_-96413_CLASS = 4 + FRAME_-96413_CLASS_ID = -96413 + FRAME_-96413_CENTER = -96 + TKFRAME_-96413_SPEC = 'MATRIX' + TKFRAME_-96413_RELATIVE = 'SPP_EPILO_W0' + TKFRAME_-96413_MATRIX = (0.9951765914819487 + -0.0009211052643909, + -0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + 0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L02 = -96414 + FRAME_-96414_NAME = 'SPP_EPILO_L02' + FRAME_-96414_CLASS = 4 + FRAME_-96414_CLASS_ID = -96414 + FRAME_-96414_CENTER = -96 + TKFRAME_-96414_SPEC = 'MATRIX' + TKFRAME_-96414_RELATIVE = 'SPP_EPILO_W0' + TKFRAME_-96414_MATRIX = (0.9951765914819487 + 0.0009211052643909, + 0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + -0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L03 = -96415 + FRAME_-96415_NAME = 'SPP_EPILO_L03' + FRAME_-96415_CLASS = 4 + FRAME_-96415_CLASS_ID = -96415 + FRAME_-96415_CENTER = -96 + TKFRAME_-96415_SPEC = 'MATRIX' + TKFRAME_-96415_RELATIVE = 'SPP_EPILO_W0' + TKFRAME_-96415_MATRIX = (0.9569185564499445 + 0.0027262750100587, + 0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + -0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L04 = -96416 + FRAME_-96416_NAME = 'SPP_EPILO_L04' + FRAME_-96416_CLASS = 4 + FRAME_-96416_CLASS_ID = -96416 + FRAME_-96416_CENTER = -96 + TKFRAME_-96416_SPEC = 'MATRIX' + TKFRAME_-96416_RELATIVE = 'SPP_EPILO_W0' + TKFRAME_-96416_MATRIX = (0.9836441852061112 + -0.0703416078843675, + -0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + 0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L05 = -96417 + FRAME_-96417_NAME = 'SPP_EPILO_L05' + FRAME_-96417_CLASS = 4 + FRAME_-96417_CLASS_ID = -96417 + FRAME_-96417_CENTER = -96 + TKFRAME_-96417_SPEC = 'MATRIX' + TKFRAME_-96417_RELATIVE = 'SPP_EPILO_W0' + TKFRAME_-96417_MATRIX = (0.9836441852061112 + 0.0703416078843675, + 0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + -0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L06 = -96418 + FRAME_-96418_NAME = 'SPP_EPILO_L06' + FRAME_-96418_CLASS = 4 + FRAME_-96418_CLASS_ID = -96418 + FRAME_-96418_CENTER = -96 + TKFRAME_-96418_SPEC = 'MATRIX' + TKFRAME_-96418_RELATIVE = 'SPP_EPILO_W0' + TKFRAME_-96418_MATRIX = (0.9903244000533897 + -0.0984911534882631, + -0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + 0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L07 = -96419 + FRAME_-96419_NAME = 'SPP_EPILO_L07' + FRAME_-96419_CLASS = 4 + FRAME_-96419_CLASS_ID = -96419 + FRAME_-96419_CENTER = -96 + TKFRAME_-96419_SPEC = 'MATRIX' + TKFRAME_-96419_RELATIVE = 'SPP_EPILO_W0' + TKFRAME_-96419_MATRIX = (0.9903244000533897 + 0.0984911534882631, + 0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + -0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L08 = -96420 + FRAME_-96420_NAME = 'SPP_EPILO_L08' + FRAME_-96420_CLASS = 4 + FRAME_-96420_CLASS_ID = -96420 + FRAME_-96420_CENTER = -96 + TKFRAME_-96420_SPEC = 'MATRIX' + TKFRAME_-96420_RELATIVE = 'SPP_EPILO_W0' + TKFRAME_-96420_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.3902632340374340, + -0.9207033225521906, + 0.0000000000000000, + 0.9207033225521906, + 0.3902632340374340) + + FRAME_SPP_EPILO_L09 = -96421 + FRAME_-96421_NAME = 'SPP_EPILO_L09' + FRAME_-96421_CLASS = 4 + FRAME_-96421_CLASS_ID = -96421 + FRAME_-96421_CENTER = -96 + TKFRAME_-96421_SPEC = 'MATRIX' + TKFRAME_-96421_RELATIVE = 'SPP_EPILO_W0' + TKFRAME_-96421_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.0000000000000001, + -1.0000000000000000, + 0.0000000000000000, + 1.0000000000000000, + 0.0000000000000001) + + \begintext + + + Wedge 1 aperture frames: + + \begindata + + FRAME_SPP_EPILO_L10 = -96423 + FRAME_-96423_NAME = 'SPP_EPILO_L10' + FRAME_-96423_CLASS = 4 + FRAME_-96423_CLASS_ID = -96423 + FRAME_-96423_CENTER = -96 + TKFRAME_-96423_SPEC = 'MATRIX' + TKFRAME_-96423_RELATIVE = 'SPP_EPILO_W1' + TKFRAME_-96423_MATRIX = (0.9569185564499445 + -0.0027262750100587, + -0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + 0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L11 = -96424 + FRAME_-96424_NAME = 'SPP_EPILO_L11' + FRAME_-96424_CLASS = 4 + FRAME_-96424_CLASS_ID = -96424 + FRAME_-96424_CENTER = -96 + TKFRAME_-96424_SPEC = 'MATRIX' + TKFRAME_-96424_RELATIVE = 'SPP_EPILO_W1' + TKFRAME_-96424_MATRIX = (0.9951765914819487 + -0.0009211052643909, + -0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + 0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L12 = -96425 + FRAME_-96425_NAME = 'SPP_EPILO_L12' + FRAME_-96425_CLASS = 4 + FRAME_-96425_CLASS_ID = -96425 + FRAME_-96425_CENTER = -96 + TKFRAME_-96425_SPEC = 'MATRIX' + TKFRAME_-96425_RELATIVE = 'SPP_EPILO_W1' + TKFRAME_-96425_MATRIX = (0.9951765914819487 + 0.0009211052643909, + 0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + -0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L13 = -96426 + FRAME_-96426_NAME = 'SPP_EPILO_L13' + FRAME_-96426_CLASS = 4 + FRAME_-96426_CLASS_ID = -96426 + FRAME_-96426_CENTER = -96 + TKFRAME_-96426_SPEC = 'MATRIX' + TKFRAME_-96426_RELATIVE = 'SPP_EPILO_W1' + TKFRAME_-96426_MATRIX = (0.9569185564499445 + 0.0027262750100587, + 0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + -0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L14 = -96427 + FRAME_-96427_NAME = 'SPP_EPILO_L14' + FRAME_-96427_CLASS = 4 + FRAME_-96427_CLASS_ID = -96427 + FRAME_-96427_CENTER = -96 + TKFRAME_-96427_SPEC = 'MATRIX' + TKFRAME_-96427_RELATIVE = 'SPP_EPILO_W1' + TKFRAME_-96427_MATRIX = (0.9836441852061112 + -0.0703416078843675, + -0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + 0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L15 = -96428 + FRAME_-96428_NAME = 'SPP_EPILO_L15' + FRAME_-96428_CLASS = 4 + FRAME_-96428_CLASS_ID = -96428 + FRAME_-96428_CENTER = -96 + TKFRAME_-96428_SPEC = 'MATRIX' + TKFRAME_-96428_RELATIVE = 'SPP_EPILO_W1' + TKFRAME_-96428_MATRIX = (0.9836441852061112 + 0.0703416078843675, + 0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + -0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L16 = -96429 + FRAME_-96429_NAME = 'SPP_EPILO_L16' + FRAME_-96429_CLASS = 4 + FRAME_-96429_CLASS_ID = -96429 + FRAME_-96429_CENTER = -96 + TKFRAME_-96429_SPEC = 'MATRIX' + TKFRAME_-96429_RELATIVE = 'SPP_EPILO_W1' + TKFRAME_-96429_MATRIX = (0.9903244000533897 + -0.0984911534882631, + -0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + 0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L17 = -96430 + FRAME_-96430_NAME = 'SPP_EPILO_L17' + FRAME_-96430_CLASS = 4 + FRAME_-96430_CLASS_ID = -96430 + FRAME_-96430_CENTER = -96 + TKFRAME_-96430_SPEC = 'MATRIX' + TKFRAME_-96430_RELATIVE = 'SPP_EPILO_W1' + TKFRAME_-96430_MATRIX = (0.9903244000533897 + 0.0984911534882631, + 0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + -0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L18 = -96431 + FRAME_-96431_NAME = 'SPP_EPILO_L18' + FRAME_-96431_CLASS = 4 + FRAME_-96431_CLASS_ID = -96431 + FRAME_-96431_CENTER = -96 + TKFRAME_-96431_SPEC = 'MATRIX' + TKFRAME_-96431_RELATIVE = 'SPP_EPILO_W1' + TKFRAME_-96431_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.3902632340374340, + -0.9207033225521906, + 0.0000000000000000, + 0.9207033225521906, + 0.3902632340374340) + + FRAME_SPP_EPILO_L19 = -96432 + FRAME_-96432_NAME = 'SPP_EPILO_L19' + FRAME_-96432_CLASS = 4 + FRAME_-96432_CLASS_ID = -96432 + FRAME_-96432_CENTER = -96 + TKFRAME_-96432_SPEC = 'MATRIX' + TKFRAME_-96432_RELATIVE = 'SPP_EPILO_W1' + TKFRAME_-96432_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.0000000000000001, + -1.0000000000000000, + 0.0000000000000000, + 1.0000000000000000, + 0.0000000000000001) + + \begintext + + + Wedge 2 aperture frames: + + \begindata + + FRAME_SPP_EPILO_L20 = -96434 + FRAME_-96434_NAME = 'SPP_EPILO_L20' + FRAME_-96434_CLASS = 4 + FRAME_-96434_CLASS_ID = -96434 + FRAME_-96434_CENTER = -96 + TKFRAME_-96434_SPEC = 'MATRIX' + TKFRAME_-96434_RELATIVE = 'SPP_EPILO_W2' + TKFRAME_-96434_MATRIX = (0.9569185564499445 + -0.0027262750100587, + -0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + 0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L21 = -96435 + FRAME_-96435_NAME = 'SPP_EPILO_L21' + FRAME_-96435_CLASS = 4 + FRAME_-96435_CLASS_ID = -96435 + FRAME_-96435_CENTER = -96 + TKFRAME_-96435_SPEC = 'MATRIX' + TKFRAME_-96435_RELATIVE = 'SPP_EPILO_W2' + TKFRAME_-96435_MATRIX = (0.9951765914819487 + -0.0009211052643909, + -0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + 0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L22 = -96436 + FRAME_-96436_NAME = 'SPP_EPILO_L22' + FRAME_-96436_CLASS = 4 + FRAME_-96436_CLASS_ID = -96436 + FRAME_-96436_CENTER = -96 + TKFRAME_-96436_SPEC = 'MATRIX' + TKFRAME_-96436_RELATIVE = 'SPP_EPILO_W2' + TKFRAME_-96436_MATRIX = (0.9951765914819487 + 0.0009211052643909, + 0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + -0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L23 = -96437 + FRAME_-96437_NAME = 'SPP_EPILO_L23' + FRAME_-96437_CLASS = 4 + FRAME_-96437_CLASS_ID = -96437 + FRAME_-96437_CENTER = -96 + TKFRAME_-96437_SPEC = 'MATRIX' + TKFRAME_-96437_RELATIVE = 'SPP_EPILO_W2' + TKFRAME_-96437_MATRIX = (0.9569185564499445 + 0.0027262750100587, + 0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + -0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L24 = -96438 + FRAME_-96438_NAME = 'SPP_EPILO_L24' + FRAME_-96438_CLASS = 4 + FRAME_-96438_CLASS_ID = -96438 + FRAME_-96438_CENTER = -96 + TKFRAME_-96438_SPEC = 'MATRIX' + TKFRAME_-96438_RELATIVE = 'SPP_EPILO_W2' + TKFRAME_-96438_MATRIX = (0.9836441852061112 + -0.0703416078843675, + -0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + 0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L25 = -96439 + FRAME_-96439_NAME = 'SPP_EPILO_L25' + FRAME_-96439_CLASS = 4 + FRAME_-96439_CLASS_ID = -96439 + FRAME_-96439_CENTER = -96 + TKFRAME_-96439_SPEC = 'MATRIX' + TKFRAME_-96439_RELATIVE = 'SPP_EPILO_W2' + TKFRAME_-96439_MATRIX = (0.9836441852061112 + 0.0703416078843675, + 0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + -0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L26 = -96440 + FRAME_-96440_NAME = 'SPP_EPILO_L26' + FRAME_-96440_CLASS = 4 + FRAME_-96440_CLASS_ID = -96440 + FRAME_-96440_CENTER = -96 + TKFRAME_-96440_SPEC = 'MATRIX' + TKFRAME_-96440_RELATIVE = 'SPP_EPILO_W2' + TKFRAME_-96440_MATRIX = (0.9903244000533897 + -0.0984911534882631, + -0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + 0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L27 = -96441 + FRAME_-96441_NAME = 'SPP_EPILO_L27' + FRAME_-96441_CLASS = 4 + FRAME_-96441_CLASS_ID = -96441 + FRAME_-96441_CENTER = -96 + TKFRAME_-96441_SPEC = 'MATRIX' + TKFRAME_-96441_RELATIVE = 'SPP_EPILO_W2' + TKFRAME_-96441_MATRIX = (0.9903244000533897 + 0.0984911534882631, + 0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + -0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L28 = -96442 + FRAME_-96442_NAME = 'SPP_EPILO_L28' + FRAME_-96442_CLASS = 4 + FRAME_-96442_CLASS_ID = -96442 + FRAME_-96442_CENTER = -96 + TKFRAME_-96442_SPEC = 'MATRIX' + TKFRAME_-96442_RELATIVE = 'SPP_EPILO_W2' + TKFRAME_-96442_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.3902632340374340, + -0.9207033225521906, + 0.0000000000000000, + 0.9207033225521906, + 0.3902632340374340) + + FRAME_SPP_EPILO_L29 = -96443 + FRAME_-96443_NAME = 'SPP_EPILO_L29' + FRAME_-96443_CLASS = 4 + FRAME_-96443_CLASS_ID = -96443 + FRAME_-96443_CENTER = -96 + TKFRAME_-96443_SPEC = 'MATRIX' + TKFRAME_-96443_RELATIVE = 'SPP_EPILO_W2' + TKFRAME_-96443_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.0000000000000001, + -1.0000000000000000, + 0.0000000000000000, + 1.0000000000000000, + 0.0000000000000001) + + \begintext + + + Wedge 3 aperture frames: + + \begindata + + FRAME_SPP_EPILO_L30 = -96445 + FRAME_-96445_NAME = 'SPP_EPILO_L30' + FRAME_-96445_CLASS = 4 + FRAME_-96445_CLASS_ID = -96445 + FRAME_-96445_CENTER = -96 + TKFRAME_-96445_SPEC = 'MATRIX' + TKFRAME_-96445_RELATIVE = 'SPP_EPILO_W3' + TKFRAME_-96445_MATRIX = (0.9569185564499445 + -0.0027262750100587, + -0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + 0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L31 = -96446 + FRAME_-96446_NAME = 'SPP_EPILO_L31' + FRAME_-96446_CLASS = 4 + FRAME_-96446_CLASS_ID = -96446 + FRAME_-96446_CENTER = -96 + TKFRAME_-96446_SPEC = 'MATRIX' + TKFRAME_-96446_RELATIVE = 'SPP_EPILO_W3' + TKFRAME_-96446_MATRIX = (0.9951765914819487 + -0.0009211052643909, + -0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + 0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L32 = -96447 + FRAME_-96447_NAME = 'SPP_EPILO_L32' + FRAME_-96447_CLASS = 4 + FRAME_-96447_CLASS_ID = -96447 + FRAME_-96447_CENTER = -96 + TKFRAME_-96447_SPEC = 'MATRIX' + TKFRAME_-96447_RELATIVE = 'SPP_EPILO_W3' + TKFRAME_-96447_MATRIX = (0.9951765914819487 + 0.0009211052643909, + 0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + -0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L33 = -96448 + FRAME_-96448_NAME = 'SPP_EPILO_L33' + FRAME_-96448_CLASS = 4 + FRAME_-96448_CLASS_ID = -96448 + FRAME_-96448_CENTER = -96 + TKFRAME_-96448_SPEC = 'MATRIX' + TKFRAME_-96448_RELATIVE = 'SPP_EPILO_W3' + TKFRAME_-96448_MATRIX = (0.9569185564499445 + 0.0027262750100587, + 0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + -0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L34 = -96449 + FRAME_-96449_NAME = 'SPP_EPILO_L34' + FRAME_-96449_CLASS = 4 + FRAME_-96449_CLASS_ID = -96449 + FRAME_-96449_CENTER = -96 + TKFRAME_-96449_SPEC = 'MATRIX' + TKFRAME_-96449_RELATIVE = 'SPP_EPILO_W3' + TKFRAME_-96449_MATRIX = (0.9836441852061112 + -0.0703416078843675, + -0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + 0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L35 = -96450 + FRAME_-96450_NAME = 'SPP_EPILO_L35' + FRAME_-96450_CLASS = 4 + FRAME_-96450_CLASS_ID = -96450 + FRAME_-96450_CENTER = -96 + TKFRAME_-96450_SPEC = 'MATRIX' + TKFRAME_-96450_RELATIVE = 'SPP_EPILO_W3' + TKFRAME_-96450_MATRIX = (0.9836441852061112 + 0.0703416078843675, + 0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + -0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L36 = -96451 + FRAME_-96451_NAME = 'SPP_EPILO_L36' + FRAME_-96451_CLASS = 4 + FRAME_-96451_CLASS_ID = -96451 + FRAME_-96451_CENTER = -96 + TKFRAME_-96451_SPEC = 'MATRIX' + TKFRAME_-96451_RELATIVE = 'SPP_EPILO_W3' + TKFRAME_-96451_MATRIX = (0.9903244000533897 + -0.0984911534882631, + -0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + 0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L37 = -96452 + FRAME_-96452_NAME = 'SPP_EPILO_L37' + FRAME_-96452_CLASS = 4 + FRAME_-96452_CLASS_ID = -96452 + FRAME_-96452_CENTER = -96 + TKFRAME_-96452_SPEC = 'MATRIX' + TKFRAME_-96452_RELATIVE = 'SPP_EPILO_W3' + TKFRAME_-96452_MATRIX = (0.9903244000533897 + 0.0984911534882631, + 0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + -0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L38 = -96453 + FRAME_-96453_NAME = 'SPP_EPILO_L38' + FRAME_-96453_CLASS = 4 + FRAME_-96453_CLASS_ID = -96453 + FRAME_-96453_CENTER = -96 + TKFRAME_-96453_SPEC = 'MATRIX' + TKFRAME_-96453_RELATIVE = 'SPP_EPILO_W3' + TKFRAME_-96453_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.3902632340374340, + -0.9207033225521906, + 0.0000000000000000, + 0.9207033225521906, + 0.3902632340374340) + + FRAME_SPP_EPILO_L39 = -96454 + FRAME_-96454_NAME = 'SPP_EPILO_L39' + FRAME_-96454_CLASS = 4 + FRAME_-96454_CLASS_ID = -96454 + FRAME_-96454_CENTER = -96 + TKFRAME_-96454_SPEC = 'MATRIX' + TKFRAME_-96454_RELATIVE = 'SPP_EPILO_W3' + TKFRAME_-96454_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.0000000000000001, + -1.0000000000000000, + 0.0000000000000000, + 1.0000000000000000, + 0.0000000000000001) + + \begintext + + + Wedge 4 aperture frames: + + \begindata + + FRAME_SPP_EPILO_L40 = -96456 + FRAME_-96456_NAME = 'SPP_EPILO_L40' + FRAME_-96456_CLASS = 4 + FRAME_-96456_CLASS_ID = -96456 + FRAME_-96456_CENTER = -96 + TKFRAME_-96456_SPEC = 'MATRIX' + TKFRAME_-96456_RELATIVE = 'SPP_EPILO_W4' + TKFRAME_-96456_MATRIX = (0.9569185564499445 + -0.0027262750100587, + -0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + 0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L41 = -96457 + FRAME_-96457_NAME = 'SPP_EPILO_L41' + FRAME_-96457_CLASS = 4 + FRAME_-96457_CLASS_ID = -96457 + FRAME_-96457_CENTER = -96 + TKFRAME_-96457_SPEC = 'MATRIX' + TKFRAME_-96457_RELATIVE = 'SPP_EPILO_W4' + TKFRAME_-96457_MATRIX = (0.9951765914819487 + -0.0009211052643909, + -0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + 0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L42 = -96458 + FRAME_-96458_NAME = 'SPP_EPILO_L42' + FRAME_-96458_CLASS = 4 + FRAME_-96458_CLASS_ID = -96458 + FRAME_-96458_CENTER = -96 + TKFRAME_-96458_SPEC = 'MATRIX' + TKFRAME_-96458_RELATIVE = 'SPP_EPILO_W4' + TKFRAME_-96458_MATRIX = (0.9951765914819487 + 0.0009211052643909, + 0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + -0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L43 = -96459 + FRAME_-96459_NAME = 'SPP_EPILO_L43' + FRAME_-96459_CLASS = 4 + FRAME_-96459_CLASS_ID = -96459 + FRAME_-96459_CENTER = -96 + TKFRAME_-96459_SPEC = 'MATRIX' + TKFRAME_-96459_RELATIVE = 'SPP_EPILO_W4' + TKFRAME_-96459_MATRIX = (0.9569185564499445 + 0.0027262750100587, + 0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + -0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L44 = -96460 + FRAME_-96460_NAME = 'SPP_EPILO_L44' + FRAME_-96460_CLASS = 4 + FRAME_-96460_CLASS_ID = -96460 + FRAME_-96460_CENTER = -96 + TKFRAME_-96460_SPEC = 'MATRIX' + TKFRAME_-96460_RELATIVE = 'SPP_EPILO_W4' + TKFRAME_-96460_MATRIX = (0.9836441852061112 + -0.0703416078843675, + -0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + 0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L45 = -96461 + FRAME_-96461_NAME = 'SPP_EPILO_L45' + FRAME_-96461_CLASS = 4 + FRAME_-96461_CLASS_ID = -96461 + FRAME_-96461_CENTER = -96 + TKFRAME_-96461_SPEC = 'MATRIX' + TKFRAME_-96461_RELATIVE = 'SPP_EPILO_W4' + TKFRAME_-96461_MATRIX = (0.9836441852061112 + 0.0703416078843675, + 0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + -0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L46 = -96462 + FRAME_-96462_NAME = 'SPP_EPILO_L46' + FRAME_-96462_CLASS = 4 + FRAME_-96462_CLASS_ID = -96462 + FRAME_-96462_CENTER = -96 + TKFRAME_-96462_SPEC = 'MATRIX' + TKFRAME_-96462_RELATIVE = 'SPP_EPILO_W4' + TKFRAME_-96462_MATRIX = (0.9903244000533897 + -0.0984911534882631, + -0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + 0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L47 = -96463 + FRAME_-96463_NAME = 'SPP_EPILO_L47' + FRAME_-96463_CLASS = 4 + FRAME_-96463_CLASS_ID = -96463 + FRAME_-96463_CENTER = -96 + TKFRAME_-96463_SPEC = 'MATRIX' + TKFRAME_-96463_RELATIVE = 'SPP_EPILO_W4' + TKFRAME_-96463_MATRIX = (0.9903244000533897 + 0.0984911534882631, + 0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + -0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L48 = -96464 + FRAME_-96464_NAME = 'SPP_EPILO_L48' + FRAME_-96464_CLASS = 4 + FRAME_-96464_CLASS_ID = -96464 + FRAME_-96464_CENTER = -96 + TKFRAME_-96464_SPEC = 'MATRIX' + TKFRAME_-96464_RELATIVE = 'SPP_EPILO_W4' + TKFRAME_-96464_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.3902632340374340, + -0.9207033225521906, + 0.0000000000000000, + 0.9207033225521906, + 0.3902632340374340) + + FRAME_SPP_EPILO_L49 = -96465 + FRAME_-96465_NAME = 'SPP_EPILO_L49' + FRAME_-96465_CLASS = 4 + FRAME_-96465_CLASS_ID = -96465 + FRAME_-96465_CENTER = -96 + TKFRAME_-96465_SPEC = 'MATRIX' + TKFRAME_-96465_RELATIVE = 'SPP_EPILO_W4' + TKFRAME_-96465_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.0000000000000001, + -1.0000000000000000, + 0.0000000000000000, + 1.0000000000000000, + 0.0000000000000001) + + \begintext + + + Wedge 5 aperture frames: + + \begindata + + FRAME_SPP_EPILO_L50 = -96467 + FRAME_-96467_NAME = 'SPP_EPILO_L50' + FRAME_-96467_CLASS = 4 + FRAME_-96467_CLASS_ID = -96467 + FRAME_-96467_CENTER = -96 + TKFRAME_-96467_SPEC = 'MATRIX' + TKFRAME_-96467_RELATIVE = 'SPP_EPILO_W5' + TKFRAME_-96467_MATRIX = (0.9569185564499445 + -0.0027262750100587, + -0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + 0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L51 = -96468 + FRAME_-96468_NAME = 'SPP_EPILO_L51' + FRAME_-96468_CLASS = 4 + FRAME_-96468_CLASS_ID = -96468 + FRAME_-96468_CENTER = -96 + TKFRAME_-96468_SPEC = 'MATRIX' + TKFRAME_-96468_RELATIVE = 'SPP_EPILO_W5' + TKFRAME_-96468_MATRIX = (0.9951765914819487 + -0.0009211052643909, + -0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + 0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L52 = -96469 + FRAME_-96469_NAME = 'SPP_EPILO_L52' + FRAME_-96469_CLASS = 4 + FRAME_-96469_CLASS_ID = -96469 + FRAME_-96469_CENTER = -96 + TKFRAME_-96469_SPEC = 'MATRIX' + TKFRAME_-96469_RELATIVE = 'SPP_EPILO_W5' + TKFRAME_-96469_MATRIX = (0.9951765914819487 + 0.0009211052643909, + 0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + -0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L53 = -96470 + FRAME_-96470_NAME = 'SPP_EPILO_L53' + FRAME_-96470_CLASS = 4 + FRAME_-96470_CLASS_ID = -96470 + FRAME_-96470_CENTER = -96 + TKFRAME_-96470_SPEC = 'MATRIX' + TKFRAME_-96470_RELATIVE = 'SPP_EPILO_W5' + TKFRAME_-96470_MATRIX = (0.9569185564499445 + 0.0027262750100587, + 0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + -0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L54 = -96471 + FRAME_-96471_NAME = 'SPP_EPILO_L54' + FRAME_-96471_CLASS = 4 + FRAME_-96471_CLASS_ID = -96471 + FRAME_-96471_CENTER = -96 + TKFRAME_-96471_SPEC = 'MATRIX' + TKFRAME_-96471_RELATIVE = 'SPP_EPILO_W5' + TKFRAME_-96471_MATRIX = (0.9836441852061112 + -0.0703416078843675, + -0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + 0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L55 = -96472 + FRAME_-96472_NAME = 'SPP_EPILO_L55' + FRAME_-96472_CLASS = 4 + FRAME_-96472_CLASS_ID = -96472 + FRAME_-96472_CENTER = -96 + TKFRAME_-96472_SPEC = 'MATRIX' + TKFRAME_-96472_RELATIVE = 'SPP_EPILO_W5' + TKFRAME_-96472_MATRIX = (0.9836441852061112 + 0.0703416078843675, + 0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + -0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L56 = -96473 + FRAME_-96473_NAME = 'SPP_EPILO_L56' + FRAME_-96473_CLASS = 4 + FRAME_-96473_CLASS_ID = -96473 + FRAME_-96473_CENTER = -96 + TKFRAME_-96473_SPEC = 'MATRIX' + TKFRAME_-96473_RELATIVE = 'SPP_EPILO_W5' + TKFRAME_-96473_MATRIX = (0.9903244000533897 + -0.0984911534882631, + -0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + 0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L57 = -96474 + FRAME_-96474_NAME = 'SPP_EPILO_L57' + FRAME_-96474_CLASS = 4 + FRAME_-96474_CLASS_ID = -96474 + FRAME_-96474_CENTER = -96 + TKFRAME_-96474_SPEC = 'MATRIX' + TKFRAME_-96474_RELATIVE = 'SPP_EPILO_W5' + TKFRAME_-96474_MATRIX = (0.9903244000533897 + 0.0984911534882631, + 0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + -0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L58 = -96475 + FRAME_-96475_NAME = 'SPP_EPILO_L58' + FRAME_-96475_CLASS = 4 + FRAME_-96475_CLASS_ID = -96475 + FRAME_-96475_CENTER = -96 + TKFRAME_-96475_SPEC = 'MATRIX' + TKFRAME_-96475_RELATIVE = 'SPP_EPILO_W5' + TKFRAME_-96475_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.3902632340374340, + -0.9207033225521906, + 0.0000000000000000, + 0.9207033225521906, + 0.3902632340374340) + + FRAME_SPP_EPILO_L59 = -96476 + FRAME_-96476_NAME = 'SPP_EPILO_L59' + FRAME_-96476_CLASS = 4 + FRAME_-96476_CLASS_ID = -96476 + FRAME_-96476_CENTER = -96 + TKFRAME_-96476_SPEC = 'MATRIX' + TKFRAME_-96476_RELATIVE = 'SPP_EPILO_W5' + TKFRAME_-96476_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.0000000000000001, + -1.0000000000000000, + 0.0000000000000000, + 1.0000000000000000, + 0.0000000000000001) + + \begintext + + + Wedge 6 aperture frames: + + \begindata + + FRAME_SPP_EPILO_L60 = -96478 + FRAME_-96478_NAME = 'SPP_EPILO_L60' + FRAME_-96478_CLASS = 4 + FRAME_-96478_CLASS_ID = -96478 + FRAME_-96478_CENTER = -96 + TKFRAME_-96478_SPEC = 'MATRIX' + TKFRAME_-96478_RELATIVE = 'SPP_EPILO_W6' + TKFRAME_-96478_MATRIX = (0.9569185564499445 + -0.0027262750100587, + -0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + 0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L61 = -96479 + FRAME_-96479_NAME = 'SPP_EPILO_L61' + FRAME_-96479_CLASS = 4 + FRAME_-96479_CLASS_ID = -96479 + FRAME_-96479_CENTER = -96 + TKFRAME_-96479_SPEC = 'MATRIX' + TKFRAME_-96479_RELATIVE = 'SPP_EPILO_W6' + TKFRAME_-96479_MATRIX = (0.9951765914819487 + -0.0009211052643909, + -0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + 0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L62 = -96480 + FRAME_-96480_NAME = 'SPP_EPILO_L62' + FRAME_-96480_CLASS = 4 + FRAME_-96480_CLASS_ID = -96480 + FRAME_-96480_CENTER = -96 + TKFRAME_-96480_SPEC = 'MATRIX' + TKFRAME_-96480_RELATIVE = 'SPP_EPILO_W6' + TKFRAME_-96480_MATRIX = (0.9951765914819487 + 0.0009211052643909, + 0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + -0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L63 = -96481 + FRAME_-96481_NAME = 'SPP_EPILO_L63' + FRAME_-96481_CLASS = 4 + FRAME_-96481_CLASS_ID = -96481 + FRAME_-96481_CENTER = -96 + TKFRAME_-96481_SPEC = 'MATRIX' + TKFRAME_-96481_RELATIVE = 'SPP_EPILO_W6' + TKFRAME_-96481_MATRIX = (0.9569185564499445 + 0.0027262750100587, + 0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + -0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L64 = -96482 + FRAME_-96482_NAME = 'SPP_EPILO_L64' + FRAME_-96482_CLASS = 4 + FRAME_-96482_CLASS_ID = -96482 + FRAME_-96482_CENTER = -96 + TKFRAME_-96482_SPEC = 'MATRIX' + TKFRAME_-96482_RELATIVE = 'SPP_EPILO_W6' + TKFRAME_-96482_MATRIX = (0.9836441852061112 + -0.0703416078843675, + -0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + 0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L65 = -96483 + FRAME_-96483_NAME = 'SPP_EPILO_L65' + FRAME_-96483_CLASS = 4 + FRAME_-96483_CLASS_ID = -96483 + FRAME_-96483_CENTER = -96 + TKFRAME_-96483_SPEC = 'MATRIX' + TKFRAME_-96483_RELATIVE = 'SPP_EPILO_W6' + TKFRAME_-96483_MATRIX = (0.9836441852061112 + 0.0703416078843675, + 0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + -0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L66 = -96484 + FRAME_-96484_NAME = 'SPP_EPILO_L66' + FRAME_-96484_CLASS = 4 + FRAME_-96484_CLASS_ID = -96484 + FRAME_-96484_CENTER = -96 + TKFRAME_-96484_SPEC = 'MATRIX' + TKFRAME_-96484_RELATIVE = 'SPP_EPILO_W6' + TKFRAME_-96484_MATRIX = (0.9903244000533897 + -0.0984911534882631, + -0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + 0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L67 = -96485 + FRAME_-96485_NAME = 'SPP_EPILO_L67' + FRAME_-96485_CLASS = 4 + FRAME_-96485_CLASS_ID = -96485 + FRAME_-96485_CENTER = -96 + TKFRAME_-96485_SPEC = 'MATRIX' + TKFRAME_-96485_RELATIVE = 'SPP_EPILO_W6' + TKFRAME_-96485_MATRIX = (0.9903244000533897 + 0.0984911534882631, + 0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + -0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L68 = -96486 + FRAME_-96486_NAME = 'SPP_EPILO_L68' + FRAME_-96486_CLASS = 4 + FRAME_-96486_CLASS_ID = -96486 + FRAME_-96486_CENTER = -96 + TKFRAME_-96486_SPEC = 'MATRIX' + TKFRAME_-96486_RELATIVE = 'SPP_EPILO_W6' + TKFRAME_-96486_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.3902632340374340, + -0.9207033225521906, + 0.0000000000000000, + 0.9207033225521906, + 0.3902632340374340) + + FRAME_SPP_EPILO_L69 = -96487 + FRAME_-96487_NAME = 'SPP_EPILO_L69' + FRAME_-96487_CLASS = 4 + FRAME_-96487_CLASS_ID = -96487 + FRAME_-96487_CENTER = -96 + TKFRAME_-96487_SPEC = 'MATRIX' + TKFRAME_-96487_RELATIVE = 'SPP_EPILO_W6' + TKFRAME_-96487_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.0000000000000001, + -1.0000000000000000, + 0.0000000000000000, + 1.0000000000000000, + 0.0000000000000001) + + \begintext + + + Wedge 7 aperture frames: + + \begindata + + FRAME_SPP_EPILO_L70 = -96489 + FRAME_-96489_NAME = 'SPP_EPILO_L70' + FRAME_-96489_CLASS = 4 + FRAME_-96489_CLASS_ID = -96489 + FRAME_-96489_CENTER = -96 + TKFRAME_-96489_SPEC = 'MATRIX' + TKFRAME_-96489_RELATIVE = 'SPP_EPILO_W7' + TKFRAME_-96489_MATRIX = (0.9569185564499445 + -0.0027262750100587, + -0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + 0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L71 = -96490 + FRAME_-96490_NAME = 'SPP_EPILO_L71' + FRAME_-96490_CLASS = 4 + FRAME_-96490_CLASS_ID = -96490 + FRAME_-96490_CENTER = -96 + TKFRAME_-96490_SPEC = 'MATRIX' + TKFRAME_-96490_RELATIVE = 'SPP_EPILO_W7' + TKFRAME_-96490_MATRIX = (0.9951765914819487 + -0.0009211052643909, + -0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + 0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L72 = -96491 + FRAME_-96491_NAME = 'SPP_EPILO_L72' + FRAME_-96491_CLASS = 4 + FRAME_-96491_CLASS_ID = -96491 + FRAME_-96491_CENTER = -96 + TKFRAME_-96491_SPEC = 'MATRIX' + TKFRAME_-96491_RELATIVE = 'SPP_EPILO_W7' + TKFRAME_-96491_MATRIX = (0.9951765914819487 + 0.0009211052643909, + 0.0980953787467206, + 0.0000000000000000, + 0.9999559178549919, + -0.0093894806448862, + -0.0980997031920620, + 0.0093441913439635, + 0.9951327219631343) + + FRAME_SPP_EPILO_L73 = -96492 + FRAME_-96492_NAME = 'SPP_EPILO_L73' + FRAME_-96492_CLASS = 4 + FRAME_-96492_CLASS_ID = -96492 + FRAME_-96492_CENTER = -96 + TKFRAME_-96492_SPEC = 'MATRIX' + TKFRAME_-96492_RELATIVE = 'SPP_EPILO_W7' + TKFRAME_-96492_MATRIX = (0.9569185564499445 + 0.0027262750100587, + 0.2903436648978653, + 0.0000000000000000, + 0.9999559185467560, + -0.0093894069734682, + -0.2903564642327675, + 0.0089848977669722, + 0.9568763740893401) + + FRAME_SPP_EPILO_L74 = -96493 + FRAME_-96493_NAME = 'SPP_EPILO_L74' + FRAME_-96493_CLASS = 4 + FRAME_-96493_CLASS_ID = -96493 + FRAME_-96493_CENTER = -96 + TKFRAME_-96493_SPEC = 'MATRIX' + TKFRAME_-96493_RELATIVE = 'SPP_EPILO_W7' + TKFRAME_-96493_MATRIX = (0.9836441852061112 + -0.0703416078843675, + -0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + 0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L75 = -96494 + FRAME_-96494_NAME = 'SPP_EPILO_L75' + FRAME_-96494_CLASS = 4 + FRAME_-96494_CLASS_ID = -96494 + FRAME_-96494_CENTER = -96 + TKFRAME_-96494_SPEC = 'MATRIX' + TKFRAME_-96494_RELATIVE = 'SPP_EPILO_W7' + TKFRAME_-96494_MATRIX = (0.9836441852061112 + 0.0703416078843675, + 0.1658197066408207, + 0.0000000000000000, + 0.9205940500233174, + -0.3905209278152269, + -0.1801225052851696, + 0.3841336398467433, + 0.9055369842407799) + + FRAME_SPP_EPILO_L76 = -96495 + FRAME_-96495_NAME = 'SPP_EPILO_L76' + FRAME_-96495_CLASS = 4 + FRAME_-96495_CLASS_ID = -96495 + FRAME_-96495_CENTER = -96 + TKFRAME_-96495_SPEC = 'MATRIX' + TKFRAME_-96495_RELATIVE = 'SPP_EPILO_W7' + TKFRAME_-96495_MATRIX = (0.9903244000533897 + -0.0984911534882631, + -0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + 0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L77 = -96496 + FRAME_-96496_NAME = 'SPP_EPILO_L77' + FRAME_-96496_CLASS = 4 + FRAME_-96496_CLASS_ID = -96496 + FRAME_-96496_CENTER = -96 + TKFRAME_-96496_SPEC = 'MATRIX' + TKFRAME_-96496_RELATIVE = 'SPP_EPILO_W7' + TKFRAME_-96496_MATRIX = (0.9903244000533897 + 0.0984911534882631, + 0.0977602953322317, + 0.0000000000000000, + 0.7044685664732034, + -0.7097351892439814, + -0.1387716925705447, + 0.7028680754848248, + 0.6976524104490466) + + FRAME_SPP_EPILO_L78 = -96497 + FRAME_-96497_NAME = 'SPP_EPILO_L78' + FRAME_-96497_CLASS = 4 + FRAME_-96497_CLASS_ID = -96497 + FRAME_-96497_CENTER = -96 + TKFRAME_-96497_SPEC = 'MATRIX' + TKFRAME_-96497_RELATIVE = 'SPP_EPILO_W7' + TKFRAME_-96497_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.3902632340374340, + -0.9207033225521906, + 0.0000000000000000, + 0.9207033225521906, + 0.3902632340374340) + + FRAME_SPP_EPILO_L79 = -96498 + FRAME_-96498_NAME = 'SPP_EPILO_L79' + FRAME_-96498_CLASS = 4 + FRAME_-96498_CLASS_ID = -96498 + FRAME_-96498_CENTER = -96 + TKFRAME_-96498_SPEC = 'MATRIX' + TKFRAME_-96498_RELATIVE = 'SPP_EPILO_W7' + TKFRAME_-96498_MATRIX = (1.0000000000000000 + -0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 0.0000000000000001, + -1.0000000000000000, + 0.0000000000000000, + 1.0000000000000000, + 0.0000000000000001) + + \begintext + + +EPI-Hi Frames +=========================================================================== + +TBD + diff --git a/tools/tests/test_data/spice/static_kernels.tm b/tools/tests/test_data/spice/static_kernels.tm new file mode 100644 index 000000000..997d0c385 --- /dev/null +++ b/tools/tests/test_data/spice/static_kernels.tm @@ -0,0 +1,32 @@ +KPL/MK + +Meta kernel that loads the arecibo configuration kernels into the sarbeta program. + +\begindata + + PATH_SYMBOLS += ( 'GENERIC' ) + PATH_VALUES += ( '/project/mini-rf/poc/LRO/data/storage/ancillary/spice/frames' ) + + PATH_SYMBOLS += ( 'LRO' ) + PATH_VALUES += ( '/project/mini-rf/poc/LRO/data/storage/ancillary/spice/frames' ) + + KERNELS_TO_LOAD += ( '$GENERIC/arecibo.bsp' + '$GENERIC/arecibo.tf' + '$GENERIC/arecibo.ti' ) + + KERNELS_TO_LOAD += ( '$GENERIC/earthstns_itrf93_050714.bsp' + '$GENERIC/earth_topo_050714.tf' + '$GENERIC/dss13.ti' ) + + KERNELS_TO_LOAD += ( '$GENERIC/moon_pa_de421_1900-2050.bpc' + '$GENERIC/pck00010.tpc' + '$GENERIC/moon_080317.tf' + '$GENERIC/moon_assoc_me.tf' + '$GENERIC/earth_assoc_itrf93.tf' + '$GENERIC/de421.bsp' + '$GENERIC/naif0012.tls' ) + + KERNELS_TO_LOAD += ( '$LRO/lro_frames_2010214_v01.tf' + '$LRO/lro_sandia.tf' ) + +\begintext diff --git a/tools/tests/unit/test_spice_utils.py b/tools/tests/unit/test_spice_utils.py index 108239243..69a6dc439 100644 --- a/tools/tests/unit/test_spice_utils.py +++ b/tools/tests/unit/test_spice_utils.py @@ -20,6 +20,7 @@ def kernels(): return kernels +@pytest.mark.xfail(reason="Download NAIF kernels") def test_list_files_with_extensions(kernels): """Tests the list_files_with_extensions function.""" @@ -59,6 +60,7 @@ def test_list_loaded_kernels(kernels): assert sorted(result) == sorted(expected) +@pytest.mark.xfail(reason="Download NAIF kernels") def test_list_all_constants(): """Tests the ``list_all_constants`` function"""