KPL/FK Frame (FK) SPICE kernel file for JUICE science operations frames =============================================================================== This frames kernel defines a number of frames used by the JUICE science operations centre to perform mission analysis and attitude dependent science opportunity identification. These frames can be used stand-alone, i.e. referring directly to them and assuming they correspond to the JUICE spacecraft reference frame, or in combination with the JUICE spacecraft frames. The latter will allow the user to use the existing alignments and instrument frame definitions to perform instrument specific mission analysis and attitude dependent science opportunity identification. Please refer to the section ``Using these frames'' for further details. Version and Date ------------------------------------------------------------------------------- Version 0.2 -- June 04, 2016 -- Marc Costa Sitja, ESAC/ESA Updated all NAIF ID codes from -907* to -28* since the JUICE spacecraft NAIF ID has been updated from -907 to -28. Version 0.1 -- May 11, 2016 -- Jorge Diaz del Rio (ODC Space) Added JUICE_IO_NPO frame. Corrected typos in text. Version 0.0 -- April 25, 2016 -- Jorge Diaz del Rio (ODC Space) Initial version. References ------------------------------------------------------------------------------- [1] "Frames Required Reading" [2] "Kernel Pool Required Reading" [3] ``Science Operations Centre - Flight Dynamics - Pointing Timeline-ICD'' [TBD] Not yet available; EM16 used as reference. 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 routine that loads a kernel into the pool is 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. JUICE Science Operations frame names and NAIF ID Codes ------------------------------------------------------------------------------- The following frames are defined in this kernel file: SPICE Frame Name Long-name ------------------------ --------------------------------------------- JUICE_EARTH_COMMS JUICE HGA Earth communications pointing JUICE Nadir orbit-aligned (NOA) pointing: JUICE_CALLISTO_NOA JUICE Nadir orbit-aligned pointing @ Callisto JUICE_EUROPA_NOA JUICE Nadir orbit-aligned pointing @ Europa JUICE_JUPITER_NOA JUICE Nadir orbit-aligned pointing @ Jupiter JUICE_GANYMEDE_NOA JUICE Nadir orbit-aligned pointing @ Ganymede JUICE Nadir power-optimized (NPO) pointing: JUICE_CALLISTO_NPO JUICE Nadir power-optimized pointing @ Callisto JUICE_EUROPA_NPO JUICE Nadir power-optimized pointing @ Europa JUICE_JUPITER_NPO JUICE Nadir power-optimized pointing @ Jupiter JUICE_GANYMEDE_NPO JUICE Nadir power-optimized pointing @ Ganymede JUICE_IO_NPO JUICE Nadir power-optimized pointing @ Io These frames have the following centers, frame class and NAIF IDs: SPICE Frame Name Center Class NAIF ID ------------------------ --------------------- ------- ---------- JUICE_EARTH_COMMS JUICE DYNAMIC -28900 JUICE_JUPITER_NOA JUICE DYNAMIC -28905 JUICE_CALLISTO_NOA JUICE DYNAMIC -28906 JUICE_EUROPA_NOA JUICE DYNAMIC -28907 JUICE_GANYMEDE_NOA JUICE DYNAMIC -28908 JUICE_JUPITER_NPO JUICE DYNAMIC -28910 JUICE_CALLISTO_NPO JUICE DYNAMIC -28911 JUICE_EUROPA_NPO JUICE DYNAMIC -28912 JUICE_GANYMEDE_NPO JUICE DYNAMIC -28913 JUICE_IO_NPO JUICE DYNAMIC -28914 The keywords implementing these frame definitions are located in the "JUICE Science Operations Frame Definitions" section. General Notes About This File ------------------------------------------------------------------------------- About Required Data: -------------------- All the dynamic frames defined in this file require at least one of the following kernel types to be loaded prior to their evaluation, normally during program initialization: - Planetary and Satellite ephemeris data (SPK), i.e. de432, jup300, etc; - Spacecraft ephemeris data (SPK); 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. Using these frames ------------------ These frames have been implemented to define the different pointing profiles for the JUICE spacecraft. These pointing profiles can be used in two different ways: [1] ``As is'' for analysis of offsets between the spacecraft attitude defined in the corresponding CK and a given pointing profile. Loading this kernel in combination with any JUICE CK will allow the user to perform this comparison between the JUICE_SPACECRAFT frame and any of the different frames defined within this kernel. [2] In combination with the JUICE Frames kernel, to define a default pointing profile for the whole duration of the mission together with the spacecraft and instrument frames defined in the JUICE FK. In this way, instrument-specific mission analysis activities, for which a particular pointing profile and knowledge of the instruments is required, can be conducted without the need for a spacecraft CK. In order to define such default pointing profile, the latest JUICE frames kernel and this file shall be loaded before the selected ``JUICE spacecraft frame overwrite'' frame kernel. As an example, imagine that the desired default pointing profile is "Nadir power optimized with respect to Jupiter", then the furnish (metakernel) file should contain the following sequence of frames kernels, in the following order: ... $DATA/fk/juice_v00.tf $DATA/fk/juice_ops_v00.tf $DATA/fk/juice_sc_jup_npo_v00.tf ... (*) the example presents version 0.0 of the JUICE frames and JUICE Science Operations frames kernels. Newer versions of these files will produce the same results. By loading the ``juice_sc_jup_npo.tf'' frames kernel last, the spacecraft frame JUICE_SPACECRAFT, which is defined as a CK-based frame in the ``JUICE frames kernel'', will be overwritten as a type-4 fixed offset frame, mapping the JUICE_SPACECRAFT frame to the JUICE_JUPITER_NPO frame defined in the ``JUICE Science Operations Frames Kernel'' (this) file. JUICE Science Operations Frame Definitions ------------------------------------------------------------------------------- This section contains the definition of the JUICE science operations frames. JUICE HGA Earth communications pointing frame (JUICE_EARTH_COMMS) ------------------------------------------------------------------------ Definition: ----------- The JUICE HGA Earth communications pointing frame is defined as follows (from [3]): - the position of the Earth relative to JUICE is the primary vector. Since the HGA is located in the -X spacecraft bus pannel, the -X axis is the primary vector and it points from JUICE to the Earth center of mass; - the secondary axis is chosen to keep the science deck away from the Sun. -Z axis is the secondary vector and is the orthogonal component to the -X axis of the Sun position relative to JUICE; - +Y axis completes the right-handed system; - the origin of this frame is the spacecraft's center of mass. 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. Both the primary and the secondary vector are defined as an 'observer-target position' vectors, therefore, the ephemeris data required to compute both the JUICE-Earth position and the JUICE-Sun position in J2000 frame have to be loaded before using this frame. Remarks: -------- Since the primary and secondary vectors of this frame are defined based on the JUICE-Earth position and JUICE-Sun position vectors, the usage of different ephemerides to compute these vectors may lead to different frame orientation at given time. \begindata FRAME_JUICE_EARTH_COMMS = -28900 FRAME_-28900_NAME = 'JUICE_EARTH_COMMS' FRAME_-28900_CLASS = 5 FRAME_-28900_CLASS_ID = -28900 FRAME_-28900_CENTER = -28 FRAME_-28900_RELATIVE = 'J2000' FRAME_-28900_DEF_STYLE = 'PARAMETERIZED' FRAME_-28900_FAMILY = 'TWO-VECTOR' FRAME_-28900_PRI_AXIS = '-X' FRAME_-28900_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28900_PRI_OBSERVER = 'JUICE' FRAME_-28900_PRI_TARGET = 'EARTH' FRAME_-28900_PRI_ABCORR = 'NONE' FRAME_-28900_SEC_AXIS = '-Z' FRAME_-28900_SEC_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28900_SEC_OBSERVER = 'JUICE' FRAME_-28900_SEC_TARGET = 'SUN' FRAME_-28900_SEC_ABCORR = 'NONE' FRAME_-28900_SEC_FRAME = 'J2000' \begintext JUICE Nadir orbit-aligned pointing frame(s) (JUICE__NOA) ------------------------------------------------------------------------ SPICE frame name and literature references: ------------------------------------------- The JUICE Nadir orbit-aligned pointing frame(s) are a family of frames that define the Nadir orbit-aligned pointing profile for the different JUICE targets. Within the JUICE mission, these frames are referred as JUICE_CALLISTO_NOA (for Callisto Nadir orbit-aligned pointing profile), JUICE_EUROPA_NOA (for Europa), JUICE_JUPITER_NOA (for Jupiter) and JUICE_GANYMEDE_NOA (for Ganymede). Definition: ----------- The JUICE Nadir orbit-aligned pointing frame is defined as follows (from [3]): - +Z axis is the primary vector and points from JUICE to the center of the target body (Nadir direction); - +Y axis is the secondary vector and is the orthogonal component to the +Z axis of JUICE inertially referenced velocity vector relative to the target body; - +X axis completes the right-handed system; - the origin of this frame is the spacecraft's center of mass. 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 and the secondary vector is defined as an 'observer-target' velocity, therefore, the ephemeris data required to compute the JUICE-target body state in J2000 frame have to be loaded before using this frame. Remarks: -------- Since the primary and secondary vectors of this frame are defined based on the JUICE-target body state vector, the usage of different ephemerides to compute this state vector may lead to different frame orientation at given time. \begindata FRAME_JUICE_JUPITER_NOA = -28905 FRAME_-28905_NAME = 'JUICE_JUPITER_NOA' FRAME_-28905_CLASS = 5 FRAME_-28905_CLASS_ID = -28905 FRAME_-28905_CENTER = -28 FRAME_-28905_RELATIVE = 'J2000' FRAME_-28905_DEF_STYLE = 'PARAMETERIZED' FRAME_-28905_FAMILY = 'TWO-VECTOR' FRAME_-28905_PRI_AXIS = 'Z' FRAME_-28905_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28905_PRI_OBSERVER = 'JUICE' FRAME_-28905_PRI_TARGET = 'JUPITER' FRAME_-28905_PRI_ABCORR = 'NONE' FRAME_-28905_SEC_AXIS = 'Y' FRAME_-28905_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_-28905_SEC_OBSERVER = 'JUPITER' FRAME_-28905_SEC_TARGET = 'JUICE' FRAME_-28905_SEC_ABCORR = 'NONE' FRAME_-28905_SEC_FRAME = 'J2000' FRAME_JUICE_CALLISTO_NOA = -28906 FRAME_-28906_NAME = 'JUICE_CALLISTO_NOA' FRAME_-28906_CLASS = 5 FRAME_-28906_CLASS_ID = -28906 FRAME_-28906_CENTER = -28 FRAME_-28906_RELATIVE = 'J2000' FRAME_-28906_DEF_STYLE = 'PARAMETERIZED' FRAME_-28906_FAMILY = 'TWO-VECTOR' FRAME_-28906_PRI_AXIS = 'Z' FRAME_-28906_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28906_PRI_OBSERVER = 'JUICE' FRAME_-28906_PRI_TARGET = 'CALLISTO' FRAME_-28906_PRI_ABCORR = 'NONE' FRAME_-28906_SEC_AXIS = 'Y' FRAME_-28906_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_-28906_SEC_OBSERVER = 'CALLISTO' FRAME_-28906_SEC_TARGET = 'JUICE' FRAME_-28906_SEC_ABCORR = 'NONE' FRAME_-28906_SEC_FRAME = 'J2000' FRAME_JUICE_EUROPA_NOA = -28907 FRAME_-28907_NAME = 'JUICE_EUROPA_NOA' FRAME_-28907_CLASS = 5 FRAME_-28907_CLASS_ID = -28907 FRAME_-28907_CENTER = -28 FRAME_-28907_RELATIVE = 'J2000' FRAME_-28907_DEF_STYLE = 'PARAMETERIZED' FRAME_-28907_FAMILY = 'TWO-VECTOR' FRAME_-28907_PRI_AXIS = 'Z' FRAME_-28907_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28907_PRI_OBSERVER = 'JUICE' FRAME_-28907_PRI_TARGET = 'EUROPA' FRAME_-28907_PRI_ABCORR = 'NONE' FRAME_-28907_SEC_AXIS = 'Y' FRAME_-28907_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_-28907_SEC_OBSERVER = 'EUROPA' FRAME_-28907_SEC_TARGET = 'JUICE' FRAME_-28907_SEC_ABCORR = 'NONE' FRAME_-28907_SEC_FRAME = 'J2000' FRAME_JUICE_GANYMEDE_NOA = -28908 FRAME_-28908_NAME = 'JUICE_GANYMEDE_NOA' FRAME_-28908_CLASS = 5 FRAME_-28908_CLASS_ID = -28908 FRAME_-28908_CENTER = -28 FRAME_-28908_RELATIVE = 'J2000' FRAME_-28908_DEF_STYLE = 'PARAMETERIZED' FRAME_-28908_FAMILY = 'TWO-VECTOR' FRAME_-28908_PRI_AXIS = 'Z' FRAME_-28908_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28908_PRI_OBSERVER = 'JUICE' FRAME_-28908_PRI_TARGET = 'GANYMEDE' FRAME_-28908_PRI_ABCORR = 'NONE' FRAME_-28908_SEC_AXIS = 'Y' FRAME_-28908_SEC_VECTOR_DEF = 'OBSERVER_TARGET_VELOCITY' FRAME_-28908_SEC_OBSERVER = 'GANYMEDE' FRAME_-28908_SEC_TARGET = 'JUICE' FRAME_-28908_SEC_ABCORR = 'NONE' FRAME_-28908_SEC_FRAME = 'J2000' \begintext JUICE Nadir power-optimized pointing frame(s) (JUICE__NPO) ------------------------------------------------------------------------ SPICE frame name and literature references: ------------------------------------------- The JUICE Nadir power-optimized pointing frame(s) are a family of frames that define the Nadir power-optimized pointing profile for the different JUICE targets. Within the JUICE mission, these frames are referred as JUICE_CALLISTO_NPO (for Callisto Nadir power-optimized pointing profile), JUICE_EUROPA_NPO (for Europa), JUICE_GANYMEDE_NPO (for Ganymede), JUICE_JUPITER_NPO (for Jupiter) and JUICE_IO_NPO (for IO) . Definition: ----------- The JUICE Nadir power-optimized pointing frame is defined as follows (from [3]): - +Z axis is the primary vector and points from JUICE to the center of the target body (Nadir direction); - -X axis is the secondary vector and is the orthogonal component to the +Z axis of the Sun position relative to JUICE; - +Y axis completes the right-handed system; - the original of this frame is the spacecraft's center of mass. 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. Both the primary and the secondary vector are defined as an 'observer-target position' vectors, therefore, the ephemeris data required to compute both the JUICE-target body position and the JUICE-Sun position in J2000 frame have to be loaded before using this frame. Remarks: -------- Since the primary and secondary vectors of this frame are defined based on the JUICE-target body position and JUICE-Sun position vectors, the usage of different ephemerides to compute these vectors may lead to different frame orientation at given time. \begindata FRAME_JUICE_JUPITER_NPO = -28910 FRAME_-28910_NAME = 'JUICE_JUPITER_NPO' FRAME_-28910_CLASS = 5 FRAME_-28910_CLASS_ID = -28910 FRAME_-28910_CENTER = -28 FRAME_-28910_RELATIVE = 'J2000' FRAME_-28910_DEF_STYLE = 'PARAMETERIZED' FRAME_-28910_FAMILY = 'TWO-VECTOR' FRAME_-28910_PRI_AXIS = 'Z' FRAME_-28910_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28910_PRI_OBSERVER = 'JUICE' FRAME_-28910_PRI_TARGET = 'JUPITER' FRAME_-28910_PRI_ABCORR = 'NONE' FRAME_-28910_SEC_AXIS = '-X' FRAME_-28910_SEC_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28910_SEC_OBSERVER = 'JUICE' FRAME_-28910_SEC_TARGET = 'SUN' FRAME_-28910_SEC_ABCORR = 'NONE' FRAME_-28910_SEC_FRAME = 'J2000' FRAME_JUICE_CALLISTO_NPO = -28911 FRAME_-28911_NAME = 'JUICE_CALLISTO_NPO' FRAME_-28911_CLASS = 5 FRAME_-28911_CLASS_ID = -28911 FRAME_-28911_CENTER = -28 FRAME_-28911_RELATIVE = 'J2000' FRAME_-28911_DEF_STYLE = 'PARAMETERIZED' FRAME_-28911_FAMILY = 'TWO-VECTOR' FRAME_-28911_PRI_AXIS = 'Z' FRAME_-28911_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28911_PRI_OBSERVER = 'JUICE' FRAME_-28911_PRI_TARGET = 'CALLISTO' FRAME_-28911_PRI_ABCORR = 'NONE' FRAME_-28911_SEC_AXIS = '-X' FRAME_-28911_SEC_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28911_SEC_OBSERVER = 'JUICE' FRAME_-28911_SEC_TARGET = 'SUN' FRAME_-28911_SEC_ABCORR = 'NONE' FRAME_-28911_SEC_FRAME = 'J2000' FRAME_JUICE_EUROPA_NPO = -28912 FRAME_-28912_NAME = 'JUICE_EUROPA_NPO' FRAME_-28912_CLASS = 5 FRAME_-28912_CLASS_ID = -28912 FRAME_-28912_CENTER = -28 FRAME_-28912_RELATIVE = 'J2000' FRAME_-28912_DEF_STYLE = 'PARAMETERIZED' FRAME_-28912_FAMILY = 'TWO-VECTOR' FRAME_-28912_PRI_AXIS = 'Z' FRAME_-28912_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28912_PRI_OBSERVER = 'JUICE' FRAME_-28912_PRI_TARGET = 'EUROPA' FRAME_-28912_PRI_ABCORR = 'NONE' FRAME_-28912_SEC_AXIS = '-X' FRAME_-28912_SEC_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28912_SEC_OBSERVER = 'JUICE' FRAME_-28912_SEC_TARGET = 'SUN' FRAME_-28912_SEC_ABCORR = 'NONE' FRAME_-28912_SEC_FRAME = 'J2000' FRAME_JUICE_GANYMEDE_NPO = -28913 FRAME_-28913_NAME = 'JUICE_GANYMEDE_NPO' FRAME_-28913_CLASS = 5 FRAME_-28913_CLASS_ID = -28913 FRAME_-28913_CENTER = -28 FRAME_-28913_RELATIVE = 'J2000' FRAME_-28913_DEF_STYLE = 'PARAMETERIZED' FRAME_-28913_FAMILY = 'TWO-VECTOR' FRAME_-28913_PRI_AXIS = 'Z' FRAME_-28913_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28913_PRI_OBSERVER = 'JUICE' FRAME_-28913_PRI_TARGET = 'GANYMEDE' FRAME_-28913_PRI_ABCORR = 'NONE' FRAME_-28913_SEC_AXIS = '-X' FRAME_-28913_SEC_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28913_SEC_OBSERVER = 'JUICE' FRAME_-28913_SEC_TARGET = 'SUN' FRAME_-28913_SEC_ABCORR = 'NONE' FRAME_-28913_SEC_FRAME = 'J2000' FRAME_JUICE_IO_NPO = -28914 FRAME_-28914_NAME = 'JUICE_IO_NPO' FRAME_-28914_CLASS = 5 FRAME_-28914_CLASS_ID = -28914 FRAME_-28914_CENTER = -28 FRAME_-28914_RELATIVE = 'J2000' FRAME_-28914_DEF_STYLE = 'PARAMETERIZED' FRAME_-28914_FAMILY = 'TWO-VECTOR' FRAME_-28914_PRI_AXIS = 'Z' FRAME_-28914_PRI_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28914_PRI_OBSERVER = 'JUICE' FRAME_-28914_PRI_TARGET = 'IO' FRAME_-28914_PRI_ABCORR = 'NONE' FRAME_-28914_SEC_AXIS = '-X' FRAME_-28914_SEC_VECTOR_DEF = 'OBSERVER_TARGET_POSITION' FRAME_-28914_SEC_OBSERVER = 'JUICE' FRAME_-28914_SEC_TARGET = 'SUN' FRAME_-28914_SEC_ABCORR = 'NONE' FRAME_-28914_SEC_FRAME = 'J2000' \begintext