Description
CoordinateSystems can be used to set the orientation of ThreeDModels, ProximityZones, Sensors, and Spacecraft objects. CoordinateSystem objects can be built using two vectors, a direction cosine matrix, Euler angles, quaternions, a chain of existing coordinate systems, or using the Body Coordinate System of Spacecraft, CelestialObject, or Sensor objects. See the Vectors and Coordinate Systems Guide for more information.
Inheritance Hierarchy: Object>CoordinateSystem
Available In Editions:
Engineer
Mission
Timing Precision Mode
This page describes functionality in millisecond timing precision mode.
Click here to see the documentation for this object in nanosecond timing precision mode.
Name

Description

Attributes

CentralBody

The celestial object which defines the origin for the position of the CoordinateSystem.

Type: String
Access: Read/Write

CentralBodyObject

The celestial object which defines the origin for the position of the CoordinateSystem.

Type: CelestialObject
Access: ReadOnly

CoordinateSystemType

The type of Coordinate System.

Type: Variable
Access: Read/Write

DeclaredName

The name of the object as declared.

Type: String
Access: ReadOnly

Epoch

For CoordinateSystem objects built on vectors which are relative to the position of bodies that move in space over time, the Epoch property indicates the time at which the CoordinateSystem is defined or reevaluated. The Epoch property can therefore serve as a means for updating a timedependent coordinate system. To model a coordinate system that rotates in time, the CoordinateSystem object should be updated any time the spacecraft state is updated. Setting the Epoch property to the spacecraft (or celestial object) epoch will "reevaluate" both the coordinate system and the underlying vectors used to build the coordinate system for the "current" epoch. Therefore, the user should add a line inside the control loop of the script to synchronize the Coordinate System with the Spacecraft, such as CoordinateSystem1.Epoch = Spacecraft1.Epoch; The Epoch property can also be set to a time, in GSFC MJD Format.

Type: Variable
Access: Read/Write
Units: day

Name

The name displayed for this object in output windows such as views, plots, and reports.

Type: String
Access: Read/Write

ObjectId

The unique identifier for the object.

Type: Variable
Access: ReadOnly

ObjectType

The type of the object.

Type: String
Access: ReadOnly

Vector1Axis

Number or Variable that specifies which axis of the coordinate system (1 = Xaxis, 2 = Yaxis, or 3 = Zaxis) will be defined by vector1.
Vector1 will always be colinear with the axis specified by the vector1Axis property. The next axis is computed using the cross product of the two vectors. A third vector is computed using the cross product of the first two axes, and vector2Axis specifies which axis of the new coordinate system (X, Y, or Z) will be defined by this new vector. If vector1 and vector2 are orthogonal, then vector2 will be colinear with the axis specified by the vector2Axis property.
Example 1: CoordinateSystem1.BuildCoordinateSystem(1, EastVector, 3, ZenithVector);
The Xaxis of the new coordinate system is defined by EastVector. The Yaxis is defined by Y = CrossProduct(ZenithVector, EastVector). The Zaxis is defined by Z = CrossProduct(EastVector, Y). Note that Z does not necessarily equal ZenithVector.
Example 2: CoordinateSystem1.BuildCoordinateSystem(3, ZenithVector, 1, EastVector);
The Zaxis of the new coordinate system is defined by ZenithVector. The Yaxis is defined by Y = CrossProduct(ZenithVector, EastVector). The Xaxis is defined by X = CrossProduct(Y, ZenithVector). Note that X does not necessarily equal EastVector.

Type: Variable
Access: Read/Write

Vector2Axis

Number or Variable that specifies which axis (X, Y, or Z) will be defined by vector2 in the cross product calculation with vector1.
Vector1 will always be colinear with the axis specified by the vector1Axis property. The next axis is computed using the cross product of the two vectors. A third vector is computed using the cross product of the first two axes, and vector2Axis specifies which axis of the new coordinate system (X, Y, or Z) will be defined by this new vector. If vector1 and vector2 are orthogonal, then vector2 will be colinear with the axis specified by the vector2Axis property.
Example 1: CoordinateSystem1.BuildCoordinateSystem(1, EastVector, 3, ZenithVector);
The Xaxis of the new coordinate system is defined by EastVector. The Yaxis is defined by Y = CrossProduct(ZenithVector, EastVector). The Zaxis is defined by Z = CrossProduct(EastVector, Y). Note that Z does not necessarily equal ZenithVector.
Example 2: CoordinateSystem1.BuildCoordinateSystem(3, ZenithVector, 1, EastVector);
The Zaxis of the new coordinate system is defined by ZenithVector. The Yaxis is defined by Y = CrossProduct(ZenithVector, EastVector). The Xaxis is defined by X = CrossProduct(Y, ZenithVector). Note that X does not necessarily equal EastVector.

Type: Variable
Access: Read/Write

VisualScale

The size at which to represent the CoordinateSystem when viewed in a Mission View.

Type: Variable
Access: Read/Write
Units: km

X

Cartesian x coordinate of the origin of the Coordinate System.

Type: Variable
Access: ReadOnly
Units: km

Y

Cartesian y coordinate of the origin of the Coordinate System.

Type: Variable
Access: ReadOnly
Units: km

Z

Cartesian z coordinate of the origin of the Coordinate System.

Type: Variable
Access: ReadOnly
Units: km


Name

Description

BuildCoordinateSystem

Uses the specified input arguments to set the origin and attitude matrix information for the custom Coordinate System.

ClearSavedStates

Clears previous saved states for this object.

FixedVectorToObject

Returns an Array containing the components of the vector originating at the location of the prefix object and terminating at the location of the argument object, in the body fixed coordinate frame of the prefix object.

GetAttitudeMatrix

