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
SatelliteDynamics.Universe.EOP
— Constant.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.
SatelliteDynamics.Universe.UT1_UTC
— Function.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 offsetmjd::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]
SatelliteDynamics.Universe.POLE_LOCATOR
— Function.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 offsetmjd::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.
SatelliteDynamics.Universe.XP
— Function.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 offsetmjd::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.
SatelliteDynamics.Universe.YP
— Function.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 offsetmjd::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.
SatelliteDynamics.Universe.set_eop
— Function.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.
SatelliteDynamics.Universe.load_eop
— Function.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.
SatelliteDynamics.Universe.update_eop
— Function.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
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.
SatelliteDynamics.Universe.GRAVITY_MODEL
— Constant.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.
SatelliteDynamics.Universe.load_gravity_model
— Function.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 modelproduct_name::Symbol
OR a symbol of a known gravity field product. Valid ones are::EGM2008_20
,:EGM2008_90
,:GGM01S
,:GGM05S