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

Compare with Current View Page History

« Previous Version 18 Next »

Interface/Functional Spec

Explore Results

  • OrientationEpoch is not available in GUI.  Should probably expose this field.


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 below.  To create create a custom asteroid - as an example of how to create a custom CelestialBody- perform the following steps.

  1. In the Resource Tree, expand the SolarSystem folder.
  2. Right-click Sun and select Add -> Asteroid.
  3. In the New Asteroid dialog box, type the desired name.

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

 The CelestialBody Orbit tab is shown below for custom a custom CelestialBody.  Settings on this panel are inactive for built-in celestial bodies and the ephemeris for built-in bodies is configured on the Solar System dialog.  The CentralBody field is populated automatically when the object is created and is always inactive.  To configure SPICE ephemerides for a custom body, provide a list of SPICE kernels and the NAIF ID.  See the Remarks section for more information on configuring SPICE kernels.

 The CelestialBody Orientation tab is show below.  Most settings on this panel are inactive for built-in celestial bodies and exceptions for the Earth and Earth's moon are described below.  To define the orientation for a celestial body you provide a reference epoch, the initial orientation, and angular rates.  See the Remarks section for a more detailed description of the orientation model.

The Earth and Earth's moon have unique fields to configure their orientation models.  The Earth has an extra field called Nutation Update Interval that can be used when lower fidelity, higher performance simulations are required.   The model for Luna has an extra field called RotationDataSource and you can choose between DE405 and DE421.



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.   Earth has an additional field called  Nutation Update interval that controls the update frequency for the Nutation matrix.  For high fidelity applications, NutationUpdateInterval should be set to zero.  The RotationDataSource field for Earth and Luna defines the theory used for the rotation of those bodies.  Currently, only FK5IAU1980 and DE405 are available for Earth and Luna respectively and the field is displayed for information purposes only.  Future versions of GMAT will support DE421Luna and IAU-2000A theory for Earth.

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' 

Note: GMAT currently only supports a single ephemeris model for custom bodies (SPICE)  and this is set using PosVelSource field.  The default for PosVelSource is SPICE and it is not necessary to configure this field in the current version of GMAT.

Configuring Physical Properties

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


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