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.