estimation_setup

This module contains a set of factory functions for setting up the estimation models in a simulation.

Functions

print_parameter_names(parameter_set)

Function for printing a list of estimatable parameter names.

create_parameter_set(parameter_settings, ...)

Function for creating a consolidated parameter from the given estimatable parameter settings.

create_observation_simulators(...)

Function for creating observation simulator objects.

print_parameter_names(parameter_set: tudatpy.kernel.numerical_simulation.estimation.EstimatableParameterSet) None

Function for printing a list of estimatable parameter names.

Function that allows you to print a verbose list of all parameters that shall be estimated. Consider parameters are listed separately.

Parameters:

parameter_set (EstimatableParameterSet.) – Instance of EstimatableParameterSet class, consolidating all estimatable parameters and simulation models.

Returns:

Verbose List of all parameters that shall be estimated. Consider parameters are listed separately.

Return type:

List[]

Examples

import numpy as np
from tudatpy.interface import spice
from tudatpy.numerical_simulation import environment_setup, propagation_setup, estimation_setup
from tudatpy.astro.time_conversion import DateTime

# Load SPICE kernels
spice.load_standard_kernels()

# Set simulation epochs
simulation_start_epoch = DateTime(2000, 1, 1).epoch()
simulation_end_epoch = DateTime(2000, 1, 4).epoch()

# Create bodies
bodies_to_create = ["Sun", "Earth"]
global_frame_origin = "Earth"
global_frame_orientation = "J2000"
body_settings = environment_setup.get_default_body_settings(
  bodies_to_create, global_frame_origin, global_frame_orientation)

# Create vehicle
body_settings.add_empty_settings("Delfi-C3")
body_settings.get("Delfi-C3").constant_mass = 2.2
bodies = environment_setup.create_system_of_bodies(body_settings)

# Define propagation settings
bodies_to_propagate = ["Delfi-C3"]
central_bodies = ["Earth"]
accelerations_settings_delfi_c3 = dict(
  Sun=[propagation_setup.acceleration.point_mass_gravity()],
  Earth=[propagation_setup.acceleration.spherical_harmonic_gravity(8, 8)]
)
acceleration_settings = {"Delfi-C3": accelerations_settings_delfi_c3}
acceleration_models = propagation_setup.create_acceleration_models(
  bodies, acceleration_settings, bodies_to_propagate, central_bodies)
initial_state = np.zeros(6)  # Use a real initial state if needed

# Integrator settings
integrator_settings = propagation_setup.integrator.runge_kutta_fixed_step_size(60.0,
                                                                               coefficient_set=propagation_setup.integrator.CoefficientSets.rkdp_87)

# Create propagator
termination_condition = propagation_setup.propagator.time_termination(simulation_end_epoch)
propagator_settings = propagation_setup.propagator.translational(
  central_bodies, acceleration_models, bodies_to_propagate, initial_state,
  simulation_start_epoch, integrator_settings, termination_condition)

# Define parameters to estimate
parameter_settings = estimation_setup.parameter.initial_states(propagator_settings, bodies)
parameter_settings.append(estimation_setup.parameter.gravitational_parameter("Earth"))
parameters_to_estimate = estimation_setup.create_parameter_set(parameter_settings, bodies)

# Print parameter names
print(estimation_setup.print_parameter_names(parameters_to_estimate))
create_parameter_set(parameter_settings: list[tudat::estimatable_parameters::EstimatableParameterSettings], bodies: tudatpy.kernel.numerical_simulation.environment.SystemOfBodies, propagator_settings: tudatpy.kernel.numerical_simulation.propagation_setup.propagator.PropagatorSettings = None, consider_parameters_names: list[tudat::estimatable_parameters::EstimatableParameterSettings] = []) tudatpy.kernel.numerical_simulation.estimation.EstimatableParameterSet

Function for creating a consolidated parameter from the given estimatable parameter settings.

Function for creating a consolidated parameter from the given estimatable parameter settings. The function checks for consistency between the parameter settings and the models contained in the simulation setup (given by the bodies & and propagator_settings parameters).

Parameters:
  • parameter_settings (list( EstimatableParameterSettings )) – List of objects that define the settings for the parameters that are to be created. Each entry in this list is typically created by a call to a function in the parameter module

  • bodies (SystemOfBodies) – Object consolidating all bodies and environment models, including ground station models, that constitute the physical environment.

  • propagator_settings (PropagatorSettings) – Object containing the consolidated propagation settings of the simulation.

Returns:

Instance of EstimatableParameterSet class, consolidating all estimatable parameters and simulation models.

Return type:

EstimatableParameterSet

Examples

# Create bodies
bodies = ...
# Define parameters settings
parameter_settings = ...
# Create the parameters that will be estimated
parameters_to_estimate = estimation_setup.create_parameter_set(parameter_settings, bodies)

This code snippet closely follows what is done in: Full Estimation Example.

create_observation_simulators(observation_settings: list[tudat::observation_models::ObservationModelSettings], bodies: tudatpy.kernel.numerical_simulation.environment.SystemOfBodies) list[tudatpy.kernel.numerical_simulation.estimation.ObservationSimulator]

Function for creating observation simulator objects.

Function for creating observation simulator objects from observation settings. Note that each observation (i.e. combination of observable and link geometry) requires its own observation simulator object.

Parameters:
  • observation_settings (List[ ObservationSettings ]) – List of settings objects, each object defining the observation model settings for one combination of observable and link geometry that is to be simulated.

  • bodies (SystemOfBodies) – Object consolidating all bodies and environment models, including ground station models, that constitute the physical environment.

Returns:

List of ObservationSimulator objects, each object hosting the functionality for simulating one combination of observable type and link geometry.

Return type:

List[ ObservationSimulator ]

Examples

# Create bodies
bodies = ...
# Define parameters settings
observation_settings = ...
# Create observation simulators
observation_simulators = estimation_setup.create_observation_simulators(observation_settings, bodies)

This code snippet closely follows what is done in: The following snippet closely follows what is done in: Galilean Moons State Estimation Example.