Trajectory Types

<< Previous: Spacecraft Catalog

Next: Body Frame/Intermediate Frame Types >>

Trajectory Property

The trajectory property defines the data that the program uses to compute an object’s trajectory. It normally follows and is related to the center and trajectoryFrame attributes of the object or one of its arcs:
"center": "Cosmographia object name",
"trajectoryFrame": "Cosmographia frame name",
"trajectory": {
   "type": "Cosmographia trajectory type",
   ... type-dependent trajectory attributes ...
},
The center attribute is always present in the catalog files defining objects.
The  trajectoryFrame attribute, on the other hand, is very frequently omitted (as in the case for almost all SPICE-based trajectory definitions). If it is omitted, it defaults to “ICRF” which is equivalent to the SPICE ”J2000″ frame.
The following trajectory types are supported by Cosmographia:

SPICE

The SPICE trajectory type (“type“: “Spice“) directs Cosmographia to compute trajectories using SPICE data, for example:
"trajectory": {
   "type": "Spice",
   "target": "Cassini",
   "center": "Saturn"
},
The target and center attributes specify the SPICE names or IDs of the bodies the trajectory of which (target) and with respect to which (center) should be computed. The center specified here must match the object’s/arc’s center specified outside of the trajectory property.
The SPICE trajectory type allows for one additional attribute, frame, to the three shown above. This attribute contains the name of the SPICE reference frame with respect to which the trajectory is computed. Normally both this attribute and the object’s trajectoryFrame attribute are omitted, making SPICE frame default to “J2000” and trajectoryFrame default to “ICRF”, which correspond to each other. While having this attribute might afford flexibility in some obscure cases, omitting both it and trajectoryFrame is the best practice for SPICE type trajectory definitions because no other SPICE frames and Cosmographia frames correspond to each other.

FixedPoint

The FixedPoint trajectory  type (“type“: “FixedPoint“) directs Cosmographia to use the specified Cartesian vector (position, in km) as the fixed position of the object relative to its center in the objects’s trajectoryFrame:
"trajectory": {
   "type""FixedPoint",
   "position" :  [ 
      0.1, 
      0.2, 
      0.3 
   ]
},

FixedSpherical

The FixedSpherical trajectory type (“type“: “FixedSpherical“) directs Cosmographia to use the specified planetocentric coordinates (radius, in km, and longitude and latitude, in degrees) as the fixed position of the object relative to its center in the objects’s trajectoryFrame:
"trajectory": {
   "type""FixedSpherical",
   "latitude" 47.5,
   "longitude": -122.5,
   "radius": 6378.3
},
FixedSpherical has no knowledge of the IAU defined planetographic coordinate systems. It works as expected for placing objects on the surfaces of objects except for retrograde rotators, where north and south are reversed.

Keplerian

The Keplerian trajectory type (“type“: “Keplerian“) directs Cosmographia to use the specified orbital elements to compute the position of the object relative to its center in the objects’s trajectoryFrame:
"trajectory": {
   "type": "Keplerian",
   "epoch": 2455387.5,
   "period": "3.801940080524025 y",
   "semiMajorAxis": "2.435929475203178 au",
   "eccentricity": 0.1628635085186526,
   "inclination": 3.063744992999521,
   "ascendingNode": 80.89993758667205,
   "argumentOfPeriapsis": 250.1880363237300,
   "meanAnomaly": 230.6845245681190
},

Builtin

The Builtin trajectory type (“type“: “Builtin“) directs Cosmographia to use the built-in model to compute the position of the object relative to its center in the objects’s trajectoryFrame:
"trajectory": {
   "type": "Builtin",
   "name": "Mars"
},
This type can be used only for planets. When using it center and trajectoryFrame must be omitted or set to Sun and ICRF.

InterpolatedStates

