Frames & Orientation¶
Transform Convention¶
The frame API always returns rotations from the source frame to the destination frame named by the method.
| API | Returned rotation |
|---|---|
frame.GetStateOrientationToICRF(epoch) |
frame -> ICRF |
frame.ToFrame(targetFrame, epoch) |
frame -> targetFrame |
Apply the returned quaternion to rotate a vector from the source frame into the destination frame. Use the conjugate for the inverse direction.
Frame¶
Frame represents a named reference frame.
| Static Properties | Description |
|---|---|
Frame.ICRF |
International Celestial Reference Frame (J2000) |
Frame.ECLIPTIC_J2000 |
Ecliptic plane at J2000 |
Frame.TEME |
True Equator Mean Equinox (for TLE) |
Frame.ECLIPTIC_B1950 |
Ecliptic plane at B1950 |
Frame.GALACTIC_SYSTEM2 |
Galactic coordinate system |
Frame.B1950 |
B1950 equatorial frame |
Frame.FK4 |
FK4 frame |
Constructors¶
| Constructor | Description |
|---|---|
Frame(string name) |
Create frame by name (e.g., "IAU_EARTH", "ITRF93") |
Methods¶
| Method | Description |
|---|---|
GetStateOrientationToICRF(Time epoch) |
Get orientation relative to ICRF |
ToFrame(Frame target, Time epoch) |
Get transformation to another frame |
StateOrientation¶
StateOrientation packages a rotation, angular velocity, epoch, and source frame.
| Member | Description |
|---|---|
Rotation |
Quaternion from ReferenceFrame to destination |
AngularVelocity |
Angular velocity of the transform |
ReferenceFrame |
Source frame of the transform |
AtDate(Time) |
Propagate using constant angular velocity |
RelativeTo(Frame) |
Re-express in another destination frame |
Earth Orientation Frames (Pro)¶
Pro
Frames.GCRF, Frames.CIRS, and Frames.TIRS are Pro features.
| Frame | Description |
|---|---|
Frames.GCRF |
Geocentric realization of ICRS, including IAU frame bias |
Frames.CIRS |
Celestial intermediate reference system using CIO-based precession-nutation |
Frames.TIRS |
Terrestrial intermediate reference system adding Earth rotation angle |
Example¶
var cirsToIcrf = Frames.CIRS.GetStateOrientationToICRF(epoch);
var positionIcrf = positionCirs.Rotate(cirsToIcrf.Rotation);