gravity_field_variation
¶
This module contains a set of factory functions for setting up the gravity field variations of a (spherical harmonic) gravity field.
The main interfaces with Tudat is the gravity_field_variation_settings
list attribute of the body settings, which defines settings for time-variations of spherical harmonic coefficients of a body.
The functions in this submodule are used to create the settings objects that go into this list.
Once created, the gravity field variation settings defined through the settings in this submodule each compute a \(\Delta \bar{C}_{j,lm}\) and \(\Delta \bar{S}_{j,lm}\) variation to the cosine and sine coefficients at degree \(l\) and order \(m\). Each of the \(N\) gravity field variation models defined for a given body is evaluated at each time step to produce:
where \(\bar{C}_{0,lm}\) and \(\bar{S}_{0,lm}\) are the static coefficients (defined through gravity_field_settings
for a given body)
Functions¶
|
Function for creating solid body tides. |
|
Function for creating solid body tides. |
Function for creating solid body tides. |
|
Function for creating solid body tides. |
|
Function for creating solid body tides. |
|
Function for creating solid body tides. |
|
Function for creating solid body tides raised by multiple bodies. |
|
Function for creating solid body tides with coupling between different forcing degree and orders. |
|
|
Function for creating time-periodic gravity field variations. |
|
Function for creating time-periodic gravity field variations at a single variation period. |
|
Function for creating time-polynomial gravity field variations. |
|
Function for creating polynomial gravity field variations at a single variation period. |
|
Function for creating gravity field variations from tabular variation values as a function of time. |
- solid_body_tide(tide_raising_body: str, love_number: float, degree: int) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating solid body tides.
Function for creating solid body tides, using a single real Love number \(k_{l}\) at a single degree \(l\) (e.g. \(k_{2}\), \(k_{3}\), etc.). This function evaluates Eq. (6.6) from the IERS Conventions 2010, with real \(k_{l}=k_{lm}\), a single value of \(l\) and a single tide-raising body \(j\).
\[\Delta \bar{C}_{lm}-i\Delta \bar{S}_{lm}=\frac{1}{2l+1}k_{l}\frac{\mu_{j}}{\mu}\left(\frac{R}{r_{j}}\right)^{l+1}\bar{P}_{lm}(\sin\phi_{j})\left(\cos m\theta_{j}-i\sin m\theta_{j}\right)\]where quantities without subscripts represent properties of the body \(B\) for which the gravity field’s time variations are computed. Here, \(\mu_{j}\) is the gravitational parameter of the tide-raising body \(j\), and \(r_{j}\), \(\phi_{j}\) and \(\theta_{j}\) represent the spherical position of body \(j\) in a frame fixed to body \(B\), and \(\bar{P}_{lm}\) are the fully normalized associated Legendre polynomials
- Parameters:
tide_raising_body (str) – Name of body raising the tide.
love_number (float) – Constant real Love number to use for body undergoing deformation, at the spherical harmonic degree defined by ‘degree’ input.
degree (int) – Degree of the spherical harmonic gravity field, and associated Love number, that is to be considered.
- Returns:
Instance of the
BasicSolidBodyGravityFieldVariationSettings
derivedGravityFieldVariationSettings
class- Return type:
Examples
In this example, we create gravity field variations of Earth for a tide raised by the Moon, with a single Love number \(k_{2}\) of 0.301, and add it to the list of gravity field variations
tide_raising_body = "Moon" degree = 2 love_number = 0.301 gravity_field_variation_list = list() gravity_field_variation_list.append( environment_setup.gravity_field_variation.solid_body_tide( tide_raising_body, love_number, degree ) body_settings.get( "Earth" ).gravity_field_variation_settings = gravity_field_variation_list
- solid_body_tide_complex_k(tide_raising_body: str, love_number: complex, degree: int) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating solid body tides.
As
solid_body_tide()
, but with complex value for the Love number.- Parameters:
tide_raising_body (str) – Name of body raising the tide.
love_number (complex) – Constant real Love number to use for body undergoing deformation, at the spherical harmonic degree defined by ‘degree’ input.
degree (int) – Degree of the spherical harmonic gravity field, and associated Love number, that is to be considered.
- Returns:
Instance of the
BasicSolidBodyGravityFieldVariationSettings
derivedGravityFieldVariationSettings
class- Return type:
- solid_body_tide_degree_variable_k(tide_raising_body: str, love_number_per_degree: dict[int, float]) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating solid body tides.
Function for creating solid body tides, using a set of real, separate, Love numbers at any number of degrees (e.g. \(k_{2}\), \(k_{3}\), etc.). This output and mathematical model of this function is effectively identical to a list of outputs to
solid_body_tide()
, with differing degrees and associated Love numbers. This function evaluates Eq. (6.6) from the IERS Conventions 2010, with a set of real values \(k_{l}=k_{lm}\), at a set of values of \(l\) and a single tide-raising body \(j\).- Parameters:
- Returns:
Instance of the
BasicSolidBodyGravityFieldVariationSettings
derivedGravityFieldVariationSettings
class- Return type:
Examples
In this example, we create gravity field variations of Earth for a tide raised by the Moon, with a Love numbers \(k_{2}=0.301\), and \(k_{3}=0.09\), and add it to the list of gravity field variations
tide_raising_body = "Moon" love_numbers = dict( ) love_numbers[ 2 ] = 0.301 love_numbers[ 3 ] = 0.09 gravity_field_variation_list = list() gravity_field_variation_list.append( environment_setup.gravity_field_variation.solid_body_tide_degree_variable_k( tide_raising_body, love_numbers ) body_settings.get( "Earth" ).gravity_field_variation_settings = gravity_field_variation_list
- solid_body_tide_degree_variable_complex_k(tide_raising_body: str, love_number_per_degree: dict[int, complex]) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating solid body tides.
As
solid_body_tide_degree_variable_k()
, but with complex values for the Love numbers.- Parameters:
- Returns:
Instance of the
BasicSolidBodyGravityFieldVariationSettings
derivedGravityFieldVariationSettings
class- Return type:
- solid_body_tide_degree_order_variable_k(tide_raising_body: str, love_number_per_degree_and_order: dict[int, list[float]]) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating solid body tides.
Function for creating solid body tides, using a set of real, separate, Love numbers at any number of degrees and orders (e.g. \(k_{20}\), \(k_{21}\), \(k_{22}\), \(k_{30}\), etc.). This function evaluates Eq. (6.6) from the IERS Conventions 2010, with a set of real values \(k_{lm}\), at a set of values of \(l\) and a single tide-raising body \(j\).
The mathematical model of this function is effectively nearly equal to that of
solid_body_tide()
with the modification that \(k_{l}\rightarrow k_{lm}\).- Parameters:
tide_raising_body (str) – Name of body raising the tide.
love_number_per_degree_and_order (dict( int, list( float ) )) – Dictionary of Love numbers for each degree that is to be taken into account, with the key representing the degree \(l\) of the Love number, and value containing the list of Love numbers \(k_{lm}\) at this degree. Note that, for Love numbers at degree \(l\), the associated list can contain up to \(l+1\) entries, representing the Love numbers (in order) \(k_{l0}\), \(k_{l1}\)… \(k_{ll}\).
- Returns:
Instance of the
BasicSolidBodyGravityFieldVariationSettings
derivedGravityFieldVariationSettings
class- Return type:
Examples
In this example, we create gravity field variations of the Moon, for a tide raised by Earth, with a Love numbers \(k_{20}=0.024615\), \(k_{21}=0.023915\) and \(k_{21}=0.024852\), and add it to the list of gravity field variations
tide_raising_body = "Earth" love_numbers = dict( ) love_numbers[ 2 ] = list( ) love_numbers[ 2 ].append( 0.024615 ) love_numbers[ 2 ].append( 0 .023915 ) love_numbers[ 2 ].append( 0.024852 ) gravity_field_variation_list = list() gravity_field_variation_list.append( environment_setup.gravity_field_variation.solid_body_tide_degree_order_variable_k( tide_raising_body, love_numbers ) body_settings.get( "Earth" ).gravity_field_variation_settings = gravity_field_variation_list
- solid_body_tide_degree_order_variable_complex_k(tide_raising_body: str, love_number_per_degree_and_order: dict[int, list[complex]]) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating solid body tides.
As
solid_body_tide_degree_order_variable_k()
, but with complex values for the Love number.- Parameters:
tide_raising_body (str) – Name of body raising the tide.
love_number_per_degree (dict( int, list( complex ) )) – Dictionary of Love numbers for each degree that is to be taken into account, with the key representing the degree \(l\) of the Love number, and value containing the list of Love numbers \(k_{lm}\) at this degree. Note that, for Love numbers at degree \(l\), the associated list can contain up to \(l+1\) entries, representing the Love numbers (in order) \(k_{l0}\), \(k_{l1}\)…:math:k_{ll}.
- Returns:
Instance of the
BasicSolidBodyGravityFieldVariationSettings
derivedGravityFieldVariationSettings
class- Return type:
- solid_multi_body_tide_degree_order_variable_k(tide_raising_bodies: list[str], love_number_per_degree_and_order: dict[int, list[float]]) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating solid body tides raised by multiple bodies.
As
solid_body_tide_degree_order_variable_k()
, but with the same set of Love numbers used for tides raised by multiple bodies \(j\)- Parameters:
tide_raising_bodies (list[str]) – Names of bodies raising the tide.
love_number_per_degree_and_order (dict( int, list( float ) )) – Dictionary of Love numbers for each degree that is to be taken into account, with the key representing the degree \(l\) of the Love number, and value containing the list of Love numbers \(k_{lm}\) at this degree. Note that, for Love numbers at degree \(l\), the associated list can contain up to \(l+1\) entries, representing the Love numbers (in order) \(k_{l0}\), \(k_{l1}\)… \(k_{ll}\).
- Returns:
Instance of the
BasicSolidBodyGravityFieldVariationSettings
derivedGravityFieldVariationSettings
class- Return type:
- mode_coupled_solid_body_tide(deforming_bodies: list[str], love_numbers: dict[tuple[int, int], dict[tuple[int, int], float]]) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating solid body tides with coupling between different forcing degree and orders.
Function for creating solid body tides with coupling between different forcing degree and orders, similar to
solid_body_tide_degree_order_variable_k()
, but with multiple tide-raising bodies and the option to have forcing and response at different degrees and orders\[\Delta \bar{C}_{l'm'}-i\Delta \bar{S}_{l'm'}=\sum_{j}\frac{1}{2l+1}k_{lm}^{l'm'}\frac{\mu_{j}}{\mu}\left(\frac{R}{r_{j}}\right)^{l+1}\bar{P}_{lm}(\sin\phi_{j})\left(\cos m\theta_{j}-i\sin m\theta_{j}\right)\]where quantities without subscripts represent properties of the body \(B\) for which the gravity field’s time variations are computed. Here, \(\mu_{j}\) is the gravitational parameter of the tide-raising body \(j\), and \(r_{j}\), \(\phi_{j}\) and \(\theta_{j}\) represent the spherical position of body \(j\) in a frame fixed to body \(B\), and \(\bar{P}_{lm}\) are the fully normalized associated Legendre polynomials.
The quantities \(l\) and \(m\) denote the degree and order of the forcing, while \(l'\) and \(m'\) denote the degree and order of the response
- Parameters:
tide_raising_body (str) – Name of body raising the tide.
love_number_per_degree (dict[tuple[int, int], dict[tuple[int,int],float]]) – Double dictionary of Love numbers for each combination for forcing and response degree and order, and the value (
float
) the associated mode-coupled Love number \(k_{lm}^{l'm'}\). The first tuple is the forcing degree and order \(l,m\), the second tuple is the response degree and order \(l',m'\)
- Returns:
Instance of a
GravityFieldVariationSettings
derived class containing required settings- Return type:
- periodic(cosine_coefficient_amplitudes_cosine_time: list[numpy.ndarray[numpy.float64[m, n]]], cosine_coefficient_amplitudes_sine_time: list[numpy.ndarray[numpy.float64[m, n]]], sine_coefficient_amplitudes_cosine_time: list[numpy.ndarray[numpy.float64[m, n]]], sine_coefficient_amplitudes_sine_time: list[numpy.ndarray[numpy.float64[m, n]]], angular_frequencies: list[float], reference_epoch: float, minimum_degree: int = 2, minimum_order: int = 0) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating time-periodic gravity field variations.
Function for creating gravity field variations that are a superposition of purely sinusoidal variations in the gravity field coefficients. The cosine and sine coefficient variations at degree and order \(l\) and \(m\) are computed from:
\[\begin{split}\Delta{\bar{C}}_{lm}=\sum_{i=1}^{N}\left(A_{i,\bar{C}_{lm}}\cos\left(f_{i}(t-t_{0})\right) + B_{i,\bar{C}_{lm}}\sin\left(f_{i}(t-t_{0})\right) \right)\\ \Delta{\bar{S}}_{lm}=\sum_{i=1}^{N}\left(A_{i,\bar{S}_{lm}}\cos\left(f_{i}(t-t_{0})\right) + B_{i,\bar{S}_{lm}}\sin\left(f_{i}(t-t_{0})\right) \right)\end{split}\]The summation is over all \(N\) frequencies that are provided by the user. For each frequency, the user provides a block of coefficients \(A_{\bar{C}_{lm}}\), \(A_{i,\bar{S}_{lm}}\), \(B_{i,\bar{S}_{lm}}\) and \(B_{i,\bar{S}_{lm}}\). These blocks give the spherical harmonic coefficient variations at degree \(l_{\text{min}}\) until degree \(l_{\text{min}}+l_{\text{size}}\), and order \(m_{\text{min}}\) until degree \(m_{\text{min}}+m_{\text{size}}\). The \(l_{\text{min}}\) and \(m_{\text{min}}\) are defined by the
minimum_degree
andminimum_order
inputs. The :math`l_{text{size}}` and :math`m_{text{size}}` are defined by the size of the matrices in the first four input lists to this function (starting withcosine_coefficient_amplitudes_cosine_time
).For instance, if
minimum_degree
is set to 2, andminimum_order
to 0, and each matrix block for coefficient amplitudes provided is a 1x3 matrix, these amplitudes make of the variations in \(l,m=2,0\), \(l,m=2,1\) and \(l,m=2,2\) respectively.- Parameters:
cosine_coefficient_amplitudes_cosine_time (list[np.array]) – List of coefficient amplitude blocks \(A_{i,\bar{C}_{lm}}\), with each entry in the list corresponding to the frequency provided by the same entry in
angular_frequencies
. The first entry in each matrix block provides the coefficient variation amplitude at degree equal tominimum_degree
and order equal tominimum_order
.cosine_coefficient_amplitudes_sine_time (list[np.array]) – List of coefficient amplitude blocks \(B_{i,\bar{C}_{lm}}\), with each entry in the list corresponding to the frequency provided by the same entry in
angular_frequencies
. The first entry in each matrix block provides the coefficient variation amplitude at degree equal tominimum_degree
and order equal tominimum_order
.sine_coefficient_amplitudes_cosine_time (list[np.array]) – List of coefficient amplitude blocks \(A_{i,\bar{S}_{lm}}\), with each entry in the list corresponding to the frequency provided by the same entry in
angular_frequencies
. The first entry in each matrix block provides the coefficient variation amplitude at degree equal tominimum_degree
and order equal tominimum_order
. Note that ifminimum_order
is equal to 0, the first column of values in each matrix will be unused (since there is no \(S_{l0}\) coefficient).sine_coefficient_amplitudes_sine_time (list[np.array]) – List of coefficient amplitude blocks \(B_{i,\bar{S}_{lm}}\), with each entry in the list corresponding to the frequency provided by the same entry in
angular_frequencies
. The first entry in each matrix block provides the coefficient variation amplitude at degree equal tominimum_degree
and order equal tominimum_order
. Note that ifminimum_order
is equal to 0, the first column of values in each matrix will be unused (since there is no \(S_{l0}\) coefficient).angular_frequencies (list[float]) – List of angular frequencies (in rad/s) at which variations are to be added
reference_epoch (float) – Reference epoch \(t_{0}\) for the variations
minimum_degree (int) – Minimum degree \(l_{\text{min}}\) of gravity field variations
minimum_order (int) – Minimum order \(m_{\text{min}}\) of gravity field variations
- Returns:
Instance of a
GravityFieldVariationSettings
derived class containing required settings- Return type:
- single_period_periodic(cosine_coefficient_amplitude_cosine_time: numpy.ndarray[numpy.float64[m, n]], cosine_coefficient_amplitude_sine_time: numpy.ndarray[numpy.float64[m, n]], sine_coefficient_amplitude_cosine_time: numpy.ndarray[numpy.float64[m, n]], sine_coefficient_amplitude_sine_time: numpy.ndarray[numpy.float64[m, n]], angular_frequency: float, reference_epoch: float, minimum_degree: int = 2, minimum_order: int = 0) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating time-periodic gravity field variations at a single variation period.
Function for creating time-periodic gravity field variations at a single variation period, same as \(~periodic\), but with a single frequency \(f\).
- Parameters:
cosine_coefficient_amplitude_cosine_time (np.array) – Coefficient amplitude block \(A_{i,\bar{C}_{lm}}\). The first entry in each matrix block provides the coefficient variation amplitude at degree equal to
minimum_degree
and order equal tominimum_order
.cosine_coefficient_amplitude_sine_time (np.array) – Coefficient amplitude block \(B_{i,\bar{C}_{lm}}\). The first entry in each matrix block provides the coefficient variation amplitude at degree equal to
minimum_degree
and order equal tominimum_order
.sine_coefficient_amplitude_cosine_time (np.array) – Coefficient amplitude block \(A_{i,\bar{S}_{lm}}\). The first entry in each matrix block provides the coefficient variation amplitude at degree equal to
minimum_degree
and order equal tominimum_order
. Note that ifminimum_order
is equal to 0, the first column of values in each matrix will be unused (since there is no \(S_{l0}\) coefficient).sine_coefficient_amplitude_sine_time (np.array) – Coefficient amplitude block \(B_{i,\bar{S}_{lm}}\). The first entry in each matrix block provides the coefficient variation amplitude at degree equal to
minimum_degree
and order equal tominimum_order
. Note that ifminimum_order
is equal to 0, the first column of values in each matrix will be unused (since there is no \(S_{l0}\) coefficient).angular_frequency (list[float]) – Angular frequencies (in rad/s) at which variations are to be added
reference_epoch (float) – Reference epoch \(t_{0}\) for the variations
minimum_degree (int) – Minimum degree \(l_{\text{min}}\) of gravity field variations
minimum_order (int) – Minimum order \(m_{\text{min}}\) of gravity field variations
- Returns:
Instance of a
GravityFieldVariationSettings
derived class containing required settings- Return type:
- polynomial(cosine_amplitudes_per_power: dict[int, numpy.ndarray[numpy.float64[m, n]]], sine_amplitudes_per_power: dict[int, numpy.ndarray[numpy.float64[m, n]]], reference_epoch: float, minimum_degree: int = 2, minimum_order: int = 0) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating time-polynomial gravity field variations.
Function for creating gravity field variations that are a superposition of purely polynomial variations in the gravity field coefficients. The cosine and sine coefficient variations at degree and order \(l\) and \(m\) are computed from:
\[\begin{split}\Delta{\bar{C}}_{lm}=\sum_{i=1}^{N}\left(K_{i,\bar{C}_{lm}} (t-t_{0})^{p_{i}} \right)\\ \Delta{\bar{S}}_{lm}=\sum_{i=1}^{N}\left(K_{i,\bar{S}_{lm}} (t-t_{0})^{p_{i}} \right)\end{split}\]The summation is over all \(N\) polynomial exponents that are provided by the user. For each exponent, the user provides a block of coefficients \(K_{i,\bar{C}_{lm}}\), and \(K_{i,\bar{S}_{lm}}\). These blocks give the spherical harmonic coefficient variations at degree \(l_{\text{min}}\) until degree \(l_{\text{min}}+l_{\text{size}}\), and order \(m_{\text{min}}\) until degree \(m_{\text{min}}+m_{\text{size}}\). The \(l_{\text{min}}\) and \(m_{\text{min}}\) are defined by the
minimum_degree
andminimum_order
inputs. The :math`l_{text{size}}` and :math`m_{text{size}}` are defined by the size of the matrices in the first two input lists to this function (starting withcosine_amplitudes_per_power
).For instance, if
minimum_degree
is set to 2, andminimum_order
to 0, and each matrix block for coefficient amplitudes provided is a 1x3 matrix, these amplitudes make of the variations in \(l,m=2,0\), \(l,m=2,1\) and \(l,m=2,2\) respectively.- Parameters:
cosine_amplitudes_per_power (dict[int, np.array]) – Dictionary of cosine coefficient amplitude blocks, with each key in the list corresponding to the polynomial power \(p_{i}\), and the dictionary value the corresponding \(K_{i,\bar{C}_{lm}}\). The first entry in each matrix block provides the coefficient variation amplitude at degree equal to
minimum_degree
and order equal tominimum_order
.sine_amplitudes_per_power (list[np.array]) – Dictionary of sine coefficient amplitude blocks, with each key in the list corresponding to the polynomial power \(p_{i}\), and the dictionary value the corresponding \(K_{i,\bar{S}_{lm}}\). The first entry in each matrix block provides the coefficient variation amplitude at degree equal to
minimum_degree
and order equal tominimum_order
. Note that ifminimum_order
is equal to 0, the first column of values in each matrix will be unused (since there is no \(S_{l0}\) coefficient).reference_epoch (float) – Reference epoch \(t_{0}\) for the variations
minimum_degree (int) – Minimum degree \(l_{\text{min}}\) of gravity field variations
minimum_order (int) – Minimum order \(m_{\text{min}}\) of gravity field variations
- Returns:
Instance of a
GravityFieldVariationSettings
derived class containing required settings- Return type:
- single_power_polynomial(cosine_amplitudes: numpy.ndarray[numpy.float64[m, n]], sine_amplitudes: numpy.ndarray[numpy.float64[m, n]], polynomial_power: int, reference_epoch: float, minimum_degree: int = 2, minimum_order: int = 0) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating polynomial gravity field variations at a single variation period.
Function for creating polynomial gravity field variations at a single variation period, same as \(~polynomial\), but with a single polynmial power \(p\).
- Parameters:
cosine_amplitudes_per_power (np.array) – Cosine coefficient amplitude block \(K_{\bar{C}_{lm}}\). The first entry in each matrix block provides the coefficient variation amplitude at degree equal to
minimum_degree
and order equal tominimum_order
.sine_amplitudes_per_power (list[np.array]) – Sine coefficient amplitude block \(K_{\bar{S}_{lm}}\). The first entry in each matrix block provides the coefficient variation amplitude at degree equal to
minimum_degree
and order equal tominimum_order
. Note that ifminimum_order
is equal to 0, the first column of values in each matrix will be unused (since there is no \(S_{l0}\) coefficient).polynomial_power (float) – Polynomial power \(p\) used in the computation
reference_epoch (float) – Reference epoch \(t_{0}\) for the variations
minimum_degree (int) – Minimum degree \(l_{\text{min}}\) of gravity field variations
minimum_order (int) – Minimum order \(m_{\text{min}}\) of gravity field variations
- Returns:
Instance of a
GravityFieldVariationSettings
derived class containing required settings- Return type:
- tabulated(cosine_variations_table: dict[float, numpy.ndarray[numpy.float64[m, n]]], sine_variations_table: dict[float, numpy.ndarray[numpy.float64[m, n]]], minimum_degree: int, minimum_order: int, interpolation_settings: tudatpy.kernel.math.interpolators.InterpolatorSettings) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings ¶
Function for creating gravity field variations from tabular variation values as a function of time.
Function for creating gravity field variations from tabular variation values as a function of time, which are interpolated to compute the instantaneous gravity field variation
The user provides a tables of blocks of coefficient variation at epochs \(t_{i}\) \(\Delta \bar{C}_{lm}(t_{i})\). These blocks give the spherical harmonic coefficient variations at degree \(l_{\text{min}}\) until degree \(l_{\text{min}}+l_{\text{size}}\), and order \(m_{\text{min}}\) until degree \(m_{\text{min}}+m_{\text{size}}\). The \(l_{\text{min}}\) and \(m_{\text{min}}\) are defined by the
minimum_degree
andminimum_order
inputs. The :math`l_{text{size}}` and :math`m_{text{size}}` are defined by the size of the matrices in the tabulated inputsFor instance, if
minimum_degree
is set to 2, andminimum_order
to 0, and each matrix block for coefficient amplitudes provided is a 1x3 matrix, these amplitudes make of the variations in \(l,m=2,0\), \(l,m=2,1\) and \(l,m=2,2\) respectively.- Parameters:
cosine_variations_table (dict[float, np.array]) – Dictionary of cosine coefficient variations, with each key in list corresponding to epoch \(t_{i}\) and the value to the corresponding variation \(\Delta \bar{C}_{lm}(t_{i})\). The first entry in each matrix block provides the coefficient variation at degree equal to
minimum_degree
and order equal tominimum_order
.sine_amplitudes_per_power (dict[float, np.array]) – Dictionary of sine coefficient variations, with each key in list corresponding to epoch \(t_{i}\) and the value to the corresponding variation \(\Delta \bar{C}_{lm}(t_{i})\). The first entry in each matrix block provides the coefficient variation at degree equal to
minimum_degree
and order equal tominimum_order
. Note that ifminimum_order
is equal to 0, the first column of values in each matrix will be unused (since there is no \(S_{l0}\) coefficient).minimum_degree (int) – Minimum degree \(l_{\text{min}}\) of gravity field variations
minimum_order (int) – Minimum order \(m_{\text{min}}\) of gravity field variations
interpolation_settings (InterpolatorSettings) – Settings that define the type of interpolator that is to be used
- Returns:
Instance of a
GravityFieldVariationSettings
derived class containing required settings- Return type:
Enumerations¶
Enumeration listing the different types of gravity and/or shape field variation models available in tudat. |
- class BodyDeformationTypes¶
Enumeration listing the different types of gravity and/or shape field variation models available in tudat. Note that for some types, only one of the two types of variations is available
Members:
basic_solid_body :
Basic tidal variation model, assuming a single constant Love number for the variation
iers_2010_tidal :
High-fidelity Earth tidal variation model based on IERS 2010 conventions
tabulated_deformation :
Variation model using interpolated tabular data for the variation model
periodic_variation :
Variation model using purely sinusoidal variations (as a function of time) for gravity field coefficients
polynomial_variation :
Variation model using polynomial functions of time for gravity field coefficients variations
ocean_tide :
Variation model due to ocean tides
pole_tide :
Variation model due to pole tides
- property name¶
Classes¶
Base class for providing settings for gravity field variations. |
|
Class for providing settings for solid body tidal gravity field variations, derived from GravityFieldVariationSettings. |
- class GravityFieldVariationSettings¶
Base class for providing settings for gravity field variations.
- class BasicSolidBodyGravityFieldVariationSettings¶
Class for providing settings for solid body tidal gravity field variations, derived from GravityFieldVariationSettings.