You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

Interface/Functional Spec


A celestial body model


The CelestialBody resource is a model of a celestial body containing settings for the physical properties, as well as the model for the orbital motion and orientation.  GMAT contains built-in models for the Sun, the 8 planets, Earth's moon, and Pluto.  You can create a custom CelestialBody resource to model a planet, asteroid, comet, or moon. 
See Also:  SolarSystem, Barycenter, LibrationPoint, CoordinateSystem.


See the User Interface Spec spreadsheet for reference information for fields. 


The CelestialBody GUI has three tabs that allow you to set the physical properties, orbital properties, and the orientation model.  CelestialBody resources can be used in ForceModels, CoordinateSystem, LibrationPoints, Barycenters among others.  For a built-in CelestialBody, the Orbit and Orientation tabs are largely inactive and the behavior is discussed further below.  To create create a custom asteroid - as an example of how to create a custom CelestialBody- perform the following steps.

  1. Expand the SolarSystem folder
  2. Right-click the desired central body (here we choose the Sun)
  3. Select Add -> Asteroid


The CelestialBody Properties tab is shown above.  GMAT models all bodies as a spherical ellipsoid and you can set the Equatorial Radius, Flattening, and gravitation parameter (Mu) on this dialog, as well as the texture map used in graphical displays. 

The CelestialBody Orbit tab, for a custom CelestialBody, is shown above.  For a built-in CelestialBody, the fields on this panel are inactive and are inherited from the settings on the SolarSystem Resource.  For a custom CelestialBody, the CentralBody field is automatically populated depending upon the central body used when creating the



The bla



For Developer and GUI Tester:  If we add DE421 as Lunar RotatationDataSource, then we will need to make that field active in the panel above.


Celestial Body Orientation Model

The orientation of built-in celestial bodies is modeled using the most accurate theories available on a per-body basis.  The orientation of Earth is modeled using IAU-1976/FK5.  Th orientation of the Moon is modeled using lunar librations from the DE405 or DE421 files.  The remaining built in celestial body orientations are modeled using data published by the IAU/IAG and documented by Seidelmann1.

The orientation of a custom CelestialBody is modeled by providing three angles and their rates based on IAU/IAG conventions.  The figure below illustrates the angles.  The angles αo, δo, and W, are respectively the SpinAxisRAConstant, SpinAxisDECConstant, and RotationConstant. The angular rates are respectively SpinAxisRARate, SpinAxisDECConstant, and RotationRate.  All angles are referenced to the X-Y plane of the ICRF axis system system.  The constant values SpinAxisRAConstant, SpinAxisDECConstant, and RotationConstant are defined to be the values at the epoch defined in OrientationEpoch.

Here is how to configure a CelestialBody according to the IAU 2006 recommended values for Vesta. Note the the orientation epoch is typically used by the IAU is 01 Jan 2000 12:00:00.00.000 TDB and this must be converted to A1ModJulian which can easily be performed using the Spacecraft Orbit dialog box.

Create Asteroid Vesta
Vesta.CentralBody         = Sun;
Vesta.OrientationEpoch    = 21544.99962789878;  %  Note that currently the only available format for OrientationEpoch is A1ModJulian
Vesta.SpinAxisRAConstant  = 301.9;
Vesta.SpinAxisRARate      = 0.9;
Vesta.SpinAxisDECConstant = 90.9;
Vesta.SpinAxisDECRate     = 0.0;
Vesta.RotationConstant    = 292.9;
Vesta.RotationRate        = 1617.332776;

Note: The orientation models available for Earth and Luna have additional fields for configuration.  The RotationDataSource field for Earth defines the theory used for the rotation from body fixed to inertial for Earth.  Similarly, for Luna, the RotationDataSource field allows you to choose between DE405 and DE421 for the lunar orientation model.   If the RotationDataSource for Earth is selected to be FK5IAU1980, then the Nutation Update interval can be used to set the update frequency for the Nutation matrix.  For high fidelity applications, NutationUpdateInterval should be set to zero.

Configuring Orbit Ephemerides

The ephemerides for built-in celestial bodies is specified by the SolarySystem.EphemerisSource field and the same source is used for all built-in bodies.  Ephemerides for a custom CelestialBody are provide by SPICE kernels.   An archive of available SPICE Kernels is located here.  JPL provides utilities to create custom SPICE kernels in the event existing kernels don't satisfy requirements for your application.  To create custom SPICE kernels, see the documentation provided by JPL.  The list of NAIF Ids for celestial bodies is located here.

To specify the SPICE kernels for a custom CelestialBody, use the NAIFId, CentralBody, and SourceFileName fields.  GMAT is distributed with and SPK file for CERES which has a NAIF ID 2000001.  Here is how to configure a CelestialBody to use the CERES SPICE ephemeris data.

Create CelestialBody Ceres
Ceres.NAIFId = -123456789;Ceres.CentralBody = Sun;
Ceres.SourceFilename = '../data/planetary_ephem/spk/ceres_1900_2100.bsp' 

Configuring Physical Properties

GMAT models all celestial bodies as spherical ellipsoids.  To define the physical properties use Flattening, EquatorialRadius, and Mu field.    

Resolve: Are these obsolete

GMAT BodyName.PosVelSource = 'SPICE'; 
GMAT BodyName.RotationDataSource = 'IAUSimplified';


Configure a CelestialBody to model Saturn's moon Titan.  Note you must obtain the SPICE kernel named "sat351.bsp" from here and place it it the directory identified in the script snippet below.

Create Moon Titan;
GMAT Titan.NAIFId               = 606;   % this gets overridden with the actual value from the SPK file
GMAT Titan.OrbitSpiceKernelName = {'../data/planetary_ephem/spk/de421.bsp', '../data/planetary_ephem/spk/sat351.bsp'};
GMAT Titan.EquatorialRadius     = 2575;
GMAT Titan.Flattening           = 0;
GMAT Titan.Mu                   = 8978.5215;
GMAT Titan.PosVelSource         = 'SPICE';
GMAT Titan.CentralBody          = 'Sun';
GMAT Titan.RotationDataSource   = 'IAUSimplified';
GMAT Titan.OrientationEpoch     = 21545;
GMAT Titan.SpinAxisRAConstant   = 36.41;
GMAT Titan.SpinAxisRARate       = -0.036;
GMAT Titan.SpinAxisDECConstant  = 83.94;
GMAT Titan.SpinAxisDECRate      = -0.004;
GMAT Titan.RotationConstant     = 189.64;
GMAT Titan.RotationRate         = 22.5769768;


1.  Seidelmann, P. K., “Report of the IAU/IAG Working Group on Cartographic Coordinates and Rotational Elements of the Planets and Satellites: 2000,” Celestial Mechanics and Dynamical Astronomy, Vol. 82, No. 1, 2002, pp. 83 – 111.



  • No labels