The InterpolatedStates trajectory type (“type“: “InterpolatedStates“) directs Cosmographia to compute the position of the object relative to its center in the objects’s trajectoryFrame by interpolating time-tagged state vectors stored in a separate file:
"trajectory": {
   "type": "InterpolatedStates",
   "source": "cassini-solstice.xyzv"
},
The program reads states from a text file specified by the source attribute. The conventional extension for such files is .xyzv (xyz + velocity.) The file may begin with a block of comments; each comment line is prefixed with a hash (#). Following the comments is a list of records with the following arrangement:
<date> <x> <y> <z> <vx> <vy> <vz>
where
  • date – date is a Julian day in Barycentric Dynamical Time (TDB).
  • x, y, z – components of position (km)
  • vx, vy, vz – components of velocity (km/s)
For example:
# Creation date: Mon Jul 16 22:11:17 2012
# Records are <jd> <x> <y> <z> <vel x> <vel y> <vel z>
#   Time is a TDB Julian date
#   Position in km
#   Velocity in km/sec
2441778.60122 -143540520.299 -42601828.5841 -2696.02946285 7.0417278 -42.899928 -2.2465784
2441778.60784 -143535384.971 -42625931.5103 -4127.97459159 10.212578 -41.142538 -2.5831545
2441778.61819 -143525789.667 -42661802.0935 -6373.8022798 10.970861 -39.40869 -2.4374278
2441778.6384 -143506517.227 -42729563.7597 -10471.0116946 11.049639 -38.416033 -2.2815861
2441778.67787 -143468899.838 -42859516.2956 -18050.5301835 11.011671 -37.900402 -2.1826496
2441778.75497 -143395637.715 -43110872.6976 -32362.3845969 10.993684 -37.624144 -2.1260049
...

ChebyshevPoly

The ChebyshevPoly trajectory type (“type“: “ChebyshevPoly“) directs Cosmographia to compute the position of the object relative to its center in the objects’s trajectoryFrame by evaluating Chebyshev polynomials provided in a separate binary file (source):
"trajectory": {
   "type": "ChebyshevPoly",
   "source": "saturn.cheb"
},
The binary file must be in the little endian (Intel x86) byte order and must have the following format:
8 bytes - header "CHEBPOLY"
4 bytes - int32 - record count
4 bytes - int32 - polynomial degree
8 bytes - double - start time (seconds since J2000.0 TDB)
8 bytes - double - interval covered by each polynomial (in seconds)
data - 3 * sizeof(double) * (degree + 1) * record count bytes
Polynomial coefficients for each interval are stored as:
x0 x1 x2 ... xn y0 y1 y2 ... yn z0 z1 z2 ... zn

LinearCombination

The LinearCombination trajectory type (“type“: “LinearCombination“) directs Cosmographia to compute the trajectory of the object relative to its center in the objects’s trajectoryFrame as the weighted sum of two other trajectories:
"trajectory": {
   "type": "LinearCombination",
   "period": "2.736915552552733d",
   "weights": [ 1.0, -1.0 ],
   "trajectories": [
      {
         "type": "ChebyshevPoly",
         "source": "dione.cheb"
      },
      {
         "type": "ChebyshevPoly",
         "source": "saturn.cheb"
      }
   ]
},
This type is used in Cosmographia’s default, non-SPICE Solar System files to convert barycentric orbit definitions to planet-centered.

TLE

The TLE trajectory type (“type“: “TLE“) directs Cosmographia to use the specified two-line elements (TLE) to compute the position of the object relative to its center in the objects’s trajectoryFrame:
"trajectory": {
   "type": "TLE",
   "name": "ISS (ZARYA)",
   "line1": "1 25544U 98067A   11042.40620627  .00065760  00000-0  48638-3 0  8024",
   "line2": "2 25544  51.6440  85.8998 0004217 288.1282 194.3117 15.72311137701100",
   "source": "http://celestrak.com/NORAD/elements/visual.txt"
}
The TLE set provided in the line1 and line2 is used only if the program fails to fetch a more recent/applicable TLE set from the URL given in source.