Universe

Universe

The Universe submodule defines simulation-specific data files which are constants of most simulations. In particular it provides data structures for storing and accessing Earth orientation parameters and spherical harmonic gravity field models.

The module defines the global variables EOP and GRAVITY_MODEL which are loaded at runtime and .

EOP defaults to use the rapid Earth orientation data file finals.all (IAU 2000) distributed by the IERS. The module also supports IERS C04 product files.

GRAVITY_MODEL defaults to use the EGM2008 spherical harmonic gravity model, truncated to order and degree 90.

The EarthOrientationData constains a single data member of type Dict{Int32, Tuple{Float64, Float64, Float64}} that stores the Earth Orientation parameters UT1-UTC, xp, and yp whose units are meters, radians, and radians, respectively. xp and yp are the x- and y-components of Earth's polar motion. The dictionary key is the Epoch the parameters are for as a Modified Julian Day at 0h UTC.

Arguments:

  • product::Symbol The IERS product type can be :C04_14, :C04_80, or :FINALS_2000
source

Module-wide global EarthOrientationData object. This data object is used as the default source of Earth Orientation Data by reference system transformations if no explicit EarthOrientationData file is provided to those transformations.

This value can be overridden in your own code as follows:

SatelliteDynamics.EOP = EarthOrientationData(:EOP_PRODUCT_CHOICE)

This global variable defaults to use the module's internal version of :FINALS_2000 if it is not otherwise set/provided.

source

Compute the offset between the UT1 and UTC time systems in seconds. If the EarthOrientationData argument is ommitted the function will use the default module-global value.

Arguments:

  • eop::EarthOrientationData EarthOrientationData object to use to compute the offset
  • mjd::Real Modified Julian Date in UTC of the Epoch for which the UT1-UTC offset is desired.
  • interp::Bool Whether to linearly interpolate the parameter data to the input MJD.

Returns:

  • ut1_utc::Float UT1 - UTC offset. [s]
source

Compute the location of the pole. Returns x- and y- components as a tuple with the units of [radians]. If the EarthOrientationData argument is ommitted the function will use the default module-global value.

Arguments:

  • eop::EarthOrientationData EarthOrientationData object to use to compute the offset
  • mjd::Real Modified Julian Date in UTC of the Epoch for which the pole locator is desired.
  • interp::Bool Whether to linearly interpolate the parameter data to the input MJD.

Returns:

  • pole_locator::Tuple{ -Float, Float} (x, y) pole location in radians.
source

Compute the x-component of the pole locator in [radians]. If the first EarthOrientationData argument is ommitted the function will use the default module-global value.

Arguments:

  • eop::EarthOrientationData EarthOrientationData object to use to compute the offset
  • mjd::Real Modified Julian Date in UTC of the Epoch for which the xp value is desired.
  • interp::Bool Whether to linearly interpolate the parameter data to the input MJD.

Returns:

  • xp::Float x-component of pole locator in radians.
source

Compute the y-component of the pole locator in [radians]. If the first EarthOrientationData argument is ommitted the function will use the default module-global value.

Arguments:

  • eop::EarthOrientationData EarthOrientationData object to use to compute the offset
  • mjd::Real Modified Julian Date in UTC of the Epoch for which the yp value is desired.
  • interp::Bool Whether to linearly interpolate the parameter data to the input MJD.

Returns:

  • yp::Float y-component of pole locator in radians.
source

Set Earth orientation data values for a specific date in the module global EarthOrientationData object.

Arguments:

  • mjd::Real Modified Julian Date in UTC of the Epoch for which the Earth orientation data is aligned to.
  • ut1_utc::Real Offset between UT1 and UTC in seconds.
  • xp::Real x-component of the pole locator in radians.
  • yp::Real y-component of the pole locator in radians.
source

Load new Earth orientation data into the module global EarthOrientationData object. The product can be one of the symbols: :C04_14, :C04_80, or :FINALS_2000.

Arguments:

  • product::Symbol Loads a different set of EarthOrientationData values into the module-wide global EarthOrientationData parameters.
source

Download updated Earth orientation datafiles for included products IERS products.

Arguments:

  • product::Symbol The IERS product type can be :C04_14, :C04_80, or :FINALS_2000
source

GravModel stores a spherical harmonic gravity field in memory. Can store normalized or denomalized coefficients. Package contains EGM2008, GGM01S, and GGM0S gravity models, as well as the default gravity model of EGM2008 truncated to degree and order 90.

Additional gravity field models can be downloaded from: http://icgem.gfz-potsdam.de/home

Arguments:

  • filepath::string Path to spherical harmonic gravity model file.
source

Module-wide global GravityModel object. This data object is used as the default spherical harmonic gravity field unless one is otherwise provided.

This value can be overridden in your own code as follows:

SatelliteDynamics.GravityModel = GravityModel(PATH_TO_YOUR_GRAVITY_MODEL)

This global variable defaults to use the module's internal version of the EGM2008 model truncated to order and degree 90, if it is not otherwise set.

source

Load new gravity model into module global EarthOrientationData object. The product can be one of the symbols: :EGM2008_20, :EGM2008_90, :GGM01S, :GGM05S, or the filepath to a text-encoded gravity model file.

Arguments:

  • gfc_file::String File path of gravity field model
  • product_name::Symbol OR a symbol of a known gravity field product. Valid ones are: :EGM2008_20, :EGM2008_90, :GGM01S, :GGM05S
source