Default environment models#

To facilitate the creation of the celestial bodies in your simulation, Tudat provides the option of loading default models for a broad range of solar system bodies.

See also

For more information on how to create bodies in Tudat and modify their settings, see Creating the bodies. For a full example of how to setup a simulation environment with default settings, see the perturbed satellite orbit example.

Many of these settings are derived from so-called SPICE kernels. SPICE is a toolkit developed by NASA’s Navigation and Ancillary Information Facility (NAIF) and is used throughout the space industry for the design and analysis of (planetary) missions [Acton1996]. In Tudat, we primarily use the modules of SPICE that deal with pre-defined ephemerides and rotation models of solar system bodies (see section SPICE in Tudat below for details on our usage of SPICE).

Default settings#

The default body settings are retrieved when calling the get_default_body_settings() function in combination with calling load_standard_kernels() beforehand. The following settings are then used for the default celestial bodies by Tudat.

Ephemeris#

Directly from SPICE (see SPICE in Tudat) using the direct_spice() option. For our default settings, this includes all solar system planets, the Sun, Earth’s moon, the main Martian, Jovian and Saturnian satellites, as well as 300 major solar system asteroids. Users can append this list with additional ephemeris files, for instance for small bodies or other satellite systems, through the use of the load_kernel().

Ephemerides from SPICE kernels are only valid for a somewhat limited time interval (on the order of one or several centuries, depending on the specific body), which is limited by the valid range of the SPICE kernels provided in Tudat by default. You can load additional SPICE kernels with a longer coverage by using the load_kernel() function for any additional kernels you like (see, for instance, the generic kernels listed on the SPICE website or the JPL Horizons System for small-body objects). Note that the contents will override data in the default kernels (if applicable).

Rotation model#

Directly from SPICE (see SPICE in Tudat) using the spice() option. For body Foo, Tudat uses the frame IAU_Foo defined in SPICE as the body-fixed frame. These rotation models are implementations of results published by the IAU Working Group on Cartographic Coordinates and Rotational Elements.

For the Earth, a high-accuracy rotation model is available, which is not loaded by default, but can be defined using the gcrs_to_itrs() function.

Shape model#

Directly from SPICE (see SPICE in Tudat) using the spherical_spice() option. Tudat uses the average radius from SPICE to define a spherical shape model for all bodies.

Gravity field#

  • Spherical harmonic gravity field for the following bodies, using the predefined_spherical_harmonic() option:

    • Earth: Full gravity field up to degree and order 200, described here (GOCO05c, data obtained from GFZ; coefficient are available up to degree/order 720, but are not all loaded by default for efficiency purposes)

    • Moon: Full gravity field up to degree and order 200, described here (gggrx1200, data obtained from PDS; coefficient are available up to degree/order 1199, but are not all loaded by default for efficiency purposes)

    • Mars: Full gravity field up to degree and order 120, described here (jgmro120d, data obtained from PDS)

    • Venus: Full gravity field up to degree and order 180, described here (shgj180u, data obtained from PDS)

    • Mercury: Full gravity field up to degree and order 160, described here (jgmess160a, data obtained from PDS)

    • Jupiter: Zonal coefficients up to degree 8 from, described here

    • Galilean Moons: (Io, Europa, Ganymede, Callisto), \(\mu\), \(C_{20}\) and \(C_{22}\) from IMCCE ephemerides

  • For all the other bodies not mentioned above, point-mass gravity field with gravitational parameter loaded from SPICE are used (see SPICE in Tudat) using the tudatpy.numerical_simulation.environment_setup.gravity_field.central_spice() option.

Warning

For the bodies with default spherical harmonic gravity fields, the gravitational parameter is not loaded from SPICE, but is set to the value used in the construction of the gravity field model. This value may be different from the value used in the SPICE kernels, which you can retrieve using the get_body_gravitational_parameter() function.

See also

Temporal variations of the gravity field are zero by default, but can be included for high-accuracy applications. See the API reference on gravity field variation.

Atmosphere#

  • Earth: US76 density model (using interpolation of tabulated data us76())

  • All other bodies: none

Radiation source#

SPICE in Tudat#

The cspice toolkit (version of SPICE written in the C language) is included in the conda environment when installing Tudat. The SPICE toolkit itself has extensive lessons, tutorials and detailed documentation. Tudat contains a number of functions to directly interact with SPICE, listed here.

Note

In some cases, the extraction of the state of bodies from SPICE kernels can be a computational bottleneck. Tudat has an alternative set of default options, which make this process significantly faster, at the expense of higher RAM usage, and an environment that is only valid over a very limited time interval.

SPICE relies on a set of user-supplied input files (kernels) to perform its calculations. A number of these kernels are installed automatically with Tudat, and loaded when calling the load_standard_kernels() function (see this API docs entry for list of kernels). To extend the standard kernels, a user can download additional kernels from other sources such as NAIF directly or the JPL Horizons System for small-body objects, and then load them using the load_kernel() function.

Note

When using the default kernels/body settings, we have introduced one small difference for the sake of expediency. For the cases of Uranus, Neptune and Pluto, where we only have the ephemeris of the barycenter of the planetary system loaded, the planet is placed at the barycenter of the planetary system. This introduces a minor offset in the position of this planet (Mercury and Venus have no moons, and therefore their state coincides with their planetary system barycenter; dedicated planetary system ephemerides are loaded for the Earth, Mars, Jupiter and Saturn system). To correct this behaviour, a user can load a kernel for this body’s planetary system (see here, for example), and modify the default settings.


[Acton1996]

Acton, (1996). Ancillary data services of NASA’s Navigation and Ancillary Information Facility. Planetary and Space Science, Volume 44, Issue 1, https://doi.org/10.1016/0032-0633(95)00107-7.