KPL/FK Frame (FK) SPICE kernel file for BepiColombo-specific Science frames ============================================================================= These frames are sorted in two groups: those that are BEPICOLOMBO mission specific and those that are Mercury generic. The first group contains the frames defined by and for the BEPICOLOMBO mission, while the second provides the frames that are commonly accepted by the scientific community for Mercury. The IAU body-fixed rotational frames for Mercury and Venus is an exception to this grouping, as they are provided in a separate PCK kernel file. Version and Date ------------------------------------------------------------------------------- Version 0.2 -- June 20, 2017 -- Marc Costa Sitja, ESAC/ESA Added Mercury Solar Magnetospheric frame and Mercury Orbital generic frame. Updated some definitions and file outline. Version 0.1 -- July 04, 2016 -- Marc Costa Sitja, ESAC/ESA Updated BEPICOLOMBO MPO IDs from -69 to -121. Version 0.0 -- February 26, 2015 -- Boris Semenov, NAIF Initial version. References ------------------------------------------------------------------------------- 1. ``Frames Required Reading'' 2. ``Kernel Pool Required Reading'' 3. Russell, C.T., "Geophysical Coordinate Transformations," Cosmic Electrodynamics, 2, 184-196, 1971 4. pck00009.tpc, based on IAU 2006 constants 5. pck00010.tpc, based on IAU 2009 constants 6. MERCURY_MME/999999 frame definition provided by Dr. Jonathan McAuliffe, ESA, 20 Feb 2015 7. ``MESSENGER Dynamic Frame Definitions Kernel'', msgr_dyn_v500.tf, extracted from the MESS-E/V/H-SPICE-6-V1.0 Archive Dataset, Scott Turner, July 2008. 8. Russell, C.T., "Geophysical Coordinate Transformations," Cosmic Electrodynamics, 2, 184-196, 1971 Contact Information ----------------------------------------------------------------------------- If you have any questions regarding this file contact SPICE support at ESAC: Marc Costa Sitja (+34) 91-8131-457 mcosta@sciops.esa.int, esa_spice@sciops.esa.int or NAIF at JPL: Boris Semenov (818) 354-8136 Boris.Semenov@jpl.nasa.gov Implementation Notes ----------------------------------------------------------------------------- This file is used by the SPICE system as follows: programs that make use of this frame kernel must "load" the kernel 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' ) PYTHON: (SPICEYPY)* furnsh( frame_kernel_name ) In order for a program or routine to extract data from the pool, the SPICELIB routines GDPOOL, GIPOOL, and GCPOOL are used. See [2] for more details. This file was created and may be updated with a text editor or word processor. * SPICEPY is a non-official, community developed Python wrapper for the NAIF SPICE toolkit. Its development is managed on Github. It is available at: https://github.com/AndrewAnnex/SpiceyPy BepiColombo Science Frames names and NAIF ID Codes ------------------------------------------------------------------------------- The following BepiColombo science frames are defined in this kernel file: SPICE Frame Name Long-name -------------------------- ------------------------------------------ BC_MME_IAU2006_OF_DATE Mean Mercury Equator and IAU vector of date using IAU 2006 Mercury rotation constants BC_MME_IAU2006_J2000 BC_MME_IAU2006_OF_DATE frame frozen at J2000 TDB BC_MME_IAU2009_OF_DATE Mean Mercury Equator and IAU vector of date using IAU 2009 Mercury rotation constants BC_MME_IAU2009_J2000 BC_MME_IAU2009_OF_DATE frame frozen at J2000 TDB BC_MERCURY_BSM Mercury Solar Magnetospheric Mercury generic frames(**): MERCURY_SUN_ORB Mercury Orbital (**) These frames are commonly used by other missions for data analysis and scientific research. In the future NAIF may include them in their official generic frames kernel for the Jupiter system. When this happens the frames will be removed from this kernel. These frames have the following centers, frame class and NAIF IDs: SPICE Frame Name Center Class NAIF ID -------------------------- ---------- ------- ---------- BC_MME_IAU2006_OF_DATE J2000 DYNAMIC -121921 BC_MME_IAU2006_J2000 J2000 FIXED -121922 BC_MME_IAU2009_OF_DATE J2000 DYNAMIC -121923 BC_MME_IAU2009_J2000 J2000 FIXED -121924 BC_MERCURY_BSM MERCURY DYNAMIC -121925 MERCURY_SUN_ORB MERCURY DYNAMIC 100199002 The keywords implementing these frame definitions are located in the section "Frame Definitions." General Notes About This File ------------------------------------------------------------------------------- About Required Data: -------------------- Most of the dynamic frames defined in this file require at least one of the following kernels to be loaded prior to their evaluation, normally during program initialization: - Planetary ephemeris data (SPK), i.e. de403, de405, etc; - Planetary constants data (PCK); - Earth generic frames definitions (FK). Note that loading different kernels will lead to different orientations of the same frame at a given epoch, providing different results from each other, in terms of state vectors referred to these frames. About Implementation: --------------------- The SPICE frames defined within this file and their corresponding references in literature might not be equivalent, both due to variations in the SPICE kernels on which the SPICE frame depends, and due to possible differences in both the frame's definition and implementation (e.g. GSE can be defined using the instantaneous orbital plane or mean ecliptic; the mean ecliptic is a function of the ecliptic model). Please refer to each applicable frame description section for particular details on the current SPICE kernel implementation. Frame Definitions ------------------------------------------------------------------------------- This section contains the definitions of the Mercury Science frames. Mercury Mean Equator of Date Frame based on IAU2006 Constants -------------------------------------------------------------- The BC_MME_IAU2006_OF_DATE frame is based on Mean Mercury Equator and IAU vector of date computed using IAU 2006 Mercury rotation constants The BC_MME_IAU2006_OF_DATE frame is implemented as an Euler frame mathematically identical to the PCK frame IAU_MERCURY based on IAU 2006 Mercury rotation constants but without prime meridian rotation terms. The IAU 2006 PCK data from [4] defining the IAU_MERCURY frame are: BODY199_POLE_RA = ( 281.01 -0.033 0. ) BODY199_POLE_DEC = ( 61.45 -0.005 0. ) BODY199_PM = ( 329.548 6.1385025 0. ) Here pole RA/Dec terms in the PCK are in degrees and degreeS/Century; the rates here have been converted to degrees/sec ( = (rate deg/cen)/ (86400.0 * 36525.0)). Prime meridia terms from the PCK are disregarded. The 3x3 transformation matrix M defined by the angles is M = [ 0.0] [angle_2] [angle_3] 3 1 3 Vectors are mapped from the J2000 base frame to the BC_MME_IAU2006_OF_DATE frame via left multiplication by M. The relationship of these Euler angles to RA/Dec for the J2000-to-IAU Mercury Mean Equator and IAU vector of date transformation is as follows: angle_1 is 0.0 angle_2 is 90 - Dec angle_3 is 90 + RA, mapped into the range 0 < angle_3 < 2*pi Since when we define the BC_MME_IAU2006_OF_DATE frame we're defining the *inverse* of the above transformation, the angles for our Euler frame definition are reversed and the signs negated: angle_1 is -90 - RA, mapped into the range 0 < angle_3 < 2*pi angle_2 is -90 + Dec angle_3 is 0.0 Then our frame definition is: \begindata FRAME_BC_MME_IAU2006_OF_DATE = -121921 FRAME_-121921_NAME = 'BC_MME_IAU2006_OF_DATE' FRAME_-121921_CLASS = 5 FRAME_-121921_CLASS_ID = -121921 FRAME_-121921_CENTER = 199 FRAME_-121921_RELATIVE = 'J2000' FRAME_-121921_DEF_STYLE = 'PARAMETERIZED' FRAME_-121921_FAMILY = 'EULER' FRAME_-121921_EPOCH = @2000-JAN-1/12:00:00 FRAME_-121921_AXES = ( 3 1 3 ) FRAME_-121921_UNITS = 'DEGREES' FRAME_-121921_ANGLE_1_COEFFS = ( -11.01 1.0457068978629554e-11 ) FRAME_-121921_ANGLE_2_COEFFS = ( -28.55 -1.5844043907014476e-12 ) FRAME_-121921_ANGLE_3_COEFFS = ( 0.0 ) FRAME_-121921_ROTATION_STATE = 'INERTIAL' \begintext Mercury Mean Equator at J2000 Frame based on IAU2006 Constants -------------------------------------------------------------- The BC_MME_IAU2006_J2000 frame is the BC_MME_IAU2006_OF_DATE frame frozen at J2000 TDB. For efficiency it is defined as a offset frame using pre-computed rotation matrix transforming vectors from BC_MME_IAU2006_OF_DATE to J2000 at J2000 TDB. For consistency with earlier BepiColombo usage the matrix below is from [6]. \begindata FRAME_BC_MME_IAU2006_J2000 = -121922 FRAME_-121922_NAME = 'BC_MME_IAU2006_J2000' FRAME_-121922_CLASS = 4 FRAME_-121922_CLASS_ID = -121922 FRAME_-121922_CENTER = 199 TKFRAME_-121922_RELATIVE = 'J2000' TKFRAME_-121922_SPEC = 'MATRIX' TKFRAME_-121922_MATRIX = ( 0.981593866044678, 0.190980318733265, 1.45064023353692E-15, -0.167757184264224, 0.862232423481673, 0.477925491080635, 0.0912743626173337, -0.469128730471140, 0.878400378515027 ) \begintext Mercury Mean Equator of Date Frame based on IAU2009 Constants ------------------------------------------------------------- The BC_MME_IAU2009_OF_DATE frame is based on Mean Mercury Equator and IAU vector of date computed using IAU 2009 Mercury rotation constants The BC_MME_IAU2009_OF_DATE frame is implemented as as Euler frame mathematically identical to the PCK frame IAU_MERCURY based on IAU 2009 Mercury rotation constants but without prime meridian rotation terms. The IAU 2009 PCK data from [5] defining the IAU_MERCURY frame are: BODY199_POLE_RA = ( 281.0097 -0.0328 0. ) BODY199_POLE_DEC = ( 61.4143 -0.0049 0. ) BODY199_PM = ( 329.5469 6.1385025 0. ) Here pole RA/Dec terms in the PCK are in degrees and degreeS/Century; the rates here have been converted to degrees/sec ( = (rate deg/cen)/ (86400.0 * 36525.0)). Prime meridia terms from the PCK are disregarded. The 3x3 transformation matrix M defined by the angles is M = [ 0.0] [angle_2] [angle_3] 3 1 3 Vectors are mapped from the J2000 base frame to the BC_MME_IAU2009_OF_DATE frame via left multiplication by M. The relationship of these Euler angles to RA/Dec for the J2000-to-IAU Mercury Mean Equator and IAU vector of date transformation is as follows: angle_1 is 0.0 angle_2 is 90 - Dec angle_3 is 90 + RA, mapped into the range 0 < angle_3 < 2*pi Since when we define the BC_MME_IAU2009_OF_DATE frame we're defining the *inverse* of the above transformation, the angles for our Euler frame definition are reversed and the signs negated: angle_1 is -90 - RA, mapped into the range 0 < angle_3 < 2*pi angle_2 is -90 + Dec angle_3 is 0.0 Then our frame definition is: \begindata FRAME_BC_MME_IAU2009_OF_DATE = -121923 FRAME_-121923_NAME = 'BC_MME_IAU2009_OF_DATE' FRAME_-121923_CLASS = 5 FRAME_-121923_CLASS_ID = -121923 FRAME_-121923_CENTER = 199 FRAME_-121923_RELATIVE = 'J2000' FRAME_-121923_DEF_STYLE = 'PARAMETERIZED' FRAME_-121923_FAMILY = 'EULER' FRAME_-121923_EPOCH = @2000-JAN-1/12:00:00 FRAME_-121923_AXES = ( 3 1 3 ) FRAME_-121923_UNITS = 'DEGREES' FRAME_-121923_ANGLE_1_COEFFS = ( -11.0097 1.0393692803001496e-11 ) FRAME_-121923_ANGLE_2_COEFFS = ( -28.5857 -1.5527163028874185e-12 ) FRAME_-121923_ANGLE_3_COEFFS = ( 0.0 ) FRAME_-121921_ROTATION_STATE = 'INERTIAL' \begintext Mercury Mean Equator at J2000 Frame based on IAU2009 Constants -------------------------------------------------------------- The BC_MME_IAU2009_J2000 frame is the BC_MME_IAU2009_OF_DATE frame frozen at J2000 TDB. For efficiency it is defined as a offset frame using pre-computed rotation matrix transforming vectors from BC_MME_IAU2009_OF_DATE to J2000 at J2000 TDB. \begindata FRAME_BC_MME_IAU2009_J2000 = -121924 FRAME_-121924_NAME = 'BC_MME_IAU2009_J2000' FRAME_-121924_CLASS = 4 FRAME_-121924_CLASS_ID = -121924 FRAME_-121924_CENTER = 199 TKFRAME_-121924_RELATIVE = 'J2000' TKFRAME_-121924_SPEC = 'MATRIX' TKFRAME_-121924_MATRIX = ( +9.8159486600183365E-01 +1.9097517911718839E-01 +0.0000000000000000E+00 -1.6769576713227249E-01 +8.6194082826998297E-01 +4.7847271421385607E-01 +9.1376412299678439E-02 -4.6966635979428373E-01 +8.7810242099246349E-01 ) \begintext Mercury Solar Magnetospheric (BC_MERCURY_BSM) ------------------------------------------------------------------------ SPICE frame name, common names and other designators: ----------------------------------------------------- Within the SPICE system, the Mercury Solar Magnetospheric frame is referred as BC_MERCURY_BSM. In the Messenger SPICE Kernel dataset (see [7]), this frame is referred as MSM. Definition: ----------- The Mercury Solar Magnetospheric frame is defined, based on the definition in [8] for the Earth, as follows (from [7]): - +X axis is the position of the Sun relative to Mercury; it's the primary vector and points from Mercury to the Sun; - +Z axis is the projection of the magnetic centered dipole axis (positive North) of Mercury onto the plane perpendicular to the +X axis. - +Y axis completes the right-handed system; - the origin of this frame is the center of mass of Mercury. All vectors are geometric: no aberration corrections are used. Uses and applications: ---------------------- The Mercury Solar Magnetospheric is used to analyze data affected by both the solar wind flow velocity and the rotating magnetic field of Mercury, but where the solar wind forces still dominate (in the magnetosheath and near the magnetopause) (from [21]). Required Data: -------------- This frame is defined as a two-vector frame using two different types of specifications for the primary and secondary vectors. The primary vector is defined as an 'observer-target position' vector. Therefore, the ephemeris data required to compute the Mercury-Sun position vector in the J2000 reference frame must be loaded before using this frame. The secondary vector is defined as a constant vector in the IAU_MERCURY body-fixed frame, which provides the orientation for the Mercury North magnetic dipole. Remarks: -------- For now, it is assumed that the position of the magnetic pole is coincident with the rotation axis of Mercury, i.e. 90 degrees latitude and 0 degrees longitude. This frame is defined based on SPK data: different planetary ephemerides for Mercury, Mercury Barycenter, the Sun and the Solar System Barycenter will lead to a different frame orientation at a given time. This frame is also defined based IAU_MERCURY frame, whose evaluation is based on the data included in the loaded PCK file: different orientation constants for Mercury's spin axis will lead to different frame orientation at a given time, but only when these constants result on different projections of the north magnetic centered dipole on the frame's YZ plane. It is strongly recommended to indicate what data have been used in the evaluation of this frame when referring to it, e.g. BC_MERCURY_BSM using the IAU 2009 constants and the DE405 ephemeris. \begindata FRAME_BC_MERCURY_BSM = -121925 FRAME_-121925_NAME = 'BC_MERCURY_BSM' FRAME_-121925_CLASS = 5 FRAME_-121925_CLASS_ID = -121925 FRAME_-121925_CENTER = 199 FRAME_-121925_RELATIVE = 'J2000' FRAME_-121925_DEF_STYLE = 'PARAMETERIZED' FRAME_-121925_FAMILY = 'TWO-VECTOR' FRAME_-121925_PRI_AXIS = 'X' FRAME_-121925_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-121925_PRI_OBSERVER = 'MERCURY' FRAME_-121925_PRI_TARGET = 'SUN' FRAME_-121925_PRI_ABCORR = 'NONE' FRAME_-121925_SEC_AXIS = 'Z' FRAME_-121925_SEC_SPEC = 'LATITUDINAL' FRAME_-121925_SEC_UNITS = 'DEGREES' FRAME_-121925_SEC_LONGITUDE = 0.0 FRAME_-121925_SEC_LATITUDE = 90.0 FRAME_-121925_SEC_FRAME = 'IAU_MERCURY' \begintext Mercury orbital frame (MERCURY_SUN_ORB) ------------------------------------------------------------------------ Definition: ----------- The Mercury orbital frame is defined as follows: - +X axis is the position of the Sun relative to Mercury; it's the primary vector and points from Mercury to Sun; - +Y axis is the component of the inertially referenced velocity of Sun relative to Mercury orthogonal to the +X axis; - +Z axis completes the right-handed system; - the origin of this frame is the center of mass of Mercury. All vectors are geometric: no corrections are used. Required Data: -------------- This frame is defined as a two-vector frame using two different types of specifications for the primary and secondary vectors. The primary vector is defined as an 'observer-target position' vector. Therefore, the ephemeris data required to compute the Mercury-Sun vector in J2000 reference frame have to be loaded before using this frame. The secondary vector is defined as an 'observer-target velocity' vector. Therefore, the ephemeris data required to compute the Mercury-Sun velocity vector in the J2000 reference frame have to be loaded before using this frame. Remarks: -------- This frame is defined based on SPK data: different planetary ephemerides for Mercury, Sun and the Sun Barycenter will lead to a different frame orientation at a given time. It is strongly recommended to indicate what data have been used in the evaluation of this frame when referring to it, e.g. MERCURY_SUN_ORB using de405 ephemerides. \begindata FRAME_MERCURY_SUN_ORB = 100199002 FRAME_100199002_NAME = 'MERCURY_SUN_ORB' FRAME_100199002_CLASS = 5 FRAME_100199002_CLASS_ID = 100199002 FRAME_100199002_CENTER = 199 FRAME_100199002_RELATIVE = 'J2000' FRAME_100199002_DEF_STYLE = 'PARAMETERIZED' FRAME_100199002_FAMILY = 'TWO-VECTOR' FRAME_100199002_PRI_AXIS = 'X' FRAME_100199002_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_100199002_PRI_OBSERVER = 'MERCURY' FRAME_100199002_PRI_TARGET = 'SUN' FRAME_100199002_PRI_ABCORR = 'NONE' FRAME_100199002_SEC_AXIS = 'Y' FRAME_100199002_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_100199002_SEC_OBSERVER = 'MERCURY' FRAME_100199002_SEC_TARGET = 'SUN' FRAME_100199002_SEC_ABCORR = 'NONE' FRAME_100199002_SEC_FRAME = 'J2000' \begintext End of FK file.