Retrieves the attitude matrix held within the CoordinateSystem object.

GetEulerAngles

Retrieves a set of Euler Angles that reflect the AttitudeMatrix held within the CoordinateSystem object.

GetFromFile

Load the object state from the specified FreeFlyer object file.

GetFromString

Load the object state from the specified string.

GetQuaternion

Retrieves the quaternion that reflects the AttitudeMatrix held within the CoordinateSystem object.

PutToFile

Convert the object state to FreeFlyer object xml and write to a file.

PutToString

Convert the object state to FreeFlyer object xml and return as a string.

ReferenceEquals

Returns 1 if the argument refers to the calling object and 0 otherwise.

ResetPositionVector

If a position vector has been specified, this sets it back to none.

Restore

Restore an object's state from a previously saved state.

Save

Save the object's state so that it can be restored later.

SetAttitudeMatrix

Initializes the CoordinateSystem object using the orientation derived from the DirectionCosineMatrix.

SetEulerAngles

Initializes the CoordinateSystem object using the orientation derived from the Euler Angles.

SetPositionVector

Sets the position of the CoordinateSystem relative to the Central Body.

SetQuaternion

Initializes the CoordinateSystem object using the orientation specified by the quaternion.

VectorToObject

Returns an Array containing the components of the vector originating at the location of the prefix object and terminating at the location of the argument object, in MJ2000 Earth Equator coordinates.


Name

Description

Attributes

AttitudeMatrix11

The (1,1) component of the direction cosine matrix that moves a vector from MJ2000 Earth Equator to the coordinate system represented by the calling CoordinateSystem object.
This property has been Deprecated. Please use CoordinateSystem.GetAttitudeMatrix instead, using indices to access elements of the matrix.

Type: Variable
Access: ReadOnly

AttitudeMatrix12

The (1,2) component of the direction cosine matrix that moves a vector from MJ2000 Earth Equator to the coordinate system represented by the calling CoordinateSystem object.
This property has been Deprecated. Please use CoordinateSystem.GetAttitudeMatrix instead, using indices to access elements of the matrix.

Type: Variable
Access: ReadOnly

AttitudeMatrix13

The (1,3) component of the direction cosine matrix that moves a vector from MJ2000 Earth Equator to the coordinate system represented by the calling CoordinateSystem object.
This property has been Deprecated. Please use CoordinateSystem.GetAttitudeMatrix instead, using indices to access elements of the matrix.

Type: Variable
Access: ReadOnly

AttitudeMatrix21

The (2,1) component of the direction cosine matrix that moves a vector from MJ2000 Earth Equator to the coordinate system represented by the calling CoordinateSystem object.
This property has been Deprecated. Please use CoordinateSystem.GetAttitudeMatrix instead, using indices to access elements of the matrix.

Type: Variable
Access: ReadOnly

AttitudeMatrix22

The (2,2) component of the direction cosine matrix that moves a vector from MJ2000 Earth Equator to the coordinate system represented by the calling CoordinateSystem object.
This property has been Deprecated. Please use CoordinateSystem.GetAttitudeMatrix instead, using indices to access elements of the matrix.

Type: Variable
Access: ReadOnly

AttitudeMatrix23

The (2,3) component of the direction cosine matrix that moves a vector from MJ2000 Earth Equator to the coordinate system represented by the calling CoordinateSystem object.
This property has been Deprecated. Please use CoordinateSystem.GetAttitudeMatrix instead, using indices to access elements of the matrix.

Type: Variable
Access: ReadOnly

AttitudeMatrix31

The (3,1) component of the direction cosine matrix that moves a vector from MJ2000 Earth Equator to the coordinate system represented by the calling CoordinateSystem object.
This property has been Deprecated. Please use CoordinateSystem.GetAttitudeMatrix instead, using indices to access elements of the matrix.

Type: Variable
Access: ReadOnly

AttitudeMatrix32

The (3,2) component of the direction cosine matrix that moves a vector from MJ2000 Earth Equator to the coordinate system represented by the calling CoordinateSystem object.
This property has been Deprecated. Please use CoordinateSystem.GetAttitudeMatrix instead, using indices to access elements of the matrix.

Type: Variable
Access: ReadOnly

AttitudeMatrix33

The (3,3) component of the direction cosine matrix that moves a vector from MJ2000 Earth Equator to the coordinate system represented by the calling CoordinateSystem object.
This property has been Deprecated. Please use CoordinateSystem.GetAttitudeMatrix instead, using indices to access elements of the matrix.

Type: Variable
Access: ReadOnly

Update

A flag that determines whether or not the CoordinateSystem Object is to be reevaluated. If Update is set to 1, the Coordinate System will be reevaluated; if Update is set to 0, the Coordinate System will not be reevaluated. The Update property is essentially a shortcut way of allowing the user to reevaluate the CoordinateSystem Object when the underlying vectors that built the coordinate system have changed, but are not based on time. For timedependent vectors, use the Epoch property instead.
This property has been Deprecated. This property is unnecessary as the CoordinateSystem now gets updated automatically.

Type: Variable
Access: WriteOnly


Name

Description

GetDCM

Retrieves the nine elements of the AttitudeMatrix held within the CoordinateSystem object.
This method has been Deprecated. Please use CoordinateSystem.GetAttitudeMatrix() instead, using indices to access elements of the matrix.

SetDCM

Initializes the CoordinateSystem object using the orientation derived from the DirectionCosineMatrix.
This method has been Deprecated. Please use CoordinateSystem.SetAttitudeMatrix(Matrix) instead.


See also
Orbit Reference Frames
Vectors and Coordinate Systems Guide
Orbit Reference Frames Guide
Attitude Reference Frames Guide
Matrix, Array, and Variable Math Guide
