Rotation Model Types

<< Previous: Body Frame/Intermediate Frame Types

Next: Geometry Types >>

Rotation Model Property

The rotationModel property defines the rotation model that the program uses to compute an object’s body-fixed frame orientation. This property is used only in two-step orientation definitions in combination with the intermediateFrame property, described in detail in the Body Frame/Intermediate Frame 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 rotationModel types described below are supported by Cosmographia:


The Fixed rotation type (“type“: “Fixed“) directs Cosmographia to set the body frame orientation to be a fixed offset relative to the frame defined by the intermediateFrame property, either using a SPICE-style quaternion set by the quaternion attribute:
"rotationModel": {
   "type": "Fixed",
   "quaternion": [
or using the ascendingNode, inclination, and meridianAngle attributes defining a Z-X-Z Euler axis rotation sequence where ascendingNode, inclination, and meridianAngle are the rotation angles about those axes respectively given in degrees:
"rotationModel": {
   "type": "Fixed",
   "ascendingNode": 287.781,
   "inclination": 9.985,
   "meridianAngle": 0.0
This does the same thing as the FixedEuler rotation model below but gives names to the rotation sequence.


The FixedEuler rotation type (“type“: “FixedEuler“) directs Cosmographia to set the body frame orientation to be a fixed offset relative to the frame defined by the intermediateFrame property using a sequence of rotations about the principal axes:
"rotationModel": {
   "type": "FixedEuler",
   "sequence": "zy",
   "angles": [
The axes specified in sequence can be given as (x,y,z), (X,Y,Z), or (1,2,3).  For example “zxz”, “ZXZ”, and “313” represent the same sequence.
The angles in angles should be given in degrees and the length of the angle array must match the length of the sequence string.


The Uniform rotation type (“type“: “Uniform“) directs Cosmographia to compute the body frame orientation as a uniform rotation about the Z axis of the frame defined by the intermediateFrame property. In the simplest case, the uniform rotation can be specified using only the rotation period, specified in seconds using the period attribute, and the epoch at which the body-fixed frame and the intermediate frame are co-aligned, specified as UTC using the epoch attribute:
"rotationModel": {
   "type": "Uniform",
   "period": 60,
   "epoch": "2001-05-26T19:30:00"
The uniform rotation model also allows defining the ascendingNode, inclination, and meridianAngle attributes, specifying a rotational offset from the intermediate frame in the same manner as the fixed offset in the Fixed rotation model. The rotation is then performed about the Z axis, starting from the X axis of the offset frame.


The Builtin rotation type (“type“: “Builtin“) directs Cosmographia to use the built-in model specified by the name attribute to compute the body frame orientation relative to the frame defined by the intermediateFrame property:
"rotationModel": {
   "type": "Builtin",
   "name": "IAU Moon"
When using this type, intermediateFrame must be omitted or set to ICRF. Currently IAU Moon is the only available builtin model.


The Interpolated rotation type (“type“: “Interpolated“) directs Cosmographia to compute the body frame orientation relative to the frame defined by the intermediateFrame property by interpolating time-tagged attitude quaternions provided in a separate text file:
"rotationModel": {
   "type": "Interpolated",
   "source": "attitude.q",
   "compatibility": "celestia"
The name of the quaternion file is specified using the source attribute. The conventional extension for such files is .q (for quaternion.) The file may begin with a block of comments; each comment line is prefixed with a hash (#). Following the comments are quaternion records with the following arrangement:
<date> <w> <x> <y> <z>
  • date – date is a Julian day in Barycentric Dynamical Time (TDB).
  • w, x, y, z – components of a SPICE-style quaternion
The compatibility attribute indicates how the quaternions will be interpreted. The only supported value for this attribute is celestia. When compatibility is set to “celestia”, the quaternions are converted to Celestia’s conventions for orientation.


The SPICE rotation type (“type“: “SPICE“) directs Cosmographia to compute the rotation from the  body frame to the frame defined by the intermediateFrame property using SPICE as the rotation from a SPICE frame specified by the fromFrame attribute to a SPICE frame specified by the toFrame attribute:
"rotationModel": {
   "type": "Spice",
   "fromFrame": "CASSINI_SC_COORD",
   "toFrame": "J2000"
Normally the SPICE rotation type would NOT be used to define a SPICE-based body frame orientation because such orientation can be specified in one step using just the bodyFrame property as described in the Body Frame/Intermediate Frame Types section of the User’s Guide.  When it is used, to avoid errors caused by a frame mismatch it is crucial to ensure that the SPICE frame specified by the toFrame attribute matches the frame defined by the intermediateFrame property.