Body Frame/Intermediate Frame Types

<< Previous: Trajectory Types

Next: Rotation Model Types >>

Body Frame/Intermediate Frame Property

The bodyFrame/intermediateFrame property defines the data that the program uses to compute an object’s body-fixed frame orientation (in one-step orientation definitions):
"bodyFrame": {
   "type": "Cosmographia frame type",
   ... type-dependent frame attributes ...
},
or intermediate frame orientation (in two-step orientation definitions, when the intermediateFrame property is accompanied by the rotationModel property described in detail in the Rotation Model Types section of the user’s guide):
"intermediateFrame": {
   "type": "Cosmographia frame type",
   ... type-dependent frame attributes ...
},
"rotationModel": {
   "type" : "Cosmographia rotation model type",
   ... model-dependent attributes ...
},
The bodyFrame/intermediateFrame  property is very rarely omitted. If it is omitted, bodyFrame/intermediateFrame defaults to “ICRF”, which is equivalent to the SPICE “J2000” frame.
The following bodyFrame/intermediateFrame types described below are supported by Cosmographia:
All of these types can also be used for the trajectoryFrame property.

SPICE

The SPICE frame type (“type“: “Spice“) directs Cosmographia to compute body frame/intermediate frame orientation using SPICE data for the SPICE frame specified by the name attribute, like this:
"bodyFrame": {
   "type": "Spice",
   "name" : "CLIPPER_SPACECRAFT"
},

Inertial

The built-in inertial frame type (“type“: “name of built-in inertial frame“) directs Cosmographia to align body frame/intermediate frame with one the inertial frames built into the program like this:
"bodyFrame" : "ICRF",
or using the slightly more verbose object syntax, more consistent with the style used for describing  other frame types:
"bodyFrame": {
   "type": "ICRF"
},
The available built-in inertial frames are:
  • ICRF (the default). This Cosmographia frame is equivalent to the SPICE ‘J2000’ frame.
  • EquatorJ2000 (commonly called EME2000 elsewhere). This Cosmographia frame is NOT
    equivalent the SPICE ‘J2000’ frame
  • EclipticJ2000. This Cosmographia frame is NOT equivalent to the SPICE ‘ECLIPJ2000’ frame.
  • EquatorB1950. This Cosmographia frame is NOT equivalent to the SPICE ‘B1950’ frame.

BodyFixed

The BodyFixed frame type (“type“: “BodyFixed“) directs Cosmographia to align body frame/intermediate frame with the body-fixed frame of the body specified by the body attribute, like this:
"bodyFrame": {
   "type": "BodyFixed",
   "body": "CubeSat"
},

TwoVector

The TwoVector frame type (“type“: “TwoVector“) directs Cosmographia to align body frame/intermediate frame with the frame based on two vectors defining primary and secondary axes. For each axis, a vector must be defined and specified as corresponding to a certain axis (x,y,z,-x,-y,-z) using one of three types: RelativePositionRelativeVelocity, and ConstantVector. These are examples of defining TwoVector-type frames using all three types of vectors:
"bodyFrame": {
   "type": "TwoVector",
   "primaryAxis": "x",
   "primary": {
      "type": "RelativePosition",
      "observer": "CubeSat",
      "target": "Ceres"
   },
   "secondaryAxis": "-y",
   "secondary": {
      "type": "RelativeVelocity",
      "observer": "CubeSat",
      "target": "Ceres"
   }
},
"bodyFrame": {
   "type": "TwoVector",
   "primaryAxis": "x",
   "primary": {
      "type": "RelativePosition",
      "observer": "CubeSat",
      "target": "Ceres"
   },
   "secondaryAxis": "-y",
   "secondary": {
      "type": "ConstantVector",
      "direction": [1.0, 2.0, 3.0],
      "frame": "ICRF"
   }
},
Any built-in inertial frame can be used in the frame attribute of the ConstantVector block.